import heapq

class Student:
    def __init__(self, chinese, math, english):
        self.chinese = chinese
        self.math = math
        self.english = english
        self.sum = chinese + math + english
    
    def __lt__(self, other):
        # TODO: 实现比较逻辑,按照总分、语文、数学、英语的优先级排序
        #  """
        # 自定义小于比较逻辑,适配 heapq 的最小堆实现最大堆效果
        # 排序优先级:总分降序 > 语文降序 > 数学降序 > 英语降序
        # """
        # 1. 总分不同:总分大的,优先被弹出(所以总分大的返回True)
        if self.sum != other.sum:
            return self.sum > other.sum
        # 2. 总分相同,比较语文:语文大的为True,
        if self.chinese != other.chinese:
            return self.chinese > other.chinese
        # 3. 语文相同,比较数学:数学大的优先被弹出
        if self.math != other.math:
            return self.math > other.math
        # 4. 数学相同,比较英语:同上
        return self.english > other.english
# 使用Python的heapq模块实现优先队列
s = []

def insertValue(chinese, math, english):
    # TODO: 实现插入操作
    stu = Student(chinese,math,english)
    heapq.heappush(s,stu)

def deleteValue():
    # TODO: 实现删除操作
    if len(s)>0:
        heapq.heappop(s)

def getTop():
    # TODO: 返回成绩最好的学生
    if len(s)>0:
        return s[0]

if __name__ == "__main__":
    q = int(input())
    for _ in range(q):
        line = input().split()
        op = int(line[0])
        if op == 1:
            chinese = int(line[1])
            math = int(line[2])
            english = int(line[3])
            insertValue(chinese, math, english)
        elif op == 2:
            top = getTop()
            print(f"{top.chinese} {top.math} {top.english}")
        elif op == 3:
            deleteValue()