#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct ooo
{
int l,r,id;
}a[1000000];
int ji[1000000];
int main()
{
int n,i,start;
a[1].id=1;
cin>>n;
for(i=2;i<=n;i++)
{
int x,y;
cin>>x>>y;
if(y==0)
{
if(a[x].id==1)
{
a[x].id=0;
a[i].id=1;
start=i;
}
a[i].r=x;
if(a[a[x].l].r!=0)
{
a[i].l=a[x].l;
a[a[x].l].r=i;
}
a[x].l=i;
}
else
{
a[i].l=x;
if(a[a[x].r].l!=0)
{
a[i].r=a[x].r;
a[a[x].r].l=i;
}
a[x].r=i;
}
}
int m,z;
cin>>m;
while(m--)
{
cin>>z;
if(a[z].l!=0&&a[z].r!=0)
{
if(z==start)
{
start=a[z].r;
}
a[a[z].l].r=a[z].r;
a[a[z].r].l=a[z].l;
a[z].l=0,a[z].r=0;
}
}
for(i=1;i<=n;i++)
{
if(a[i].l==0&&a[i].r!=0)
{
start=i;
}
}
cout<<start<<' ';
int c=a[start].r;
while(c!=0)
{
cout<<c<<' ';
c=a[c].r;
}
return 0;
}