#include <iostream>
#include <algorithm>
using namespace std;
const int N=1010;
int n,k;
//完全树用一维数组存储,且按数组顺序访问即为层序遍历
int w[N],tr[N]; //w存结点权值 tr[N]存完全二叉搜索树
void dfs(int u){
if(2*u<=n) dfs(2*u);
tr[u]=w[k++];
if(2*u+1<=n) dfs(2*u+1);
}
int main(){
cin>>n;
for(int i=0;i<n;i++)
cin>>w[i];
sort(w,w+n);
k=0;
dfs(1);
cout<<tr[1];
for(int i=2;i<=n;i++)
cout<<" "<<tr[i];
return 0;
}