#include<iostream>
using namespace std;
typedef struct man{
int No;
struct man * next;
}Man, * PMan;
void traver(PMan head){
PMan temp = new Man;
temp = head->next;
while(temp!= NULL){
cout<<temp->No<<' ';
temp = temp->next;
}
}
int main(){
int N;
cin>>N;
PMan headman = new Man;
headman->next = NULL;
PMan one = new Man;
one->No = 1;
headman->next = one;
one->next = NULL;
int t1, t2;
for(int i = 2;i <= N;++i){
scanf("%d%d",&t1,&t2);
PMan newman = new Man;
PMan temp = new Man;
temp = headman;
while(1){
if(temp->next->No == t1){
if(t2 == 0){
newman->No = i;
newman->next = temp->next;
temp->next = newman;
break;
}
else{
newman->No = i;
newman->next = temp->next->next;
temp->next->next = newman;
break;
}
}
temp = temp->next;
}
}
cin>>t1;
while(t1--){
scanf("%d",&t2);
PMan temp = new Man;
temp = headman;
while(temp->next != NULL){
if(temp->next->No == t2){
PMan q = new man;
q = temp->next;
temp->next = q->next;
delete q;
break;
}
temp = temp->next;
}
}
traver(headman);
cout<<endl;
return 0;
}