#include
#include
#include
using namespace std;
class Stack {
private:
vector v;
public:
void push(int data) {
v.push_back(data);
}
bool empty() {
return v.size()==0;
}
void pop() {
if(!empty()) {
v.pop_back();
}
}
int max() {
return *max_element(v.begin(),v.end());
}
};
int main() {
int n; cin>>n;
Stack s;
for(int i=0; i<n; i++) {
int k,max1=0,max2=0; cin>>k;
if(k==1) {
int x; cin>>x;
s.push(x);
}
if(k==2) {
s.pop();
}
if(k==3) {
cout<<s.max()<<"\n";
}
}
}