#include <iostream>
#include <fstream>
#define NMAX 500005
using namespace std;
int a[NMAX],N;
void qswap(int i, int j)
{
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
void qsort(int left, int right)
{
if(left>=right)
return;
int piv=left+(right-left)/2;
qswap(left,piv);
int last=left;
for(int i=left+1; i<=right; i++)
{
if(a[i]<a[left])
qswap(++last,i);
}
qswap(last,left);
qsort(left,last-1);
qsort(last+1,right);
}
int main()
{
freopen("algsort.in","rt",stdin);
freopen("algsort.out","wt",stdout);
scanf("%d", &N);
for(int i=1;i<=N;i++)
scanf("%d", &a[i]);
qsort(1,N);
for(int i=1;i<=N;i++)
cout<<a[i]<<' ';
return 0;
}