···11+def is_dec(l):
22+ for i in range(len(l)-1):
33+ if l[i] <= l[i+1] or l[i] - l[i+1] > 3:
44+ return False
55+ return True
66+77+def is_inc(l):
88+ for i in range(len(l)-1):
99+ if l[i] >= l[i+1] or l[i+1] - l[i] > 3:
1010+ return False
1111+ return True
1212+1313+def is_safe(l):
1414+ # print(f"{l} {is_dec(l)} {is_inc(l)}")
1515+ return is_dec(l) or is_inc(l)
1616+1717+def is_dec_2(l):
1818+ for i in range(len(l)):
1919+ if i == 0 and is_dec(l[1:]):
2020+ return True
2121+ elif i == len(l)-1 and is_dec(l[:-1]):
2222+ return True
2323+ elif is_dec(l[:i] + l[i+1:]) and is_dec([l[i-1]] + l[i+1:]):
2424+ return True
2525+ return False
2626+2727+def is_inc_2(l):
2828+ for i in range(len(l)):
2929+ if i == 0 and is_inc(l[1:]):
3030+ return True
3131+ elif i == len(l)-1 and is_inc(l[:-1]):
3232+ return True
3333+ elif is_inc(l[:i] + l[i+1:]) and is_inc([l[i-1]] + l[i+1:]):
3434+ return True
3535+ return False
3636+3737+def is_safe_2(l):
3838+ # print(f"{l} {is_dec(l)} {is_inc(l)}")
3939+ return is_dec_2(l) or is_inc_2(l)
4040+4141+# with open('sample.txt') as f:
4242+with open('input.txt') as f:
4343+ lines = f.readlines()
4444+ nums = [[int(x) for x in line.split()] for line in lines]
4545+ print("Part 1")
4646+ safe_nums = [num for num in nums if is_safe(num)]
4747+ print(len(safe_nums))
4848+4949+ print("Part 2")
5050+ safe_nums_2 = [num for num in nums if is_safe_2(num)]
5151+ print(len(safe_nums_2))