#include <iostream>
using namespace std;
typedef struct node
{
struct node* left;
struct node* right;
int data;
}*bintree;
bintree creatbintree(int n, int r[], int in[])
{
if(n <= 0) return NULL;
bintree tree;
tree = new node;
tree->data = r[n-1];
tree->left = NULL;
tree->right = NULL;
int i;
for(i = 0; i < n; i++)
if(in[i] == r[n-1])break;
tree->left = creatbintree(i, r, in);
tree->right = creatbintree(n - i - 1, r+i,in+1+i);
return tree;
}
void preordertraversal(bintree tree)
{
if(tree)
{
cout<<tree->data<<" ";
preordertraversal(tree->left);
preordertraversal(tree->right);
}
}
int main()
{
int n;
int r[100], in[100];
cin>>n;
for(int i = 0; i < n; i++)
cin>>r[i];
for(int i = 0; i < n; i++)
cin>>in[i];
bintree tree = creatbintree(n, r, in);
preordertraversal(tree);
}