游戏“老狼老狼几点了?”(What Time Is It Mr. Fox?)是一个受欢迎的儿童游戏。一个孩子扮演狼,其余的孩子扮演羊。游戏在一个长度远大于宽度的场地上进行,因此我们假设游戏是在一条长度为 $L$ 微米的线段上进行的。位置 $0$ 是左侧,位置 $L$ 是右侧。
羊最初位于线段上的位置 $0$,而狼最初位于位置 $L/2$。游戏进行方式如下:
- 羊群喊出:“老狼老狼几点了?”(What time is it Mr. Fox?)。
- 狼宣布时间,可以是 $X$ 点(其中 $X \in \{1, 2, \dots, 11\}$),或者是“开饭啦!”(lunch time!)。
- 如果狼宣布的是 $X$ 点,那么所有羊向右移动 $X$ 步,然后游戏继续进行下一次喊话。
- 但如果狼宣布的是“开饭啦!”,羊群就会奔向距离它们最近的场地一侧。如果它们恰好位于场地正中间,它们会奔向右侧。
- 狼最多选择一只羊进行追赶。如果狼在羊到达其奔向的一侧之前抓住了它,那么这只羊在接下来的游戏里就被淘汰。
- 所有成功到达场地右侧的羊在接下来的游戏里都是安全的,不再参与游戏。
- 所有到达场地左侧的羊仍然留在游戏中。
- 在所有羊跑完之后,狼回到场地的中心,游戏继续进行,但只有留在左侧的羊继续参与。
每只羊 $i$ 对于每个可能的 $X \in \{1, 2, \dots, 11\}$ 都有不同的步长 $s_{i,X}$。因此,当狼宣布 $X$ 点时,羊 $i$ 会向场地右侧移动恰好 $X \cdot s_{i,X}$ 微米。如果这使它们到达或超过了右侧,它们会停在位置 $L$,并在下一次狼喊“开饭啦!”时被宣布安全。这些步长对某只羊来说可能不是递增的,例如,一只羊可能在 2 点时迈出两步较大的步子,但在 3 点时迈出三步微小的步子。
所有的羊以相同的速度奔跑,而狼的奔跑速度恰好是羊的两倍。因此,如果狼选择追赶一只距离其奔向的一侧还有 $D$ 微米的羊,如果 $L < 4D$,狼就会抓住这只羊;否则,这只羊将成功到达该侧而不会被抓住。
每次“开饭啦!”,狼会根据以下规则决定追赶哪只羊:
- 如果狼能抓住一只奔向右侧的羊,狼会选择其中编号 $i$ 最小的那只。
- 否则,如果狼能抓住一只奔向左侧的羊,狼会选择其中编号 $i$ 最小的那只。
- 否则,狼选择不追赶任何羊,所有羊都将成功到达它们奔向的一侧。
你将获得游戏中狼喊话的序列。你的任务是确定在每次“开饭啦!”喊话后,哪些羊到达了右侧,以及哪只羊被抓住了。
输入格式
输入的第一行包含三个整数 $N$($1 \le N \le 200\,000$)、$M$($1 \le M \le 200\,000$)和 $L$($2 \le L \le 10^8$),分别表示羊的数量、指令的数量以及场地的长度。羊的编号为 $1$ 到 $N$(包含 $1$ 和 $N$)。
接下来的 $N$ 行,每行包含恰好 11 个整数。第 $i$ 行的第 $X$ 个值是 $s_{i,X}$($1 \le s_{i,X} \le 10^8$),即当狼喊 $X$ 点时,羊 $i$ 向前移动的步长。
最后是 $M$ 行,每行包含一个 $1$ 到 $12$ 之间的整数。第 $j$ 个数表示狼的喊话:如果数字 $X$ 在 $1$ 到 $11$ 之间,表示 $X$ 点;如果 $X = 12$,表示“开饭啦!”。
保证 $L$ 是偶数,最多有 20 次“开饭啦!”喊话,且最后一次喊话一定是“开饭啦!”。
输出格式
对于每次“开饭啦!”喊话,输出两行。
第一行应包含在此次喊话后到达右侧的羊的编号列表。这些编号应按升序给出。如果在此次喊话中没有羊到达右侧,则输出 None。
第二行应包含在此次喊话中被狼抓住的羊的编号。如果狼在此次喊话中没有抓住任何羊,则输出 None。
样例
输入样例 1
2 6 16 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 4 1 12 6 6 12
输出样例 1
None 2 1 None
输入样例 2
2 4 10 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 4 10 12
输出样例 2
1 2 None
输入样例 3
3 5 20 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 3 3 3 3 3 3 3 3 3 3 3 10 12 10 10 12
输出样例 3
2 3 1 None None