#include<bits/stdc++.h>
using namespace std;
list<int> a;
void crtx(int k,int p,int o);
void byby(int k);
int n,m,k,p,x;
int main(){
cin>>n;
a.push_back(1);
for(int i=2;i<=n;i++){
cin>>k>>p;
crtx(k,p,i);
}
cin>>m;
for(int i=0;i<m;i++){
cin>>x;
byby(x);
}
for (list<int>::iterator it=a.begin(); it!=a.end(); it++)
cout<<*it<<" ";
return 0;
}
void crtx(int k,int p,int o){
list<int>::iterator it = find(a.begin(),a.end(),k);
if(p==1){
it++;
}
a.insert(it,o);
}
void byby(int k){
if(find(a.begin(),a.end(),k)!=a.end())
a.remove(k);
}
求优化