#include<stdio.h>
#define MAX 1000000

int H,A[MAX+1];

void maxHeapify(int i){
  int l,r,L,x;
  l=i*2;
  r= 2*i+1;

  if(l<=H && A[l]>A[i]) L=l;
  else L=i;
   if(r<=H && A[r]>A[L]) L=r;

   if(L!=i){
     x=A[i];
     A[i]=A[L];
     A[L]=x;
     maxHeapify(L);
   }
}

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

