#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
int main()
{
map<int,int >mp;
map<int, int>::iterator it;
int r,k,p;
while(scanf("%d",&r)&&r!=0){
if(r==1){
scanf("%d %d",&k,&p);
mp[p]=k;
}else if(r==2){
if(!mp.size()){
printf("0\n");
}
else{
it=mp.end();
it--;
printf("%d\n",it->second);
mp.erase(it);
}
}else if(r==3){
it=mp.begin();
printf("%d\n",it->second);
mp.erase(it);
}
}
return 0;
}