#include <iostream>
#include <algorithm>
#include <cmath>
#define NMAX 100005
#define LMAX 20
#define inf 1LL * 1000000000 * 1000000000

using namespace std;

int i, n, j, rmq[NMAX][LMAX], lg, v[NMAX];
long long ans = -inf;

int main()
{
    cin >> n;

    for (i = 1; i <= n; ++ i)
        cin >> v[i];

    for (i = 1; i <= n; ++ i)
        rmq[i][0] = v[i];

    for (j = 1; (1 << j) <= n; ++ j)
        for (i = 1; i + (1 << j) - 1 <= n; ++ i)
            rmq[i][j] = max(rmq[i][j - 1], rmq[i + (1 << (j - 1))][j - 1]);

    for (i = 1; i <= n; ++ i)
        for (j = 0; i + (1 << j) <= n; ++ j)
            ans = max(ans,1LL * v[i] + rmq[i + (1 << j)][j] - j);

    cout << ans << '\n';
    return 0;
}