#P2015. 骑士的荣耀:队列挑战

骑士的荣耀:队列挑战

题目描述

在一个繁荣的王国中,国王要在盛大的阅兵式上展示他的骑士团。骑士们被编号为 1 到 N,并且按照国王的指示排列队伍:

  1. 首先,11 号骑士进入队伍,这时队伍中只有他一个;
  2. 接下来,编号为 22NN 的骑士依次入列。编号为 ii 的骑士入列方式为:国王指定编号为 ii 的骑士站在编号为 11(i1)(i-1) 中某个骑士的左边或右边;
  3. 阅兵开始前,国王决定选出 MM 个骑士,这些骑士将被派往执行其他任务,剩下的骑士保持原有顺序。

在所有骑士按照上述方法排队完毕后,国王想知道从左到右所有骑士的编号。

输入格式

第一行一个整数 NN,表示有 NN 个骑士。

22NN 行,每行包含两个整数 kkpp,其中 kk 为小于 ii 的正整数,pp00 或者 11。若 pp00,则表示将 ii 号骑士插入到 kk 号骑士的左边,pp11 则表示插入到右边。

N+1N + 1 行为一个整数 MM,表示要去执行任务的骑士数目。

接下来 MM 行,每行一个正整数 xx,表示将 xx 号骑士从队列中移除,如果 xx 号骑士已经不在队列中则忽略这一条指令。 注意如果最后没有骑士了(所有骑士都被派往执行其他任务)请输出 1-1

输出格式

一行,包含最多 NN 个空格隔开的整数,表示队列从左到右所有骑士的编号。

样例输入输出

7
1 0
2 1
1 1
3 1
2 1
4 1
1
2
6 3 5 1 4 7

数据规模

1<𝑀𝑁1051 < 𝑀 \leq 𝑁 \leq 10^5