#include<stdio.h>
#define MAX 2000001

void maxHeapify(int);
int A[MAX], n;

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

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

