#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int Mid[100];
int Bac[100];
int Fro[100];
int oper(int MidId, int BacId, int FroId,int L) {
if (L == 0)
return 0;
if (L == 1) {
if (Mid[MidId] == Bac[BacId])
Fro[FroId] = Mid[MidId];
else
cout << "ERROR" << endl;
return 0;
}
int head = Bac[BacId + L - 1];
Fro[FroId] = head;
int L1 = 0;
for (int i = MidId; ; i++) {
if (Mid[i] == head) {
L1 = i - MidId;
break;
}
}
int L2 = L - L1 - 1;
int res1 = oper(MidId, BacId, FroId+1, L1);
int res2 = oper(MidId + L1 + 1, BacId + L1, FroId + L1+1, L2);
return res1*res2;
}
int main() {
memset(Fro, 0, sizeof(Fro));
cin >> Mid[0];
char c = getchar();
int L = 1;
while (c == ' ') {
cin >> Mid[L];
L++;
c = getchar();
}
cin >> Bac[0];
c = getchar();
L = 1;
while (c == ' ') {
cin >> Bac[L];
L++;
c = getchar();
}
oper(0, 0, 0, L);
int i = 0;
for (; i < L - 1; i++) {
cout << Fro[i] << ' ';
}
cout << Fro[i] << endl;;
return 0;
}