
using namespace std;
int n,cnt;
vector<int>in,pre,level(1000000,-1);
void levelorder(int root,int start,int end,int index)
{
if(start>end) return ;
int i=start;
while(i<end&&pre[root]!=in[i]) i++;
level[index]=pre[root];
levelorder(root+1,start,i-1,2*index+2);
levelorder(root+1+i-start,i+1,end,2*index+1);
}
int main()
{
cin>>n;
in.resize(n); pre.resize(n);
for(int i=0;i<n;i++) cin>>in[i];
for(int i=0;i<n;i++) cin>>pre[i];
levelorder(0,0,n-1,0);
for(int i=0;i<1000000;i++)
{
if(level[i]==-1) continue;
cnt++;
if(i) cout<<" ";
cout<<level[i];
if(cnt==n) break;
}
}