def is_valid_ip(ip,counter,mask):
parts = ip.split('.')
if len(parts)!=4:
counter[5]+=1
try: nums = [int(p) for p in parts]
except:
counter[5]+=1
return counter
return counter
if nums[0]==0 or nums[0]==127:
return counter
if not is_valid_mask(mask):
counter[5]+=1
return counter
for num in nums:
if num>255 or num<0:
counter[5]+=1
return counter
if nums[0]>=1 and nums[0]<=127:
if nums[0]==10:
counter[6]+=1
counter[0]+=1
elif nums[0]>=128 and nums[0]<=191:
if nums[1]==172 and 16<=nums[1]<=31:
counter[6]+=1
counter[1]+=1
elif nums[0]>=192 and nums[0]<=223:
if nums[0]==192 and nums[1]==168:
counter[6]+=1
counter[2]+=1
elif nums[0]>=224 and nums[0]<=239:
counter[3]+=1
elif nums[0]>=240 and nums[0]<=255:
counter[4]+=1
return counter
def is_valid_mask(mask):
parts = mask.split('.')
if len(parts)!=4:
return False
try: parts = [int(p)for p in parts]
except: return False
for part in parts:
if part<0 or part >255:
return False
bin_str = ''.join(f'{p:08b}'for p in parts)
if '01' in bin_str:
return False
if bin_str =='1'*32 or bin_str =='0'*32:
return False
return True
import sys
count =[0]*7
for line in sys.stdin.readlines():
try:ip,mask = line.split('~')
except:
count[5]+=1
continue
count = is_valid_ip(ip,count,mask)
print(' '.join(map(str,count)))