#include<stdio.h>
int H,A[500000]; 

void maxHeapify(int i){
  int large,temp;
  if(2*i<=H && A[2*i]>A[i]){
    large=2*i;
  }
  else{
    large=i;
  }
  if(2*i+1<=H && A[2*i+1]>A[large]){
    large=2*i+1;
  }
  if(large!=i){
    temp=A[i];
    A[i]=A[large];
    A[large]=temp;
    maxHeapify(large);
  }
}
    

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

