#include<iostream>
using namespace std;
const int N=1e5+1;
int a[N],te[N];
void merger_sort(int a[],int l,int r) {
if(l>=r)return;
int mid=r+l>>1;
merger_sort(a,l,mid);
merger_sort(a,mid+1,r);
int i=l,j=mid+1,k=l;
while(i<=mid&&j<=r) {
if(a[i]>a[j])te[k++]=a[j++];
else te[k++]=a[i++];
}
while(i<=mid)te[k++]=a[i++];
while(j<=r)te[k++]=a[j++];
for(i=l; i<=r; i++)
a[i]=te[i];
}
int main()
{
int n,i;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
merger_sort(a,0,n-1);
for(i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}