#include<bits/stdc++.h>
using namespace std;
struct nood{
int l,r;
};
nood dl[100010];
int head;
void ins(int k,int p,int x){
int left,right;
if(p==1){ left=k; right=dl[k].r; dl[k].r=x; dl[right].l=x;}
else {left=dl[k].l; right=k; dl[k].l=x; dl[left].r=x;}
dl[x].l=left;
dl[x].r=right;
if(k==head&&p==0) head=x;
}
void del(int x){
int left,right;
if(x==head){
head=dl[x].r;
dl[head].l=0; }
else{
left=dl[x].l;
right=dl[x].r;
dl[left].r=right;
dl[right].l=left;
} }
int main(){
head=1;
dl[1].l=0;
dl[1].r=0;
int m,n,k,p;
cin>>n;
for(int i=2;i<=n;i++){
cin>>k>>p;
ins(k,p,i); }
cin>>m;
while(m--){
int x;
cin>>x;
del(x); }
int i=head;
while(i!=0){
cout<<i<<" ";
i=dl[i].r;
}
}