You are given an array a consisting of n integers.

You can remove at most one element from this array. Thus, the final length of the array is n-1 or n.

Your task is to calculate the maximum possible length of the strictly increasing contiguous subarray of the remaining array.

Recall that the contiguous subarray a with indices from l to r is a[l ... r] = a_l, a_{l + 1}, ..., a_r. The subarray a[l ... r] is called strictly increasing if a_l < a_{l+1} < ... < a_r.

Input

The first line of the input contains one integer n (2 ≤ n ≤ 2 ⋅ 10^5) — the number of elements in a.

The second line of the input contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9), where a_i is the i-th element of a.

Output

Print one integer — the maximum possible length of the strictly increasing contiguous subarray of the array a after removing at most one element.

Examples

Input


5
1 2 5 3 4


Output


4


Input


2
1 2


Output


2


Input


7
6 5 4 3 2 4 3


Output


2

Note

In the first example, you can delete a_3=5. Then the resulting array will be equal to [1, 2, 3, 4] and the length of its largest increasing subarray will be equal to 4.

#Q3
# for _ in range(int(input())):
# 	n = int(input())
# 	s = input()
# 	k = 1
# 	maxx = 0
# 	b = True
# 	while k<n:
# 		# print(k)
# 		for i in range(n-k+1):
# 			a = s[i:i+k]
# 			# print('a= ', a)
# 			for j in range(i+1,n-k+1):
# 				b = s[j:j+k]
# 				# print('b= ',b )
# 				if a==b:
# 					maxx = max(k,maxx)
# 		k+=1
# 	print(maxx)

# def fun1(a,ai,aj,b,bi,bj):
# 	if a[ai:aj]==b[bi:bj]:
# 		if ai!=bi:
# 			return len(a[ai:aj])
# 		else:
# 			return 0
# 	else:
# 		return fun1(a,ai+1,aj,b,bi+1,bj)
# def fun2(a,ai,aj,b,bi,bj):
# 	if a[ai:aj]==b[bi:bj]:
# 		if ai!=bi:
# 			return len(a[ai:aj])
# 		else:
# 			return 0
# 	else:
# 		return fun2(a,ai,aj-1,b,bi,bj-1)
# def fun3(a,ai,aj,b,bi,bj):
# 	if a[ai:aj]==b[bi:bj]:
# 		if ai!=bi:
# 			return len(a[ai:aj])
# 		else:
# 			return 0
# 	else:
# 		return fun3(a,ai+1,aj,b,bi,bj-1)
# def fun4(a,ai,aj,b,bi,bj):
# 	if a[ai:aj]==b[bi:bj]:
# 		if ai!=bi:
# 			return len(a[ai:aj])
# 		else:
# 			return 0
# 	else:
# 		return fun4(a,ai,aj-1,b,bi+1,bj)
# for _ in range(int(input())):
# 	n = int(input())
# 	s = input()
# 	a = s
# 	b = s
# 	print(max(fun1(a,0,n-1,b,1,n),fun2(a,0,n-1,b,1,n),fun3(a,0,n-1,b,1,n),fun4(a,0,n-1,b,1,n)))
# for _ in range(int(input())):
# 	a,b = map(int,input().split())
# 	a,b = min(a,b),max(a,b)
# 	v,w = a,b
# 	diff = b-a.
# 	c1 = 0
# 	x = 1
	# a,b = v,w
	# for i in range(1,len(op)):
	# 	x+=1
	# 	if op[i]>diff:
	# 		c1 += i-1
	# 		a+=op[i-1]
	# 		break
	# # print(c1)
	# print(a,b)
	# x-=1
	# print(x)
	# while True:
	# 	# print(a,b)
	# 	if a==b:
	# 		print(c1)
	# 		break
	# 	if b>=(a+x):
	# 		a+=x
	# 		x+=1
	# 		c1+=1
	# 	else:
	# 		b+=x
	# 		x+=1
	# 		c1+=1
	# x = 1
	# c = 0
	# a,b = v,w
	# for i in range(1,10**5+1):
	# 	if i*(i+1)//2>diff:
	# 		x = i-1
	# 		c =i-1
	# 		break
	# a += (x*(x+1)//2)
	# c+= 2*(b-a)
	# print(c)

# n,m = map(int,input().split())
# a = list(map(int,input().split()))
# b = list(map(int,input().split()))
# # a.sort()
# # b.sort()
# rem = []
# for i in range(n):
# 	rem.append((b[0]-a[i])%m)
# rem.sort()
# print(rem[0])

# n,k = map(int,input().split())
# num = list(input())
# two = num[:]
# m = n
# for i in range(0,m-k):
# 	if num[i]==num[i+k]:
# 		continue
# 	else:
# 		if int(num[i])<int(num[i+k]):
# 			num[i+k] = num[i]
# 			if(int(''.join(num))<int(''.join(two))):
# 				num[i+k-1] = str(int(num[i+k-1])+1)
# 		else:
# 			num[i+k] = num[i]
# print(m)
# print(''.join(num))

n = int(input())
arr = list(map(int,input().split()))
a = []
temp = [arr[0]]
for i in range(1,n):
	if arr[i]>arr[i-1]:
		temp.append(arr[i])
	else:
		a.append(temp)
		temp = [arr[i]]
a.append(temp)
# print(a)
c = 0
ans = []
for i in range(len(a)-1):
	x = a[i]
	y = a[i+1]
	m = 0
	n = 0
	if len(x)>1:
		if y[0]>x[-2]:
			m = len(x)-1 + len(y)
	if len(y)>1:
		if y[1]>x[-1]:
			n = len(x)+len(y)-1
	if m==0 and n==0:
		ans.append(len(x))
		ans.append(len(y))
	else:
		ans.append(max(m,n))
if ans:
	print(max(ans))
else:
	print(n)

