#include<bits/stdc++.h>
using namespace std;
int n,len,g;
int a[100005];
int h(int b){
if(a[b]>=a[b/2]){
return 0;
}
else{
swap(a[b],a[b/2]);
h(b/2);
}
}
int hf(int b){
if(a[b]>=a[b*2]&&a[b]>=a[b*2+1]){
return 0;
}
else if(a[b*2]>a[b*2+1]){
swap(a[b],a[b*2]);
h(b*2);
}
else {
swap(a[b],a[b*2+1]);
h(b*2+1);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int op;
cin>>op;
if(op==1){
len++;
cin>>a[len];
h(len);
}
if(op==2){
cout<<a[1]<<endl;
}
if(op==3){
a[1]=a[len];
a[len]=0;
len--;
hf(1);
}
}
}