#include <bits/stdc++.h>
using namespace std;
#define MAX 2000000

int H, 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) {
    swap(A[i], A[largest]);
    maxHeapify(largest);
  }
};

int main() {
  cin >> H;

  for (int i = 1; i <= H; i++) {
    cin >> A[i];
  }

  for (int i = H / 2; i > 0; i--) {
    maxHeapify(i);
  }

  for (int i = 1; i <= H; i++) {
    cout << ' ' << A[i];
  }
  cout << endl;
};

