#include <stdio.h>

#define MAX 2000000

int n, a[MAX+1];

void maxHeapify(int i)
{
  int l, r, largest, tmp;
  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) {
    tmp = a[i];
    a[i] = a[largest];
    a[largest] = tmp;
    maxHeapify(largest);
  }
}

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]);
  printf("\n");
  return 0;
}