#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <queue>
#include <functional>
#include <bitset>
#include <set>
#include <list>
using namespace std;
int aib[15005];
int n;
void update(int idx, int val) {
for (; idx <= n; idx += idx & (-idx))
aib[idx] += val;
}
int query(int idx) {
int res = 0;
for (; idx > 0; idx -= idx & (-idx))
res += aib[idx];
return res;
}
int main() {
ios::sync_with_stdio(false);
string filename = "schi";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");
fin >> n;
vector<int> vec(n + 1);
vector<int> answer(n + 1);
for (int i = 1; i <= n; ++i)
fin >> vec[i];
for (int i = n; i > 0; --i) {
int pos = vec[i] + query(vec[i]);
while (answer[pos]) ++pos;
answer[pos] = i;
update(vec[i], 1);
}
for (int i = 1; i <= n; ++i)
fout << answer[i] << "\n";
//system("pause");
return 0;
}