#include <bits/stdc++.h>
#define Tairitsu return 0;
#define lowbit(x) (x & -x)
using namespace std;
int n, a[100001], st[100001], c[100001];
void add(int i, int x) {
for (; i <= n; i += lowbit(i)) c[i] += x;
}
int ask(int i) {
int t = 0;
for (; i; i -= lowbit(i)) t += c[i];
return t;
}
int main() {
freopen("lostcows.in","r",stdin);
freopen("lostcows.out","w",stdout);
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
add(i, 1);
}
for (int i = 2; i <= n; i++) {
scanf("%d", &a[i]);
}
for (int i = n; i >= 1; i--) {
int l = 1, r = n;
while (l <= r) {
int mid = (l + r) / 2;
if (ask(mid) > a[i]) r = mid - 1;
else l = mid + 1;
}
st[i] = l;
add(l, -1);
}
for (int i = 1; i <= n; i++) printf("%d\n", st[i]);
Tairitsu
}