#include <bits/stdc++.h>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
/**int fastexpo(int a, int n)
{
int p = 1;
while(n)
{
if(n % 2 == 1) p = 1LL * p * a % mod;
a = 1LL * a * a % mod;
n /= 2;
}
return p;
}*/
int n;
int a[200005];
map <int, int> m;
int main()
{
int op, x, k = 0;
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> op;
if(op == 1)
{
fin >> x;
a[++k] = x;
m[x]++;
}
else if(op == 2)
{
fin >> x;
m[a[x]]--;
if(m[a[x]] == 0) m.erase(a[x]);
}
else fout << (m.begin()) -> first << '\n';
}
return 0;
}