#include<stdio.h>
#include<iostream>
using namespace std;
int num[10005];
int n;
void output();
int sort(int left,int right);
int main()
{
int i,j;
num[0]=1;
cin>>n;
for(i=0;i < n ;i ++)
{
cin>>num[i];
}
sort(0,n-1);//排序函数
output();
return 0;
}
int sort(int left,int right)//输入左右边界
{
int a=left,b=right+1;//为什么right要加一,因为后面是--b
int tmp=0;
if(a >= b)
{
return 0;
}
while(1)//每次找到左边比标准大的数和右边比标准小的数,交换
{
while(num[++a] < num[left] && a < right)
{
;
}
while(num[--b] > num[left] && b > left)
{
;
}
if(a >= b )
{
break;
}
tmp = num[a];
num[a] = num[b];
num[b] = tmp;
}
if(b >= 0)
{
tmp = num[left];
num[left] = num[b];
num[b] = tmp;
}
sort(left,b-1);
sort(b+1,right);
return 0;
}
void output()//输出函数
{
int i;
for(i=0;i<n;i++)
{
printf("%d\n",num[i]);
}
}