#include <stdio.h>
#define MAX 500000

void maxHeapify(int);
void swap(int *a,int *b);

int H,A[MAX+1];

int main(){
  int i;

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

  for(i=H/2;i>=1;i--){
    maxHeapify(i);
  }

  for(i=1;i<=H;i++){
    printf(" %d",A[i]);
  }
  printf("\n");

  return 0;
}

void maxHeapify(int i){
  int left,right,max;
  left=2*i;
  right=2*i+1;

  
  if(left<=H && A[left]>A[i]){
    max=left;
  }else max=i;

  if(right<=H && A[right]>A[max]){
    max=right;
  }

  if(max!=i){
    swap(&A[i],&A[max]);
    maxHeapify(max);
  }
}


void swap(int *a,int *b){
  int temp;

  temp=*a;
  *a=*b;
  *b=temp;
}