#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define N 1<<20 
const ll mod = 1e9 + 7;

multiset<int> g[N];
int num[N], a[N];

int n, m;
int main() {
	ios::sync_with_stdio(0);
	while(cin >> n) {
		int k = 1<<n;
		for(int i = 0; i < k; i++) cin >> a[i], g[i].insert(a[i]);
		for(int i = 0; i < n; i++) {
			for(int j = 0; j < k; j++) {
				if((j >> i) & 1) {
					for(int it: g[j^(1<<i)]) g[j].insert(it);
				}
				while(g[j].size() > 2) g[j].erase(g[j].begin());
			}
		}
		int ans = 0;
		for(int i = 1; i < k; i++) {
			int res = *g[i].begin() + *g[i].rbegin();
			ans = max(ans, res);
			cout << ans << endl;
		}
	}
	return 0;
}
