#include <iostream>
using namespace std;
#define MAX 2000000
int H,A[MAX+1];

void max(int i){
    int l,r,lmax;
    l=2*i;
    r=2*i+1;
    if(l<=H&&A[l]>A[i])lmax=l;
    else lmax=i;
    if(r<=H&&A[r]>A[lmax])lmax=r;
    if(lmax!=i){
        swap(A[i], A[lmax]);
        max(lmax);
    }
}
int main(){
    cin>>H;
    for(int i=1; i<=H; i++)cin>>A[i];
    for(int i=H/2; i>=1; i--)max(i);
    for(int i=1; i<=H; i++){
        cout<<" "<<A[i];
    }
    cout<<endl;
    return 0;
}
