#include <stdio.h>
#define MAX 2000000

int H,A[MAX+1];

void maxHeapify(int i){
    int l,r,largest,temp;
    l=2*i;
    r=2*i+1;
    if(l <= H && A[l] > A[i])
        largest=l;
    else
        largest=i;
    if(r <= H && A[r] > A[largest])
        largest=r;

    if(largest != i){
        temp=A[i];
        A[i]=A[largest];
        A[largest]=temp;
        maxHeapify(largest);
    }
}

int main(void){
    int i;
    scanf("%d",&H);
    for(i=1;i<=H;i++)
        scanf("%d",&A[i]);
    for(i=H/2;i>=1;i--)
        maxHeapify(i);
    for(i=1;i<=H;i++)
        printf(" %d",A[i]);
    puts("");
    return 0;
}