#include <bits/stdc++.h>
#define int long long
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
constexpr int MOD = 998244353;
constexpr int INF = numeric_limits<int>::max() / 2;
typedef pair<int,int> P;
using Graph = vector<vector<int>>;


signed main(){
	cin.tie(nullptr);
	ios::sync_with_stdio(false);

	int N;
	cin >> N;
	int a, b, c;
	int ans = 0, num = 0;
	int cou0{}, cou1{};
	P med = P(INF, 0);
	multiset<P> st;
	rep(i,N){
		cin >> a;
		if(a == 1){
			++num;
			cin >> b >> c;
			P p = P(b,num);
			ans += c;
			st.insert(p);
			if(med.first == INF){
				med = p;
			}
			else{
				if(med > p){
					cou0++;
				}
				else{
					cou1++;
				}
				ans += abs(med.first-b);
			}

			if(cou1 - cou0 == 2){
				auto itr = st.lower_bound(med);
				++itr;
				P p1 = *itr;
				ans -= abs(p1.first - med.first);
				med = p1;
				cou0 = 0, cou1 = 0;
			}
			else if(cou0 - cou1 == 1){
				auto itr = st.lower_bound(med);
				--itr;
				P p1 = *itr;
				// ans -= abs(med.first - p1.first);
				med = p1;
				cou0 = 0, cou1 = 1;
			}
		}
		else{
			cout << med.first << ' ' << ans << endl;
		}
	}
 }