#include<iostream>

using namespace std;

#define MAX 10000000

int H;
int A[MAX + 1];

void maxHeapify(int i) {
	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) {
		int x;
		x = A[i];
		A[i] = A[largest];
		A[largest] = x;

		maxHeapify(largest);
	}
}

int main() {
	cin >> H;
	for (int i = 1;i <= H;i++) {
		cin >> A[i];
	}
	for (int i = H / 2;i >= 1;i--) {
		maxHeapify(i);
	}
	for (int i = 1;i <= H;i++) {
		cout << " " << A[i];
	}
	cout << endl;

	return 0;
}
