#include<iostream>
#include<algorithm>
#include<sstream>
#include<vector>
#include<bitset>
using namespace std;
bool isNumb(string str)
{
    for(int i=0;i<str.length();i++)
    {
        if(!isdigit(str[i])) return false;
    }
    return true;
}
bool isIp(string ips)
{
    istringstream ins(ips);
    string temp;
    while(getline(ins,temp,'.'))
    {
        if(temp.empty()) return false;
        else if(!isNumb(temp)) return false;
        else{
            if(strtol(temp.c_str(), NULL, 10)>255) return false;
        }
    }
    return true;
}
bool isMask(string ips)
{
    string res;
    istringstream ins(ips);
    string temp;
    while(getline(ins,temp,'.'))
    {
        if(temp.empty()) return false;
        else if(!isNumb(temp)) return false;
        else{
            long value=strtol(temp.c_str(), NULL, 10);
            if(value>255) return false;
            bitset<8> lSet(value);
            res+=lSet.to_string();
        }
    }
    temp=res;
    sort(temp.begin(), temp.end(),[](char p1,char p2){return p1>p2;});
    if(res.compare(temp)==0 && res[0]=='1' && res[temp.length()-1]=='0') return true;
    return false;
}
string getBinary(string ips)
{
    string res;
    istringstream ins(ips);
    string temp;
    while(getline(ins,temp,'.'))
    {
        bitset<8> lSet(strtol(temp.c_str(), NULL, 10));
        res+=lSet.to_string();
    }
    return res;
}
string andOperator(string mask,string ip)
{
    string res="";
    for(int i=0;i<mask.size();i++)
    {
        if(mask[i]=='1' && ip[i]=='1') res+="1";
        else res+="0";
    }
    return res;
}
int main(int argc,char* argv[])
{
    string maskStr="",ip1="",ip2="";
    while(cin>>maskStr>>ip1>>ip2)
    {
        if(!isMask(maskStr)||!isIp(ip1)||!isIp(ip2)) cout<<"1"<<endl;
        else{
            string maskBinary=getBinary(maskStr);
            string ip1Binary=getBinary(ip1);
            string ip2Binary=getBinary(ip2);
            if(andOperator(maskBinary,ip1Binary)==andOperator(maskBinary,ip2Binary))  cout<<"0"<<endl;
            else cout<<"2"<<endl;
        }
    }
    return 0;
}