#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,a[500001];
void quicksort(int A[],int f,int l);
int partition(int A[],int f,int l);
int main()
{
freopen ("algsort.in","r",stdin);
freopen ("algsort.out","w",stdout);
scanf ("%d",&n);
for (i=1;i<=n;scanf("%d",&a[i]),++i);
quicksort(a,1,n);
for (i=1;i<=n;printf("%d ",a[i]),++i);
return 0;
}
void quicksort(int A[],int f,int l)
{
int q;
if (f<l)
{
q=partition(A,f,l);
quicksort(A,f,q-1);
quicksort(A,q+1,l);
}
}
int partition(int A[],int f,int l)
{
int i,j,x;
i=f-1;
x=A[l];
for (j=f;j<l;++j)
if (A[j]<=x)
{
++i;
swap (A[i],A[j]);
}
swap(A[i+1],A[l]);
return i+1;
}