#include <iostream>
using namespace std;
const int DEFAULT =10;
const int NOFOUND=0x7fffffff;
template <typename T>
class MyStack
{
private:
int _capacity,_rsp;
int* _nums;
public:
MyStack(int n=DEFAULT):_rsp(0)
{
_capacity=n;
_nums=new T[_capacity];
}
~MyStack();
T top ()const;
void pop();
void push(const T& x);
private:
void expand();
};
// template <typename T>
// MyStack<T>::MyStack(int n=DEFAULT):_rsp(0)
// {
// _capacity=n;
// _nums=new T[_capacity];
// }
template <typename T>
MyStack<T>::~MyStack()
{
_capacity=0;
_rsp=-1;
delete []_nums;
_nums=NULL;
}
template <typename T>
void MyStack<T>::expand()
{
// assert at least one dupulicant
if(_rsp<_capacity)
return;
T* _oldNums=_nums;
_capacity=_capacity*7;
_nums=new T[_capacity];
for(int i=_rsp-1;0<=i;--i)
{
_nums[i]=_oldNums[i];
}
delete _oldNums;
}
template <typename T>
T MyStack<T>::top ()const
{
if(_rsp==0) return (T)(NOFOUND);
return _nums[_rsp-1];
}
template <typename T>
void MyStack<T>::pop()
{
if(_rsp==0) return ;
--_rsp;
}
template <typename T>
void MyStack<T>::push(const T& x)
{
expand();
_nums[_rsp++]=x;
}
int main()
{
ios::sync_with_stdio(false);
int n,x;
char c;
MyStack<int> ms;
while (cin >> n)
{
while(0<n--)
{
cin>>c;
if(c=='A')
{
if(NOFOUND!=ms.top())
cout<<ms.top()<<endl;
else
cout<<"E"<<endl;
}
else if(c=='P')
{
cin>>x;
ms.push(x);
}
else
{
ms.pop();
}
}
}
}
// 64 位输出请用 printf("%lld")