package xiaozhao2017;

import java.util.Scanner;

public class FullBST {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);
		int k=scan.nextInt();
		int num1=scan.nextInt();
		int num2=scan.nextInt();
		int num3=scan.nextInt();
		String s1=convertNumberToKLength(k,num1);
		String s2=convertNumberToKLength(k,num2);
		String s3=convertNumberToKLength(k,num3);
		System.out.println(minRootNumber(s1,s2,s3));
	}
	
	
	public static int minRootNumber(String s1,String s2,String s3){
		int difference=0;
		for(int i=0;i<s1.length();i++){
			if(!((s1.charAt(i)==s2.charAt(i))&&((s2.charAt(i)==s3.charAt(i))))){
				difference=i;
				break;
			}
		}
		String ans=s1.substring(0,difference);
		ans+="1";
		for(int i=0;i<=s1.length()-ans.length();i++){
			ans+="0";
		}
		return  convertBinaryToDecimal(ans);
	}
	
	public static int convertBinaryToDecimal(String str){
		int ans=0;
		for(int i=str.length()-1;i>=0;i--){
			int bit=Integer.parseInt(str.charAt(i)+"");
			if((bit&1)!=0){
				ans+=Math.pow(2, str.length()-i-1);
			}
		}
		return ans;
	}
	
	
	
	public static String convertNumberToKLength(int k,int n){
		String str=Integer.toBinaryString(n);
		String s="";
		if(str.length()<k){
			for(int i=0;i<k-str.length();i++){
				s+="0";
			}
			s+=str;
			return s;
		}
		return str;
	}
	
}