class Node:
    def __init__(self, data):
        self.data = data
        self.prev = None
        self.next = None

class DoublyLinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            return
        temp = self.head
        while temp.next:
            temp = temp.next
        temp.next = new_node
        new_node.prev = temp

    def sort(self):
        if not self.head:
            return
        
        current = self.head
        while current:
            index = current.next
            while index:
                if current.data > index.data:
                    # Swap the data
                    current.data, index.data = index.data, current.data
                index = index.next
            current = current.next

    def print_list(self):
        temp = self.head
        result = []
        while temp:
            result.append(str(temp.data))
            temp = temp.next
        print(" ".join(result))


# ----------- Main Program -----------
try:
    n = int(input())
    bid_values = input().split()

    if len(bid_values) != n:
        print("Invalid input")
    else:
        dll = DoublyLinkedList()
        for val in bid_values:
            if not val.isdigit():
                print("Invalid input")
                break
            dll.append(int(val))
        else:
            dll.sort()
            dll.print_list()

except:
    print("Invalid input")