from sys import stdin def birange(a, b): if b < a: a, b = b, a return range(a, b + 1) solid = set() for line in stdin: parts = [[int(n) for n in s.split(',')] for s in line.split("->")] for a, b in zip(parts, parts[1:]): for x in birange(a[0], b[0]): for y in birange(a[1], b[1]): solid.add((x, y)) max_y = max([y for x,y in solid]) print(max_y) def drop(x, y): while True: while not (x, y+1) in solid: y += 1 if max_y < y: return False if not (x-1, y+1) in solid: x -= 1 y += 1 elif not (x+1, y+1) in solid: x += 1 y += 1 else: print(x, y) solid.add((x, y)) return True n = 0 while drop(500, 0): n += 1 print(n)