#和18题有点类似
#思路:
#判断输入是否合法
#进行运算,判断是否在同一子网
#ip格式
def checkip(s):
a=s.split(".")
for i in range(len(a)):
a[i]=int(a[i])
for i in a:
if 0<=i<=255:
continue
else:
return False
return True
#子网掩码格式
def checkmask(s):
a=s.split(".")
for i in range(len(a)):#判断范围
a[i]=int(a[i])
if not 0<=a[i]<=255:
return False
for i in range(len(a)):
a[i]=bin(a[i])[2:]#转为二进制字符串,去掉前缀
a[i]='0'*(8-len(a[i]))+a[i]#补0
b="".join(a)
if "10" in b and len(b.split("10"))==2:#检验前面全1后面全0
c=b.split("10")
if c[0].count("1")==len(c[0]) and c[1].count("0")==len(c[1]):
return True
else:
return False
#运算
def op(mask,ip1,ip2):
a=mask.split(".")
b=ip1.split(".")
c=ip2.split(".")
for i in range(len(a)):
a[i]=int(a[i])
b[i]=int(b[i])
c[i]=int(c[i])
if a[i]&b[i]==a[i]&c[i]:
continue
else:
return 2
return 0
mask=input()
ip1=input()
ip2=input()
if not checkip(ip1) or not checkip(ip2) or not checkmask(mask):
print(1)
else:
print(op(mask,ip1,ip2))