#include <iostream>
using namespace std;
struct aaa{
int n;
int l;
int r;
};
int main ()
{
aaa child[1000005];
int N,M,a,b,i;
child[1].l=0;
child[1].r=2;
child[1].n=1;
cin>>N;
for (i=2;i<=N;i++)
{
cin>>a>>b;
child[i].n=i;
if (b==0)
{
child[i].r=a;
child[i].l=child[a].l;
child[child[i].l].r=i;
child[a].l=i;
}
if (b==1)
{
child[i].l=a;
child[i].r=child[a].r;
child[child[i].r].l=i;
child[a].r=i;
}
}
cin>>M;
for (i=1;i<=M;i++)
{
cin>>a;
child[a].n=-1;
}
for (i=1;i<=N;i++)
{
if (child[i].l==0)
{
a=i;
break;
}
}
for (i=1;i<=N;i++)
{
if (child[a].n!=-1)
{
cout<<child[a].n<<" ";
}
a=child[a].r;
}
return 0;
}