#include<bits/stdc++.h>
using namespace std;
long long f[250][250][3],a[250],n;
int main(){
cin>>n;
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
f[i][i][0]=f[i][i][1]=f[i][i][2]=a[i];
for(int l=2;l<=n;l++)
for(int i=1;i<=n-l+1;i++){
int j=i+l-1;
if(a[i]==a[i+1])
f[i][j][1]=max(f[i+1][j][1]+1,a[i]);
else
f[i][j][1]=a[i];
if(a[j]==a[j-1])
f[i][j][2]=max(f[i][j-1][2]+1,a[j]);
else
f[i][j][2]=a[j];
f[i][j][0]=max(f[i][j-1][0],max(f[i+1][j][0],max(f[i][j][1],f[i][j][2])));
}
cout<<f[1][n][0];
return 0;
}