您需要动态地维护一个初始为空的集合 ,并且支持以下操作: 操作 :向集合 中插入一个数 ,如果 在集合 中已经存在,则忽略本次操作。 操作 :从集合 中删除一个数 ,如果 不在集合 中,则忽略本次操作。 操作 :查询一个数 是否在集合 中。如果存在,输出 ;否则输出 。 操作 :查询集合 中元素的个数,即集合 的大小。 操作 :查询集合 中 的前驱(前驱定义为小于 且最大的数),如果前驱不存在,则输出 。 操作 :查询集合 中 的后继(后继定义为大于 且最小的数),如果后继不存在,则输出 。
输入描述:
第一行输入一个整数 (),表示操作的个数。 接下来 行,每行表示一次操作。对于操作 ,输入两个整数 和 (,),分别表示操作类型和操作的参数;对于操作 ,输入两个整数  ,表示操作类型。


输出描述:
对于操作类型为  的每次操作,按照题意输出对应的查询结果,每个结果占一行。
示例1

输入

4
1 4
4
2 4
3 4

输出

1
NO

说明

第一步插入操作向集合 M 中插入了元素 4
第二步查询操作类型为 4,查询集合大小,当前集合中只有元素 4,大小为 1,因此输出 1
第三步删除了集合 M 中的元素 4
第四步查询元素 4 是否在集合 M 中,不在,故输出 \text{NO}
示例2

输入

5
1 5
1 10
1 20
5 15
6 15

输出

10
20

说明

前三步插入操作使集合 M=\{5,10,20\}
第四步操作类型为 5,查询前驱,数字 15 在集合中前驱为 10,输出 10
第五步操作类型为 6,查询后继,数字 15 在集合中后继为 20,输出 20
加载中...