#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,r,l,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){// i ???????????????????????§????????´???
    tmp = A[i];
    A[i] = A[largest];
    A[largest] = tmp;
    maxHeapify(largest); // ?????°??????????????????
      }
}