#include<bits/stdc++.h>
using namespace std;
typedef int ll;
const ll mx=200001;
ll sa[mx],lcp[mx],pos[mx],tmp[mx];
char a[mx];
ll d=1,n;
bool cmp(ll x,ll y){
if(pos[x]!=pos[y]) return pos[x]<pos[y];
x+=d;y+=d;
return pos[x%n]<pos[y%n];//x<n&&y<n?pos[x]<pos[y]:x>y for non-circular
}
void findSA(){
for(ll i=0;i<n;++i){
sa[i]=i;
pos[i]=a[i];
}
for(d=1;;d<<=1){
sort(sa,sa+n,cmp);
tmp[0]=0;
for(ll i=1;i<n;++i) tmp[i]=tmp[i-1]+cmp(sa[i-1],sa[i]);
for(ll i=0;i<n;++i) pos[sa[i]]=tmp[i];
if(tmp[n-1]==n-1 || d>=n) break;
}
}
void findLCP(){
ll rank[mx];//non-circular may just use pos (suffixes are unique)
for(ll i=0;i<n;++i) rank[sa[i]]=i;
for(ll i=0, k=0;i<n;++i){
if(rank[i]<n-1) for(ll j=sa[rank[i]+1];k<n&&a[(i+k)%n]==a[(j+k)%n];++k);//non-circular: for(ll j=sa[rank[i]+1];i+k<n&&j+k<n&&a[i]==a[j];++k);
else k = a[sa[0]]==a[i]?n:0;//remove this for non-circular
lcp[rank[i]]=k;
k=k-1>0?k-1:0;
}
}
int a1[mx];
int ans[mx];
int main(){
scanf("%d",&n);
for(ll i=0;i<n;++i) scanf("%d",a1+i);
for(ll i=0;i<n;++i) a[i]=(a1[i]<a1[(i+1)%n]?'a':'b');
findSA();
findLCP();
for (ll i=0;i<n;++i) {
ll x = max(lcp[i],lcp[(i+n-1)%n])+1;
ans[sa[i]] = x <= n ? x : -1;
}
for(ll i=0;i<n;++i) printf("%d\n",ans[i]);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBpbnQgbGw7CmNvbnN0IGxsIG14PTIwMDAwMTsKbGwgc2FbbXhdLGxjcFtteF0scG9zW214XSx0bXBbbXhdOwpjaGFyIGFbbXhdOwpsbCBkPTEsbjsKYm9vbCBjbXAobGwgeCxsbCB5KXsKICAgIGlmKHBvc1t4XSE9cG9zW3ldKSByZXR1cm4gcG9zW3hdPHBvc1t5XTsKICAgIHgrPWQ7eSs9ZDsKICAgIHJldHVybiBwb3NbeCVuXTxwb3NbeSVuXTsvL3g8biYmeTxuP3Bvc1t4XTxwb3NbeV06eD55IGZvciBub24tY2lyY3VsYXIKfQp2b2lkIGZpbmRTQSgpewogICAgZm9yKGxsIGk9MDtpPG47KytpKXsKICAgICAgICBzYVtpXT1pOwogICAgICAgIHBvc1tpXT1hW2ldOwogICAgfQogICAgZm9yKGQ9MTs7ZDw8PTEpewogICAgCXNvcnQoc2Esc2ErbixjbXApOwogICAgICAgIHRtcFswXT0wOwogICAgICAgIGZvcihsbCBpPTE7aTxuOysraSkgdG1wW2ldPXRtcFtpLTFdK2NtcChzYVtpLTFdLHNhW2ldKTsKICAgICAgICBmb3IobGwgaT0wO2k8bjsrK2kpIHBvc1tzYVtpXV09dG1wW2ldOwogICAgICAgIGlmKHRtcFtuLTFdPT1uLTEgfHwgZD49bikgYnJlYWs7CiAgICB9Cn0Kdm9pZCBmaW5kTENQKCl7CiAgICBsbCByYW5rW214XTsvL25vbi1jaXJjdWxhciBtYXkganVzdCB1c2UgcG9zIChzdWZmaXhlcyBhcmUgdW5pcXVlKQogICAgZm9yKGxsIGk9MDtpPG47KytpKSByYW5rW3NhW2ldXT1pOwogICAgZm9yKGxsIGk9MCwgaz0wO2k8bjsrK2kpewogICAgICAgIGlmKHJhbmtbaV08bi0xKSBmb3IobGwgaj1zYVtyYW5rW2ldKzFdO2s8biYmYVsoaStrKSVuXT09YVsoaitrKSVuXTsrK2spOy8vbm9uLWNpcmN1bGFyOiBmb3IobGwgaj1zYVtyYW5rW2ldKzFdO2krazxuJiZqK2s8biYmYVtpXT09YVtqXTsrK2spOyAKICAgICAgICBlbHNlIGsgPSBhW3NhWzBdXT09YVtpXT9uOjA7Ly9yZW1vdmUgdGhpcyBmb3Igbm9uLWNpcmN1bGFyCiAgICAgICAgbGNwW3JhbmtbaV1dPWs7CiAgICAgICAgaz1rLTE+MD9rLTE6MDsKICAgIH0KfQppbnQgYTFbbXhdOwppbnQgYW5zW214XTsKaW50IG1haW4oKXsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGxsIGk9MDtpPG47KytpKSBzY2FuZigiJWQiLGExK2kpOwogICAgZm9yKGxsIGk9MDtpPG47KytpKSBhW2ldPShhMVtpXTxhMVsoaSsxKSVuXT8nYSc6J2InKTsKICAgIGZpbmRTQSgpOwogICAgZmluZExDUCgpOwogICAgZm9yIChsbCBpPTA7aTxuOysraSkgewogICAgCWxsIHggPSBtYXgobGNwW2ldLGxjcFsoaStuLTEpJW5dKSsxOwogICAgCWFuc1tzYVtpXV0gPSB4IDw9IG4gPyB4IDogLTE7CiAgICB9CiAgICBmb3IobGwgaT0wO2k8bjsrK2kpIHByaW50ZigiJWRcbiIsYW5zW2ldKTsKICAgIHJldHVybiAwOwp9