import sys
import bisect
def solve():
try:
line=sys.stdin.readline()
if not line:
return
n=int(line.strip())
except ValueError:
return
#使用列表模拟有序集合
M=[]
for _ in range(n):
line=sys.stdin.readline().strip()
if not line:
continue
parts=list(map(int,line.split()))
opt=parts[0]
if opt==1:
x=parts[1]
#二分查找位置
idx=bisect.bisect_left(M,x)
if idx==len(M) or M[idx]!=x:
bisect.insort(M,x)
elif opt==2:
x=parts[1]
idx=bisect.bisect_left(M,x)
if idx!=len(M) and M[idx]==x:
M.pop(idx)
elif opt==3:
x=parts[1]
idx=bisect.bisect_left(M,x)
if idx!=len(M) and M[idx]==x:
print("YES")
else:
print("NO")
elif opt==4:
print(len(M))
elif opt==5:
x=parts[1]
idx=bisect.bisect_left(M,x)
if idx>0:
print(M[idx-1])
else:
print(-1)
elif opt==6:
x=parts[1]
idx=bisect.bisect_right(M,x)
if idx<len(M):
print(M[idx])
else:
print(-1)
if __name__=="__main__":
solve()