#include<stdio.h>

void maxHeapify(int *,int);

int H;

int main(){

  int i,A[500000];

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

  for(i=H/2 ; i>=1 ; i--){
     maxHeapify(&A[0],i);
  }

  for(i=1 ; i<=H ; i++){
     printf(" %d",A[i]);
     }

  printf("\n");
   
  return 0;
}

 void maxHeapify(int *A,int i){

   int temp,l,j,r,largest;

   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[0],largest);

 	 
 }

 }

