#abc241d. [abc241_d]Sequence Query

[abc241_d]Sequence Query

問題文

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

  • 1 xAAxx を追加する。

  • 2 x kAAxx 以下の要素のうち、大きい方から kk 番目の値を出力する。(kkbf5\\bf{5} 以下)
    ただし、AAxx 以下の要素が kk 個以上存在しないときは -1 と出力する。

  • 3 x kAAxx 以上の要素のうち、小さい方から kk 番目の値を出力する。(kkbf5\\bf{5} 以下)
    ただし、AAxx 以上の要素が kk 個以上存在しないときは -1 と出力する。

制約

  • 1leqQleq2times1051\\leq Q \\leq 2\\times 10^5
  • 1leqxleq10181\\leq x\\leq 10^{18}
  • 1leqkleq51\\leq k\\leq 5
  • 入力は全て整数である

入力

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

QQ textquery1\\text{query}_1 textquery2\\text{query}_2 vdots\\vdots textqueryQ\\text{query}_Q

ii 番目のクエリ textqueryi\\text{query}_i では、まずクエリの種類 cic_i (1,2,31,2,3 のいずれか) が与えられる。
ci=1c_i=1 の場合は xx が追加で与えられ、ci=2,3c_i=2,3 の場合は x,kx,k が追加で与えられる。

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

11 xx 22 xx kk 33 xx kk

出力

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


入力例 1

11
1 20
1 10
1 30
1 20
3 15 1
3 15 2
3 15 3
3 15 4
2 100 5
1 1
2 100 5

出力例 1

20
20
30
-1
-1
1

textquery1,2,3,4\\text{query}_{1,2,3,4} が終了した段階で、A=(20,10,30,20)A=(20,10,30,20) となっています。

textquery5,6,7\\text{query}_{5,6,7} について、AA1515 以上の要素は (20,30,20)(20,30,20) です。
このうち小さい方から 11 番目の値は 202022 番目の値は 202033 番目の値は 3030 です。