#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
int nums[N];
bool cmp(int a,int b){
return a>b;
}
template<typename _T,typename _Compare>
void myqsort(_T* l,_T* r,_Compare _Comp){
if(r<=l+1)
return ;
_T key=(*(rand()%(r-l)+l));
_T* i=l,*j=r-1;
while(i<j){
while(_Comp((*i),key))++i;
while(_Comp(key,(*j)))--j;
if(i<j){
swap((*i),(*j));
++i;
--j;
}
}
myqsort(i,r,_Comp);
myqsort(l,j,_Comp);
return ;
}
template<typename _T>
void myqsort(_T* l,_T* r){
myqsort(l,r,less<>());
return ;
}
int main(){
srand(time(NULL));
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",nums+i);
myqsort(nums+1,nums+n+1);
for(int i=1;i<=n;++i)
printf("%d ",nums[i]);
return 0;
}