#include<bits/stdc++.h>
#define maxn 100010
using namespace std;
struct node{
int l,r;
}a[maxn];
int n,m,opt,k;
int b[100010]={1};
int main()
{
cin>>n;
for(int i=2;i<=n;i++)
{
cin>>k>>opt;
if(opt==1)
{
a[a[k].r].l=i;
a[i].r=a[k].r;
a[k].r=i;
a[i].l=k;
}
else
{
a[a[k].l].r=i;
a[i].l=a[k].l;
a[k].l=i;
a[i].r=k;
}
}
cin>>m;
for(int i=1;i<=m;i++)
{
cin>>k;
b[k]=0;
a[a[k].l].r=a[k].r;
a[a[k].r].l=a[k].l;
}
int c;
for(int i=1;i<=n;i++)
{
if(b[i]==1)
{
c=i;
while(a[c].l!=0)
{
c=a[c].l;
}
break;
}
}
while(a[c].r!=0)
{
c=a[c].r;
cout<<c<<" ";
}
cout<<endl;
return 0;
}
rt,救救孩子