using namespace std;
#define NMAX 500001
int v[NMAX];
void swap(int &x,int &y)
{
int aux=x;
x=y;
y=aux;
}
void qsort(int v[], int S, int F)
{
int piv=S+(F-S)/2;
int valPiv=v[piv];
swap(v[piv],v[F]);
int i,wall=S;
for(i=S;i<F;i++)
{
if(v[i]<=valPiv)
{
swap(v[i],v[wall]);
wall++;
}
}
swap(v[wall],v[F]);
if(wall>S) qsort(v,S,wall-1);
if(wall<F) qsort(v,wall+1,F);
}
#include <fstream>
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
int N;
f>>N;
int i;
for(i=1;i<=N;i++)
f>>v[i];
qsort(v,1,N);
for(i=1;i<=N;i++)
g<<v[i]<<' ';
}