#include<stdio.h>
#define H 5000000

int A[H],n;

void maxHeapify( int *A ,int  i ){

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


void buildMaxHeap( int *A ){
  
  int i;
 
  for(i = n / 2; i > 0 ; i--) 
    maxHeapify( A , i );
}


      
main(){
  
  int i;
 
  scanf("%d", &n);
 
  for(i = 1; i <= n; i++)
    scanf("%d", &A[i]);
  
  buildMaxHeap(A);
 
  for(i = 1 ; i <= n ; i++) 
    printf(" %d", A[i]);
  
  printf("\n");
  
  return 0;
  
}