import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String mask = in.nextLine();
        String ip1 = in.nextLine();
        String ip2 = in.nextLine();
        if (!isLegalIP(ip1) || !isLegalIP(ip2) || !isLegalMask(mask)) {
            System.out.println(1);
        } else {
            int[] i1 = mask(values(ip1), values(mask));
            int[] i2 = mask(values(ip2), values(mask));
            if (equals(i1, i2)) {
                System.out.println(0);
            } else {
                System.out.println(2);
            }
        }
    }

    static int[] mask(int[] ip, int[] mask) {
        for (int i = 0; i < 4; i++) {
            ip[i] &= mask[i];
        }
        return ip;
    }

    static boolean equals(int[] ip1, int[] ip2) {
        for (int i = 0; i < 4; i++) {
            if (ip1[i] != ip2[i]) {
                return false;
            }
        }
        return true;
    }

    static boolean isLegalIP(String ip) {
        String[] temp = ip.split("\\.");
        if (temp.length != 4) {
            return false;
        }
        for (int i = 0; i < temp.length; i++) {
            if (!temp[i].matches("[1-9]\\d*|0") || Integer.parseInt(temp[i]) > 255) {
                return false;
            }
        }
        return true;
    }

    static int[] values(String ip) {
        String[] s = ip.split("\\.");
        int[] v = new int[s.length];
        for (int i = 0; i < v.length; i++) {
            v[i] = Integer.parseInt(s[i]);
        }
        return v;
    }

    static boolean isLegalMask(String mask) {
        if (!isLegalIP(mask)) {
            return false;
        } else {
            int[] v = values(mask);
            int x = (v[0] << 24) | (v[1] << 16) | (v[2] << 8) | v[3];
            int b = Integer.bitCount(x);
            if (b == 0 || b == 32) {
                return false;
            }
            int m = 1 << 31;
            while (true) {
                if ((m & x) == 0) {
                    break;
                }
                b--;
                m >>>= 1;
            }
            return b == 0;
        }
    }
}