#include<bits/stdc++.h>
using namespace std;





int main()
{
    
    int n;
    cin>>n;
    
    int a=1;
    
    while(n--)
    a*=2;
    
    queue<pair<int,int>>q;
    
    for(int i=0;i<a;i++)
    {
        int x;
        cin>>x;
        q.push({x,i+1});
    }
    
    while(q.size()>2)
    {
        int k=q.size();
        
        for(int i=0;i<k;i+=2)
        {
            int a,b,in1,in2;
        a=q.front().first;in1=q.front().second;
        q.pop();
        b=q.front().first;in2=q.front().second;
        q.pop();
        
        if(a>b)
        {
            q.push({a,in1});
        }
        else
        {
            q.push({b,in2});
        }
        }
        
    }
    
     int a1,b,in1,in2;
        a1=q.front().first;in1=q.front().second;
        q.pop();
        b=q.front().first;in2=q.front().second;
        q.pop();
        
        if(a1>b)
        {
            cout<<in2;
        }
        else
        {
            cout<<in1;
        }
    
    return 0;
}
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std; 
int main(){
	int n;
	scanf("%d",&n);
	int size = 2<<(n-1);
	vector<int> a(size);
	for(int i=0;i<size;i++){
		scanf("%d",&a[i]);
	}
	int index1, index2;
	int max1 = 0;
	int max2 = 0;
	for(int i=0;i<(size/2);i++){
		if(max1<a[i]){
			max1 = a[i];
			index1 = i;
		}
	}
	for(int i=(size/2);i<size;i++){
		if(max2<a[i]){
			max2 = a[i];
			index2 = i;
		}
	}
	if(max1==max(max1,max2)){
		printf("%d",index2+1);
	}
	else{
		printf("%d",index1+1);
	}
}