#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
struct node
{
int l,r,d;
}q[100005];
void add(int i,int k,int p)
{
if(p==0)
{
q[i].l =q[k].l;
q[q[k].l].r=i;
q[k].l=i;
q[i].r=k;
}
if(p==1)
{
q[i].r=q[q[k].r].l;
q[q[k].r].l=i;
q[k].r=i;
q[i].l=k;
}
}
int main()
{
scanf("%d",&n);
int k,p,n,m,x;
q[0].r=q[0].l=0;
add(0,1,0);
for(int i=2;i<=n;i++)
{
scanf("%d%d",&k,&p);
add(i,k,p);
}
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
scanf("%d",&x);
q[x].d=1;
}
for(int i=q[0].r;i;i=q[i].r)
{
if(q[i].d==0) cout<<i<<" ";
}
return 0;
}