#include<stdio.h>
int a[1000005] ;
int part (int *p ,int b ,int e)
{
int key ;
key = p[b] ;
while(b < e)
{
while (b < e && p[e] >= key)
{
e -- ;
}
p[b] = p[e] ;
while (b < e && p[b] <= key)
{
b ++ ;
}
p[e] = p[b] ;
}
p[b] = key ;
return b ;
}
void qsort (int *b ,int s ,int w )
{
int fgd ;
if (s < w)
{
fgd = part(b ,s ,w) ;
qsort(b ,s ,fgd - 1) ;
qsort(b ,fgd + 1 ,w) ;
}
}
int main ()
{
int part(int *p ,int b ,int e) ;
void qsort(int *b ,int s ,int w) ;
int n ,i ;
scanf("%d",&n) ;
for (i = 0 ;i < n ;i ++)
{
scanf("%d",&a[i]) ;
}
qsort(a ,0 ,n - 1) ;
for (i = n - 1 ;i >= 0 ;i --)
{
if (i == 0)
{
printf("%d\n",a[i]) ;
}
else
{
printf("%d ",a[i]) ;
}
}
return 0 ;
}