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)))