#P5075. 「FJSC2018TGD7T2」K优先队列

「FJSC2018TGD7T2」K优先队列

Description

你需要维护一个队列,支持以下两种操作:

  1. 加入一个非负整数xx

  2. 取出当前队列中第kk大的数字。

保证进行第二种操作时,队列中至少有kk个数字。

部分数据经过加密,你需要依次处理每个操作才能获得正确的下一个操作。

Input Format

queue.in 读入数据

第一行包括三个非负整数n,k,pn,k,p,分别表示操作次数,参数kk以及数据是否进行过加密。

接下来nn行,每行先给出一个数optopt,表示操作类型。若opt=1opt=1,接下来还会有一个非负整数xx,若p=0p=0,表示往队列中加入xx,若p=1p=1,表示往队列中加入xx异或上前一次出队操作取出的数字后得到的结果,如果还未进行过出队操作,把前一次取出的数字看作00。若opt=2opt=2,表示要求取出并输出当前队列中第kk大的数字。

Output Format

queue.out 输出数据

对于每一个出队操作,输出一个正整数表示答案。

Sample

样例输入1

5 2 1
1 2
1 3
2
1 3
2

样例输出1

2
1

Hint

对于前20%20\%的数据,k=1k=1

对于前40%40\%的数据,k10k\le10

对于另外30%30\%的数据,p=0p=0

对于100%100\%的数据,1kn21051\le k\le n\le2\ast{10}^50x1090\le x\le{10}^9