N, Q = map(int, input().split()) m = {} l = [] a = N for _ in range(Q): q = input().split() t = int(q[0]) if t == 1: s, r = q[1], int(q[2]) m[s] = {'r': r, 'u': False} if len(m) > a: sm = sorted(m.items(), key=lambda x: (-x[1]['u'], -x[1]['r'], x[0])) ms = {n: i for n, i in sm[:a]} ml = [n for n in m if n not in ms] l.extend(sorted(ml, key=lambda x: (m[x]['r'], x))) m = ms elif t == 2: x = int(q[1]) a -= x if len(m) > a: sm = sorted(m.items(), key=lambda x: (-x[1]['u'], -x[1]['r'], x[0])) ms = {n: i for n, i in sm[:a]} ml = [n for n in m if n not in ms] l.extend(sorted(ml, key=lambda x: (m[x]['r'], x))) m = ms elif t == 3: s, x = q[1], int(q[2]) a += x if s in m: m[s]['u'] = True print("\n".join(l))