#include<stdio.h>
#define MAX 2000000

int H,A[MAX+1];

void maxHeapify(int);
int left(int);
int right(int);
void buildMaxHeap(int);


int main()
{

	
    int i;
	
	scanf("%d",&H);
	
	for(i=1;i<=H;i++) scanf("%d",&A[i]);	
    
    maxHeapify(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 l,r,a,largest;
	l=left(i);
	r=right(i);
	
	if (l<=H&&A[l]>A[i])largest=l;
	else largest=i;
	
	if(r<=H&&A[r]>A[largest])largest=r;
	
	if(largest!=i)
	{
		a=A[i];
		A[i]=A[largest];
		A[largest]=a;
		
		maxHeapify(largest);
	}
}


int left(int i)
{
	return 2*i;
}
int right(int i)
{
	return 2*i+1;
}

