#include<stdio.h>

#define MAX 100

int cnt = 0;
int post_cnt = 0;
int n;
int pre[MAX], in[MAX], post[MAX];

int find(int u){
    int i;
    for(i = 0; i < n; i++){
        if(u == in[i]){
            return i;
        }
    }


    return -1;
}

void reconstruct(int l, int r){
    if (l >= r) return;
    int root = pre[cnt++];
    int mid = find(root);

    reconstruct(l, mid);
    reconstruct(mid + 1, r);
    post[post_cnt++] = root;
}

int main(){
    int i;
    scanf("%d", &n);

    for(i = 0; i < n; i++) scanf("%d", &pre[i]);
    for(i = 0; i < n; i++) scanf("%d", &in[i]);

    reconstruct(0, n);
    
    for(i = 0; i < n; i++){
        if(i) printf("%d", post[i]);
        else printf(" %d", post[i]);
    }
    printf("\n");

    return 0;
}
