#abc217e. [abc217_e]Sorting Queries

[abc217_e]Sorting Queries

問題文

空の列 AA があります。クエリが QQ 個与えられるので、与えられた順番に処理してください。
クエリは次の 33 種類のいずれかです。

  • 1 x : AA の最後尾に xx を追加する。
  • 2 : AA の最初の要素を出力する。その後、その要素を削除する。このクエリが与えられるとき、AA は空でないことが保証される。
  • 3 : AA を昇順にソートする。

制約

  • 1leqQleq2times1051 \\leq Q \\leq 2 \\times 10^5
  • 0leqxleq1090 \\leq x \\leq 10^9
  • クエリ 2 が与えられるとき、AA は空でない。
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

QQ mathrmquery1\\mathrm{query} 1 mathrmquery2\\mathrm{query} 2 vdots\\vdots mathrmqueryQ\\mathrm{query} Q

ii 番目のクエリ mathrmqueryi\\mathrm{query} i では、まずクエリの種類 cic_i1,2,31, 2, 3 のいずれか)が与えられる。 ci=1c_i = 1 の場合はさらに整数 xx が追加で与えられる。

すなわち、各クエリは以下に示す 33 つの形式のいずれかである。

11 xx 22 33

出力

ci=2c_i = 2 を満たすクエリの回数を qq として qq 行出力せよ。
jj (1leqjleqq)(1 \\leq j \\leq q) 行目では jj 番目のそのようなクエリに対する答えを出力せよ。


入力例 1

8
1 4
1 3
1 2
1 1
3
2
1 0
2

出力例 1

1
2

入力例 11 において、 ii 番目のクエリを処理した後の AA の状態を ii 行目に示すと以下のようになります。

  • (4)(4)
  • (4,3)(4, 3)
  • (4,3,2)(4, 3, 2)
  • (4,3,2,1)(4, 3, 2, 1)
  • (1,2,3,4)(1, 2, 3, 4)
  • (2,3,4)(2, 3, 4)
  • (2,3,4,0)(2, 3, 4, 0)
  • (3,4,0)(3, 4, 0)

入力例 2

9
1 5
1 5
1 3
2
3
2
1 6
3
2

出力例 2

5
3
5

入力例 22 において、 ii 番目のクエリを処理した後の AA の状態を ii 行目に示すと以下のようになります。

  • (5)(5)
  • (5,5)(5, 5)
  • (5,5,3)(5, 5, 3)
  • (5,3)(5, 3)
  • (3,5)(3, 5)
  • (5)(5)
  • (5,6)(5, 6)
  • (5,6)(5, 6)
  • (6)(6)