#include <stdio.h>

#define MAX 50000

void maxHeapify(int *, int);
void buildMaxHeap(int *);

int H;

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

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