#include<stdio.h>
void tree(int n,int *a,int *b,int *c)
{
int *p=b,t=0;
if(n<=0) return;
while(1)
{
if(a[0]==*p)
break;
else p++;
}
t=p-b;
tree(t,a+1,b,c);
tree(n-t-1,a+t+1,b+t+1,c+t);
c[n-1]=a[0];
}
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
int a[1010],b[1010],c[1010];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
tree(n,a,b,c);
for(i=0;i<n-1;i++)
printf("%d ",c[i]);
printf("%d\n",c[n-1]);
}
return 0;
}
void tree(int n,int *a,int *b,int *c)
{
int *p=b,t=0;
if(n<=0) return;
while(1)
{
if(a[0]==*p)
break;
else p++;
}
t=p-b;
tree(t,a+1,b,c);
tree(n-t-1,a+t+1,b+t+1,c+t);
c[n-1]=a[0];
}
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
int a[1010],b[1010],c[1010];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
tree(n,a,b,c);
for(i=0;i<n-1;i++)
printf("%d ",c[i]);
printf("%d\n",c[n-1]);
}
return 0;
}