#include<stdio.h>
int MAX[500000];
int maxheapify(int);
int i,x,H,r,l,n=0;

int main(void){
  scanf("%d",&x);
  for(i=1;i<=x;i++){
    scanf("%d",&MAX[i]);
  }
  
  for(i=x/2;i>0;i--){
    maxheapify(i);
  }
  
  for(i=1;i<=x;i++){
    printf(" %d",MAX[i]);
  }
  
  printf("\n");
  return 0;
}
  
int maxheapify(i){
  l=2*i;
  r=2*i+1;
  if(l<=x && MAX[l]>MAX[i])H=l;
  else H=i;
  if(r<=x && MAX[r]>MAX[H])H=r;
  if(H!=i){
    n=MAX[i];
    MAX[i]=MAX[H];
    MAX[H]=n;
    return maxheapify(H);
  }
  return 0;
}

