#include<iostream>
#include<stdio.h>
void change(int *a,int k1,int k2);
void digui(int *a1,int *a2,int i,int j);
void change2(int *a,int k1,int k2);
int binSearch2 (int *a,int e,int lo,int hi) ;
int binSearch1 (int *a,int e,int lo,int hi) ;
int main(){ int n=5;
scanf("%d",&n);
int *a1=new int[n];
int *a2=new int[n];
int i;
for(i=0;i<n;i++)scanf("%d",a1+i);
for(i=0;i<n;i++)scanf("%d",a2+i);
int k=0;
int kl,kr;
//printf("%d",binSearch1(a1,3,0,4));
//for(i=0;i<n;i++)printf("%d",a1[i]);
// return 0;
digui(a1,a2,0,n-1);
for(i=0;i<n;i++)printf("%d ",a1[i]);
return 0;}
void digui(int *a1,int *a2,int i,int j)
{ if(i==j)return;
int kl=binSearch1(a2,a1[i+1],i,j);
int kr=binSearch2(a1,a2[j-1],i,j);
change(a1,i,kr-1);
//for(int k=0;k<5;k++)printf("%d",a1[k]);
change2(a2,kl+1,j);
//for(int k=0;k<5;k++)printf("%d",a2[k]);
digui(a1,a2,i,kr-2);
digui(a1,a2,kr,j);
}
int binSearch1 (int *a,int e,int lo,int hi) {for(int i=lo;i<=hi;i++)if(a[i]==e)return i;}
int binSearch2 (int *a,int e,int lo,int hi) {for(int i=hi;i>=lo;i--)if(a[i]==e)return i;}
void change(int *a,int k1,int k2){
int k;
k=a[k1];
int i;
for(i=k1;i<k2;i++)
a[i]=a[i+1];
a[k2]=k;
}
void change2(int *a,int k1,int k2){
int k;
k=a[k2];
int i;
for(i=k2;i>k1;i--)
a[i]=a[i-1];
a[k1]=k;
}