




def partition(a, left, right):
# 设置基准值下标:left
pivot = a[left]
# 放置小于等于基准值元素的下标
idx = left + 1
for i in range(left + 1, right + 1):
# 如果当前元素小于等于基准值,则放到最小元素那边
if a[i] <= pivot:
a[idx], a[i] = a[i], a[idx]
idx += 1
# 小于等于基准值的元素为[left+1, idx-1]
# 最后将基准值放在中间
a[left], a[idx - 1] = a[idx - 1], a[left]
# 返回基准值的下标
return idx - 1
def quicksort(a, left, right):
if left < right:
mid = partition(a, left, right)
quicksort(a, left, mid - 1)
quicksort(a, mid + 1, right)
n = int(input())
a = list(map(int, input().split()))
quicksort(a, 0, n - 1)
print(' '.join(map(str, a)))