#include <bits/stdc++.h>
using namespace std;
#define fastIO ios_base::sync_with_stdio(0); cin.tie(0);
#define ll long long
#define pb push_back
#define all(x) x.begin(), x.end()
const int INF = 1e9;
const int N = 1e5+5;
int n, a[N], dp[N], L[N], R[N], ans;
void update(int pos, int k){
for (int i=pos; i<=n; i+=i&-i){
dp[i] = max(dp[i], k);
}
}
int get(int pos){
int ans = -INF;
for (int i=pos; i>0; i-=i&-i){
ans = max(ans, dp[i]);
}
return ans;
}
void compress(){
map<int, int> mp;
int mpcnt = 0;
for (int i=1; i<=n; i++){
mp[a[i]] = 1;
}
for (auto& p: mp){
p.second = ++mpcnt;
}
for (int i=1; i<=n; i++){
a[i] = mp[a[i]];
}
}
int main(){
fastIO;
cin >> n;
for (int i=1; i<=n; i++) cin >> a[i];
compress();
for (int i=1; i<=n; i++) dp[i] = -INF;
for (int i=1; i<=n; i++){
L[i] = max(1, get(a[i]-1)+1);
update(a[i], 1);
update(a[i], get(a[i]-1)+1);
}
for (int i=1; i<=n; i++) dp[i] = -INF;
for (int i=n; i>0; i--){
R[i] = max(1, get(a[i]-1)+1);
update(a[i], 1);
update(a[i], get(a[i]-1)+1);
}
for (int i=1; i<=n; i++){
ans = max(ans, min(R[i], L[i])*2-1);
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdElPIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQoKY29uc3QgaW50IElORiA9IDFlOTsKY29uc3QgaW50IE4gPSAxZTUrNTsKCmludCBuLCBhW05dLCBkcFtOXSwgTFtOXSwgUltOXSwgYW5zOwoKdm9pZCB1cGRhdGUoaW50IHBvcywgaW50IGspewogICAgZm9yIChpbnQgaT1wb3M7IGk8PW47IGkrPWkmLWkpewogICAgICAgIGRwW2ldID0gbWF4KGRwW2ldLCBrKTsKICAgIH0KfQoKaW50IGdldChpbnQgcG9zKXsKICAgIGludCBhbnMgPSAtSU5GOwogICAgZm9yIChpbnQgaT1wb3M7IGk+MDsgaS09aSYtaSl7CiAgICAgICAgYW5zID0gbWF4KGFucywgZHBbaV0pOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKdm9pZCBjb21wcmVzcygpewogICAgbWFwPGludCwgaW50PiBtcDsKICAgIGludCBtcGNudCA9IDA7CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgbXBbYVtpXV0gPSAxOwogICAgfQogICAgZm9yIChhdXRvJiBwOiBtcCl7CiAgICAgICAgcC5zZWNvbmQgPSArK21wY250OwogICAgfQogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspewogICAgICAgIGFbaV0gPSBtcFthW2ldXTsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGZhc3RJTzsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIGNpbiA+PiBhW2ldOwogICAgY29tcHJlc3MoKTsKICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKSBkcFtpXSA9IC1JTkY7CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgTFtpXSA9IG1heCgxLCBnZXQoYVtpXS0xKSsxKTsKICAgICAgICB1cGRhdGUoYVtpXSwgMSk7CiAgICAgICAgdXBkYXRlKGFbaV0sIGdldChhW2ldLTEpKzEpOwogICAgfQogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspIGRwW2ldID0gLUlORjsKICAgIGZvciAoaW50IGk9bjsgaT4wOyBpLS0pewogICAgICAgIFJbaV0gPSBtYXgoMSwgZ2V0KGFbaV0tMSkrMSk7CiAgICAgICAgdXBkYXRlKGFbaV0sIDEpOwogICAgICAgIHVwZGF0ZShhW2ldLCBnZXQoYVtpXS0xKSsxKTsKICAgIH0KICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBhbnMgPSBtYXgoYW5zLCBtaW4oUltpXSwgTFtpXSkqMi0xKTsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9