#include <iostream>
#include <algorithm>
#include <cmath>
#define NMAX 10005

using namespace std;


struct elem
{
    int x,p;
}v[NMAX];

bool cmp(elem r,elem p)
{
    if(r.x>p.x) return 1;
    return 0;
}

int n,i,j,Max;
int lg,sum;

int main()
{
    cin>>n;
    for(i=1;i<=n;++i)
    {
        cin>>v[i].x;
        v[i].p=i;
    }

    sort(v+1,v+n+1,cmp);

    Max=(v[n].x+v[n-1].x)- floor((double)log2((double)abs(v[n].p-v[n-1].p)));
    for(i=n;i>=1;--i)
    {
        j=i-1;
        while(j > 0)
        {
            lg=floor((double)log2((double)abs(v[i].p-v[j].p)));
            sum = (v[i].x + v[j].x) -lg;
            if(sum + 30 < Max) break;
            if(sum > Max) Max=sum;
            --j;
        }
    }

    cout<<Max;
    return 0;
}