/*
TASK: festa
LANG: C
*/

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;


struct elem{
    long long pos;
    long long hora;
  elem(int p,int h)
  {
    pos=p;
    hora=h;
  }
};

struct cmp{
   bool operator()(elem p,elem q)
   {
      return p.pos<q.pos;
   };
};

vector<elem> a;
long long n=0;


long long abs(long long tt)
{
  if(tt>0)return tt;
  return -tt;
}


long long res[2][20000];
int rn=0;

long long calc(long long p)
{
  int i;
  long long res=0;
  for(i=0;i<n;i++)
    res+=a[i].hora*(abs(a[i].pos-p));
  return res;
}

long long b[10][200000];
long long c[2][200000];
long long cn=0;

void findbetween(long long p1,long long p2,long long s)
{
   if((p1-p2)<3)
   {
      c[0][cn]=p1+1;
      c[1][cn]=abs(s-calc(p1+1));
      cn++;
      return;
   };
   long long c1=calc((p1-p2)/2);
   c[0][cn]=(p1-p2)/2;
   c[1][cn]=abs(c1-s);
   cn++;
   if(c1>s){findbetween(p1,(p1-p2)/2,s);return;}
   if(c1<s){findbetween((p1-p2)/2,p2,s);return;}
   
}

void ask(long long s)
{
  cn=0;
  long long i;
  for(i=0;i<n;i++)
    {
      c[0][cn]=a[i].pos;
      c[1][cn]=abs(calc(a[i].pos)-s);
      cn++;
    }
  for(i=0;i<n;i++)
  {
     b[0][i]=a[i].pos;
     b[1][i]=calc(a[i].pos-1);
     b[2][i]=calc(a[i].pos+1);     
  };
  for(i=0;i<n-1;i++)
  {
     if(b[2][i]<s && b[1][i+1]>s)findbetween(b[0][i],b[0][i+1],s);
     c[0][cn]=b[0][i]+1;
     c[1][cn]=abs(s-calc(c[0][cn]));
     cn++;
     c[0][cn]=b[0][i+1]-1;
     c[1][cn]=abs(s-calc(c[0][cn]));
     cn++;
  }
  if(b[1][0]<s)
  {
     long long p1=b[0][0]-1;
     while(calc(p1)<s)
     {
       p1--;
     }
     c[0][cn]=p1;
     c[1][cn]=abs(s-calc(p1));
     cn++;
     c[0][cn]=p1+1;
     c[1][cn]=abs(s-calc(p1+1));
     cn++;
  }
  if(b[2][n-1]<s)
  {
     long long p1=b[0][n-1]+1;
     while(calc(p1)<s)
     {
       p1++;
     }
     c[0][cn]=p1;
     c[1][cn]=abs(s-calc(p1));
     cn++;
     c[0][cn]=p1-1;
     c[1][cn]=abs(s-calc(p1-1));
     cn++;
  }

  long long min=c[1][0];
  long long mini=c[0][0];
  for(i=1;i<cn;i++)
    if(c[1][i]<min){min=c[1][i];mini=c[0][i];};
  res[0][rn]=min;
  res[1][rn]=mini;
  rn++;
};



int main()
{
   long long flag,i,s;
   long long k,l;
   flag=1;
   while(!cin.eof())
   {
      cin>>flag;
      if(flag==1)
      {
        cin>>k>>l;

        s=0;
        if(n>0)
          for(i=0;i<n;i++)
          {
            if(a[i].pos==k)
              {a[i].hora+=l;s=1;}
          }
        if(s==0){a.push_back(elem(k,l));n++;}
      }
      if(flag==2)
      {
        cin>>k;
        sort(a.begin(),a.end(),cmp());
        ask(k);

        cout<<res[1][rn-1]<<" "<<res[0][rn-1]<<endl;


      }
   }

//   for(i=0;i<rn;i++)cout<<res[1][i]<<" "<<res[0][i]<<endl;
   
   return 0;
}
