#include <iostream>
#include <cstdio>
using namespace std;
int n;
struct team{
int name;
int power;
}a[300];
void dfs(int x){//遍历整个树 无需返回值用void
if (x >= 1 << n){
return ;
}
else{
dfs (2*x);//递归出左儿子
dfs (2*x+1);//右儿子
int l, r;
l = a[2*x].power;
r = a[2*x+1].power;
if (l < r){
a[x].power = r;
a[x].name = a[2*x+1].name;
}
else {
a[x].power = l;
a[x].name = a[2*x].name;
}
}
}
int main(){
for (int i=1; i <= (1 << n); i++){
cin >> a[i + 1 << n].power;
a[i + 1 << n].name = i;
}
dfs(1); //将整个树画出来
cout << a[2].name;
return 0;
}