/***********************
* Jay Prakash Mahto *
* JVJplus *
************************/
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define ll long long int
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define REMAX(a,b) a=max(a,b)
#define N 200005
#define MOD 1000000007 //check it
#define dbg(x) cerr<<#x<<" "<<x<<endl;
//make ipow and ms0
//think of segtree / sqrt decom.
int n,bct_sz;
int arr[N];
int lazy[N];
int maxBucket[N];
void init(){
bct_sz=sqrt(n);
For(i,n){
REMAX(maxBucket[i/bct_sz],arr[i]);
}
}
void update(int l,int r,int value){
int b1=l/bct_sz;
int b2=r/bct_sz;
if(b1==b2){
FOR(i,l,r)
arr[i]+=value;
int mx=-1;
FOR(i,b1*bct_sz,(b1+1)*bct_sz-1)
REMAX(mx,arr[i]);
maxBucket[b1]=mx;
return;
}
//starting
while(l!=0 && l%bct_sz!=0){
arr[l]+=value;
l++;
}
int mx=-1;
FOR(i,b1*bct_sz,(b1+1)*bct_sz-1)
REMAX(mx,arr[i]);
maxBucket[b1]=mx;
//middle
while(l<=r){
lazy[l/bct_sz]+=value;
l+=bct_sz;
}
//ends
mx=-1;
while(l<=r) {
arr[l]+=value;
REMAX(mx,arr[l]);
l++;
}
while(l<b2*bct_sz){
REMAX(mx,arr[l]);
l++;
}
maxBucket[b2]=mx;
}
int queryMAX(int l,int r){
int mx = -1;
int len=bct_sz;
int c_l = l / len, c_r = r / len;
if (c_l == c_r)
for (int i=l; i<=r; ++i)
REMAX(mx,arr[i]+lazy[c_l]);
else {
for (int i=l, end=(c_l+1)*len-1; i<=end; ++i)
REMAX(mx,arr[i]+lazy[i/bct_sz]);
for (int i=c_l+1; i<=c_r-1; ++i)
REMAX(mx,maxBucket[i]+lazy[i]);
for (int i=c_r*len; i<=r; ++i)
REMAX(mx,arr[i]+lazy[i/bct_sz]);
}
return mx;
}
void printStatus(){
For(i,n){
cerr<<arr[i]+lazy[i/bct_sz]<<" ";
}
cerr<<endl;
}
void solve(){
cin>>n;
For(i,n){
cin>>arr[i];
}
init();
int mx=0;
For(i,n){
arr[i]+=(i+1);
REMAX(mx,arr[i]);
}
cout<<mx<<" ";
init();
for(int i=n-1;i>0;i--){
//reduce ith by N
update(i,i,-n);
//update all by 1
update(0,n-1,+1);
cout<<queryMAX(0,n-1)<<" ";
// printStatus();
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
{
solve();
}
}
LyoqKioqKioqKioqKioqKioqKioqKioqCiogICBKYXkgUHJha2FzaCBNYWh0byAgKgoqICAgICAgIEpWSnBsdXMgICAgICAgICoKKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgRm9yKGksbikgZm9yKGludCBpPTA7aTxuO2krKykKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaT1hO2k8PWI7aSsrKQojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgdmkgdmVjdG9yPGludD4gCiNkZWZpbmUgUkVNQVgoYSxiKSBhPW1heChhLGIpIAojZGVmaW5lIE4gMjAwMDA1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcgLy9jaGVjayBpdCAKI2RlZmluZSBkYmcoeCkgY2Vycjw8I3g8PCIgIjw8eDw8ZW5kbDsKCi8vbWFrZSBpcG93IGFuZCBtczAKLy90aGluayBvZiBzZWd0cmVlIC8gc3FydCBkZWNvbS4KCmludCBuLGJjdF9zejsKaW50IGFycltOXTsKaW50IGxhenlbTl07CmludCBtYXhCdWNrZXRbTl07CgoKdm9pZCBpbml0KCl7CgliY3Rfc3o9c3FydChuKTsKCUZvcihpLG4pewoJCVJFTUFYKG1heEJ1Y2tldFtpL2JjdF9zel0sYXJyW2ldKTsKCX0KfQoKdm9pZCB1cGRhdGUoaW50IGwsaW50IHIsaW50IHZhbHVlKXsKCWludCBiMT1sL2JjdF9zejsKCWludCBiMj1yL2JjdF9zejsKCglpZihiMT09YjIpewoJCUZPUihpLGwscikKCQkJYXJyW2ldKz12YWx1ZTsKCgkJaW50IG14PS0xOwoJCUZPUihpLGIxKmJjdF9zeiwoYjErMSkqYmN0X3N6LTEpCgkJCVJFTUFYKG14LGFycltpXSk7CgkJbWF4QnVja2V0W2IxXT1teDsKCQlyZXR1cm47Cgl9CgoJLy9zdGFydGluZwoJd2hpbGUobCE9MCAmJiBsJWJjdF9zeiE9MCl7CgkJYXJyW2xdKz12YWx1ZTsKCQlsKys7Cgl9CglpbnQgbXg9LTE7CglGT1IoaSxiMSpiY3Rfc3osKGIxKzEpKmJjdF9zei0xKQoJCVJFTUFYKG14LGFycltpXSk7CgltYXhCdWNrZXRbYjFdPW14OwoKCS8vbWlkZGxlCgl3aGlsZShsPD1yKXsKCQlsYXp5W2wvYmN0X3N6XSs9dmFsdWU7CgkJbCs9YmN0X3N6OwoJfQoKCS8vZW5kcwoJbXg9LTE7Cgl3aGlsZShsPD1yKSB7CgkJYXJyW2xdKz12YWx1ZTsKCQlSRU1BWChteCxhcnJbbF0pOwoJICAgIGwrKzsKCX0KCgl3aGlsZShsPGIyKmJjdF9zeil7CgkJUkVNQVgobXgsYXJyW2xdKTsKCQlsKys7Cgl9CgltYXhCdWNrZXRbYjJdPW14OwkKfQoKaW50IHF1ZXJ5TUFYKGludCBsLGludCByKXsKCWludCBteCA9IC0xOwoJaW50IGxlbj1iY3Rfc3o7CglpbnQgY19sID0gbCAvIGxlbiwgICBjX3IgPSByIC8gbGVuOwoJaWYgKGNfbCA9PSBjX3IpCgkgICAgZm9yIChpbnQgaT1sOyBpPD1yOyArK2kpCgkgICAgICAgIFJFTUFYKG14LGFycltpXStsYXp5W2NfbF0pOwoJZWxzZSB7CgkgICAgZm9yIChpbnQgaT1sLCBlbmQ9KGNfbCsxKSpsZW4tMTsgaTw9ZW5kOyArK2kpCgkgICAgICAgIFJFTUFYKG14LGFycltpXStsYXp5W2kvYmN0X3N6XSk7CgkgICAgZm9yIChpbnQgaT1jX2wrMTsgaTw9Y19yLTE7ICsraSkKCSAgICAgICAgUkVNQVgobXgsbWF4QnVja2V0W2ldK2xhenlbaV0pOwoJICAgIGZvciAoaW50IGk9Y19yKmxlbjsgaTw9cjsgKytpKQoJICAgICAgICBSRU1BWChteCxhcnJbaV0rbGF6eVtpL2JjdF9zel0pOwkgICAgCgl9CgoJcmV0dXJuIG14Owp9Cgp2b2lkIHByaW50U3RhdHVzKCl7CglGb3IoaSxuKXsKCQljZXJyPDxhcnJbaV0rbGF6eVtpL2JjdF9zel08PCIgIjsKCX0KCWNlcnI8PGVuZGw7Cn0KCnZvaWQgc29sdmUoKXsKCWNpbj4+bjsKCUZvcihpLG4pewoJCWNpbj4+YXJyW2ldOwoJfSAgICAgICAgCglpbml0KCk7CgoJaW50IG14PTA7CglGb3IoaSxuKXsKCQlhcnJbaV0rPShpKzEpOwoJCVJFTUFYKG14LGFycltpXSk7Cgl9Cgljb3V0PDxteDw8IiAiOwoKCWluaXQoKTsKCglmb3IoaW50IGk9bi0xO2k+MDtpLS0pewoJCS8vcmVkdWNlIGl0aCBieSBOCgkJdXBkYXRlKGksaSwtbik7CgkJLy91cGRhdGUgYWxsIGJ5IDEKCQl1cGRhdGUoMCxuLTEsKzEpOwoJCWNvdXQ8PHF1ZXJ5TUFYKDAsbi0xKTw8IiAiOwoKCQkvLyBwcmludFN0YXR1cygpOwoJfQoKfQoKCmludCBtYWluKCl7CgogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CgogICAgeyAKICAgICAgICBzb2x2ZSgpOyAgIAogICAgfQoKfQ==