#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")