#include <iostream>

using namespace std;

#define nmax 100010
#define lgmax 19

int rmq[lgmax][nmax];
int lg[nmax];
int v[nmax];
int n;
long long res=-(1ll<<34);
int main()
{
    int i,k;
    cin>>n;
    for(i=2;i<=n;++i) lg[i]=1+lg[i>>1];

    for(i=1;i<=n;++i)
    {
        cin>>v[i];
        rmq[0][i]=v[i];
    }

    for(k=1;k<=lg[n];++k)
        for(i=1;i+(1<<k)-1<=n;++i)
    {
        if(k>1){
        rmq[k][i]=max(rmq[k-1][i],rmq[k-1][i+(1<<(k-1))]);
        if(res<1ll*rmq[k][i]+v[i]-k+1) res=1ll*rmq[k][i]+v[i]-k+1;
        }
        else
        {
            rmq[k][i]=rmq[k-1][i+1];
            if(res<1ll*rmq[k][i]+v[i]-k+1) res=1ll*rmq[k][i]+v[i]-k+1;
        }
    }
    cout<<res;
    return 0;
}