#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>usingnamespace std;constint N =1e5+10;int n;int h[N];int tr[N];int res[N];intlowbit(int x){
return x &-x;}voidadd(int x,int c){
for(int i = x; i <= n; i +=lowbit(i)){
tr[i]+= c;}}intsum(int x){
int res =0;for(int i = x; i; i -=lowbit(i)){
res += tr[i];}return res;}intmain(){
cin >> n;for(int i =2; i <= n; i++)scanf("%d",&h[i]);//初始化每个区间都为1(优化:每个区间的值其实就是长度)for(int i =1; i <= n; i++) tr[i]=lowbit(i);for(int i = n; i >=1; i--){
int k = h[i]+1;int l =1, r = n;while(l < r){
int mid =(l + r)>>1;if(sum(mid)>= k) r = mid;else l = mid +1;}
res[i]= l;add(l,-1);}for(int i =1; i <= n; i++) cout << res[i]<< endl;return0;}