#include<cstdio>
using namespace std;
int n,m;
struct student{
int l = 0,r = 0,id = 0;
};
student a[360000];
int last(int x){
if(a[x].l == 0) return x;
else return last(a[x].l);
}
void print(int x){
if(a[x].id > 0) printf("%d ",a[x].id);
if(a[x].r != 0) print(a[x].r);
return ;
}
int main(){
scanf("%d",&n);
for(int i = 2;i <= n;i++){
int n_id,x;
scanf("%d%d",&n_id,&x);
if(x == 0){
int l = a[x].l;
a[l].r = i;
a[x].l = i;
a[i].l = l;
a[i].r = x;
}
else{
int r = a[x].r;
a[r].l = i;
a[x].r = i;
a[i].l = x;
a[i].r = r;
}
a[i].id = i;
}
for(int i=1;i<=m;i++){
int x;
scanf("%d",&x);
a[x].id = 0;
}
int l = last(1);
print(l);
return 0;
}