#include<bits/stdc++.h>
using namespace std;
const int N=50010;
int n,res;
int a[N],b[N];
unordered_map<int,int>m;
void build(int al,int ar,int bl,int br)
{
if(al>ar)return;
int root=a[ar];
int k=m[root];
res=root;
build(al,al+k-1-bl,bl,k-1); //左子树
build(al+k-bl,ar-1,k+1,br); //右子树
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)
{
cin>>b[i];
m[b[i]]=i;
}
build(1,n,1,n);
cout<<res<<endl;
return 0;
}