#include<stdio.h>
#include<stdlib.h>
typedef struct node {
long data;
struct node* N;
struct node* P;
}node,*pnode;
void insertleft(pnode* Q,long i, long k,long tag)
{
pnode p = (*Q)->N, q;
q = new node;
q->data = i;
while (p->data!=k)
p = p->N;
if (tag == 0)
{
p->P->N = q;
q->P = p->P;
p->P = q;
q->N = p;
}
else
{
p->N->P = q;
q->N = p->N;
p->N = q;
q->P = p;
}
}
void deletedata(pnode* Q, long k)
{
pnode p = (*Q);
while (p->N!=(*Q))
{
p = p->N;
if (p->data == k)
{
p->P->N = p->N;
p->N->P = p->P;
delete(p);
break;
}
}
}
int main()
{
long m, i, k, p, n;
pnode Q;
Q = new node;
Q->N = new node;
Q->N->N = Q;
Q->N->P = Q;
Q->P = Q->N;
Q->N->data = 1;
scanf("%ld", &m);
for (i = 2; i <= m; i++)
{
scanf("%ld%ld", &k, &p);
insertleft(&Q, i, k, p);
}
scanf("%ld", &n);
for (i = 1; i <= n; i++)
{
scanf("%ld", &k);
deletedata(&Q, k);
}
pnode h = Q;
while (h->N != Q)
{
h = h->N;
printf("%ld ", h->data);
}
}