#include <iostream>
using namespace std;
const int N = 1e5 + 5;
int n,m;
struct T
{
int k;
bool p;
}a[N];
int b[N];
int f[N];
int main()
{
cin >> n;
for (int i = 1;i < n;i++)
{
cin >> a[i].k >> a[i].p;
if (a[i].p)
{
for (int j = i;j > a[i].k;j--)
{
f[j + 1] = f[j];
}
f[a[i].k] = i;
}
else
{
for (int j = i;j > a[i].k + 1;j--)
{
f[j + 1] = f[j];
}
f[a[i].k + 1] = i;
}
}
cin >> m;
for (int i = 1;i <= m;i++)
{
cin >> b[i];
for (int j = 1;j <= n;j++)
{
if (f[j] == b[i])
{
f[j] = 0;
break;
}
}
}
for (int i = 1;i <= n;i++)
{
if (f[i] == 0)
{
continue;
}
cout << f[i] << " ";
}
return 0;
}
记录