#include<stdio.h>
#define H 500000

int x,A[H+1];


maxHeapify(int A[],int i){
  
  int l,r,g,largest;
  
  l = 2*i;
  r = 2*i+1;
  if(l <= x && A[l] > A[i])
    largest = l;
  else 
    largest = i;
  if( r <= x && A[r] > A[largest])
    largest = r;
  if(largest != i){
      g=A[i];
    A[i]=A[largest];
    A[largest] = g;
    maxHeapify(A, largest);
  }
}

buildMaxHeap(int A[]){
  int i;
  for(i=x/2;i>=1;i--)
    maxHeapify(A,i);
}
      


int main(){

  int i;

  scanf("%d",&x);

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

  for(i=x/2;i>=1;i--){
    maxHeapify(A,i);
  }
  
  for(i=1;i<=x;i++){
    printf(" %d",A[i]);
  }
  printf("\n");
  return 0;
}