#include<bits/stdc++.h>
using namespace std;
const int N=100010;
struct node{
int date;
int next,prev;
}node[N];
int main(){
int n;
cin>>n;
node[1].date=1;
node[1].next=-1;
node[1].prev=0;
node[0].next=1;
for(int i=2;i<=n;i++){
int a,b;
cin>>a>>b;
if(b==0){
node[i].date=i;
node[i].next=a;
node[i].prev=node[a].prev;
node[node[a].prev].next=i;
node[a].prev=i;
}
else {
node[i].date=i;
node[i].prev=a;
node[i].next=node[a].next;
node[node[a].next].prev=i;
node[a].next=i;
}
}
int q;
cin>>q;
while(q--){
int x;
cin>>x;
node[node[x].next].prev=node[x].prev;
node[node[x].prev].next=node[x].next;
node[x].next=-1;
node[x].prev=-1;
}
for(int i=0;node[i].next!=-1;i=node[i].next){
cout<<node[i].next<<' ';
}
return 0;
}