#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 10000

int n, pos, k;
int pre[MAX], in[MAX], post[MAX];

int find(int u){
  int i;

  for(i = 0; i < n; i++){
    if(u == in[i])  return i;
  }
  return 0;
}

void rec(int l, int r){
  int root;
  if(l >= r)  return;
  root = pre[pos++];
  rec(l, find(root));
  rec(find(root) + 1, r);
  post[k++] = root;
}

void solve(){
  int i;
  pos = 0;
  rec(0, n);

  for(i = 0; i < n; i++){
    if(i) printf(" ");
    printf("%d", post[i]);
  }
  printf("\n");
}

int main(void){
  int i;

  scanf("%d", &n);

  for(i = 0; i < n; i++){
    scanf("%d", &pre[i]);
  }

  for(i = 0; i < n; i++){
    scanf("%d", &in[i]);
  }
solve();

  return 0;
}

