Bugcat 目前正在维护一个队列。Bugcat 有一个特殊的偏好:它不希望队列中同时出现重复的数字。此外,所有进入队列的数字都必须在区间 $[1, m]$ 内。
你需要处理 $Q$ 次操作。操作共有三种类型:
- 类型 1 (Push):尝试将整数 $x$ 添加到队列的末尾。如果 $x$ 已经存在于队列中,则不进行任何操作。否则,将 $x$ 添加到队尾。
- 类型 2 (Pop):移除队头的元素。保证调用此操作时队列不为空。
- 类型 3 (Query):查找当前队列中的第 $x$ 个数字(索引从 1 开始,其中 1 表示队头)。如果队列中的元素少于 $x$ 个,则输出 $-1$。
你的任务是输出每次类型 3 操作的结果。
输入格式
第一行包含两个整数:$Q$(操作次数)和 $m$(元素的最大值),其中 $1 \le Q, m \le 10^6$。
接下来的 $Q$ 行描述了这些操作:
1 x:尝试将 $x$ 添加到队列中($1 \le x \le m$)。2:弹出队头的元素。3 x:查询队列中的第 $x$ 个元素($1 \le x \le Q$)。
输出格式
对于每个类型 3 的操作,在新的一行中打印结果。
样例
输入样例 1
10 10 1 3 1 5 2 3 1 3 2 1 3 1 5 1 8 3 2 3 3
输出样例 1
5 -1 3 8