#include<stdio.h>
#define MAX 2000000

int n, A[MAX+1];

void maxHeapify(int i){
    int l = 2 * i, r = 2 * i + 1, largest, tmp; 

    if( l <= n && A[l] > A[i] ) largest = l;
    else largest = i;
    if( r <= n && A[r] > A[largest]) largest = r;

    if( largest != i ) {
        A[tmp] = A[i];
        A[i] = A[largest];
        A[largest] = A[tmp];
        maxHeapify( largest );
    }
}

int main(void){
  int i;

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

  for( i = n / 2; i > 0; i-- ) maxHeapify(i);
  
  for( i = 1; i <= n; i++ ) printf(" %d", A[i]);
  printf("\n");

  return 0;
}

