
#include<stdio.h>

int n,A[2000000+1];

void maxHeapify(int);

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,larg,tmp;

  l = 2 * i;
  r = 2 * i + 1;

  if(l <= n && A[l] > A[i]){
      larg = l;
  }
  else {
      larg = i;
}
  if(r <= n && A[r] > A[larg]){
      larg = r;
}
  if(larg != i){
    tmp = A[i];
    A[i] = A[larg];
    A[larg] = tmp;
    maxHeapify(larg);
  }

}

