饭点了,有 m 个班总共 n 名同学来食堂排队打饭。
正常的打饭队伍应该是一个严格的队列结构,但是今天的饭堂一片混乱。
同学们依然是排成一个队列,但是每次入队的时候,他们会找到位置最靠后的同班同学,随后排在他后面。
队伍依然只有头部可以出队,但是同学们有可能在出队后再返回队列中重新买饭。
具体来说,队伍支持两种操作:
push x
:同学 i 入队,如果前面有 i 同学的同班同学,i 会排在最后一个同班同学的后面。否则排到队尾。
pop
:出队,队伍最前面的同学从队列中退出。
现在给出一系列的进出队操作,对于每次出队,请输出对应同学的编号。
同学和班级从 0 开始编号。
输入格式
第一行两个整数 n 和 m,分别表示同学个数和班级个数。
接下来每一行 n 个非负整数 Ai,表示同学 i 的班级。
接下来一行一个正整数 T,表示操作数目。
接下来 T 行,每行一个操作。
输出格式
对于每个出队操作输出一行,表示出队的同学编号。
样例输入
输入 #1
4 2
0 0 1 1
6
push 2
push 0
push 3
pop
pop
pop
样例输出
输出 #1
2
3
0
数据范围
对于 30% 的数据,有 1≤n≤100,1≤m≤10,1≤T≤50。
对于 100% 的数据,有 1≤n≤105,1≤m≤300,1≤T≤105。
输入保证操作合法。