#include<stdio.h>
#define MAX 500000
#define NIL -1
int r, l, N, largest;
int A[MAX];

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

int main(){
  int i;
  int H;
  int id;

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

  for(i=H/2; i>=1 ;i--)
    maxHeapify(A, i, H);

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


