#include<stdio.h>
#define MAX 2000000
 
int n;
int A[MAX+1];

void swap(int *,int *);
void maxHeap(int);
 
int main(){

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

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

  int temp;
  
  temp = *a;
  *a = *b;
  *b = temp;
}

void maxHeap(int i){

  int l, r, largest;

  l = 2 * i;
  r = 2 * i + 1;
 
  if(l <= n && A[l] > A[i])largest = l;

  else largest = i;

  if(r <= n &&A[r] > A[largest])largest = r;
 
  if(largest != i)
    {
      swap(&A[i], &A[largest]);
      maxHeap(largest);
    }
  
}