#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int h[1000002],nh,i,aux;
void urcare(int heap[],int p)
{
int aux;
while(p>=2&&heap[p/2]>heap[p])
{
aux=heap[p];
heap[p]=heap[p/2];
heap[p/2]=aux;
p=p/2;
}
}
void coborare(int heap[],int nh,int p)
{
int aux,r;
while(2*p<=nh)
{
r=2*p;
if(r+1<=nh&&heap[r+1]<heap[r])
{
r=r+1;
}
if(heap[p]>heap[r])
{
aux=heap[p];
heap[p]=heap[r];
heap[r]=aux;
p=r;
}
else
{
break;
}
}
}
int main()
{
fin>>nh;
for(i=1;i<=nh;i++)
{
fin>>h[i];
}
for(i=1;i<=nh;i++)
{
urcare(h,i);
}
for(i=nh;i>=2;i--)
{
aux=h[1];
h[1]=h[i];
h[i]=aux;
coborare(h,i-1,1);
}
for(i=nh;i>=1;i--)
{
fout<<h[i]<<" ";
}
fin.close();
fout.close();
return 0;
}