#include <cstdint>
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

bool check_number(const vector<int>& vec){
    for(const int& num : vec){
        if(num < 0 || num > 255) return false;
    }
    return true;
}

bool check_mask(const vector<int>& vec){
    uint32_t bin = 0;
    for(const int& num : vec) 
        bin = (bin << 8) + num;
    bin = ~bin+1 & ~bin;
    if(bin==0) return true;
    return false;
}

bool same_net(const vector<int>& mask, const vector<int>& ip1, const vector<int>& ip2){
    for(int i=0; i<4; ++i){
        if((ip1[i] & mask[i]) != (ip2[i] & mask[i]))
            return false;
    }
    return true;
}

int main() {
    vector<int> mask(4);
    scanf("%d.%d.%d.%d", &mask[0], &mask[1], &mask[2], &mask[3]);
    vector<int> ip1(4);
    scanf("%d.%d.%d.%d", &ip1[0], &ip1[1], &ip1[2], &ip1[3]);
    vector<int> ip2(4);
    scanf("%d.%d.%d.%d", &ip2[0], &ip2[1], &ip2[2], &ip2[3]);
    if(!check_number(mask) || !check_mask(mask) || !check_number(ip1) || !check_number(ip2)){
        cout << 1 << endl;
        return 0;
    }
    if(same_net(mask, ip1, ip2)){
        cout << 0 << endl;
    }else{
        cout << 2 << endl;
    }

    return 0;
}
// 64 位输出请用 printf("%lld")