#include <stdio.h>
#include <stdlib.h>
#define MAX 2000000

int n, A[MAX];

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

    if (l <= n && A[l] > A[i])
         largest = l;
    else
         largest = i;
    
    if (r <= n && A[r] > A[largest]) 
        largest = r;
    
    if (largest != i)
    {
        temp = A[i];
        A[i] = A[largest];
        A[largest] = temp;
        maxHeapify(largest);
    }
}

int main()
{
    int i;

    scanf("%d", &n);

    for (i = 1; i < n + 1; i++)
        scanf("%d", &A[i]);
    

    for (i = n / 2; i >= 1; i--)
        maxHeapify(i);

    for (i = 1; i < n + 1; i++)
        printf(" %d", A[i]);
    
    printf("\n");

    return 0;
}

