#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<long long>l;
int n , m ;
int p;
vector<long long>::iterator it;
vector<long long>::iterator tt[999999];
inline ll read(){
ll x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
void printlist()
{
for(it = l.begin() ; it != l.end() ; it++) cout<<*it<<" ";
cout<<endl;
}
int main()
{
n = read();
l.push_back(1);
tt[1] = l.begin();
for(long long i = 2 ,k; i <= n ; i++)
{
k = read();
vector<long long>::iterator t = tt[k];
p = read();
if(t != l.end())if(p)tt[i]=l.insert(++t,i);
else tt[i]=l.insert(t,i);
}
m = read();
for(long long i = 1 , k ; i<= m ; i++)
{
k = read();
vector<long long>::iterator t = tt[k];
if(t != l.end())
{
l.erase(t+1);
tt[k] = l.end();
}
}
printlist();
return 0;
}