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.
from os import path
import sys
# mod = int(1e9 + 7)
# import re  # can use multiple splits
from math import ceil, floor,gcd,log
from collections import defaultdict , Counter
# from bisect import bisect_left, bisect_right
#popping from the end is less taxing,since you don't have to shift any elements
maxx = float('inf')

if (path.exists('input.txt')): 
	#----------------------------- Sublime --------------------------------------#
	sys.stdin=open('input.txt','r');sys.stdout=open('output.txt','w');
	I = lambda :int(sys.stdin.buffer.readline())
	tup= lambda : map(int , sys.stdin.buffer.readline().split())
	lint = lambda :[int(x) for x in sys.stdin.buffer.readline().split()]
	S = lambda: sys.stdin.readline().replace('\n', '').strip()
	# def grid(r, c): return [lint() for i in range(r)]
	# def debug(*args, c=6): print('\033[3{}m'.format(c), *args, '\033[0m', file=sys.stderr)
	stpr = lambda x : sys.stdout.write(f'{x}' + '\n')
	star = lambda x: print(' '.join(map(str, x)))


else:
	#---------------------------- PYPY --------------------------------#
	I = lambda :int(sys.stdin.buffer.readline())
	tup= lambda : map(int , sys.stdin.buffer.readline().split())
	lint = lambda :[int(x) for x in sys.stdin.buffer.readline().split()]
	S = lambda: sys.stdin.readline().replace('\n', '').strip()
	# def grid(r, c): return [lint() for i in range(r)]
	stpr = lambda x : sys.stdout.write(f'{x}' + '\n')
	star = lambda x: print(' '.join(map(str, x)))
n = I()
ls =lint()
r , l = [1]*n , [1]*n
for i in range(n-2,-1,-1):
	if ls[i] < ls[i+1]:r[i] = r[i+1]+1

for i in range(1,n):
	if ls[i] > ls[i-1]:l[i] = l[i-1] +1
	
ans = max(l)
for i in range(1 , n -1):
	if ls[i-1] < ls[i+1]:ans = max(ans ,l[i-1]+ r[i+1] )
print(ans)
