#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 100000 + 1;
const int MAX_LG = 17;

int rmq[MAX_LG][MAX_N];
int N;

int main()
{
    ios_base::sync_with_stdio(false);

    cin >> N;

    for (int i = 1; i <= N; ++i)
        cin >> rmq[0][i];

    for (int i = 1; (1 << i) <= N; ++i)
        for (int j = 1; j + (1 << i) - 1 <= N; ++j)
        {
            int p = 1 << (i - 1);
            rmq[i][j] = max(rmq[i - 1][j], rmq[i - 1][j + p]);
        }

    long long sol = numeric_limits<long long>::min() / 2;

    for (int i = 1; i <= N; ++i)
        for (int j = 0; i + (1 << j) - 1 <= N; ++j)
        {
            int p = (1 << j);
            sol = max(sol, static_cast<long long>(rmq[0][i] + rmq[j][i + p] - j));
        }

    cout << sol << "\n";

    return 0;
}