#include <bits/stdc++.h>
using namespace std;
int n,x,b,max1=0,T[200005];
int main()
{
stack<int> a;
cin>>n;
for(int i=1;i<=n;i++)
{
max1=0;
cin>>x;
if(x==0)
{
cin>>b;
a.push(b);
}
else if(x==1) a.pop();
else
{
int r=a.size();
if(a.empty()) cout<<0;
else
{
for(int i=r;i>=1;i--)
{
int y=a.top();
if(y>=max1)
{
max1=y;
T[i]=y;
a.pop();
}
}
cout<<max1<<endl;
for(int i=1;i<=r;i++) a.push(T[i]);
}
}
}
return 0;
}