#!/usr/bin/env python import sys import re def ip2int(ip) : ret = 0 match = re.match("(\d*)\.(\d*)\.(\d*)\.(\d*)", ip) if not match : return 0 for i in xrange(4) : ret = (ret << 8) + int(match.groups()[i]) return ret def int2ip(ipnum) : ip1 = ipnum >> 24 ip2 = ipnum >> 16 & 0xFF ip3 = ipnum >> 8 & 0xFF ip4 = ipnum & 0xFF return "%d.%d.%d.%d" % (ip1, ip2, ip3, ip4) def printrange(startip, endip) : bits = 1 mask = 1 while bits < 32 : newip = startip | mask if (newip>endip) or (((startip>>bits) << bits) != startip) : bits = bits - 1 mask = mask >> 1 break bits = bits + 1 mask = (mask<<1) + 1 newip = startip | mask bits = 32 - bits print "%s/%d" % (int2ip(startip), bits) if newip < endip : printrange(newip + 1, endip) while 1 : line = sys.stdin.readline().strip() if not line : break chars = line.split(" ") print "#%s - %s" % (chars[0], chars[1]) ip1 = ip2int(chars[0]) ip2 = ip2int(chars[1]) printrange(ip1, ip2)