from heapq import heappush, heappop



Q = int(eval(input()))



update_count = 0

al = []

sl = 0

ar = []

sr = 0

b = 0

for _ in range(Q):

    # print(f'al:{al}, sl:{sl}')

    # print(f'ar:{ar},sr:{sr}')

    # print(f'b:{b}')

    # print()

    s = tuple(map(int, input().split()))

    if s[0] == 1:

        # 更新クエリ

        b += s[2]

        if update_count % 2 == 0:

            # 左に追加

            heappush(ar, s[1])  # 右に追加

            sr += s[1]

            x = heappop(ar)  # 右の最小値

            sr -= x

            heappush(al, -x)  # 左に追加

            sl += x

        else:

            # 右に追加

            heappush(al, -s[1])  # 左に追加

            sl += s[1]

            x = heappop(al)  # 左の最小値

            sl -= (-x)

            heappush(ar, -x)  # 右に追加

            sr += (-x)

        update_count += 1

        # 左キューalの最大値が中央値になっている

        # 左キューにheappushする際,負値に変換したので,heappopで最大値*(-1)が求まる

    else:

        # 求値クエリ

        x = heappop(al)  # 中央値

        heappush(al, x)

        x *= (-1)

        cnt_l = (update_count + 1) // 2

        cnt_r = update_count - cnt_l

        print((x, (cnt_l * x - sl) + (sr - cnt_r * x) + b))

from heapq import heappush, heappop

import sys



input = sys.stdin.readline



Q = int(eval(input()))



update_count = 0

al = []

sl = 0

ar = []

sr = 0

b = 0

for _ in range(Q):

    # print(f'al:{al}, sl:{sl}')

    # print(f'ar:{ar},sr:{sr}')

    # print(f'b:{b}')

    # print()

    s = tuple(map(int, input().split()))

    if s[0] == 1:

        # 更新クエリ

        b += s[2]

        if update_count % 2 == 0:

            # 左に追加

            heappush(ar, s[1])  # 右に追加

            sr += s[1]

            x = heappop(ar)  # 右の最小値

            sr -= x

            heappush(al, -x)  # 左に追加

            sl += x

        else:

            # 右に追加

            heappush(al, -s[1])  # 左に追加

            sl += s[1]

            x = heappop(al)  # 左の最小値

            sl -= (-x)

            heappush(ar, -x)  # 右に追加

            sr += (-x)

        update_count += 1

        # 左キューalの最大値が中央値になっている

        # 左キューにheappushする際,負値に変換したので,heappopで最大値*(-1)が求まる

    else:

        # 求値クエリ

        x = heappop(al)  # 中央値

        heappush(al, x)

        x *= (-1)

        cnt_l = (update_count + 1) // 2

        cnt_r = update_count - cnt_l

        print((x, (cnt_l * x - sl) + (sr - cnt_r * x) + b))

from heapq import heappush, heappop

Q = int(eval(input()))
update_count = 0
al = []
sl = 0
ar = []
sr = 0
b = 0
for _ in range(Q):
    # print(f'al:{al}, sl:{sl}')
    # print(f'ar:{ar},sr:{sr}')
    # print(f'b:{b}')
    # print()
    s = tuple(map(int, input().split()))
    if s[0] == 1:
        # 更新クエリ
        b += s[2]
        if update_count % 2 == 0:
            # 左に追加
            heappush(ar, s[1])  # 右に追加
            sr += s[1]
            x = heappop(ar)  # 右の最小値
            sr -= x
            heappush(al, -x)  # 左に追加
            sl += x
        else:
            # 右に追加
            heappush(al, -s[1])  # 左に追加
            sl += s[1]
            x = heappop(al)  # 左の最小値
            sl -= -x
            heappush(ar, -x)  # 右に追加
            sr += -x
        update_count += 1
        # 左キューalの最大値が中央値になっている
        # 左キューにheappushする際,負値に変換したので,heappopで最大値*(-1)が求まる
    else:
        # 求値クエリ
        x = heappop(al)  # 中央値
        heappush(al, x)
        x *= -1
        cnt_l = (update_count + 1) // 2
        cnt_r = update_count - cnt_l
        print((x, (cnt_l * x - sl) + (sr - cnt_r * x) + b))

from heapq import heappush, heappop
import sys

input = sys.stdin.readline
Q = int(eval(input()))
update_count = 0
al = []
sl = 0
ar = []
sr = 0
b = 0
for _ in range(Q):
    # print(f'al:{al}, sl:{sl}')
    # print(f'ar:{ar},sr:{sr}')
    # print(f'b:{b}')
    # print()
    s = tuple(map(int, input().split()))
    if s[0] == 1:
        # 更新クエリ
        b += s[2]
        if update_count % 2 == 0:
            # 左に追加
            heappush(ar, s[1])  # 右に追加
            sr += s[1]
            x = heappop(ar)  # 右の最小値
            sr -= x
            heappush(al, -x)  # 左に追加
            sl += x
        else:
            # 右に追加
            heappush(al, -s[1])  # 左に追加
            sl += s[1]
            x = heappop(al)  # 左の最小値
            sl -= -x
            heappush(ar, -x)  # 右に追加
            sr += -x
        update_count += 1
        # 左キューalの最大値が中央値になっている
        # 左キューにheappushする際,負値に変換したので,heappopで最大値*(-1)が求まる
    else:
        # 求値クエリ
        x = heappop(al)  # 中央値
        heappush(al, x)
        x *= -1
        cnt_l = (update_count + 1) // 2
        cnt_r = update_count - cnt_l
        print((x, (cnt_l * x - sl) + (sr - cnt_r * x) + b))

+import sys +input = sys.stdin.readline