#include <algorithm>
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAXN 1024
int l[MAXN + 1], r[MAXN + 1], d[MAXN + 1], n, t, k;
// calculates the depth of the current node and every child beneath it.
void calc_depth(int cur, int depth)
{
d[cur] = depth;
if (l[cur] > 0) calc_depth(l[cur], depth + 1);
if (r[cur] > 0) calc_depth(r[cur], depth + 1);
}
// prints the tree
void in_order(int cur)
{
if (l[cur] > 0) in_order(l[cur]);
cout << cur << " ";
if (r[cur] > 0) in_order(r[cur]);
}
// Input is sample #02
int main()
{
// read input
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> l[i] >> r[i];
}
// precalculation
calc_depth(1, 1);
cin >> t;
while (t--) {
cin >> k;
for (int i = 1; i <= n; i++) {
if (d[i] % k == 0) {
// d[i] is a multiple of k
// left child of i becomes right, and vice versa
swap(l[i], r[i]);
}
}
// print the answer
in_order(1);
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWE4gMTAyNAoKCmludCBsW01BWE4gKyAxXSwgcltNQVhOICsgMV0sIGRbTUFYTiArIDFdLCBuLCB0LCBrOwoKLy8gY2FsY3VsYXRlcyB0aGUgZGVwdGggb2YgdGhlIGN1cnJlbnQgbm9kZSBhbmQgZXZlcnkgY2hpbGQgYmVuZWF0aCBpdC4Kdm9pZCBjYWxjX2RlcHRoKGludCBjdXIsIGludCBkZXB0aCkKewogICAgZFtjdXJdID0gZGVwdGg7CiAgICBpZiAobFtjdXJdID4gMCkgY2FsY19kZXB0aChsW2N1cl0sIGRlcHRoICsgMSk7CiAgICBpZiAocltjdXJdID4gMCkgY2FsY19kZXB0aChyW2N1cl0sIGRlcHRoICsgMSk7Cn0KCi8vIHByaW50cyB0aGUgdHJlZQp2b2lkIGluX29yZGVyKGludCBjdXIpCnsKICAgIGlmIChsW2N1cl0gPiAwKSBpbl9vcmRlcihsW2N1cl0pOwogICAgY291dCA8PCBjdXIgPDwgIiAiOwogICAgaWYgKHJbY3VyXSA+IDApIGluX29yZGVyKHJbY3VyXSk7Cn0KCi8vIElucHV0IGlzIHNhbXBsZSAjMDIKaW50IG1haW4oKQp7CgkvLyByZWFkIGlucHV0CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGNpbiA+PiBsW2ldID4+IHJbaV07CiAgICB9CiAgICAKICAgIC8vIHByZWNhbGN1bGF0aW9uCiAgICBjYWxjX2RlcHRoKDEsIDEpOwogICAgCiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBjaW4gPj4gazsKICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgaWYgKGRbaV0gJSBrID09IDApIHsKICAgICAgICAgICAgCS8vIGRbaV0gaXMgYSBtdWx0aXBsZSBvZiBrCiAgICAgICAgICAgIAkvLyBsZWZ0IGNoaWxkIG9mIGkgYmVjb21lcyByaWdodCwgYW5kIHZpY2UgdmVyc2EKICAgICAgICAgICAgICAgIHN3YXAobFtpXSwgcltpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gcHJpbnQgdGhlIGFuc3dlcgogICAgICAgIGluX29yZGVyKDEpOwogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==