#include <stdio.h>
#define MAX 1000000


int H,A[MAX+1];

void maxHeapify(int);
void buildMaxHeap(void);

int main(){
  int i;
  scanf("%d",&H);
  for(i=1;i<=H;i++){
    scanf("%d",&A[i]);
  }
  // for(i=1;i<=H;i++)
  buildMaxHeap();
 
  for(i=1;i<=H;i++){
    printf(" %d",A[i]);
  }
  printf("\n");

  return 0;
}


void maxHeapify(int i){
  int l,r,largest,swp;

  l=2*i;
  r=2*i+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){
    swp = A[i];
    A[i] = A[largest];
    A[largest] = swp;
    maxHeapify(largest);
  }
}
void buildMaxHeap(void){

  int i;
  for(i=(H/2);i>0;i--){
    maxHeapify(i);
  }

}


