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.
"""n=int(input())
f=input().split(' ')
v=list()
max=0
for i in range(0,n):
    if int(f[i])>max:
        max=int(f[i])
    v.append(int(f[i]))

ans=0
#dp={i:0 for i in range(0,max+1)}
dp=dict()

for el in v:
    if el-1 not in dp:
        dp[el-1]=0
    dp[el]=dp[el-1]+1
    if dp[el]>ans:
        ans=dp[el]
        pred=el
sol=list()
i=n-1
for el in v[::-1]:
    if el==pred:
        sol.append(i+1)
        pred-=1
    i-=1
print(ans)
for i in sol[::-1]:
    print(i,end=' ')
"""

"""n=int(input())
f=input().split(' ')
f=[int(x) for x in f]

def deg3(x):
    y=0
    while x%3==0:
        y+=1
        x/=3
    return y

def comp(x,y):
    if x[0]!=y[0]:
        return x[0]>y[0]
    else:
        return x[1]<y[1]

v=[(-deg3(x),x) for x in f]
v=sorted(v)
sol=[x[1] for x in v]
for i in sol:
    print(i,end=' ')  """
"""import random

f = input().split(' ')
n = int(f[0])
k = int(f[1])
c = input().replace('\n','').split(' ')
f = [int(c[i]) for i in range(0,n)]

def quicksel(L, k):
    piv = random.choice(L)
    ls = [x for x in L if x < piv]
    eq = [x for x in L if x == piv]
    gr = [x for x in L if x > piv]
    if k <= len(ls):
        return quicksel(ls, k)
    elif k <= len(ls) + len(eq):
        return eq[0]
    else:
        return quicksel(gr, k - len(ls) - len(eq))


if k!=0:
    x = quicksel(f, k)
else:
    x = quicksel(f, 1)-1


cnt = 0
for i in f:
    if i <= x:
        cnt += 1


if (cnt != k) or x < 1 or x > 10 ** 9:
    print(-1)
else:
    print(x)"""

"""n=int(input())
sir=str(input())

def hashcode(s):
    return 31*(ord(s[0])-65)+ord(s[1])-65

def decode(cod):
    return (chr(cod//31+65),chr(cod%31+65))

v=dict()
maxsub=1
index=(sir[0],sir[1])
v[hashcode(index)]=1
for i in range(1,len(sir)-1):
    t=(sir[i],sir[i+1])
    cod=hashcode(t)
    if cod not in v:
        v[cod]=1
    else:
        v[cod]+=1
        if v[cod]>maxsub:
            maxsub=v[cod]
            index=decode(cod)
sol=''.join(index)
print(sol)"""
"""import queue
from collections import defaultdict
f = input().split(' ')
n = int(f[0])
m = int(f[1])
g={i:list() for i in range(1,n+1)}
deg={i:0 for i in range(1,n+1)}
for i in range(0,m):
    c = input().replace('\n','').split(' ')
    x=int(c[0])
    y=int(c[1])
    g[x].append(y)
    g[y].append(x)
    deg[x]+=1
    deg[y]+=1

viz=[0]*(n+1)
comp=list()

def bfs(x):
    vef=True
    q=queue.Queue(n)
    q.put(x)
    if deg[x]!=2:
        vef = False
    comp.append(x)
    viz[x]=1
    while q.empty()==False:
        u=q.get()
        for i in g[u]:
            if viz[i]==0:
                if deg[i]!=2:
                    vef=False
                q.put(i)
                viz[i]=1
                comp.append(i)
    return vef==True

def dfs(x):
    viz[x]=1
    comp.append(x)
    for u in g[x]:
        if viz[u]==0:
            dfs(u)

sol=0
for i in range(1,n+1):
    if viz[i]==0:
        comp.clear()
        sol+=bfs(i)
        #dfs(i)
        '''for j in comp:
            vef=(vef and deg[j]==2)
            if vef==False:
                break'''

print(sol)"""


"""def lisa(arr,n):
    m = 1
    l = 1
    for i in range(1, n):
        if (arr[i] > arr[i - 1]) :
            l = l + 1
        else:
            if (m < l):
                m = l
            l = 1
    if (m < l):
        m = l
    return m

n=int(input())
f=input().split(' ')
a=[int(f[i]) for i in range(0,n)]
ans=0
for i in range(0,n):
    arr=[]
    for j in range(0,i):
        arr.append(a[j])
    for j in range(i+1,n):
        arr.append(a[j])
    ans=max(ans,lisa(arr,n-1))
ans=max(ans,lisa(a,n))
print(ans,end='')"""

#print(lisa(a,n))

n=int(input())
f=input().split(' ')
a=[int(f[i]) for i in range(0,n)]
pred=[0]*n
suc=[0]*n
ans=0
pred[0]=1
for i in range(1,n):
    if a[i]>a[i-1]:
        pred[i]=pred[i-1]+1
    else:
        pred[i]=1
    ans=max(ans,pred[i])
suc[n-1]=1
i=n-2
while i>=0:
    if a[i+1]>a[i]:
        suc[i]=suc[i+1]+1
    else:
        suc[i]=1
    i-=1

for i in range(1,n-1):
    if a[i-1]<a[i+1]:
        ans=max(ans,pred[i-1]+suc[i+1])
print(ans,end='')















