#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,idx;
int l[N],r[N],e[N];
void init(){
r[0]=1;
l[1]=0;
idx=2;
}
void remove(int k){
l[r[k]]=l[k];
r[l[k]]=r[k];
e[k]=-1;
}
void add(int k,int x){//在下标为k的数右边插入一个数x
e[idx]=x;
l[idx]=k;
r[idx]=r[k];
l[r[k]]=idx;
r[k]=idx++;
}
int main(){
init();
scanf("%d",&n);
add(0,1);
for(int i=2;i<=n;i++){
int k,p;
scanf("%d%d",&k,&p);
if(p==0)add(l[k+1],i);
else add(k+1,i);
}
int m;
scanf("%d",&m);
while(m--){
int k;
scanf("%d",&k);
if(r[k+1]!=-1)remove(k+1);
}
for(int i=r[0];i!=1;i=r[i])cout<<e[i]<<' ';
return 0;
}