class Stack:
    def __init__(self):  # 栈的初始化方法
        self.stack = []

    def push(self, x):  # 向栈中添加元素的方法
        self.stack.append(x)

    def pop(self):  # 弹出栈顶元素并返回的方法
        if self.is_empty():  # 如果栈为空
            return "error"  # 返回错误信息
        return self.stack.pop()  # 否则弹出并返回栈顶元素

    def top(self):  # 获取栈顶元素但不弹出的方法
        if self.is_empty():  # 如果栈为空
            return "error"  # 返回错误信息
        return self.stack[-1]  # 否则返回栈顶元素

    def is_empty(self):  # 判断栈是否为空的方法
        return len(self.stack) == 0  # 如果栈的长度为 0,则为空

n = int(input())  # 输入操作次数
stack = Stack()  # 创建栈实例

for _ in range(n):  # 循环 n 次
    op = input().split()  # 输入操作指令并分割
    if op[0] == "push":  # 如果是 push 操作
        stack.push(int(op[1]))  # 将元素添加到栈中
    elif op[0] == "pop":  # 如果是 pop 操作
        print(stack.pop())  # 输出弹出的栈顶元素
    elif op[0] == "top":  # 如果是 top 操作
        print(stack.top())  # 输出栈顶元素