#include<iostream>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;

vector<int> post,pre,mid;
int loc=0;

void reBuild(int l,int r){
    if(l>=r) return;
    int root=pre[loc++];
    int m=distance(mid.begin(),find(mid.begin(),mid.end(),root));
    reBuild(l,m);
    reBuild(m+1,r);
    post.push_back(root);
}

void solve(){
    loc=0;
    reBuild(0,pre.size());
    for(int i=0;i<post.size();i++){
        if(i) cout<<' ';
        cout<<post[i];
    }
    cout<<endl;

}

int main(){
    int n,k;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&k);
        pre.push_back(k);
    }
    for(int i=0;i<n;i++){
        scanf("%d",&k);
        mid.push_back(k);
    }
    solve();
    return 0;
}

