#include <iostream>
using namespace std;
int n;
int in[100000], post[100000], mpin[100000];
void func(int is, int ie, int ps, int pe) {
if(is >= ie || ps >= pe)
return;
int root = post[pe-1], ln = mpin[root]-is;
cout << root << " ";
func(is, mpin[root], ps, ps+ln);
func(mpin[root]+1, ie, ps+ln, pe-1);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
//인 오더
//포스트 오더
for(int i = 0; i < n; i++) {
cin >> in[i];
mpin[in[i]] = i;
}
for(int i = 0; i < n; i++)
cin >> post[i];
//포스트 오더의 맨 뒤가 루트
//=> 인오더에서 루트의 좌 우가
func(0, n, 0, n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG47CmludCBpblsxMDAwMDBdLCBwb3N0WzEwMDAwMF0sIG1waW5bMTAwMDAwXTsKCnZvaWQgZnVuYyhpbnQgaXMsIGludCBpZSwgaW50IHBzLCBpbnQgcGUpIHsKICAgIGlmKGlzID49IGllIHx8IHBzID49IHBlKQogICAgICAgIHJldHVybjsKCiAgICBpbnQgcm9vdCA9IHBvc3RbcGUtMV0sIGxuID0gbXBpbltyb290XS1pczsKICAgIGNvdXQgPDwgcm9vdCA8PCAiICI7CiAgICBmdW5jKGlzLCBtcGluW3Jvb3RdLCBwcywgcHMrbG4pOwogICAgZnVuYyhtcGluW3Jvb3RdKzEsIGllLCBwcytsbiwgcGUtMSk7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgY2luID4+IG47CgogICAgLy/snbgg7Jik642UCiAgICAvL+2PrOyKpO2KuCDsmKTrjZQKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gaW5baV07CiAgICAgICAgbXBpbltpbltpXV0gPSBpOwogICAgfQoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgY2luID4+IHBvc3RbaV07CgogICAgLy/tj6zsiqTtirgg7Jik642U7J2YIOunqCDrkqTqsIAg66Oo7Yq4CiAgICAvLz0+IOyduOyYpOuNlOyXkOyEnCDro6jtirjsnZgg7KKMIOyasOqwgCAKICAgIGZ1bmMoMCwgbiwgMCwgbik7CgogICAgcmV0dXJuIDA7Cn0=