#include<stdio.h>

#define MAX 2000000

int H,A[MAX + 1];

void maxHeapify(int);

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;
}

void maxHeapify(int i){
  int l,r,tmp,large;

  l = 2 * i;
  r = 2 * i + 1;

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

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

  if(large != i){
    tmp = A[i];
    A[i] = A[large];
    A[large] = tmp;
    maxHeapify(large);
  }

}

