#include <iostream>
#include <algorithm>
using namespace std;
int n;
int in[100000], post[100000];
void func(int is, int ie, int ps, int pe) {
if(is >= ie || ps >= pe)
return;
int root = post[pe-1];
int ri = find(in+is, in+ie, root)-in;
cout << root << " ";
int ln = ri-is;
func(is, ri, ps, ps+ln);
func(ri+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];
for(int i = 0; i < n; i++)
cin >> post[i];
//포스트 오더의 맨 뒤가 루트
//=> 인오더에서 루트의 좌 우가
func(0, n, 0, n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG47CmludCBpblsxMDAwMDBdLCBwb3N0WzEwMDAwMF07Cgp2b2lkIGZ1bmMoaW50IGlzLCBpbnQgaWUsIGludCBwcywgaW50IHBlKSB7CiAgICBpZihpcyA+PSBpZSB8fCBwcyA+PSBwZSkKICAgICAgICByZXR1cm47CgogICAgaW50IHJvb3QgPSBwb3N0W3BlLTFdOwogICAgaW50IHJpID0gZmluZChpbitpcywgaW4raWUsIHJvb3QpLWluOwogICAgY291dCA8PCByb290IDw8ICIgIjsKICAgIAogICAgaW50IGxuID0gcmktaXM7CiAgICAKICAgIGZ1bmMoaXMsIHJpLCBwcywgcHMrbG4pOwogICAgZnVuYyhyaSsxLCBpZSwgcHMrbG4sIHBlLTEpOwp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBjb3V0LnRpZShOVUxMKTsKICAgIGNpbiA+PiBuOwogICAgCiAgICAvL+yduCDsmKTrjZQKICAgIC8v7Y+s7Iqk7Yq4IOyYpOuNlAogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBjaW4gPj4gaW5baV07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgICAgIGNpbiA+PiBwb3N0W2ldOwogICAgCiAgICAvL+2PrOyKpO2KuCDsmKTrjZTsnZgg66eoIOuSpOqwgCDro6jtirgKICAgIC8vPT4g7J247Jik642U7JeQ7IScIOujqO2KuOydmCDsoowg7Jqw6rCAIAogICAgZnVuYygwLCBuLCAwLCBuKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=