#include<stdio.h>
#define MAX 500000


void buildMaxHeap();
void maxHeapify(int);

int a[MAX],h;
int main(){
  int i;
 

  scanf("%d",&h);
  for(i=1;i<=h;i++){
    scanf("%d",&a[i]);
  }

  buildMaxHeap();

  for(i=1;i<=h;i++){
    printf(" %d",a[i]);
  }
  printf("\n");

  return 0;
}

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

}


void buildMaxHeap(){
  int i;
  for(i=h/2;i>0;i--)
    maxHeapify(i);
}

