#!/usr/bin/env python3 import json lines = (json.loads(x.strip()) for x in open("input.txt") if x != "\n") def is_first_list_smaller(m1, m2): for i1, i2 in zip(m1, m2): if isinstance(i1, list) and not isinstance(i2, list): i2 = [i2] elif not isinstance(i1, list) and isinstance(i2, list): i1 = [i1] if isinstance(i1, list) and isinstance(i2, list): cmp = is_first_list_smaller(i1, i2) if cmp is not None: return cmp else: continue if i1 < i2: return True if i2 < i1: return False return True if len(m1) < len(m2) else None if len(m1) == len(m2) else False s = [] for idx, line in enumerate(lines, 1): nxt = next(lines) if is_first_list_smaller(line, nxt): s.append(idx) print(sum(s))