p3378
#include<bits/stdc++.h>
using namespace std;
#define sc(x) scanf("%lld",&x)
long long n,a,b,d[4000005],id,y,da[4000005],c=2;
void ru()
{
y=id;
d[id]=b;
while(d[y]<d[y/2]&&y/2>0)
{
swap(d[y],d[y/2]);
y/=2;
}
}
void chu()
{
y=1;
swap(d[y],d[id]);
d[id]=0;id--;
while(y*2<=id)
{
if(d[y*2]<=d[y*2+1]&&d[y]>d[y*2])
{
swap(d[y],d[y*2]);
y*=2;
}
else
if(d[y]>d[y*2+1]&&d[y*2]>d[y*2+1]&&y*2+1<=id)
{
swap(d[y],d[y*2+1]);
y*=2+1;
}
else
break;
}
}
int main()
{
sc(n);
for(int i=0;i<n;i++)
{
sc(a);
if(a==1)
{
sc(b);
id++;
ru();
}
if(a==2)
{
printf("%lld\n",d[1]);
c=2;
}
if(a==3)
{
chu();
}
}
return 0;
}