#include <bits/stdc++.h>
using namespace std;
ifstream fin ("schi.in");
ofstream fout ("schi.out");
int const lmax=30007;
int n,aib[lmax];
int v[lmax], rez[lmax];
void update(int ind, int val)
{
for(int i=ind;i<=n;i+=(i&-i))
{
aib[i]+=val;
}
}
int binSearch(int val)
{
int ind=0;
int sum=0;
int interval=(1<<((int)log2(n)));
while(interval)
{
if(ind+interval<=n and sum+aib[interval+ind]<val)
{
sum+=aib[interval+ind];
ind+=interval;
}
interval/=2;
}
return ind+1;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)///index de la 1 din cauza AIB
{
fin>>v[i];
update(i,1);
}
for(int i=n;i>=1;i--)
{
int pos=binSearch(v[i]);
rez[pos]=i;
update(pos,-1);
}
for(int i=1;i<=n;i++)
{
fout<<rez[i]<<"\n";
}
fin.close();
fout.close();
return 0;
}