#include<stdio.h>
#define MAX 3000000

int x,T[MAX+1];

void A(int a){
  int l,r,z,b;
  l=2*a;
  r=2*a+1;

  if(l<=x&&T[l]>T[a]){
    z=l;
  }else {
    z=a;
  }

  if(r<=x&&T[r]>T[z]){
    z=r;
  }

  if(z != a){
    b=T[a];
    T[a]=T[z];
    T[z]=b;
    A(z);
  }
}

int main(){
  int i;
  
  scanf("%d",&x);

  for(i=1;i<=x;i++){
    scanf("%d",&T[i]);
  }

  for(i=x/2;i>=1;i--){
    A(i);
  }

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

