class Node: def __init__(self,data): self.data = data self.next = None class Stack: def __init__(self): self._head = None self._size = 0 def push(self,data): new_node = Node(data) new_node.next = self._head self._head = new_node self._size += 1 def pop(self): if self._size==0: return -1 data = self._head = self._head self._head = self._head.next self._size -= 1 return data def top(self): if self._size==0: return -1 else: return self._head.data def size(self): return self._size def isEmpty(self): return self._size==0 # Driver code if __name__ == "__main__": q = int(input()) stack = Stack() for _ in range(q): query = list(map(int,input().split())) if query[0]==1: stack.push(query[1]) elif query[0]==2: print(stack.pop()) elif query[0]==3: print(stack.top()) elif query[0]==4: print(stack.size()) elif query[0]==5: print(stack.isEmpty())