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()