#include<stdio.h>
int main ()
{
int n,i,j,b=0,s,h;
long long int k=-1e18;
scanf("%d",&n);
int a[n];
for(i=1;i<=n;i++)
scanf("%d",&a[i]);//输入权值到数组
for(i=1;i<=n;i*=2)//从第一层i=1,到第二层i=3,再到第三层i=4以此类推i为每层起始点
{
b++;
s=0;
for(j=i;j<=2*i-1&&j<=n;j++)//j从i开始到j=2*i-1(j=1及第一层尾点j=3及第二层尾点以此类推)
{
s=s+a[j];//s记录当前层权值的和
}
if(s>k)//如果当前权值和最大保存在k中并保存深度h
{
k=s;
h=b;
}
}
printf("%d",h);//输出深度
return 0;
}