模板 堆
#include <iostream>
#include <queue>
using namespace std;
int main(){
freopen("main.in","r",stdin);
freopen("main.out","w",stdout);
priority_queue<int,vector<int> > q;
int n;
cin >> n;
while(n--){
int a,b;
cin >> a;
if(a==1){
cin >> b;
q.push(-1*b);
}
if(a==2) cout << -1*q.top() << endl;
if(a==3) q.pop();
}
return 0;
}