#include<stdio.h>
#define N 41
int recont(int,int,int);
void postorder(int,int);
typedef struct node{
	int L_id;
	int R_id;
}node;

node c[N];
int a[N];
int b[N];
int cnt=0;

int main(){
  int n,i;
  int root;
	
  scanf("%d",&n);
	
  for(i=1;i<=n;i++){
    scanf("%d",&a[i]);
  }
  for(i=1;i<=n;i++){
    scanf("%d",&b[i]);
  }
  for(i=1;i<=n;i++){
    c[i].L_id=-1;
    c[i].R_id=-1;
	}	
  root=reconst(1,n,n);	
  postorder(root,n);
	
  return 0;	
}

int reconst(int start,int last,int n){
	
  if(start==last)
    return b[start];
		
  else if(start > last)
    return -1;
	
  else {
    for(int i=1;i<=n;i++){
      for(int j=start;j<=last;j++){
	if(a[i]==b[j]){
	  c[a[i]].L_id=reconst(start,j-1,n);
	  c[a[i]].R_id=reconst(j+1,last,n);
	  return a[i];
	}
      }
    }
  }
  
}
void postorder(int root,int n){
	
  if(c[root].L_id!=-1)
    postorder(c[root].L_id,n);
	
  if(c[root].R_id!=-1)
    postorder(c[root].R_id,n);
  
  if(cnt<n-1)
    printf("%d ",root);
  else 
    printf("%d\n",root);	
  cnt++;
  return;
}

