#include <bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int a[100005],n,dp[100005];
int main()
{
int i,M;
fin >> n;
for (i=1; i<=n; i++)
fin >> a[i];
/// aleg obligatoriu pr a[1]+a[2]
dp[2]=a[1]+a[2];
dp[3]=dp[2];
dp[4]=dp[3];
for (i=5; i<n; i++)
{
dp[i]=max(dp[i-1],a[i]+a[i-1]+dp[i-3]);
}
M=dp[n-1];
/// aleg obligatoriu pr a[2]+a[3]
dp[1]=0;
dp[2]=0;
dp[3]=a[2]+a[3];
dp[4]=dp[5]=dp[3];
for (i=6; i<=n; i++)
dp[i]=max(dp[i-1],a[i]+a[i-1]+dp[i-3]);
M=max(M,dp[n]);
/// aleg obligatoriu pr a[1]+a[n]
dp[1]=a[1]+a[n];
dp[2]=dp[3]=dp[1];
for (i=4; i<=n-2; i++)
dp[i]=max(dp[i-1], a[i]+a[i+1]+dp[i-3]);
M=max(M,dp[n-2]);
fout << M;
return 0;
}