#include <iostream>
#include <cstdlib>
using namespace std;
typedef struct node {
int dat; struct node *nxt;
}lNode, *linkList;
int main() {
ios::sync_with_stdio(0);
int n, k, opt, m, x; linkList p, q, r; cin >> n,
p=(linkList)malloc(sizeof(lNode)), p->dat=0, p->nxt=nullptr,
q=(linkList)malloc(sizeof(lNode)), q->dat=1, q->nxt=p->nxt, p->nxt=q;
for(int i=2; i<=n; ++i) {
cin >> k >> opt, q=p;
while(q->nxt->dat^k) q=q->nxt;
if(opt) q=q->nxt;
r=(linkList)malloc(sizeof(lNode)), r->nxt=q->nxt, q->nxt=r, r->dat=i;
}
cin >> m;
for(int i=0; i<m; ++i) {
cin >> x, q=p;
while(q->nxt && q->nxt->dat^x) q=q->nxt;
if(q->nxt) r=q->nxt, q->nxt=r->nxt, free(r);
}
for(q=p->nxt; q; q=q->nxt) cout << q->dat << ' ';
return 0;
}