#include<stdio.h>

void maxheap(int);
void swap(int,int);
int num;
int array[2000001];

int main(){

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

void maxheap(int i){
  int left = 0;
  int right = 0;
  int largest = 0;
  int change;

  left = 2 * i;
  right = 2 * i + 1;

  if(left <= num && array[left] > array[i]){
    largest = left;
  }
  else{
    largest = i;
  }
  if(right <= num && array[right] > array[largest]){
    largest = right;
  }
  if(largest != i){
    change=array[i];
    array[i]=array[largest];
    array[largest]=change;
    maxheap(largest);
  }
}

