#include<bits/stdc++.h>
using namespace std;
inline int lc(int x){
return x<<1;
}
inline int rc(int x){
return (x<<1)|1;
}
int T[10000]={0};
int n,cnt=1;
void updata(int n,int lm) //递归更新树
{ //n为当前结点,lm为结点总数
if(!T[lc(n)]&&lc(n)<=lm)
updata(lc(n),lm);
if(!T[rc(n)]&&rc(n)<=lm)
updata(rc(n),lm);
if(n<pow(2,n))
T[n]=max(T[lc(n)],T[rc(n)]);
}
int main()
{
scanf("%d",&n);
int arr[n+5];
int d=pow(2,n); //肯定是满二叉树
for(int i=d;i<d+pow(2,n);i++)//直接输入叶子结点
{
scanf("%d",&T[i]);
arr[cnt++]=T[i];
}
updata(1,pow(2,n+1)-1); //向上更新树
int temp=min(T[2],T[3]);
for(int i=1;i<=n;i++) //找到亚军对应的号码
{
if(arr[i]==temp)
{
printf("%d",i);
return 0;
}
}
}