#include<iostream>
using namespace std;
struct pen
{
int l;
int r;
bool path;
}p[1000010];
int n,m;
int main()
{
cin>>n;
p[1].l=0,p[1].r=-1;p[0].r=1;
for(int i=2;i<=n;i++)
{
int k;
int q;
cin>>k>>q;
if(q==0)
{
p[i].l=p[k].l;p[i].r=k;
p[p[k].l].r=i;p[k].l=k;
}
else if(q==1)
{
p[i].l=k;p[i].r=p[k].r;
p[p[k].r].l=i;p[k].r=i;
}
}
cin>>m;
while(m--)
{
int k;
cin>>k;
if(p[k].path==false)
{
p[k].path=true;
p[p[k].r].l=p[k].l;
p[p[k].l].r=p[k].r;
}
}
for(int i=p[0].r;i!=-1;i=p[i].r)cout<<i<<" ";
return 0;
}