#include <bits/stdc++.h>
int n,m,k,p,x;
class IQ{
public:
int aq[100005];
int len;
int find(int kk){
int num=1;
while(aq[num]!=kk && num<=len) num++;
if(num==len+1) return -1;
else return num;
}
void ins(int num,int k,int p){
int adr=find(k);
for(int i=len;i>adr;i--) aq[i+1]=aq[i];
if(!p){
aq[adr+1]=aq[adr];
aq[adr]=num;
}
else aq[adr+1]=num;
len++;
return ;
}
void del(int x){
int adr=find(x);
if(adr==-1) return ;
else{
for(int i=adr;i<=len;i++) aq[i]=aq[i+1];
len--;
return ;
}
}
void print(){
for(int i=1;i<=len;i++) printf("%d ",aq[i]);
}
}iq;
int main(){
iq.aq[1]=1;
iq.len=1;
scanf("%d",&n);
for(int i=2;i<=n;i++){
scanf("%d%d",&k,&p);
iq.ins(i,k,p);
}
scanf("%d",&m);
for(int i=1;i<=m;i++){
scanf("%d",&x);
iq.del(x);
}
iq.print();
return 0;
}
后面三个点TLE