#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 1001;
vector<int> num(maxn), cbt(maxn);
int n, cnt = 0;
void inorder(int root){
if (root > n) return;
inorder(root * 2);//左子树
cbt[root] = num[cnt++];
inorder(root * 2 + 1);//右子树
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> num[i];
}
sort(num.begin(), num.begin() + n);
inorder(1);
for (int i = 1; i <= n; i++) {
printf("%d%c", cbt[i], i == n ? '\n' : ' ');
}
return 0;
}