#include <iostream>
#include <math.h>
#include <algorithm>

using namespace std;

int r1,r2,i,n;
int Max;

struct pam{
int i,v;
}v[100100];

bool comp(pam a,pam b)
{
    return a.v>b.v;
}

int main()
{
    cin>>n;

    for(i=1;i<=n;i++)
    {
        v[i].i=i;
        cin>>v[i].v;
    }
    sort(v+1,v+n+1,comp);

    for(r1=1;r1<=100;r1++)
    {
        for(r2=r1+1;r2<=100;r2++)
        {
            Max=max(Max,(v[r1].v + v[r2].v - (int)floor(log2(min(v[r1].i, v[r2].i) - max(v[r1].i, v[r2].i) ))));
        }
    }

    cout<<(int )Max;

    return 0;
}