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()) # 输出栈顶元素