#include <stdio.h>
void maxHeapify(int);
int A[2000001], H;

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