#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<math.h>
using namespace std;
int Partition(int a[], int l, int r)
{
srand((unsigned)time(NULL));
int p = (int)(round(1.0 * rand() / RAND_MAX * (r - l) + l));
int temp = a[l];
while (l < r)
{
while (l<r && a[r]>temp)r--;
a[l] = a[r];
while (l < r && a[l] <= temp)l++;
a[r] = a[l];
}
a[l] = temp;
return l;
}
void quickSort(int a[],int l,int r)
{
if (l >= r)return;
int pos = Partition(a, l, r);
quickSort(a, l, pos - 1), quickSort(a, pos + 1, r);
}
const int N=100010;
int main()
{
int a[N];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
quickSort(a,0,n-1);
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}