#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 5e5 + 5;
long long n,a[MaxN],dp[MaxN][2];
int main()
{
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i];
}
long long res=0;
for (long long i=1; i<=n; i++)
{
dp[a[i]][0]=1;
dp[a[i]][0]=max(dp[a[i]-1][0]+1,dp[a[i]][0]);
if(a[i]-2>=0)
{
dp[a[i]][1]=max(dp[a[i]-2][0]+2,dp[a[i]][1]);
}
dp[a[i]][1]=max(dp[a[i]-1][1]+1,dp[a[i]][1]);
res=max({res,dp[a[i]][0],dp[a[i]][1]});
}
cout << res;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSA1ZTUgKyA1Owpsb25nIGxvbmcgbixhW01heE5dLGRwW01heE5dWzJdOwppbnQgbWFpbigpCnsKICAgIGNpbiA+PiBuOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CiAgICBsb25nIGxvbmcgcmVzPTA7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBkcFthW2ldXVswXT0xOwogICAgICAgIGRwW2FbaV1dWzBdPW1heChkcFthW2ldLTFdWzBdKzEsZHBbYVtpXV1bMF0pOwogICAgICAgIGlmKGFbaV0tMj49MCkKICAgICAgICB7CiAgICAgICAgICAgIGRwW2FbaV1dWzFdPW1heChkcFthW2ldLTJdWzBdKzIsZHBbYVtpXV1bMV0pOwogICAgICAgIH0KICAgICAgICBkcFthW2ldXVsxXT1tYXgoZHBbYVtpXS0xXVsxXSsxLGRwW2FbaV1dWzFdKTsKICAgICAgICByZXM9bWF4KHtyZXMsZHBbYVtpXV1bMF0sZHBbYVtpXV1bMV19KTsKICAgIH0KICAgIGNvdXQgPDwgcmVzOwp9Cg==