#include <stdio.h>
#define L 500003
using namespace std;
int v[L], n, w[L];
void merge_sort(int st, int dr){
int i, j, mij, q;
if(st>=dr)
return;
mij=(dr+st)/2;
merge_sort(st, mij);
merge_sort(mij+1, dr);
i=q=st;
j=mij+1;
while(i<=mij && j<=dr)
if(v[i]>v[j])
w[q++]=v[j++];
else
w[q++]=v[i++];
while(i<=mij)
w[q++]=v[i++];
while(j<=dr)
w[q++]=v[j++];
for(i=st; i<=dr; i++)
v[i]=w[i];
}
int main(){
FILE *fin, *fout;
int i;
fin=fopen("algsort.in", "r");
fout=fopen("algsort.out", "w");
fscanf(fin, "%d", &n);
for(i=1; i<=n; i++)
fscanf(fin, "%d", &v[i]);
merge_sort(1, n);
for(i=1; i<=n; i++)
fprintf(fout, "%d ", v[i]);
fclose(fin);
fclose(fout);
return 0;
}