#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;
}