#include <bits/stdc++.h>
using namespace std;
int n;
struct node{
int data;
int index;
node *lc = nullptr;
node *rc = nullptr;
};
vector<node>v;
queue<node>q;
node insert_tree(node n1,node n2){
if(n1.data < n2.data){
node n3 = n2;
n3.lc = &n1;
n3.rc = &n2;
return n3;
}
else{
node n3 = n1;
n3.lc = &n1;
n3.rc = &n2;
return n3;
}
}
int main() {
cin >>n;
for(int i = 1;i<=pow(2,n);i++){
node n;
cin >> n.data;
n.index = i;
q.push(n);
}
while(q.size() != 1){
node n1,n2;
n1 = q.front();
q.pop();
n2 = q.front();
q.pop();
q.push(insert_tree(n1,n2));
}
node n = q.front();
node* n1 = n.lc;
node* n2 = n.rc;
if(n1->data < n2->data) cout << n1->index;
else cout << n2->index;
}