#include<cmath>
#include <iostream>
using namespace std;
int main()
{
int n,d,i,*j,k,max,m;
cin>>n;//结点数
int a[n];//结点数组
for(i=0;i<n;i++)cin>>a[i];
d=log2(double(n))+1;//计算层数
int b[d];
b[0]=a[0];
j=&a[1];
for(i=1;i<d-1;i++){//往后遍历,总计后面2^(层数减一) 即该层个数的和
b[i]=*j;
for(k=2;k<=pow(2,double(i));k++){
j++;
b[i]+=*j;
}
j++;
}
b[d-1]=*j;
j++;
while(j!=a+n){//总计最后一层数之和
b[d-1]+=*j;
j++;
}
max=b[0];m=1;
for(i=1;i<d;i++){//找出权值之和最大的层数
if(max<b[i]){
max=b[i];
m=i+1;
}
}
cout<<m;
return 0;
}