#include <stdio.h>
#define infile "schi.in"
#define outfile "schi.out"
#define NMAX 30002
#define DIMMAX 65600
FILE *fin,*fout;
int sol[NMAX],v[DIMMAX];
int n;
void build(int n, int li, int ls)
{
if(li==ls)
{
v[n]=1;
return;
}
build(2*n,li,(li+ls)/2);
build(2*n+1,(li+ls)/2+1,ls);
v[n]=v[2*n]+v[2*n+1];
}
int cauta(int n, int li, int ls, int poz)
{
if(li==ls)
return li;
if(v[2*n]>=poz)
return cauta(2*n,li,(li+ls)/2,poz);
else
return cauta(2*n+1,(li+ls)/2+1,ls,poz-v[2*n]);
}
void erase(int n, int li, int ls, int poz)
{
if(li==ls)
{
v[n]=0;
return;
}
if(poz<=(li+ls)/2)
erase(2*n,li,(li+ls)/2,poz);
else
erase(2*n+1,(li+ls)/2+1,ls,poz);
v[n]=v[2*n]+v[2*n+1];
}
void solve(int k)
{
int x;
if(!k)
return;
fscanf(fin,"%d",&x);
solve(k-1);
x=cauta(1,0,n-1,x);
sol[x]=n-k+1;
erase(1,0,n-1,x);
}
int main()
{
int i;
fin=fopen(infile,"r");
fscanf(fin,"%d",&n);
build(1,0,n-1);
solve(n);
fclose(fin);
fout=fopen(outfile,"w");
for(int i=0;i<n;i++)
fprintf(fout,"%d\n",sol[i]);
fclose(fout);
return 0;
}