import javax.imageio.metadata.IIOMetadataNode;
import javax.security.sasl.SaslClient;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String maskCode = sc.nextLine();
        String ip1 = sc.nextLine();
        String ip2 = sc.nextLine();
        if (isMaskCodeLawful(maskCode) && isIpLawful(ip1) && isIpLawful(ip2)) {
            System.out.println(isInSameInternet(maskCode, ip1, ip2));
        } else {
            System.out.println(1);
        }

    }

    private static int isInSameInternet(String maskCode, String ip1, String ip2) {
        String[] mask = maskCode.split("\\.");
        String[] nums1 = ip1.split("\\.");
        String[] nums2 = ip2.split("\\.");
        for (int i = 0; i < 4; i++) {
            if ((Integer.parseInt(mask[i]) & Integer.parseInt(nums1[i])) !=
                    (Integer.parseInt(mask[i]) & Integer.parseInt(nums2[i]))
            ) {
                return 2;
            }
        }
        return 0;
    }

    private static boolean isIpLawful(String ip) {
        String[] nums = ip.split("\\.");
        for (String num : nums) {
            if (Integer.parseInt(num) > 255 || Integer.parseInt(num) < 0) {
                return false;
            }
        }
        return true;
    }

    private static boolean isMaskCodeLawful(String maskCode) {
        if(!isIpLawful(maskCode)){
            return false;
        }
        String[] nums = maskCode.split("\\.");
        //最后一个1的位置  等于  所有1的数量
        String totalBinStr = "";
        for (String num : nums) {
            String binStr = Integer.toBinaryString(Integer.parseInt(num));
            while (binStr.length() < 8) {
                binStr = "0" + binStr;
            }
            totalBinStr += binStr;
        }
        int count = 0;
        for (char c : totalBinStr.toCharArray()) {
            if (c == '1') {
                count++;
            }
        }
        if ((count - 1) == totalBinStr.lastIndexOf("1")) {
            return true;
        }
        return false;
    }
}