#include<bits/stdc++.h>
using namespace std;
int n,a[1000],c[1000];
void mergesort(int l,int r){
if(l>=r)return;
int mid=(l+r)/2;//l是最左边角色r是最右边的角色,选择中间
mergesort(l,mid);//先算左角色
mergesort(mid+1,r);//再算有角色
int ilen=mid-l+1,jlen=r-mid;//角色合作,i为左边初始位置,k是太平间的起始位置
int i=l,j=mid+1,k=1;
while(i<=mid&&j<=r){
if(a[i]<a[j])c[k++]=a[i++];//没有技术含量如果大的赢
else c[k++]=a[j++];
}
while(i<=mid)c[k++]=a[i++];
while(j<=r)c[k++]=a[j++];
for(int i=1;i<=r-l+1;i++)a[l+i-1]=c[i];
}
int main(){
cin>>n;//输入
for(int i=1;i<=n;i++){
cin>>a[i];
}
mergesort(1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";//输出
}
return 0;
}
/**************************************************************
Problem: 1010
User: zhengyuxuan
Language: C++
Result: Accepted
Time:10 ms
Memory:2080 kb
****************************************************************/