#include <stdio.h>

int a[500000],h;
void maxheapify(int);

int main(){
  int i;
  scanf("%d",&h);
  for(i=0;i<h;i++){
    scanf("%d",&a[i+1]);
  }
  for(i=h/2;i>=1;i--){
    maxheapify(i);
  }
  for(i=1;i<=h;i++){
    printf(" %d",a[i]);
  }
  /*printf("%d",a[1]);
  for(i=1;i<h;i++){
    printf(" ");
    printf("%d",a[i+1]);
  }*/
 
  printf("\n");
  
  return 0;
}

void maxheapify(int i){
  int l,r,largest,b;
  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){
    b=a[i];
    a[i]=a[largest];
    a[largest]=b;
    maxheapify(largest);
  }
  
}

