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)