#include<stdio.h>
#define MAXSIZE 100000
//typedef int KeyType;
typedef struct
{
int r[MAXSIZE+1];
int length;
}SqList;
int Partition(SqList *L,int low,int high)
{
int pivotkey;
L->r[0]=L->r[low];
pivotkey=L->r[low];
while(low<high)
{
while(low<high&&L->r[high]>=pivotkey)
--high;
L->r[low]=L->r[high];
while(low<high&&L->r[low]<=pivotkey)
++low;
L->r[high]=L->r[low];
}
L->r[low]=L->r[0];
return low;
}
void QSort(SqList *L,int low,int high)
{
int pivotloc;
if(low<high)
{
pivotloc=Partition(L,low,high);
QSort(L,low,pivotloc-1);
QSort(L,pivotloc+1,high);
}
}
void QuickSort(SqList *L)
{
QSort(L,1,L->length);
}
int main()
{
int i,j,k,n;
SqList L;
scanf("%d",&L.length);
L.r[0]=0;
for(i=1;i<=L.length;i++)
scanf("%d",&L.r[i]);
QuickSort(&L);
for(i=1;i<=L.length;i++)
printf("%d ",L.r[i]);
return 0;
}