#include <iostream>
#include <cstdio>
using namespace std;
#define MAXN 50001
int pre[MAXN];
int in[MAXN];
int flag=0;
struct node{
int value;
node *left;
node *right;
};
void sbuild(int pl,int pr,int il,int ir){
int i;
if(flag){
return;
}
if(pl==pr){
flag=1;
printf("%d\n",pre[pl]);
return;
}
for(i=il;i<=ir;i++){
if(in[i]==pre[pl]) break;
}
if(i!=il){
sbuild(pl+1,i-il+pl,il,i-1);
}
if(i!=ir){
sbuild(i-il+pl+1,pr,i+1,ir);
}
}
/*void postorder(node *root){
if(!root){
return;
}
postorder(root->left);
postorder(root->right);
if(flag){
return;
}
printf("%d",root->value);
flag=1;
}*/
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&pre[i]);
}
for(int i=0;i<n;i++){
scanf("%d",&in[i]);
}
sbuild(0,n-1,0,n-1);
//postorder(root);
return 0;
}