safe = unsafe = 0 def is_safe(report: str) -> bool: last_num = 0 increase = True for ii, num in enumerate((int(elem) for elem in report.split())): if ii != 0: if ii == 1: increase = num > last_num if (num > last_num) != increase: return False diff = abs(num - last_num) if diff < 1 or diff > 3: return False last_num = num return True with open("input") as f: for report in f.readlines(): if is_safe(report): safe += 1 else: unsafe += 1 print(f"safe: {safe}\nunsafe: {unsafe}")