#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define MAXN 30050
using namespace std;
int n;
int aib[MAXN], sol[MAXN], a[MAXN];
inline int zero(int x)
{
return x & (-x);
}
void update(int ind, int val)
{
for (int i = ind; i <= n; i += zero(i))
aib[i] += val;
}
int src(int sum)
{
int crt, step;
for (step = 1; step <= n; step <<= 1);
for (crt = 0; step; step >>= 1)
if (crt + step <= n && aib[crt+step] <= sum) {
crt += step;
sum -= aib[crt];
}
return crt;
}
int main()
{
freopen("schi.in", "r", stdin);
freopen("schi.out", "w", stdout);
scanf("%d ", &n);
for (int i = 1; i <= n; i++)
update(i, 1);
for (int i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (int i = n; i >= 1; i--)
{
int pos;
sol[pos = (src(a[i]-1)+1)] = i;
update(pos, -1);
}
for (int i = 1; i <= n; i++)
printf("%d\n", sol[i]);
return 0;
}