#include <iostream>
#include <math.h>
#include <stdlib.h>
using namespace std;

int value(int re, int rk, long long vv[]) {
    return vv[re]+vv[rk]-floor(log2(rk-re));
}
void nullify(long long v[], int n){
    for(int i = 0; i < n; ++i){
        v[i] = 0;
    }
}

int main(){
    int N;
    int dif;
    int maxx = 0;
    cin >> N;
    long long v[N];
    nullify(v,N);
    for(int i=0; i < N;++i){
        cin >> v[i];
    }
    int g = 0,h;
    while(g < N-1){
            h = N - 1;
        while(h > g){
                dif = value(g,h,v);
            if(dif > maxx){
                maxx = value(g,h,v);
            }
            --h;
        }
        ++g;
    }
    cout << maxx;
    return 0;
}