#include<stdio.h>
#define N 41

typedef struct node{
  int l, r;
}node;

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

void postorder(int root,int n){

        if(c[root].l != -1) postorder(c[root].l, n);
        if(c[root].r != -1) postorder(c[root].r, n);
        if(cnt < n - 1) printf("%d ", root);
        else printf("%d\n", root);

        cnt++;

        return;

}

int reconst(int start,int last,int n){
  int i, j;

  if(start == last) return b[start];
  else if(start > last) return -1;

  else {
    for(i = 1 ; i <= n ; i++){
      for(j = start ; j <= last ; j++){
        if(a[i] == b[j]){
          c[a[i]].l = reconst(start, j - 1, n);
          c[a[i]].r = reconst(j + 1, last, n);
          return a[i];
        }
      }
    }
  }
}


int main(){
  int n,i, 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 = -1;
    c[i].r = -1;
  }

  root = reconst(1,n,n);

  postorder(root,n);

  return 0;

}
