import java.util.*; public class Main{ public static void main(String[] arg){ Scanner sc=new Scanner(System.in); while(sc.hasNextLine()){ String[] ym = sc.nextLine().split("\\."); String[] ip1 = sc.nextLine().split("\\."); String[] ip2 = sc.nextLine().split("\\."); if(ym.length!=4||ip1.length!=4||ip2.length!=4){ System.out.println(1); continue; } boolean flag = true; for(int i=0;i<ym.length;i++){ if(Integer.parseInt(ym[i])<0||Integer.parseInt(ym[i])>255||Integer.parseInt(ip1[i])<0||Integer.parseInt(ip1[i])>255||Integer.parseInt(ip2[i])<0||Integer.parseInt(ip2[i])>255){ System.out.println(1); flag = false; break; } } if(!flag){ continue; } //判断掩码是否有效 StringBuffer buffer = new StringBuffer(); for(int i=0;i<ym.length;i++){ buffer.append(leftZero(Integer.toBinaryString(Integer.parseInt(ym[i])))); } if(buffer.lastIndexOf("1")>=buffer.indexOf("0")){ System.out.println(1); continue; } //判断是否同一子网 boolean flag1 = true; for(int i=0;i<ym.length;i++){ if((Integer.parseInt(ym[i])&Integer.parseInt(ip1[i]))!=(Integer.parseInt(ym[i])&Integer.parseInt(ip2[i]))){ System.out.println(2); flag1 = false; break; } } if(flag1){ System.out.println(0); } } } public static String leftZero(String s){ while(s.length()<8){ s = "0"+s; } return s; } }