#include <stdio.h>
#include <stdlib.h>
 
#define H 500000
 
void maxHeapify(int *, int);
void buildMaxHeap(int *);
 
int h;
 
int main() {
 
  int A[H];
  int i;
 
  scanf("%d",&h);
  if(h>H) exit(0);
 
   
  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,temp;
 
  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){
    temp = A[i];
    A[i] = A[largest];
    A[largest] = temp;
 
    maxHeapify(A, largest);  
  }
 
}
 
void buildMaxHeap(int *A) {
  int i;
 
  for(i=h/2 ; i>=1 ; i--){
    maxHeapify(A, i);
  }
}