#include <stdio.h>
#include <stdlib.h>
#define MAX 2000000
 
 
void maxHeapify(int i);

int H,A[MAX+1];
 
int main(){
    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]);
    }

    printf("\n");

    return 0;
}

void maxHeapify(int i){
    int largest, tmp;
    int l = i*2;
    int 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(largest);
    }
}