// ~~ icebear ~~
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
typedef pair<int, ii> iii;
template<class T>
bool minimize(T &a, const T &b) {
if (a > b) return a = b, true;
return false;
}
template<class T>
bool maximize(T &a, const T &b) {
if (a < b) return a = b, true;
return false;
}
#define FOR(i,a,b) for(int i=(a); i<=(b); ++i)
#define FORR(i,a,b) for(int i=(a); i>=(b); --i)
#define REP(i, n) for(int i=0; i<(n); ++i)
#define RED(i, n) for(int i=(n)-1; i>=0; --i)
#define MASK(i) (1LL << (i))
#define BIT(S, i) (((S) >> (i)) & 1)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define task "gen"
/*END OF TEMPLATE. ICEBEAR AND THE CAT WILL WIN VOI26 */
const int MOD = 1e9 + 7;
const int inf = 1e9 + 27092008;
const ll INF = 1e18 + 27092008;
const int N = 2e5 + 5;
int n, a[N], par[N][20];
int f[N], L[N], R[N], depth[N], lca[N];
int LCA(int u, int v) {
if (depth[u] < depth[v]) swap(u, v);
int s = depth[u] - depth[v];
REP(j, 20) if (BIT(s, j))
u = par[u][j];
if (u == v) return u;
RED(j, 20) if (par[u][j] != par[v][j]) {
u = par[u][j];
v = par[v][j];
}
return par[u][0];
}
int ft[2 * N];
void update(int x, int val) {
for(; x <= 2 * n + 1; x += x & -x) maximize(ft[x], val);
}
int get(int x) {
int ans = 0;
for(; x; x -= x & -x) maximize(ans, ft[x]);
return ans;
}
vector<int> mn[2 * N], mx[2 * N], vals[2 * N];
void update2(vector<int> &ft, int x, int val) {
for(; x <= (int)ft.size() - 1; x += x & -x) maximize(ft[x], val);
}
int get2(vector<int> &ft, int x) {
int ans = -inf;
for(; x; x -= x & -x) maximize(ans, ft[x]);
return ans;
}
void calc(int a[], int L[]) {
// FOR(i, 1, n) cerr << a[i] << ' '; cerr << '\n';
FOR(i, 1, n) f[i] = depth[i] = L[i] = lca[i] = par[i][0] = 0;
FOR(i, 1, 2 * n + 1) {
ft[i] = 0;
mn[i].clear();
mx[i].clear();
vals[i].clear();
}
FOR(i, 1, n) {
f[i] = get(a[i] - 1) + 1;
update(a[i], f[i]);
vals[f[i]].pb(a[i]);
}
FOR(i, 1, n) {
sort(all(vals[i]));
mn[i].assign((int)vals[i].size() + 5, -inf);
mx[i].assign((int)vals[i].size() + 5, 0);
}
FOR(i, 1, n) {
int p = 0;
if (f[i] > 1) {
int val = f[i] - 1;
int pos = lower_bound(all(vals[val]), a[i]) - vals[val].begin();
// cerr << val << ' ' << a[i] << ' ' << pos << '\n';
int minJ = min(n + 1, -get2(mn[val], pos));
int maxJ = get2(mx[val], pos);
p = LCA(minJ, maxJ);
// cerr << i << ' ' << f[i] << ' ' << minJ << ' ' << maxJ << '\n';
}
int tmp = upper_bound(all(vals[f[i]]), a[i]) - vals[f[i]].begin();
// cerr << "UPDATE : " << i << ' ' << tmp << '\n';
update2(mn[f[i]], tmp, -i);
update2(mx[f[i]], tmp, i);
// cerr << "GET : " << i << ' ' << tmp << ' ' << mn[f[i]][2] << ' ' << get2(mn[f[i]], tmp) << ' ' << get2(mx[f[i]], tmp) << '\n';
if (p > 0) L[i] = L[p] + 1;
depth[i] = depth[p] + 1;
par[i][0] = p;
FOR(t, 1, 19) par[i][t] = par[par[i][t - 1]][t - 1];
}
}
void init(void) {
cin >> n;
FOR(i, 1, n) cin >> a[i];
}
void process(void) {
calc(a, L);
reverse(a + 1, a + n + 1);
FOR(i, 1, n) a[i] = n-a[i]+1;
calc(a, R);
FOR(i, 1, n) cout << L[i] + R[n - i + 1] << ' ';
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if (fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int tc = 1;
// cin >> tc;
while(tc--) {
init();
process();
}
return 0;
}
Ly8gfn4gaWNlYmVhciB+fgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHBhaXI8aW50LCBpaT4gaWlpOwoKdGVtcGxhdGU8Y2xhc3MgVD4KICAgIGJvb2wgbWluaW1pemUoVCAmYSwgY29uc3QgVCAmYikgewogICAgICAgIGlmIChhID4gYikgcmV0dXJuIGEgPSBiLCB0cnVlOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCnRlbXBsYXRlPGNsYXNzIFQ+CiAgICBib29sIG1heGltaXplKFQgJmEsIGNvbnN0IFQgJmIpIHsKICAgICAgICBpZiAoYSA8IGIpIHJldHVybiBhID0gYiwgdHJ1ZTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgojZGVmaW5lIEZPUihpLGEsYikgZm9yKGludCBpPShhKTsgaTw9KGIpOyArK2kpCiNkZWZpbmUgRk9SUihpLGEsYikgZm9yKGludCBpPShhKTsgaT49KGIpOyAtLWkpCiNkZWZpbmUgUkVQKGksIG4pIGZvcihpbnQgaT0wOyBpPChuKTsgKytpKQojZGVmaW5lIFJFRChpLCBuKSBmb3IoaW50IGk9KG4pLTE7IGk+PTA7IC0taSkKI2RlZmluZSBNQVNLKGkpICgxTEwgPDwgKGkpKQojZGVmaW5lIEJJVChTLCBpKSAoKChTKSA+PiAoaSkpICYgMSkKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSB0YXNrICJnZW4iCi8qRU5EIE9GIFRFTVBMQVRFLiBJQ0VCRUFSIEFORCBUSEUgQ0FUIFdJTEwgV0lOIFZPSTI2ICovCgpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IGluZiA9IDFlOSArIDI3MDkyMDA4Owpjb25zdCBsbCBJTkYgPSAxZTE4ICsgMjcwOTIwMDg7CmNvbnN0IGludCBOID0gMmU1ICsgNTsKaW50IG4sIGFbTl0sIHBhcltOXVsyMF07CmludCBmW05dLCBMW05dLCBSW05dLCBkZXB0aFtOXSwgbGNhW05dOwoKaW50IExDQShpbnQgdSwgaW50IHYpIHsKICAgIGlmIChkZXB0aFt1XSA8IGRlcHRoW3ZdKSBzd2FwKHUsIHYpOwogICAgaW50IHMgPSBkZXB0aFt1XSAtIGRlcHRoW3ZdOwogICAgUkVQKGosIDIwKSBpZiAoQklUKHMsIGopKQogICAgICAgIHUgPSBwYXJbdV1bal07CiAgICBpZiAodSA9PSB2KSByZXR1cm4gdTsKICAgIFJFRChqLCAyMCkgaWYgKHBhclt1XVtqXSAhPSBwYXJbdl1bal0pIHsKICAgICAgICB1ID0gcGFyW3VdW2pdOwogICAgICAgIHYgPSBwYXJbdl1bal07CiAgICB9CiAgICByZXR1cm4gcGFyW3VdWzBdOwp9CgppbnQgZnRbMiAqIE5dOwp2b2lkIHVwZGF0ZShpbnQgeCwgaW50IHZhbCkgewogICAgZm9yKDsgeCA8PSAyICogbiArIDE7IHggKz0geCAmIC14KSBtYXhpbWl6ZShmdFt4XSwgdmFsKTsKfQoKaW50IGdldChpbnQgeCkgewogICAgaW50IGFucyA9IDA7CiAgICBmb3IoOyB4OyB4IC09IHggJiAteCkgbWF4aW1pemUoYW5zLCBmdFt4XSk7CiAgICByZXR1cm4gYW5zOwp9Cgp2ZWN0b3I8aW50PiBtblsyICogTl0sIG14WzIgKiBOXSwgdmFsc1syICogTl07Cgp2b2lkIHVwZGF0ZTIodmVjdG9yPGludD4gJmZ0LCBpbnQgeCwgaW50IHZhbCkgewogICAgZm9yKDsgeCA8PSAoaW50KWZ0LnNpemUoKSAtIDE7IHggKz0geCAmIC14KSBtYXhpbWl6ZShmdFt4XSwgdmFsKTsKfQoKaW50IGdldDIodmVjdG9yPGludD4gJmZ0LCBpbnQgeCkgewogICAgaW50IGFucyA9IC1pbmY7CiAgICBmb3IoOyB4OyB4IC09IHggJiAteCkgbWF4aW1pemUoYW5zLCBmdFt4XSk7CiAgICByZXR1cm4gYW5zOwp9Cgp2b2lkIGNhbGMoaW50IGFbXSwgaW50IExbXSkgewovLyAgICBGT1IoaSwgMSwgbikgY2VyciA8PCBhW2ldIDw8ICcgJzsgY2VyciA8PCAnXG4nOwogICAgRk9SKGksIDEsIG4pIGZbaV0gPSBkZXB0aFtpXSA9IExbaV0gPSBsY2FbaV0gPSBwYXJbaV1bMF0gPSAwOwogICAgRk9SKGksIDEsIDIgKiBuICsgMSkgewogICAgICAgIGZ0W2ldID0gMDsKICAgICAgICBtbltpXS5jbGVhcigpOwogICAgICAgIG14W2ldLmNsZWFyKCk7CiAgICAgICAgdmFsc1tpXS5jbGVhcigpOwogICAgfQoKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgZltpXSA9IGdldChhW2ldIC0gMSkgKyAxOwogICAgICAgIHVwZGF0ZShhW2ldLCBmW2ldKTsKICAgICAgICB2YWxzW2ZbaV1dLnBiKGFbaV0pOwogICAgfQoKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgc29ydChhbGwodmFsc1tpXSkpOwogICAgICAgIG1uW2ldLmFzc2lnbigoaW50KXZhbHNbaV0uc2l6ZSgpICsgNSwgLWluZik7CiAgICAgICAgbXhbaV0uYXNzaWduKChpbnQpdmFsc1tpXS5zaXplKCkgKyA1LCAwKTsKICAgIH0KCiAgICBGT1IoaSwgMSwgbikgewogICAgICAgIGludCBwID0gMDsKICAgICAgICBpZiAoZltpXSA+IDEpIHsKICAgICAgICAgICAgaW50IHZhbCA9IGZbaV0gLSAxOwogICAgICAgICAgICBpbnQgcG9zID0gbG93ZXJfYm91bmQoYWxsKHZhbHNbdmFsXSksIGFbaV0pIC0gdmFsc1t2YWxdLmJlZ2luKCk7Ci8vICAgICAgICAgICAgY2VyciA8PCB2YWwgPDwgJyAnIDw8IGFbaV0gPDwgJyAnIDw8IHBvcyA8PCAnXG4nOwogICAgICAgICAgICBpbnQgbWluSiA9IG1pbihuICsgMSwgLWdldDIobW5bdmFsXSwgcG9zKSk7CiAgICAgICAgICAgIGludCBtYXhKID0gZ2V0MihteFt2YWxdLCBwb3MpOwogICAgICAgICAgICBwID0gTENBKG1pbkosIG1heEopOwovLyAgICAgICAgICAgIGNlcnIgPDwgaSA8PCAnICcgPDwgZltpXSA8PCAnICcgPDwgbWluSiA8PCAnICcgPDwgbWF4SiA8PCAnXG4nOwogICAgICAgIH0KCiAgICAgICAgaW50IHRtcCA9IHVwcGVyX2JvdW5kKGFsbCh2YWxzW2ZbaV1dKSwgYVtpXSkgLSB2YWxzW2ZbaV1dLmJlZ2luKCk7Ci8vICAgICAgICBjZXJyIDw8ICJVUERBVEUgOiAiIDw8IGkgPDwgJyAnIDw8IHRtcCA8PCAnXG4nOwogICAgICAgIHVwZGF0ZTIobW5bZltpXV0sIHRtcCwgLWkpOwogICAgICAgIHVwZGF0ZTIobXhbZltpXV0sIHRtcCwgaSk7Ci8vICAgICAgICBjZXJyIDw8ICJHRVQgOiAiIDw8IGkgPDwgJyAnIDw8IHRtcCA8PCAnICcgPDwgbW5bZltpXV1bMl0gPDwgJyAnIDw8IGdldDIobW5bZltpXV0sIHRtcCkgPDwgJyAnIDw8IGdldDIobXhbZltpXV0sIHRtcCkgPDwgJ1xuJzsKCiAgICAgICAgaWYgKHAgPiAwKSBMW2ldID0gTFtwXSArIDE7CiAgICAgICAgZGVwdGhbaV0gPSBkZXB0aFtwXSArIDE7CiAgICAgICAgcGFyW2ldWzBdID0gcDsKICAgICAgICBGT1IodCwgMSwgMTkpIHBhcltpXVt0XSA9IHBhcltwYXJbaV1bdCAtIDFdXVt0IC0gMV07CiAgICB9Cn0KCnZvaWQgaW5pdCh2b2lkKSB7CiAgICBjaW4gPj4gbjsKICAgIEZPUihpLCAxLCBuKSBjaW4gPj4gYVtpXTsKfQoKdm9pZCBwcm9jZXNzKHZvaWQpIHsKICAgIGNhbGMoYSwgTCk7CiAgICByZXZlcnNlKGEgKyAxLCBhICsgbiArIDEpOwogICAgRk9SKGksIDEsIG4pIGFbaV0gPSBuLWFbaV0rMTsKICAgIGNhbGMoYSwgUik7CgogICAgRk9SKGksIDEsIG4pIGNvdXQgPDwgTFtpXSArIFJbbiAtIGkgKyAxXSA8PCAnICc7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKHRhc2siLmlucCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKHRhc2siLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgaW50IHRjID0gMTsKLy8gICAgY2luID4+IHRjOwogICAgd2hpbGUodGMtLSkgewogICAgICAgIGluaXQoKTsKICAgICAgICBwcm9jZXNzKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=