文理学院程序设计在线练习


银行维护

Time Limit: 1 Second(s)    Memory Limit: 32 MB

Total Submission(s): 29   Accepted Submission(s): 11
Problem Description

你需要写一个银行叫号系统,银行有n种柜台,每种柜台分为普通客户和至尊客户两种类型,至尊客户会排到同种柜台所有等待着的普通用户的前面。
如果同柜台没有等级之差,则按时间顺序叫号。
你需要支持以下的操作:
1.(1 ai bi)第ai种柜台来了一位客户,你需要将其加入队列中,并发放一个排队号。(输出C i,其中i为从1开始的排队号),bi为0则表示普通客户,为1则表示至尊客户。
2.(2 ai)第ai种柜台的当前客户服务完毕,你需要进行叫号(叫下一名客户,输出Q i,其中i为下一名对应柜台的客户)。

如果一个柜台的当前客户服务完毕,但是暂时没有下一位客户,则不要叫号,在下一位客户前来时直接叫号。
注意:至尊客户不能赶走当前正在服务的普通客户。

Input

每组数据第一行输入两个整数n,m(1 <= n <= 100,1 <= m <= 200000),分别代表柜台种类数量和操作数量。
随后m行,每行两或三个整数,具体内容请见题目描述和下面样例。

Output

对于每次操作输出题目需求的答案。
C i 表示给号为i。
Q i 表示叫号i。

Sample Input
3 11
1 1 0
1 1 0
1 1 0
1 1 1
1 1 1
2 1
1 2 1
2 1
2 2
2 1
2 1
Sample Output
C 1
Q 1
C 2
C 3
C 4
C 5
Q 4
C 6
Q 6
Q 5
Q 2
Q 3
Hint

样例中,一开始先有一名去第一种银行柜台服务的普通客户,发放编号1。
因为当前空闲,则直接服务(叫号 1)
随后又来了两名第一种银行柜台服务的普通客户,发放编号2,3。
随后又来了两名第一种银行柜台服务的至尊客户,发放编号4,5。
随后第一种柜台的该名顾客服务结束,于是叫号至尊客户4。
来了一名第二种柜台的普通用户,发放编号6。
因为当前第二种柜台空闲,则直接服务(叫号6)。
随后第一种柜台的该名顾客服务结束,于是叫号至尊客户5。
随后第二种柜台的该名顾客服务结束,但是因为第二种柜台没有顾客,故不叫号
随后第一种柜台的该名顾客服务结束,于是叫号普通客户2。
随后第一种柜台的该名顾客服务结束,于是叫号普通客户3。

Source

2019校赛