#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
list<int> node;
node.push_back(1);
for (int i = 2; i <= n; i++) {
int k, opt;
scanf("%d %d", &k, &opt);
auto it = find(node.begin(), node.end(), k);
if (it == node.end()) continue;
if (opt == 0)
node.insert(it, i);
else
node.insert(next(it), i);
}
int m;
scanf("%d", &m);
while (m--) {
int x;
scanf("%d", &x);
auto it = find(node.begin(), node.end(), x);
if (it != node.end())
node.erase(it);
}
for (list<int> :: iterator it = node.begin(); it != node.end(); it++)
cout << *it << " ";
return 0;
}