#include <bits/stdc++.h>
#define int long long
using namespace std;
int dp[100005][3][3][3][3];// i,j,k,x,y,j是X前两个选的,k是X上一个选的,x,y分别是W前两个和上一个选的
int a[100005];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
for(int x=0;x<3;x++){
for(int y=0;y<3;y++){
dp[i][j][k][x][y]=-1;
}
}
}
}
}
dp[1][0][0][0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
for(int x=0;x<3;x++){
for(int y=0;y<3;y++){
dp[i][j][k][x][y]=max({dp[i-1][j][k][x][y]+a[i],dp[i][k][a[i]][x][y],dp[i][j][k][y][a[i]]});
}
}
}
}
}
int maxn=-1;
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
for(int x=0;x<3;x++){
for(int y=0;y<3;y++){
maxn=max(dp[n][j][k][x][y],maxn);
}
}
}
}
cout<<maxn;
}
WA10
