#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int n, m;
int e[N], l[N], r[N], idx;
void init()
{
r[0] = 1, l[1] = 0;
idx = 2;
}
void insert(int a, int x)
{
e[idx] = x;
l[idx] = a, r[idx] = r[a];
l[r[a]] = idx, r[a] = idx ++ ;
}
void remove(int a)
{
l[r[a]] = l[a];
r[l[a]] = r[a];
}
int main()
{
scanf("%d", &n);
init();
insert(0, 1);
for (int i = 2; i <= n; i ++ )
{
int a, b;
scanf("%d%d", &a, &b);
if (b == 0) insert(l[a + 1], i);
else insert(a + 1, i);
}
scanf("%d", &m);
while (m -- )
{
int a;
scanf("%d", &a);
if (e[a + 1]) remove(a + 1);
else continue;
}
for (int i = r[0]; i != 1; i = r[i]) cout << e[i] << ' ';
return 0;
}