#include<bits/stdc++.h>
using namespace std;
int x[100000][2],y[100000];
vector<int> a;
int main() {
int i,n,j,m;
cin>>n;
a.insert(a.begin(),1);
for(i=0; i<n-1; i++)
cin>>x[i][0]>>x[i][1];
cin>>m;
for(i=0; i<m; i++)
cin>>y[i];
for(i=2; i<=n; i++) {
if(x[i-2][1]==0)
a.insert(a.begin()+x[i-2][0],i);
else
a.insert(a.begin()+x[i-2][0]-1,i);
}
for(i=0; i<m; i++) {
for(j=0; j<a.size(); j++) {
if(y[i]==a[j]) {
a.erase(a.begin()+j);
break;
}
}
}
for(i=a.size()-1; i>=0; i--) {
if(i!=0)
cout<<a[i]<<' ';
else
cout<<a[i]<<endl;
}
return 0;
}