with open('4.in') as f: inp = [tuple(tuple(map(int, elf.split('-'))) for elf in line.rstrip().split(',')) for line in f] def fully_contains(a, b): return b[0] >= a[0] and b[1] <= a[1] or a[0] >= b[0] and a[1] <= b[1] def overlaps(a, b): return b[0] <= a[0] <= b[1] or b[0] <= a[1] <= b[1] or \ a[0] <= b[0] <= a[1] # or a[0] <= b[1] <= a[1] print(sum(fully_contains(a, b) for a, b in inp)) print(sum(overlaps(a, b) for a, b in inp))