#include <stdio.h>
#define N 100010
int n = 0;
int a[N];
void paixu(int a[], int left, int right)
{
if(left >= right) //如果指针相遇说明排完本轮,则开始返回递归
{
return;
}
int i = left - 1;
int j = right + 1;
int mid = a[(left + right)/2];
while(i < j)
{
do
{
i++; //防止死循环
}while(a[i] < mid);
do
{
j--;
}while(a[j] > mid);
if(i < j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
paixu(a,left,j);
paixu(a,j+1,right);
}
int main()
{
scanf("%d",&n);
for(int i = 0; i < n; i++) //输入
{
scanf("%d",&a[i]);
}
paixu(a,0,n-1);
for(int i = 0; i < n; i++) //输出
{
printf("%d ",a[i]);
}
return 0;
}