from collections import deque
class Node:
    def __init__(self, key):
        self.left = None
        self.rigth = None
        self.val = key
        
    def insert (node, key):
        if node is None:
            return Node(key)
        if key < node.val:
            node.left = insert(node.left, key)
        else:
                node.right = insert(node.rigth, key)
                return node
                
        def level_order_traversal(root):
            result= []
            if not root:
                return result
                queue = deque([root])
            while queue:
             node = queue.popleft()
             result.append(str(node.val))
            if node.left:
             queue.append(node.left)
            if node.right:
             ueue.append(ode.right)
             return result
        def process_input(n, values):
            if n <= 0 or any(int (v) <= 0 for v in values):
                 print("Invalid input")
                 return 
            root = None
            for v in values:
               root = insert(root, int(v))
            print(' '.join(level_order_traversal(root)))
        if __name__ == "__main__":        
         n = int(input())
         values = input().split().split()
         process_input(n, values)