#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n,i,j,k;
long long f[100100][17],res=1000000000;
int main() {
  res*=-res;
  scanf("%d",&n);
  for (i=0; i<n; i++) { scanf("%d",&k); f[i][0]=k; }
  for (j=1; j<17; j++) for (i=0; i<n; i++) {
    f[i][j]=f[i][j-1];
    k=i-(1<<(j-1));
    if (k>=0) f[i][j]=max(f[i][j],f[k][j-1]);
  }
  for (i=1; i<n; i++) for (j=0; j<17; j++) {
    k=i-(1<<j);
    if (k<0) break;
    res=max(res,f[i][0]+f[k][j]-j);
  }
  cout<<res<<'\n';
  return 0;
}