type node=record
vt,ut:longint;
end;
var a:array[0..22000000]of node;
x,i,j,nit,n,k,vt,ut:longint;
fi,fo:text;
procedure up(i:longint);
var x,p:longint;
y:node;
begin
x:=a[i].ut;y:=a[i];
repeat
p:=i div 2;
if (p=0)or(a[p].ut<=x)then break;
a[i]:=a[p];
i:=p;
until false;
a[i]:=y;
end;
procedure down(i:longint);
var x,c:longint;
y:node;
begin
x:=a[i].ut;y:=a[i];
repeat
c:=i*2;
if (c<nit)and(a[c].ut>a[c+1].ut)then c:=c+1;
if (c>nit)or(a[c].ut>=x)then break;
a[i]:=a[c];
i:=c;
until false;
a[i]:=y;
end;
procedure insert(vt,ut:longint);
begin
inc(nit);
a[nit].vt:=vt;
a[nit].ut:=ut;
if nit>1 then up(nit);
end;
procedure popn;
var x,y:longint;
begin
dec(nit);
up(nit);
end;
procedure pop1;
var i:longint;
begin
a[1]:=a[nit];
dec(nit);
down(1);
end;
begin
assign(fi,'heap2.inp');reset(fi);
assign(fo,'heap2.out');rewrite(fo);
while not eof(fi)do
begin
read(fi,k);
if k=3 then
begin
if nit=0 then writeln(fo,'0')else
begin
writeln(fo,a[1].vt);
pop1;
end;
readln(fi);
end
else if k=1 then
begin
readln(fi,vt,ut);
insert(vt,ut);
end
else if k=2 then
begin
if nit=0 then writeln(fo,'0')
else
begin
writeln(fo,a[nit].vt);
popn;
end;
readln(fi);
end
else if k=0 then break;
end;
close(fi);close(fo);
end.
dHlwZSBub2RlPXJlY29yZAogICAgICB2dCx1dDpsb25naW50OwogICAgZW5kOwp2YXIgYTphcnJheVswLi4yMjAwMDAwMF1vZiBub2RlOwogICAgeCxpLGosbml0LG4sayx2dCx1dDpsb25naW50OwogICAgZmksZm86dGV4dDsKCnByb2NlZHVyZSB1cChpOmxvbmdpbnQpOwp2YXIgeCxwOmxvbmdpbnQ7CiAgICB5Om5vZGU7CmJlZ2luCiAgIHg6PWFbaV0udXQ7eTo9YVtpXTsKICAgcmVwZWF0CiAgICBwOj1pIGRpdiAyOwogICAgaWYgKHA9MClvcihhW3BdLnV0PD14KXRoZW4gYnJlYWs7CiAgICBhW2ldOj1hW3BdOwogICAgaTo9cDsKICAgdW50aWwgZmFsc2U7CiAgIGFbaV06PXk7CmVuZDsKCnByb2NlZHVyZSBkb3duKGk6bG9uZ2ludCk7CnZhciB4LGM6bG9uZ2ludDsKICAgIHk6bm9kZTsKYmVnaW4KICB4Oj1hW2ldLnV0O3k6PWFbaV07CiAgcmVwZWF0CiAgICBjOj1pKjI7CiAgICBpZiAoYzxuaXQpYW5kKGFbY10udXQ+YVtjKzFdLnV0KXRoZW4gYzo9YysxOwogICAgaWYgKGM+bml0KW9yKGFbY10udXQ+PXgpdGhlbiBicmVhazsKICAgIGFbaV06PWFbY107CiAgICBpOj1jOwogIHVudGlsIGZhbHNlOwogIGFbaV06PXk7CmVuZDsKCnByb2NlZHVyZSBpbnNlcnQodnQsdXQ6bG9uZ2ludCk7CmJlZ2luCiAgaW5jKG5pdCk7CiAgYVtuaXRdLnZ0Oj12dDsKICBhW25pdF0udXQ6PXV0OwogIGlmIG5pdD4xIHRoZW4gdXAobml0KTsKZW5kOwoKcHJvY2VkdXJlIHBvcG47CnZhciB4LHk6bG9uZ2ludDsKYmVnaW4KICAgZGVjKG5pdCk7CiAgIHVwKG5pdCk7CmVuZDsKCnByb2NlZHVyZSBwb3AxOwp2YXIgaTpsb25naW50OwpiZWdpbgogIGFbMV06PWFbbml0XTsKICBkZWMobml0KTsKICBkb3duKDEpOwplbmQ7CgpiZWdpbgogICBhc3NpZ24oZmksJ2hlYXAyLmlucCcpO3Jlc2V0KGZpKTsKICAgYXNzaWduKGZvLCdoZWFwMi5vdXQnKTtyZXdyaXRlKGZvKTsKICAgd2hpbGUgbm90IGVvZihmaSlkbwogICAgYmVnaW4KICAgICAgIHJlYWQoZmksayk7CiAgICAgICBpZiBrPTMgdGhlbgogICAgICAgIGJlZ2luCiAgICAgICAgIGlmIG5pdD0wIHRoZW4gd3JpdGVsbihmbywnMCcpZWxzZQogICAgICAgICAgYmVnaW4KICAgICAgICAgICB3cml0ZWxuKGZvLGFbMV0udnQpOwogICAgICAgICAgIHBvcDE7CiAgICAgICAgICBlbmQ7CiAgICAgICAgIHJlYWRsbihmaSk7CiAgICAgICAgZW5kCiAgICAgICBlbHNlIGlmIGs9MSB0aGVuCiAgICAgICAgYmVnaW4KICAgICAgICAgICByZWFkbG4oZmksdnQsdXQpOwogICAgICAgICAgIGluc2VydCh2dCx1dCk7CiAgICAgICAgZW5kCiAgICAgICBlbHNlIGlmIGs9MiB0aGVuCiAgICAgICAgYmVnaW4KICAgICAgICAgICBpZiBuaXQ9MCB0aGVuIHdyaXRlbG4oZm8sJzAnKQogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgIHdyaXRlbG4oZm8sYVtuaXRdLnZ0KTsKICAgICAgICAgICAgIHBvcG47CiAgICAgICAgICAgIGVuZDsKICAgICAgICAgICByZWFkbG4oZmkpOwogICAgICAgIGVuZAogICAgICAgZWxzZSBpZiBrPTAgdGhlbiBicmVhazsKICAgIGVuZDsKICAgY2xvc2UoZmkpO2Nsb3NlKGZvKTsKZW5kLgoK