#include <stdio.h>

#define M 2000000

int H,C[M+1];

void maxC(int i){
  int la,t,r,A;
  t=2*i;
  r=2*i+1;

  if(t<=H&&C[t]>C[i])
    la=t;
  else la=i;
  if(r<=H&&C[r]>C[la])
    la=r;
  if(la!=i){
    A=C[i];
    C[i]=C[la];
    C[la]=A;
    maxC(la);
  }
}

int main(){
  int i;

  scanf("%d",&H);
  for(i=1;i<=H;i++)
    scanf("%d",&C[i]);
  for(i=H/2;i>=1;i--)
    maxC(i);
  for(i=1;i<=H;i++){
    printf(" %d",C[i]);
}
  printf("\n");
}

