#include<stdio.h>

#define MAX 2000000

int H, A[MAX+1];

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


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

    return 0;
}

