#include<bits/stdc++.h>
#define ALL(x) (x).begin(),(x).end()
#define ll long long
#define pii_ pair<int,int>
#define mp_ make_pair
#define pb push_back
#define fi first
#define se second
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define show1(a) cout<<#a<<" = "<<a<<endl
#define show2(a,b) cout<<#a<<" = "<<a<<"; "<<#b<<" = "<<b<<endl
using namespace std;
const ll INF = 1LL<<60;
const int inf = 1<<30;
const int maxn = 2e5+5;
inline void fastio() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);}
vector<pii_> op;
vector<int> g;
int tr[maxn<<2];
ll sum[maxn<<2];
void update(int id,int stl,int str,int pos)
{
if(stl==str){
tr[id]++;return ;
}
int mid = (stl+str)>>1;
if(pos<=mid) update(id<<1,stl,mid,pos);
else update(id<<1|1,mid+1,str,pos);
tr[id] = tr[id<<1] + tr[id<<1|1];
}
int query(int id,int l,int r,int k)
{
if(l==r){
return l;
}
int mid = (l+r)>>1;
if(tr[id<<1] >= k) return query(id<<1,l,mid,k);
else return query(id<<1|1,mid+1,r,k-tr[id<<1]);
}
void change(int id,int l,int r,int pos,int k)
{
if(l==r){
sum[id] += k;
return ;
}
int mid = (l+r)>>1;
if(pos<=mid) change(id<<1,l,mid,pos,k);
else change(id<<1|1,mid+1,r,pos,k);
sum[id] = sum[id<<1] + sum[id<<1|1];
}
ll ask(int id,int stl,int str,int l,int r)
{
if(stl==l && str==r) return sum[id];
int mid = (stl+str)>>1;
if(r<=mid) return ask(id<<1,stl,mid,l,r);
else if(l>mid) return ask(id<<1|1,mid+1,str,l,r);
else return ask(id<<1,stl,mid,l,mid) + ask(id<<1|1,mid+1,str,mid+1,r);
}
int main()
{
fastio();
int q,o,a,b; cin>>q;
ll B = 0;
while(q--){
cin>>o;
if(o==1){
cin>>a>>b;
op.pb(mp_(a,b));
g.pb(a);
}else{
op.pb(mp_(-inf,-inf));
}
}
sort(ALL(g));
g.erase(unique(ALL(g)),g.end());
int n = g.size();
int cnt = 0;
for(auto x:op){
if(x.fi==-inf && x.se==-inf){
int id = query(1,1,n,(cnt+1)/2) - 1;
ll ans1 = g[id];
ll k = (cnt+1)/2;
ll ans2;
{
int L = 1,R = cnt,res=-1;
while(L<=R){
int mid = (L+R)>>1;
if(query(1,1,n,mid)>id+1) R=mid-1,res=mid;
else L = mid+1;
}
if(res==-1) ans2 = ans1 * cnt - ask(1,1,n,1,id+1);
else{
ll tmp = ask(1,1,n,1,id+1);
ans2 = ans1 * (res-1) - tmp + sum[1] - tmp - ans1 * (cnt-res+1);
}
}
cout<<ans1<<" "<<ans2+B<<endl;
}else{
int pos = lower_bound(ALL(g),x.fi)-g.begin()+1;
update(1,1,n,pos);
change(1,1,n,pos,x.fi);
cnt++;
B += x.se;
}
}
return 0;
}