听灌多
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int T,dui[1000006],tail=0,c,temp;
int main(){
cin>>T;
while(T--){
cin>>c;
if(c==1){
int x;
cin>>x;
dui[++tail]=x;
temp=tail;
while(temp>1){
if(dui[temp]<dui[temp/2]){
swap(dui[temp],dui[temp/2]);
}else break;
temp/=2;
}
//for(int i=1;i<=tail;i++)cout<<dui[i]<<' ';
//cout<<'\n';
}else if(c==2)cout<<dui[1]<<'\n';
else{
//cout<<"tail:"<<tail<<'\n';
swap(dui[1],dui[tail]);
tail--;
temp=1;
while(temp<tail){
if((temp<<1)+1>tail){
swap(dui[temp],dui[temp<<1]);
temp=temp<<1;
continue;
}
if(dui[temp<<1]<dui[(temp<<1)+1]){
swap(dui[temp],dui[temp<<1]);
temp=temp<<1;
}else{
swap(dui[temp],dui[(temp<<1)+1]);
temp=(temp<<1)+1;
}
}
//for(int i=1;i<=tail;i++)cout<<dui[i]<<' ';
//cout<<'\n';
}
}
return 0;
}