#include<iostream>
using namespace std;

int main()
{
	int k, num1, num2, num3;
	cin>>k>>num1>>num2>>num3;
	int minNum = min(num1,(min(num2,num3)));
	int maxNum = max(num1,(max(num2,num3)));
	
	int flag1 = 1, flagMid = 1, flag2 = 1;
	while(k--)
		flag2 *= 2;
	flag2 = flag2 -1;
	flagMid = (flag1 + flag2)/2;
	while(minNum > flagMid || maxNum < flagMid)
	{
		if(minNum > flagMid)
		{
			flag1 = flagMid;
			flagMid = (flag1 + flag2 + 1)/2;
		}
		if(maxNum < flagMid)
		{
			flag2 = flagMid;
			flagMid = (flag1 + flag2)/2;
		}
	}
	cout<<flagMid<<endl;
	return 0;
}