queue

题目背景

你说的对,但是舞萌 DX 是一款后面忘了。

题目描述

**补充说明:这里的排队和传统的排队有出入。正在游玩的人为队列的前两位,所以正在游玩视为正在排队。** 机厅里有一台游戏机,每次可供最多两人同时游玩。但是来玩的人显然不止两个!这个时候他们就需要排队了,而你需要写一个程序维护这个队列,并在他人游玩结束后通知接下来上场的人。在整个过程中,有以下几种事件可能发生: - `start`:一局游戏开始。若这不是第一局游戏,则上一局的参与者**在这一局游戏开始前一瞬间**按照原本的顺序回到队尾。此时你应该按在队列中的顺序输出这一局上场的人的名字(正常来讲是队列前两位或者唯一一个人),若有两个则以空格分割。若这一局无人上场,则输出 `Error` 并忽略这条事件。 - `arrive x`:$x$ 到达机厅并且将自己加入队尾,此时 $x$ 不应该在排队,否则输出 `Error` 并忽略这条事件。若该事件成功执行则输出 `OK`。 - `leave x`:$x$ 离开机厅并离开队列。此时 $x$ 应该在排队但不应该在游玩,否则输出 `Error` 并忽略这条事件。若该事件成功执行则输出 `OK`。 你需要维护队列信息,并输出上述事件中要求的输出。

输入输出格式

输入格式


第一行一个整数 $n$,表示事件条数。 接下来 $n$ 行,每行表示一条事件。

输出格式


按照题目要求输出 $n$ 行,表示程序对事件的响应。

输入输出样例

输入样例 #1

14
start
arrive A
start
arrive B
arrive C
arrive D
start
leave C
leave D
start
arrive A
arrive D
leave E
start

输出样例 #1

Error
OK
A
OK
OK
OK
B C
Error
OK
A B
Error
OK
Error
C D

输入样例 #2

3
arrive A
arrive B
arrive C

输出样例 #2

OK
OK
OK

说明

**【样例说明】** 样例 $1$ 中发生了如下的事件: - 第一次 `start` 时队列并没有任何人,输出 `Error`。 - `A` 随即加入队列。 - 第二次 `start` 时仅有 `A` 一个人,所以输出 `A`。 - `B, C, D` 随即依次加入队列。 - 第三次 `start` 时 `B, C` 上场。 - `C` 试图离开,但是他在游玩。所以输出 `Error`。 - `D` 成功离开。 - 第四次 `start` 时 `A, B` 上场。 - `A` 试图加入队列,但是他已经在队列中。输出 `Error`。 - `D` 重新加入队列。 - `E` 试图离开,但是他根本不在排队,输出 `Error`。 - 第五次 `start` 时 `C, D` 上场。 样例 $2$ 中,`A, B, C` 依次入队,操作合法,输出三个 `OK`。 **【数据范围】** 对于 $20\%$ 的数据,保证 $n=1$。 对于 $40\%$ 的数据,保证 $n\le 2000$。 对于另外 $20\%$ 的数据,保证没有 `leave` 操作。 对于另外 $20\%$ 的数据,人名只有可能是单个大写字母。 对于 $100\%$ 的数据,保证 $1 \le n\le 10^5$,人名仅含有大小写字母且长度不超过 $10$。 **本题输入输出量较大,请注意使用合理的输入输出方式。**