#include <stdio.h>

#define H 500000

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

int h;

int main(){

  int A[H];
  int i;

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


  for(i=1; i<=h ; i++){
    maxHeapify(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);
  }
}