#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
int L,R;
};
node a[100001];
void charu(int x,int op,int i){
if(op==0){
a[a[x].L].R=i;
a[i].L=a[x].L;
a[x].L=i;
a[i].R=x;
}else{
a[i].R=a[x].R;
a[x].R=i;
a[i].L=x;
a[a[x].R].L=i;
}
return;
}
void shanchu(int x){
a[a[x].L].R=a[x].R;
a[a[x].R].L=a[x].L;
return;
}
int main(){
cin>>n;
a[0].L=0;
a[0].R=1;
a[1].L=0;
a[1].R=n+1;
a[n+1].L=1;
a[n+1].R=n+1;
for(int i=2;i<=n;i++){
int x,op;
cin>>x>>op;
charu(x,op,i);
}
cin>>m;
for(int i=1;i<=m;i++){
int x;
cin>>x;
shanchu(x);
}
for(int i=a[0].R;i;i=a[i].R){
cout<<i<<" ";
}
return 0;
}
本贴禁止无意义回复,请提供有效帮助。