#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[100];
int n,m;
void sdown(int i){
if(i==n)
return ;
int flag=0;
while(i*2<=n&&!flag){
//cout<<i<<" "<<a[i]<<endl;
if(a[i*2]<a[i*2+1]||i*2+1>n){
if(a[i*2]<a[i]){
swap(a[i*2],a[i]);
i*=2;
}else{
flag=1;
}
}else{
if(a[i*2+1]<a[i]){
swap(a[i*2+1],a[i]);
i=i*2+1;
}else{
flag=1;
}
}
}
return ;
}
void buil(){
for(int i=n/2;i>=1;i--){
sdown(i);
}
}
void ssort(){
while(n!=0){
cout<<a[1]<<endl;
a[1]=a[n];
n--;
sdown(1);
}
}
int main()
{
while(cin>>n){
for(int i=1;i<=n;i++){
cin>>a[i];
}
buil();
ssort();
}
return 0;
}