#include <stdio.h>
int A[500001];
void maxHeap(int);
int n;
int main(){
  int i;
  scanf("%d",&n);
  n++;
  for(i=1;i<n;i++) scanf("%d",&A[i]);
  for(i=n/2;i>0;i--) maxHeap(i);

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

void maxHeap(int i){
  int l,r,large,c;
  l=i*2;
  r=i*2+1;
  if(l<=n && A[l]>A[i]) large=l;
  else large=i;

  if(r<=n && A[r]>A[large]) large = r;
  if (large!=i){
    c=A[i];
    A[i]=A[large];
    A[large]=c;
    maxHeap(large);
  }


}