#include<bits/stdc++.h>
using namespace std;
int n,k,p,m,x;
struct node{
int l;
int r;
int head;
int z;
}a[100009];
int main(){
cin>>n;
a[0].l=a[1].l;
a[a[1].l].r=0;
a[1].l=0;
a[0].r=1;
for(int i=2;i<=n;i++){
cin>>k>>p;
if(p==0){
a[i].l=a[k].l;
a[a[k].l].r=i;
a[k].l=i;
a[i].r=k;
}
else{
a[k].r=a[i].r;
a[k].l=i;
a[i].r=k;
a[a[k].r].l=k;
}
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>x;
a[x].z=1;
}
//for(int i=a[0].r,flag=1;i;i=a[i].r) cout<<i<<" ";
//cout<<endl;
for(int i=a[0].r;i;i=a[i].r){
// if(i==0&&flag==0){
// return 0;
// }
if(a[i].z==0) cout<<i<<" ";
// flag=0;
}
return 0;
}