//Author:PanDaoxi
#include <iostream>
using namespace std;
const int maxn=101;
int a[maxn];
// 快速排序函数
void qsort(int left,int right){
// 递归边界:如果left>=right(即这一趟排序完成)
if(left>=right) return;
// 保存基准值和左右指针
int x=a[left],i=left,j=right;
while(i<j){
// 处理左右指针间的数值
while(i<j&&a[j]>=x) j--; // 右边数值比基准值大
a[i]=a[j];
while(i<j&&a[i]<=x) i++; // 右边数值比基准值小
a[j]=a[i];
}
a[i]=x; // 放回基准值
// 递归快速排序
qsort(left,i-1); // 左边序列排序
qsort(i+1,right); // 右边序列排序
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
// 快速排序:从数组a下标到n
qsort(1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}