//Mares Medar Razvan - Grupa 141
//HeapSort
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500005],n,i,temp,k,j;
void constrheap(int a[],int n){
for (i=1;i<n;i++){
temp=a[i];
k=(i-1)/2;
j=i;
while (j>0&&a[k]<temp){
a[j]=a[k];
j=k;
k=(j-1)/2;
}
a[j]=temp;
}
}
void sortezheap(int a[],int n){
for(i=n-1;i>=1;i--){
temp = a[i];
a[i] = a[0];
a[0] = temp;
constrheap(a, i);
}
}
int main(){
f>>n;
for (i=0;i<n;i++)
f>>a[i];
constrheap(a,n);
sortezheap(a,n);
for(i=0;i<n;i++)
g<<a[i]<<" ";
}