human
DZY has a sequence a, consisting of n integers.

We'll call a sequence ai, ai + 1, ..., aj (1 ≤ i ≤ j ≤ n) a subsegment of the sequence a. The value (j - i + 1) denotes the length of the subsegment.

Your task is to find the longest subsegment of a, such that it is possible to change at most one number (change one number to any integer you want) from the subsegment to make the subsegment strictly increasing.

You only need to output the length of the subsegment you find.

Input

The first line contains integer n (1 ≤ n ≤ 105). The next line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 109).

Output

In a single line print the answer to the problem — the maximum length of the required subsegment.

Examples

Input

6
7 2 3 1 5 6

Output

5

Note

You can choose subsegment a2, a3, a4, a5, a6 and change its 3rd element (that is a4) to 4.
The above is tricky. Write me a correct solution in PYTHON3.

=====
Can you provide a Python program to find the longest subsegment of a, such that it is possible to change at most one number (change one number to any integer you want) from the subsegment to make the subsegment strictly increasing?
assistant
#Here is Python program to find the longest subsegment of a, such that it is possible to change at most one number (change one number to any integer you want) from the subsegment to make the subsegment strictly increasing.

# Legends Always Come Up with Solution
# Author: Manvir Singh

import os
from io import BytesIO, IOBase
import sys
from collections import defaultdict, deque, Counter
from math import sqrt, pi, ceil, log, inf, gcd, floor
from itertools import combinations, permutations
from bisect import *
from fractions import Fraction
from heapq import *
from random import randint

def main():
    n=int(input())
    a=list(map(int,input().split()))
    b,i=[],0
    while i<n:
        j=i
        while j<n-1 and a[j]<a[j+1]:
            j+=1
        b.append([i,j])
        i=j+1
    ma=0
    for i in range(len(b)-1):
        if b[i+1][0]-b[i][1]==2 and a[b[i+1][0]]>a[b[i][1]]+1:
            ma=max(ma,b[i+1][1]-b[i][0]+1)
        elif b[i+1][0]-b[i][1]==1:
            ma=max(ma,b[i+1][0]-b[i][0]+1)
            if (b[i+1][0]+1<n and a[b[i+1][0]+1]>a[b[i][1]]+1) or (b[i][1]-1>=0 and a[b[i][1]-1]+1<a[b[i+1][0]]):
                ma=max(ma,b[i+1][1]-b[i][0]+1)
            ma=max(ma,b[i+1][1]-b[i+1][0]+2)
        ma=max(ma,b[i][1]-b[i][0]+1)
    ma=max(ma,b[-1][1]-b[-1][0]+1)
    print(ma)

# region fastio
BUFSIZE = 8192

class FastIO(IOBase):
    newlines = 0

    def __init__(self, file):
        self._fd = file.fileno()
        self.buffer = BytesIO()
        self.writable = "x" in file.mode or "r" not in file.mode
        self.write = self.buffer.write if self.writable else None

    def read(self):
        while True:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            if not b:
                break
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
        self.newlines = 0
        return self.buffer.read()

    def readline(self):
        while self.newlines == 0:
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
            self.newlines = b.count(b"\n") + (not b)
            ptr = self.buffer.tell()
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
       ...