#include<stdio.h>
#include<stdlib.h>
#define mymalloc(p,n) {p = malloc((n)*sizeof(*p));if ((p)==NULL) {printf("not enough memory?\n"); exit(1);};}

void print(int fact, int flag){
	if(flag==0){
		printf("%d\n",fact);
	}else{
		printf("%d ",fact);
	}
}

int divide(int root,int *A,int *B,int p,int q,int flag){
	int i;
	if(q-p==0){
		print(B[q],flag);
		return root;
	}
	for(i=p;i<=q;i++){
		if(B[i]==A[root]){
			if(i>p){root=divide(root+1,A,B,p,i-1,1);}
			if(i<q){root=divide(root+1,A,B,i+1,q,1);}
			print(B[i],flag);
			return root;
		}
	}
}

main(){
	int i,n;
	int *A,*B;
	scanf("%d",&n);
	mymalloc(A,n);
	mymalloc(B,n);
	for(i=0;i<n;i++){
		scanf(" %d",&A[i]);
	}
	for(i=0;i<n;i++){
		scanf(" %d",&B[i]);
	}
	divide(0,A,B,0,n-1,0);
	free(A);free(B);
	return 0;
}