// 点数いらないです。

#include <stdio.h>

    int cnt=0;
    int fir[100],mid[100];


void solve(int m,int t){
    int g,i;
    
    if(m>t)return;
    if (m==t){
        if(mid[m]==fir[0]){
          printf("%d",mid[m]);
        }else {
            printf("%d ",mid[m]);
            cnt++;
            return;
        }
    }
    
    
    g=fir[cnt];
    cnt++;
    
    
    for(i=m;i<t;i++){
        if(mid[i]==g)break;
    }
    
    solve(m,i-1);
    solve(i+1,t);
    
    if(g==fir[0])printf("%d",g);
    else printf("%d ",g);
    
}






int main(void){
    
    int i;
    int n;

    
    scanf("%d",&n);
    
    for(i=0;i<n;i++){
        scanf("%d",&fir[i]);
       // scanf(
    }
    
    for(i=0;i<n;i++){
        scanf("%d",&mid[i]);
    }
    
    
    solve(0,n-1);
    
    printf("\n");
    
    return 0;
}