#include <bits/stdc++.h>
using namespace std;
int N;
long long A[2005];
long long dp[2005][2005];
int main()
{
    cin >> N;
    memset(dp, -1, sizeof(dp));
    for(int i = 0; i < N; i++) {
        cin >> A[i];
        dp[(i - 1 + N) % N][(i + 1) % N] = A[i];
    }
    for(int len = 2; len <= N; len++) {
        for(int a = 0; a < N; a++) {
            int b = (a + len) % N;
            if(dp[a][b] == -1) continue;
            if(len % 2 == 0) {
                if(A[a] > A[b]) {
                    dp[(a - 1 + N) % N][b] = max(dp[(a - 1 + N) % N][b], dp[a][b]);
                } else {
                    dp[a][(b + 1) % N] = max(dp[a][(b + 1) % N], dp[a][b]);
                }
            } else {
                dp[(a - 1 + N) % N][b] = max(dp[(a - 1 + N) % N][b], dp[a][b] + A[a]);
                dp[a][(b + 1) % N] = max(dp[a][(b + 1) % N], dp[a][b] + A[b]);
            }
        }
    }
    long long maxv = 0;
    for(int i = 0; i < N; i++) {
        maxv = max(maxv, dp[i][(i + 1) % N]);
    }
    cout << maxv << endl;
    return (0);
}

