#include <iostream>
using namespace std;

void swap(int *a, int i, int j){
	if(a[i] ^ a[j]){
		a[i] ^= a[j];
		a[j] ^= a[i];
		a[i] ^= a[j];
	}
}

void heapify(int *a, int i, int n){
    int large, l, r;
    
    while(i < n){
    	large = i;
    	l = 2 * i + 1, r = l + 1;
	    
	    if(l < n && a[l] > a[large])
	        large = l;
	    
	    if(r < n && a[r] > a[large])
	        large = r;
	    
	    if(large ^ i){
	        swap(a, i, large);
	        i = large;
	    }
	    else{
	    	break;
	    }
    }
}

void heapSort(int *a, int n){
    
    for(int i = n/2-1; i > -1; --i)
        heapify(a, i, n);
    
    for(int i = n-1; i > 0; --i){
        swap(a, 0, i);
        
        cout<<"[";
        for(int j = 0; j < i+1; ++j)
            cout<<a[j]<<(j != i ? "," : "");
        cout<<"]\n";
        
        heapify(a, 0, i);
    }
}

int main() {
    int n; cin>>n;
    
    int a[n];
    
    for(int i=0; i<n; ++i)
        cin>>a[i];
    
    heapSort(a, n);
    
    cout<<"[";
    for(int i = 0; i < n; ++i)
        cout<<a[i]<<(i != n-1 ? "," : "");
    cout<<"]";
    
    return 0;
}
