#include using namespace std; class Deck { private: deque Deque; multiset Set; public: Deck() { } void addCard(int x) { Deque.push_front(x); Set.insert(x); } void removeBottomCard() { Set.erase(Deque.back()); Deque.pop_back(); } int maxCard() { return *prev(Set.end(), 1); } }; int main() { int t; cin >> t; Deck deck = Deck(); while (t--) { int op; cin >> op; if (op == 1) { int val; cin >> val; deck.addCard(val); } else if (op == 2) { deck.removeBottomCard(); } else { cout << deck.maxCard() << '\n'; } } return 0; }