#include<bits/stdc++.h>
using namespace std;
int h[10000];
int n;
void swap(int x,int y)
{
int c;
c=h[x];
h[x]=h[y];
h[y]=c;
}
void up(int i)
{
if(i==1) return;
while(h[i]<h[i/2] && i!=1)
{
swap(i,i/2);
i=i/2;
}
}
void down(int i)
{
int t,flag=0;
while(i*2<=n && flag==0)
{
if(h[i]>h[i*2])
t=i*2;
else
t=i;
if(i*2+1<=n)
if(h[t]>h[i*2+1])
t=i*2+1;
if(t!=i)
{
swap(t,i);
i=t;
}
else
flag=1;
}
}
int deletemax()
{
int t;
t=h[1];
h[1]=h[n];
n--;
down(1);
return t;
}
int main(void)
{
scanf("%d",&n);
int num=n;
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
}
for(int i=n/2;i>=1;i--)
{
down(i);
}
for(int i=1;i<=num;i++)
{
printf("%d ",deletemax());
}
}