#include <stdio.h>

#define MAX 2000000

int H;
int A[MAX + 1];

void maxHeapify(int i){
	int largest;
	int l = i*2;
	int r = i*2+1;
	int tmp;

	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);
	}
}

void buildMaxHeap(){
	int i;	
	for(i=H/2;i>=1;i--){ maxHeapify(i); }
}


int main(void){

	int i;
	scanf("%d",&H);

	for(i=1;i<=H;i++){
		scanf("%d",&A[i]);
	}
	buildMaxHeap();
	
	for(i=1;i<=H;i++){
		printf(" %d",A[i]);
	}
	
	printf("\n");

return 0;

}

