#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
ifstream fin("heap.in");
ofstream fout("heap.out");
const int MAXN=200005;
int valofid[MAXN];
int main() {
int n;
fin>>n;
set<pair<int,int>>s;
int insert_count=0;
for(int i=0;i<9;i++){
int type;
fin>>type;
if(type==1){
int x;
fin>>x;
insert_count++;
valofid[insert_count] = x;
s.insert({x, insert_count});
}
else if(type==2){
int x;
fin>>x;
s.erase({valofid[x],x});
}
else if (type==3){
fout<<s.begin()->first<<endl;
}
}
return 0;
}