class BSTNode:
    def init(self, key):
        self.key = key
        self.left = None
        self.right = None


class BinarySearchTree:
    def init(self):
        self.root = None

    def insert(self, key):
        if self.root is None:
            self.root = BSTNode(key)
        else:
            self._insert(self.root, key)

    def _insert(self, node, key):
        if key < node.key:
            if node.left is None:
                node.left = BSTNode(key)
            else:
                self._insert(node.left, key)
        else:
            if node.right is None:
                node.right = BSTNode(key)
            else:
                self._insert(node.right, key)

    def inorder_traversal(self, node):
        if node is None:
            return []
        return self.inorder_traversal(node.left) + [node.key] + self.inorder_traversal(node.right)


def handle_input():
    try:
        n = int(input())
        if n < 0 or n > 10:
            print("Invalid input")
            return

        if n == 0:
            print("Tree is Empty")
            return

        keys = []
        for _ in range(n):
            key = input().strip()
            if not key.lstrip('-').isdigit():  # Check if the input is a valid integer
                print("Invalid input")
                return

            key = int(key)
            if key < -100 or key > 100:
                print("Invalid input")
                return

            keys.append(key)
            
        bst = BinarySearchTree()
        for key in keys:
            bst.insert(key)

        result = bst.inorder_traversal(bst.root)
        for value in result:
            print(value)

    except ValueError:
        print("Invalid input")
if name == "main":
    handle_input()