#include<stdio.h>

void maxHeapify(int i);
int n,A[2000000+1];
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]);
  if(i==n) printf("%d",A[i]);
  printf("\n");
  return 0;
}

void maxHeapify(int i){
  int l,r,largest,B;
  l = 2 * i;
  r = 2 * i+1;
  if(l <= n && A[l] > A[i]) largest = l;
  else largest = i;
  
  if(r <=n && A[r] > A[largest]) largest = r;
  
  if (largest != i){
    B = A[i];
    A[i] = A[largest];
    A[largest] = B;
    maxHeapify(largest); 
  }
  
}

