#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,mxlg,x[500005],bit[500005];
void UPDATE(int i, int v)
{
    while (i<=n) bit[i]+=v,i+=i&(-i);
    return;
}
int GET(int l, int r)
{
    l--;
    int resl=0,resr=0;
    while (l>0) resl+=bit[l],l-=l&(-l);
    while (r>0) resr+=bit[r],r-=r&(-r);
    return resr-resl;
}
int BS(int lo, int hi, int vl)
{
    int ans;
    while (lo<=hi)
    {
        int mid=lo+(hi-lo)/2;
        if (GET(1,mid)>=vl) ans=mid,hi=mid-1;
        else lo=mid+1;
    }
    return ans;
}
signed main()
{
    ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    cin>>n,mxlg=log(n)/log(2);
    for (int i=1;i<=n;i++) cin>>x[i],UPDATE(i,1);
    for (int i=1;i<=n;i++)
    {
        int idx,ans;
        cin>>idx;
        ans=BS(1,n,idx),UPDATE(ans,-1);
        cout<<x[ans]<<' ';
    }
    return 0;
}