#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 1e7;
const int INF = 1e9;
int n, a[maxn + 10], l[maxn + 10], r[maxn + 10], cnt[maxn + 10], mx = 0, j = maxn, ans;
vector<int> stk, pos[maxn + 10];
void update()
{
while (cnt[j] == 0)
j--;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("QUANTIEUPHU.INP", "r"))
{
freopen("QUANTIEUPHU.INP", "r", stdin);
freopen("QUANTIEUPHU.OUT", "w", stdout);
}
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
pos[a[i]].push_back(i);
mx = max(mx, a[i]);
}
a[0] = a[n + 1] = INF;
stk.push_back(0);
for (int i = 1; i <= n; i++)
{
while (a[i] > a[stk.back()])
stk.pop_back();
l[i] = stk.back();
stk.push_back(i);
}
stk.clear();
stk.push_back(n + 1);
for (int i = n; i >= 1; i--)
{
while (a[i] >= a[stk.back()])
stk.pop_back();
r[i] = stk.back();
stk.push_back(i);
}
for (int x : pos[mx])
cnt[x - l[x]]++;
for (int i = mx - 1; i >= 0; i--)
{
for (int x : pos[i])
{
cnt[r[x] - l[x]]--;
cnt[x - l[x]]++;
cnt[r[x] - x]++;
}
update();
if (j <= i)
ans = j;
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gMWU3Owpjb25zdCBpbnQgSU5GID0gMWU5OwoKaW50IG4sIGFbbWF4biArIDEwXSwgbFttYXhuICsgMTBdLCByW21heG4gKyAxMF0sIGNudFttYXhuICsgMTBdLCBteCA9IDAsIGogPSBtYXhuLCBhbnM7CnZlY3RvcjxpbnQ+IHN0aywgcG9zW21heG4gKyAxMF07Cgp2b2lkIHVwZGF0ZSgpCnsKICAgIHdoaWxlIChjbnRbal0gPT0gMCkKICAgICAgICBqLS07Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oIlFVQU5USUVVUEhVLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiUVVBTlRJRVVQSFUuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigiUVVBTlRJRVVQSFUuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIHBvc1thW2ldXS5wdXNoX2JhY2soaSk7CiAgICAgICAgbXggPSBtYXgobXgsIGFbaV0pOwogICAgfQogICAgYVswXSA9IGFbbiArIDFdID0gSU5GOwogICAgc3RrLnB1c2hfYmFjaygwKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgd2hpbGUgKGFbaV0gPiBhW3N0ay5iYWNrKCldKQogICAgICAgICAgICBzdGsucG9wX2JhY2soKTsKICAgICAgICBsW2ldID0gc3RrLmJhY2soKTsKICAgICAgICBzdGsucHVzaF9iYWNrKGkpOwogICAgfQogICAgc3RrLmNsZWFyKCk7CiAgICBzdGsucHVzaF9iYWNrKG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSBuOyBpID49IDE7IGktLSkKICAgIHsKICAgICAgICB3aGlsZSAoYVtpXSA+PSBhW3N0ay5iYWNrKCldKQogICAgICAgICAgICBzdGsucG9wX2JhY2soKTsKICAgICAgICByW2ldID0gc3RrLmJhY2soKTsKICAgICAgICBzdGsucHVzaF9iYWNrKGkpOwogICAgfQogICAgZm9yIChpbnQgeCA6IHBvc1tteF0pCiAgICAgICAgY250W3ggLSBsW3hdXSsrOwogICAgZm9yIChpbnQgaSA9IG14IC0gMTsgaSA+PSAwOyBpLS0pCiAgICB7CiAgICAgICAgZm9yIChpbnQgeCA6IHBvc1tpXSkKICAgICAgICB7CiAgICAgICAgICAgIGNudFtyW3hdIC0gbFt4XV0tLTsKICAgICAgICAgICAgY250W3ggLSBsW3hdXSsrOwogICAgICAgICAgICBjbnRbclt4XSAtIHhdKys7CiAgICAgICAgfQogICAgICAgIHVwZGF0ZSgpOwogICAgICAgIGlmIChqIDw9IGkpCiAgICAgICAgICAgIGFucyA9IGo7CiAgICB9CiAgICBjb3V0IDw8IGFuczsKfQo=