#include <stdio.h>
#define MAX 2000000

int A[MAX + 1], H;

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

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;
}