#include <stdio.h>
#define nmax 30010
#define amax 120010
#define fr(i,a,b) for(int i=a;i<b;++i)
#define rf(i,a,b) for(int i=a;i>b;--i)
int n,a[nmax],x,er[nmax],st,en,fa[amax];
void epit(const int x,const int st,const int en)
{
fa[x]=en-st+1;
if (en>st)
{
epit(x*2,st,(st+en)/2);
epit(x*2+1,(st+en)/2+1,en);
}
}
int main()
{
freopen("schi.in","r",stdin);
freopen("schi.out","w",stdout);
scanf("%d",&n);
fr(i,0,n) scanf("%d",a+i);
epit(1,1,n);
rf(i,n-1,-1)
{
x=1,st=1,en=n;
while (st<en)
{
if (a[i]>fa[x*2])
a[i]-=fa[x*2],x=x*2+1,st=(st+en)/2+1;
else
fa[x*2]--,x*=2,en=(st+en)/2;
}
er[st]=i+1;
}
fr(i,1,n+1) printf("%d\n",er[i]);
return 0;
}