#include <bits/stdc++.h>

using namespace std;

class Deck {
	private:
		deque<int> Deque;
		multiset<int> 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;
}