#include<stdio.h>
#define MAX 2000000

int H,A[MAX+1];

void swap(int *a,int *b){
  int c;

  c=*a;
  *a=*b;
  *b=c;

}

void maxHeapify(int i){
  int r,l,large;
  
  r=2*i+1;
  l=2*i;

  if(l<=H && A[l]>A[i]) large=l;
  else large=i;
  if(r<=H && A[r]>A[large]) large=r;

  if(large!=i){
    swap(&A[i],&A[large]);
    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;

}