/*
#include <stdio.h>
int n,i,j,k=0,a,b,c=0,d,e,s;
int qd[800];
void swap(int idx1,int idx2)
{
int temp= qd[idx1];
qd[idx1]=qd[idx2];
qd[idx2]=temp;
}
int change(int start,int end)
{
int pivot=qd[start];
s=start+1;
e=end;
while (s<=e)
{
while(qd[s]<pivot)
{
s++;
}
while(qd[e]>pivot)
{
e--;
}
if (s<=e)
swap(s,e);
}
{
swap(start,e);
return e;
}
}
void quick(int t,int g)
{
int v;
if (t<=g)
{
v=change(t,g);
quick(t,v-1);
quick(v+1,g);
}
}
int main()
{
for (i=0; i<8; i++)
{
scanf("%d",&qd[i]);
}
quick(0,7);
for (i=0; i<8; i++)
{
printf("%d ",qd[i]);
}
}
*/
#include <stdio.h>
int s[4500001];
void swap(int n1,int n2)
{
int temp= s[n1];
s[n1]=s[n2];
s[n2]=temp;
}
int qnsgkf(int start,int end)
{
int o,p,pivot=s[start];
o=start+1;
p=end;
while (o<=p)
{
while (pivot>=s[o])
{
o++;
}
while (pivot<s[p])
{
p--;
}
if (o<p)
{
swap(o,p);
}
}
swap(start,p);
return p;
}
int quick(int a,int b)
{
int g;
if (a<b)
{
g=qnsgkf(a,b);
quick(a,g-1);
quick(g+1,b);
}
}
int main()
{
int n,i;
scanf("%d",&n);
for (i=0; i<n; i++)
{
scanf("%d",&s[i]);
}
quick(0,n-1);
for (i=0; i<n; i++)
{
printf("%d ",s[i]);
}
}