import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) { // 注意 while 处理多个 case
String yanMa = sc.nextLine();
String ip1 = sc.nextLine();
String ip2 = sc.nextLine();
//先将掩码和ip进行转换
String []yanMas=yanMa.split("\\.");
String []ip1s=ip1.split("\\.");
String []ip2s=ip2.split("\\.");
if(!cheek(yanMas,ip1s,ip2s)){
System.out.println(1);
return;
}
//ip1s每一个数与掩码比较ip2s每一个数与掩码
for(int i=0;i<4;i++){
int int_yanMa=Integer.parseInt(yanMas[i]);
int int_ip1=Integer.parseInt(ip1s[i]);
int int_ip2=Integer.parseInt(ip2s[i]);
if((int_yanMa&int_ip1)!=(int_yanMa&int_ip2)){
System.out.println(2);
return;
}
}
System.out.println(0);
}
}
//判断子网掩码和ip地址是否合法
private static boolean cheek(String []yanMas,String []ip1s,String []ip2s){
boolean flag=false;
//将掩码进行拼接
StringBuilder yanMa=new StringBuilder();
for(String str:yanMas){
int temp=Integer.parseInt(str);
if(temp<0||temp>255) return false;
//转换为2进制
String binary=Integer.toString(temp,2);
//格式化8位
String bi=String.format("%8s",binary).replace(' ','0');
yanMa.append(bi);
}
//判断掩码是否合法
for(char ch:yanMa.toString().toCharArray()){
if(ch=='0') flag=true;
else if(ch=='1'){
if(flag) return false;
}
}
//判断ip是否合法
for(String ip1:ip1s){
int x=Integer.parseInt(ip1);
if(x>255||x<0)
return false;
}
for(String ip2:ip2s){
int x=Integer.parseInt(ip2);
if(x>255||x<0)
return false;
}
return true;
}
}