#include<iostream>
#include<cstring>
using namespace std;
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0' || ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0' && ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
return x*f;
}
inline void write(int x)
{
if(x<0) x=-x,putchar('-');
if(x>9) write(x/10);
putchar(x%10+'0');
}
int n,a[100005],b[100005],ans;
void merge(int l,int r)
{
if(l==r) return;
int mid=(l+r)>>1;
merge(l,mid),merge(mid+1,r);
int s=l,e=mid+1,k=l;
while(s<=mid && e<=r)
{
if(a[s]>a[e]) b[k]=a[s],s++,k++;
else b[k]=a[e],e++,k++;
}
while(s<=mid) b[k]=a[s],s++,k++;
while(e<=n) b[k]=a[e],e++,k++;
for(register int i=l;i<=r;i++) a[i]=b[i];
return;
}
int main()
{
int i;
n=read();
for(i=1;i<=n;i++) a[i]=read();
merge(1,n);
for(i=n;i>=1;i--) write(a[i]),putchar(' ');
return 0;
}