#include <iostream>
#include <deque>
template<typename T>
class MyStack
{
std::deque<T> c; // 容器
public:
bool Empty()
{
return c.empty();
}
size_t Size()
{
return c.size();
}
const T& Top()
{
return c.back();
}
void Push(const T& value)
{
c.push_back(value);
}
void Pop()
{
c.pop_back();
}
};
int main()
{
MyStack<int> myStack;
int n; // 对栈执行n次操作
std::cin >> n;
while (n--)
{
std::string op; // 操作名称
std::cin >> op;
if (op == "push")
{
int x;
std::cin >> x;
myStack.Push(x);
}
else if (op == "pop")
{
if (myStack.Empty())
{
std::cout << "error\n";
}
else
{
std::cout << myStack.Top() << '\n';
myStack.Pop();
}
}
else if (op == "top")
{
if (myStack.Empty())
std::cout << "error\n";
else
std::cout << myStack.Top() << '\n';
}
}
}