#include<iostream>
#include<bits/stdc++.h>
using namespace std;
class hip
{
public:
int *a;
int cnt;
hip(){a=0,cnt=0;}
hip(int arr[],int n)
{
cnt=n;
a=new int[n];
for(int i=0;i<n;i++)
a[i]=arr[i];
for(int i=n-1;i>=0;i--)
{
down(i);
}
}
int top()
{
return a[0];
}
int getsize()
{
return cnt;
}
void down(int cur)
{
while(cur<cnt)
{
int next=-1;
int l=cur*2+1,r=cur*2+2;
int _max=INT_MAX;
if(l<cnt&&a[l]<_max)
{
next=l;
_max=a[l];
}
swap(l,r);
if(l<cnt&&a[l]<_max)
{
next=l;
_max=a[l];
}
if(next==-1)
break;
if(_max>=a[cur])
break;
swap(a[cur],a[next]);
cur=next;
}
}
void pop()
{
swap(a[0],a[cnt-1]);
cnt--;
down(0);
}
};
const int maxn=1e5;
int a[maxn];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
hip que=hip(a,n);
while(que.getsize())
{
cout<<que.top()<<' ';
que.pop();
}
}