#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main(){
list<int> queue;
queue.push_back(1);
int n = 0;
cin >> n;
int k,p = 0;
int m = 0;
int x = 0;
for(int i=2;i<=n;i++){
cin >> k >> p;
for(list<int>::iterator iter = queue.begin();iter!=queue.end();iter++){
if(*iter == k){
if(p == 0){
queue.insert(iter,i);
}
else{
iter++;
queue.insert(iter,i);
}
break;
}
}
}
cin >> m;
for(int i=0;i<m;i++){
cin >> x;
for(list<int>::iterator iter2 = queue.begin();iter2 != queue.end();iter2++){
if(*iter2 == x){
iter2 = queue.erase(iter2);
}
}
}
for(list<int>::iterator iter3 = queue.begin();iter3!=queue.end();iter3++){
cout << *iter3 << ' ';
}
return 0;
}