#include <stdio.h>
void maxHeapify(int);
int h,A[500000];
void maxHeapify(int i){
	int l,r,largest,tmp;
	l=i*2;
	r=i*2+1;
	
	if(l<=h && A[l]>A[i]) largest=l;
	else largest=i;
	
	if(r<=h && 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",&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;
}
