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