#include <stdio.h>
#include <stdlib.h>

void maxheapify(int* ,int);
int n;

int main(){
  int A[500000],i;

  scanf("%d",&n);

  for(i = 1; i <= n; i++){
    scanf("%d",&A[i]);
  }
  
  for(i = n/2; i > 0; i--)
    maxheapify(A,i);

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

  return 0;
}

void maxheapify(int *A,int i){
  int l,r,largest,t;
  l = i*2;
  r = i*2+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){
    t = A[i];
    A[i] = A[largest];
    A[largest] = t;
    maxheapify(A,largest);
  }
}

