#include<bits/stdc++.h>

using namespace std;

const int N=5e5+10;

int n;

int data[N];

void modify(int v)
{
    int l=v*2;
    int r=v*2+1;
    int Max;

    if(l<=n&&data[l]>data[v])
    {
        Max=l;
    }else
    {
        Max=v;
    }

    if(r<=n&&data[r]>data[Max]) Max=r;

    if(Max!=v)
    {
        swap(data[v],data[Max]);
        modify(Max);
    }
}

void build()
{
    for(int i=n/2;i>0;i--) modify(i);
}

int main()
{
    scanf("%d",&n);

    for(int i=1;i<=n;i++) scanf("%d",&data[i]);

    build();

    for(int i=1;i<=n;i++) printf(" %d",data[i]);
    puts("");

    return 0;
}

