import sys
import re

def isaddress(a):
    if re.match(r'((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d|0)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d|0)',a):
        return True
    else:
        return False

lines=[]
for line in sys.stdin:
    lines.append(line.split()[0])
for l in lines:
    if not isaddress(l):
        print(1)
        exit()
    
mask=list(map(int,lines[0].split(".")))
IP1=list(map(int,lines[1].split(".")))
IP2=list(map(int,lines[2].split(".")))


def toZeroOne(address)->str:
    check=""
    for a in address:
        tmp=bin(a)[2:].zfill(8)
        check+=tmp
    return check

check=toZeroOne(mask)
#print(check)
#print(check.count("01"))
if check.count("1")==0 or check.count("0")==0 or check.count("01")>0:
    print(1)
    exit()

def same(a,b,x):
    for i in range(4):
        if x[i]&a[i] != x[i]&b[i]:
            return False
    return True

if same(IP1,IP2,mask):
    print(0)
else:
    print(2)