#include using namespace std; struct type { int value; bool is_max; }; int main() { stack arr; stack max; int n; cin >> n; for (int i = 1; i <= n; i++) { int key; cin >> key; if (key == 1) { int x; cin >> x; if (max.size() == 0) { arr.push({x, true}); max.push(x); } else { if (x > max.top()) { arr.push({x, true}); max.push(x); } else { arr.push({x, false}); } } } else if (key == 2) { if (arr.top().is_max) max.pop(); arr.pop(); } else if (key == 3) { cout << max.top() << "\n"; } } }