#include<stdio.h>
#define H 2000000
int h;

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

void buildMaxHeap(int *A){
	int i;
	for(i=h/2; i>=1; i--){ maxHeapify(A,i); }
}

int main(){
	int heap[H+1];
	int i;

	scanf("%d",&h);
	for(i=1; i<=h; i++){ scanf("%d",&heap[i]); }
	buildMaxHeap(heap);

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