#include <stdio.h>
#include <stdlib.h>

#define H 500000

int h;

void maxHeapify(int *,int);
void buildMaxHeap(int *);

int main() {
    
    int i,A[H];
    
    scanf("%d",&h);
    
    for(i=1; i<=h; i++) scanf("%d",&A[i]);
    
    buildMaxHeap(A);
    
    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);
    }
}


void buildMaxHeap(int *A) {
    int i;
    
    for(i=h/2; i>0; i--) maxHeapify(A,i);
}