#include <iostream>
#include <fstream>
#include <set>
#define nmax 100005
using namespace std;
multiset <int> s;
multiset <int> :: iterator it;
int n,v[nmax],m,k;

int main()
{
    int i,j;
    ifstream f("date.in");
    for (cin>>n;n;n--) {
        cin>>i;
        if (i==1) {
            cin>>v[++m];
            s.insert(v[m]);
        }
        if (i==2) {
            k++;
            s.erase(s.find(v[k]));
        }
        if (i==3) {
            it=s.end();it--;
            cout<<*it<<'\n';
        }
    }


    return 0;
}