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