#abc294d. [abc294_d]Bank

[abc294_d]Bank

题目描述

NN个人,编号为1122\dotsNN,在一家银行前排队。
将发生QQ个事件。以下三种事件可能发生。

  • 1:出纳员叫号尚未被叫的编号最小的人。
  • 2 x:编号为xx的人第一次来到出纳员处。(这里,人xx已经被出纳员叫过至少一次。)
  • 3:出纳员再次叫号已经被叫过但还没来的编号最小的人。

输出出纳员在第三种事件中叫号的人的编号。

约束条件

  • 1N5×1051 \leq N \leq 5 \times 10^5
  • 2Q5×1052 \leq Q \leq 5 \times 10^5
  • 当所有人至少被叫过一次时,不会发生第一种事件。
  • 对于每个第二种事件,编号为xx的人至少已经被出纳员叫过一次。
  • 对于每个第二种事件,编号为xx的人不会再次去找出纳员。
  • 当所有已经被叫的人都已经到过出纳员时,不会发生第三种事件。
  • 至少会有一个第三种事件发生。
  • 输入中的所有值都是整数。

输入

从标准输入读入数据,输入格式如下,其中eventi\text{event}_i表示第ii个事件:

NN QQ event1\text{event}_1 event2\text{event}_2 \vdots eventQ\text{event}_Q

每个事件的描述符以以下格式之一给出:

1
```2 $x$
```plain
3

输出

输出XX行,其中XX是第三种事件的事件数量。
ii行应包含第ii个第三种事件中被叫号的人的编号。


示例输入1

4 10
1
1
3
2 1
1
2 3
3
1
2 2
3

示例输出1

1
2
4

对于每个i=1,2,,Qi = 1, 2, \dots, Q,以下是在第ii个事件之前已经被叫过但还没来的人的集合。

  • i=1i=1{}\lbrace \rbrace
  • i=2i=2{1}\lbrace 1\rbrace
  • i=3i=3{1,2}\lbrace 1,2\rbrace
  • i=4i=4{1,2}\lbrace 1,2\rbrace
  • i=5i=5{2}\lbrace 2\rbrace
  • i=6i=6{2,3}\lbrace 2,3\rbrace
  • i=7i=7{2}\lbrace 2\rbrace
  • i=8i=8{2}\lbrace 2\rbrace
  • i=9i=9{2,4}\lbrace 2,4\rbrace
  • i=10i=10{4}\lbrace 4\rbrace

对于i=3,7,10i=3,7,10的事件是第三种事件,因此您应该打印这些事件的集合中编号最小的人:1,2,41, 2, 4