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]
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_left=bisect.bisect_left(M,x)
idx_right=bisect.bisect_right(M,x)
print(idx_right-idx_left)
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()