arr = []
import bisect
def insertValue(x):
    # TODO: 实现插入逻辑
    bisect.insort(arr, x)

def eraseValue(x):
    # TODO: 实现删除逻辑
    index = bisect.bisect_left(arr, x)
    if index<len(arr):
        if arr[index] == x:
            arr.pop(index)
def xCount(x):
    # TODO: 求x在集合中的个数
    return bisect.bisect_right(arr, x)-bisect.bisect_left(arr, x)

def sizeOfSet():
    # TODO: 返回集合大小
    return len(arr)

def getPre(x):
    # TODO: 实现找前驱
    if len(arr)==0:
        return -1
    index = bisect.bisect_left(arr, x)
    if index<=0:
        return -1 
    else:
        return arr[index-1]

def getBack(x):
    # TODO: 实现找后继
    if len(arr)==0:
        return -1
    index = bisect.bisect_right(arr, x)
    if index==len(arr):
        return -1
    elif index<=len(arr)-1: 
        return arr[index]
    else:
        return -1

def main():
    q = int(input())
    for _ in range(q):
        line = map(int,input().split())
        cnt,op,x=0,0,0
        for i in line:
            if(cnt==0):
                op=i
            else:
                x=i
            cnt+=1
        if op == 1:
            insertValue(x)
        elif op == 2:
            eraseValue(x)
        elif op == 3:
            print(xCount(x))
        elif op == 4:
            print(sizeOfSet())
        elif op == 5:
            print(getPre(x))
        elif op == 6:
            print(getBack(x))

if __name__ == "__main__":
    main()