#include <stdio.h>
#define lmax 65536
#define nmax 32768
#define left (i<<1)
#define right ((i<<1)|1)
#define mij ((a+b)>>1)
#define FOR(i,s,d) for(i=(s);i<(d);++i)
short int H[lmax];
int n,sol[nmax],A[nmax];
int init(int i,int a,int b)
{
if(a>b)
return 0;
if(a==b)
H[i]=1;
else
H[i]=init(left,a,mij)+init(right,mij+1,b);
return H[i];
}
int query(int i,int a,int b,int x)
{
H[i]--;
if(a==b)
return a;
if(H[left]>=x)
return query(left,a,mij,x);
else
return query(right,mij+1,b,x-H[left]);
}
int main()
{
freopen("schi.in","r",stdin);
freopen("schi.out","w",stdout);
scanf("%d",&n);
int i;
FOR(i,1,n+1)
scanf("%d",&A[i]);
init(1,1,n);
for(i=n;i;i--)
sol[query(1,1,n,A[i])]=i;
FOR(i,1,n+1)
printf("%d\n",sol[i]);
return 0;
}