#include<stdio.h>
int a[10000];
void QickSort(int a[],int l,int r)
{
int temp;
int i=l,j=r;
if(l<r)
{
temp=a[l];//存val的值
while(i!=j)
{
while(j>i&&a[j]>temp) --j;// 从右往左找出该数比val值小的数
if(i<j)
{
a[i]=a[j];//放在val的左 边
++i;//i右移动
}
while(i<j&&a[i]<temp) ++i;// 从左往右扫描,找出一个大于val的值
if(i<j)
{
a[j]=a[i];//放在val的右 边
--j;//j左移动
}
}
a[i]=temp;//将值放在找到的位置上
QickSort(a,l,i-1);//对该值左边序 列进行排序
QickSort(a,i+1,r);//对该值右边序 列进行排序
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
QickSort(a,0,n-1);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}