#include<stdio.h>
#define MAX 102
int m=0,n,t=0;
int pre[MAX],in[MAX];
int find(int c,int n,int in[]){
	int i;
	for(i=0;i<n;i++){
		if(in[i]==c)
		return i;
	}
}
void reconstruction(int l,int r){
	if(l>=r)
	return;
	int c=pre[m];
	m++;
	int mid=find(c,n,in);
	reconstruction(l,mid);
	reconstruction(mid+1,r);
	if(t)
	printf(" ");
	printf("%d",c);
	t++;
}
int main(){
	int i,j;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%d",&pre[i]);
	for(i=0;i<n;i++)
	scanf("%d",&in[i]);//输入
	reconstruction(0,n);
	printf("\n");
	return 0; 
} 
