#include <stdio.h>

#define MAX 2000000

int H, A[MAX+1];

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

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++){
    //if(i<H) printf("%d ", A[i]);
    //else printf("%d", A[i]);
    printf(" %d", A[i]);
  }

  printf("\n");
    
  return 0;
}

