#include<stdio.h>
#define MAX 500000

int H, A[MAX];
void maxHeapify(int i) {
  int l, r, largest, ch;
  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) {
    ch = A[i]; A[i] = A[largest]; A[largest] = ch;
    maxHeapify(largest);
  }
}

void buildMaxHeap() {
  int i;
  for (i = H/2; i> 0; i--) maxHeapify(i);
}

int main() {
  int i;
  scanf("%d", &H);
  for (i =1; i < H+1; i++) scanf("%d", &A[i]);
  buildMaxHeap();

  for (i = 1; i < H+1; i++){
    printf(" %d", A[i]);
  }
    printf("\n");
  return 0;
}

