const int N = 1e5;
int u[N]; // zeroes
int n;
cin >> n;
int permutation[n];
forn(i, n) {
int c;
cin >> c; // i-й элемент нужно поставить на позицию "c"
int p = -1;
for (; c >= 0; c--)
for (p++; u[p]; p++)
;
u[p] = 1, permutation[p] = i;
}
/** ------------------ */
const int N = 1e5, K = 300;
int u[N], cnt[N / K + 1]; // zeroes
forn(i, n) {
int c;
cin >> c; // i-й элемент нужно поставить на позицию "c"
int p = -1;
while (K - cnt[(p + 1) / K] < c + 1)
c -= (K - cnt[(p + 1) / K]), p += K;
for (; c >= 0; c--)
for (p++; u[p]; p++)
;
cnt[p / K]++, u[p] = 1, permutation[p] = i;
}