import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String[] ym = in.nextLine().split("\\."); String[] ip1 = in.nextLine().split("\\."); String[] ip2 = in.nextLine().split("\\."); boolean flag = false; if (ip1.length == 0 || ym.length == 0 || ip2.length == 0) { continue; } for (int j = 0; j < 4; j++) { int ip1Int = Integer.parseInt(ip1[j]); int ymInt = Integer.parseInt(ym[j]); int ip2Int = Integer.parseInt(ip2[j]); //判断ip是否合规 if ((0 > ip1Int || ip1Int > 255) || (0 > ymInt || ymInt > 255) || (0 > ip2Int || ip2Int > 255)) { System.out.println(1); flag = true; break; } //ip转2进制高位补0 ip1[j] = "00000000" + Integer.toBinaryString(ip1Int); ym[j] = "00000000" + Integer.toBinaryString(ymInt); ip2[j] = "00000000" + Integer.toBinaryString(ip2Int); ip1[j] = ip1[j].substring(ip1[j].length() - 8); ym[j] = ym[j].substring(ym[j].length() - 8); ip2[j] = ip2[j].substring(ip2[j].length() - 8); } if (!flag) { //掩码合法性判断 if (!String.join("", ym).replaceAll("11+", "1").replaceAll("00+", "0").equals("10")) { System.out.println(1); flag = true; } if (!flag) { for (int j = 0; j < 32; j++) { //判断子网是否相等 if (ym[j % 4].charAt(j / 4) == '1' && ip1[j % 4].charAt(j / 4) != ip2[j % 4].charAt(j / 4)) { System.out.println(2); flag = true; break; } } if (!flag) { System.out.println(0); } } } } } }