record
code
#include<bits/stdc++.h>
using namespace std;
vector<int>tree;
void build(){
const int s=tree.size();
int l=0;
while(l!=tree.size()){
if(l==tree.size())break;
for(register int i=l+1;i<l+l;i+=2)
tree.push_back(max(tree[i-1],tree[i]));
l+=l/2;
}
}
int main(){
int n;
scanf("%d",&n);
for(register int i=0;i<pow(2,n);++i){
int x;
cin>>x;
tree.push_back(x);
}
build();
cout<<min(tree[tree.size()-2],tree[tree.size()-3])<<endl;
return 0;
}