#include<stdio.h>
#define MAX 500000

void maxHeapify(int A[],int);

int h;

int main(){
    int i;
    int A[MAX];

    scanf("%d",&h);
    for(i=1;i<=h;i++){
        scanf("%d",&A[i]);
    }

    for(i=h/2;i>=1;i--){
        maxHeapify(A,i);
    }

    for(i=1;i<=h;i++){
        printf(" %d",A[i]);
    }
    printf("\n");

    return 0;
}

void maxHeapify(int A[],int i){
    int l,r,largest,tmp;

    l = i*2;
    r = i*2+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){
        tmp = A[i];
        A[i] = A[largest];
        A[largest] = tmp;
    maxHeapify(A,largest);
 }
}
