给定集合 S = { a_1,\dots,a_n } ,依次给出 q 个以下形式的指令:
0 x :若 x \notin S,将 x 加入 S 中。1 x :若 x \in S,将 x 从 S 中删除。2 x :输出 S 的第 x 小元素,若 |S| < x 则输出 -1 。3 x :输出 S 中小于等于 x 的元素个数。4 x :输出 S 中小于等于 x 的最大元素,若不存在则输出 -1 。5 x :输出 S 中大于等于 x 的最小元素,若不存在则输出 -1 。输入
第一行两个正整数 n,q (1 \leq n,q \leq 2 \times 10^5),表示 S 的初始元素个数和指令个数。
第二行 n 个单调递增的正整数 a_i (1 \leq a_i \leq 10^9),表示 S 的初始元素。
随后 q 行每行一条指令 (1 \leq x \leq 10^9),具体格式见上。
输出
对每个形如 2 x 3 x 4 x 5 x 的指令,输出一行一个整数,表示对应询问的内容。
样例
| 标准输入 复制文本 |
9 10 1 3 5 6 8 9 17 18 32 0 16 0 1 2 10 0 2 1 18 2 24 4 15 4 1 2 26 0 3 |
| 标准输出 复制文本 |
32 -1 9 1 -1 |