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