#include <stdio.h>
#include <stdlib.h>

#define MAX 100000
#define KEYMAX 2000000000

void maxHeapify(int i);
void swap(int*, int*);

int H, A[MAX+1];

int main(){
  int i;
  scanf("%d",&H);
  if(H < 1 || H > (MAX * 5))
    exit(1);

  for(i = 1; i <= H; i++){
    scanf("%d",&A[i]);
    if(A[i] < (KEYMAX * (-1)) || A[i] > KEYMAX)
      exit(1);
  }

  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, largest;
  int temp;
  l = 2 * i;
  r = 2 * i + 1;

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

  if(largest != i){
    swap(&A[i],&A[largest]);
    maxHeapify(largest);
   }
}

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

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

