#include<bits/stdc++.h>
using namespace std;
struct node{
int chinese, math, english, sum;
};
bool operator<(node a, node b){
if(a.sum!=b.sum){
return a.sum<b.sum;
}
if(a.chinese!=b.chinese){
return a.chinese<b.chinese;
}
if(a.math!=b.math){
return a.math<b.math;
}
return a.english<b.english;
}
priority_queue<node> s;
void insertValue(int chinese, int math, int english){
s.push({chinese,math,english,chinese+math+english});
}
void deleteValue(){
if(!s.empty()){
s.pop();
}
}
node getTop(){
if(!s.empty()){
return s.top();
}
return {};
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int q,op;
int x, y, z;
cin>>q;
while(q--){
cin>>op;
if(op==1){
cin>>x>>y>>z;
insertValue(x, y, z);
}
if(op==2){
node tmp = getTop();
cout<<tmp.chinese<<" "<<tmp.math<<" "<<tmp.english<<endl;
}
if(op==3){
deleteValue();
}
}
return 0;
}