#include <stdio.h>

void maxHeapify(int [],int ,int );

int main()
{
  int i,n,m,ori[2000000];
  
  scanf("%d",&n);

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

  for(i=1;i<=n;i++) printf(" %d",ori[i]);

  printf("\n");

  return 0;
}

void maxHeapify(int ori[],int i,int n)
{
  int left,right,max,kawari;

  left=2*i;
  right=2*i+1;

  if(left<=n && ori[left]>ori[i]) max=left;
  else max=i;

  if(right<=n && ori[right]>ori[max]) max=right;

  if(max!=i){
    kawari=ori[i];
    ori[i]=ori[max];
    ori[max]=kawari;

    maxHeapify(ori,max,n);
  }
}
