#include <iostream>
#include <set>
#include <queue>

using namespace std;

int main()
{
    int n, op, card;
    queue<int> cards;
    multiset<int> maxCards;

    cin>>n;

    for(int i=0;i<n;i++){
        cin>>op;
        if(op == 1){
            cin>>card;
            cards.push(card);
            maxCards.insert(card);
        }
        else if(op == 2){
            card = cards.front();
            cards.pop();
            multiset<int>::iterator it = maxCards.find(card);
            maxCards.erase(it);
        }
        else if(op == 3){
            multiset<int>::iterator it2 = maxCards.end();
            it2--;
            cout<<*(it2)<<"\n";
        }
    }
    return 0;
}