#include<stdio.h>
#include<stdlib.h>
int i, j, pivot;
void swap(int* array, int a, int b)
{
int temp = array[a];
array[a] = array[b];
array[b] = temp;
}
int partition(int* array, int low, int high)
{
pivot = array[high];
i = low;
for (j = low; j < high; j++)
{
if (array[j] < pivot)
{
swap(array, i, j);
i++;
}
}
swap(array, i, high);
return i;
}
void quickSort(int* array, int low, int high)
{
if (low < high)
{
int pi = partition(array, low, high);
quickSort(array, low, pi - 1);
quickSort(array, pi + 1, high);
}
}
int main()
{
int N;
int* A;
scanf("%d", &N);
A = (int*)malloc(N*sizeof(int));
if (A == NULL)
{
return -1;
}
int n = N;
while (n--)
{
scanf("%d", &A[N - n - 1]);
}
quickSort(A, 0, N - 1);
for (int k = 0; k < N; k++)
{
printf("%d ", A[k]);
}
free(A);
}