commit ec08c381493015846b3f148b97024ba3ff73e295 Author: suhas Date: Sun Oct 1 11:42:06 2023 -0500 go diff --git a/aoc21 b/aoc21 new file mode 160000 index 0000000..a7101bd --- /dev/null +++ b/aoc21 @@ -0,0 +1 @@ +Subproject commit a7101bd3eb0f8c1856bcd9a593d1aab09cdf3ef8 diff --git a/aoc22/five/five.py b/aoc22/five/five.py new file mode 100644 index 0000000..627ad3a --- /dev/null +++ b/aoc22/five/five.py @@ -0,0 +1,50 @@ +stacks = [ + list("SCVN")[::-1], + list("ZMJHNS")[::-1], + list("MCTGJND")[::-1], + list("TDFJWRM")[::-1], + list("PFH")[::-1], + list("CTZHJ")[::-1], + list("DPRQFSLZ")[::-1], + list("CSLHDFPW")[::-1], + list("DSMPFNGZ")[::-1] +] + +l = open("in.txt", "r").read().split("\n") + +# part1 +for instr in l: + cmds = instr.split(" ") + ol = stacks[int(cmds[3])-1] + nl = stacks[int(cmds[5])-1] + take = int(cmds[1]) + for _ in range(take): + old = ol[0] + nl.insert(0, old) + del ol[0] + +print(''.join([stk[0] for stk in stacks])) + +stacks2 = [ + list("SCVN"), + list("ZMJHNS"), + list("MCTGJND"), + list("TDFJWRM"), + list("PFH"), + list("CTZHJ"), + list("DPRQFSLZ"), + list("CSLHDFPW"), + list("DSMPFNGZ") +] + +# part2 +for instr in l: + cmds = instr.split(" ") + # move 3 from 9 to 6 + ol = stacks2[int(cmds[3])-1] + nl = stacks2[int(cmds[5])-1] + take = int(cmds[1]) + takelist = ol[(-1 * take):] + [nl.append(e) for e in takelist] + +print(''.join([stk[-1] for stk in stacks2])) diff --git a/aoc22/five/in.txt b/aoc22/five/in.txt new file mode 100644 index 0000000..faf88ca --- /dev/null +++ b/aoc22/five/in.txt @@ -0,0 +1,502 @@ +move 3 from 9 to 6 +move 7 from 6 to 2 +move 1 from 1 to 5 +move 7 from 7 to 1 +move 3 from 9 to 7 +move 1 from 9 to 1 +move 1 from 7 to 2 +move 11 from 1 to 8 +move 9 from 8 to 2 +move 1 from 6 to 7 +move 3 from 7 to 3 +move 7 from 3 to 4 +move 9 from 8 to 7 +move 3 from 3 to 1 +move 2 from 5 to 2 +move 6 from 7 to 3 +move 1 from 1 to 7 +move 1 from 9 to 2 +move 1 from 5 to 3 +move 1 from 8 to 2 +move 2 from 7 to 5 +move 1 from 1 to 4 +move 3 from 5 to 8 +move 2 from 8 to 7 +move 1 from 8 to 9 +move 7 from 3 to 1 +move 8 from 2 to 5 +move 3 from 7 to 3 +move 1 from 5 to 1 +move 1 from 9 to 6 +move 1 from 7 to 4 +move 1 from 6 to 3 +move 1 from 7 to 1 +move 9 from 4 to 5 +move 8 from 1 to 2 +move 3 from 3 to 2 +move 1 from 1 to 6 +move 7 from 5 to 6 +move 1 from 1 to 5 +move 1 from 3 to 5 +move 21 from 2 to 3 +move 8 from 6 to 3 +move 5 from 4 to 9 +move 9 from 3 to 8 +move 17 from 3 to 5 +move 6 from 2 to 1 +move 2 from 9 to 1 +move 3 from 3 to 6 +move 3 from 2 to 5 +move 7 from 8 to 2 +move 3 from 6 to 9 +move 2 from 2 to 4 +move 1 from 2 to 6 +move 2 from 2 to 6 +move 2 from 6 to 5 +move 1 from 6 to 1 +move 2 from 2 to 7 +move 1 from 8 to 2 +move 4 from 9 to 1 +move 4 from 1 to 6 +move 1 from 8 to 5 +move 3 from 6 to 9 +move 1 from 9 to 1 +move 2 from 9 to 2 +move 4 from 4 to 5 +move 1 from 7 to 8 +move 1 from 7 to 5 +move 8 from 1 to 8 +move 1 from 1 to 9 +move 1 from 6 to 8 +move 2 from 2 to 6 +move 1 from 1 to 3 +move 1 from 2 to 5 +move 1 from 3 to 4 +move 3 from 9 to 4 +move 4 from 4 to 1 +move 29 from 5 to 1 +move 2 from 6 to 3 +move 2 from 3 to 5 +move 2 from 5 to 9 +move 7 from 8 to 1 +move 3 from 8 to 6 +move 6 from 1 to 6 +move 2 from 9 to 8 +move 2 from 5 to 3 +move 3 from 5 to 6 +move 2 from 5 to 6 +move 1 from 5 to 1 +move 2 from 3 to 9 +move 1 from 8 to 6 +move 1 from 8 to 3 +move 1 from 3 to 5 +move 5 from 1 to 5 +move 5 from 6 to 2 +move 25 from 1 to 9 +move 9 from 9 to 3 +move 7 from 6 to 8 +move 9 from 5 to 9 +move 2 from 6 to 5 +move 6 from 9 to 7 +move 1 from 6 to 8 +move 3 from 2 to 1 +move 3 from 8 to 1 +move 5 from 9 to 6 +move 3 from 9 to 1 +move 4 from 6 to 9 +move 2 from 7 to 4 +move 1 from 4 to 1 +move 1 from 6 to 2 +move 7 from 1 to 6 +move 1 from 9 to 8 +move 9 from 3 to 9 +move 5 from 1 to 7 +move 1 from 5 to 7 +move 3 from 1 to 7 +move 3 from 6 to 7 +move 8 from 9 to 1 +move 3 from 7 to 3 +move 1 from 5 to 6 +move 3 from 1 to 7 +move 4 from 1 to 4 +move 2 from 8 to 5 +move 1 from 4 to 2 +move 3 from 2 to 7 +move 2 from 6 to 4 +move 1 from 1 to 2 +move 18 from 7 to 5 +move 1 from 7 to 5 +move 1 from 2 to 3 +move 4 from 5 to 9 +move 1 from 2 to 1 +move 2 from 3 to 9 +move 2 from 3 to 4 +move 2 from 6 to 5 +move 1 from 8 to 3 +move 4 from 9 to 7 +move 1 from 1 to 9 +move 3 from 5 to 2 +move 2 from 8 to 6 +move 2 from 6 to 1 +move 5 from 5 to 7 +move 7 from 9 to 7 +move 11 from 5 to 9 +move 3 from 7 to 6 +move 6 from 4 to 9 +move 5 from 7 to 3 +move 6 from 3 to 6 +move 2 from 1 to 2 +move 2 from 4 to 9 +move 6 from 9 to 2 +move 1 from 7 to 5 +move 10 from 2 to 9 +move 4 from 9 to 4 +move 1 from 4 to 3 +move 31 from 9 to 3 +move 1 from 9 to 4 +move 6 from 3 to 8 +move 1 from 5 to 8 +move 5 from 6 to 4 +move 4 from 3 to 2 +move 1 from 4 to 6 +move 22 from 3 to 7 +move 6 from 4 to 7 +move 4 from 6 to 2 +move 8 from 8 to 1 +move 3 from 2 to 8 +move 2 from 1 to 9 +move 1 from 2 to 6 +move 3 from 2 to 5 +move 2 from 5 to 4 +move 2 from 6 to 4 +move 24 from 7 to 4 +move 1 from 7 to 4 +move 2 from 1 to 5 +move 2 from 9 to 6 +move 10 from 4 to 6 +move 3 from 1 to 6 +move 6 from 7 to 1 +move 2 from 2 to 3 +move 1 from 7 to 4 +move 2 from 8 to 4 +move 1 from 8 to 5 +move 4 from 5 to 2 +move 5 from 4 to 1 +move 2 from 7 to 8 +move 2 from 8 to 4 +move 5 from 6 to 3 +move 2 from 4 to 3 +move 1 from 7 to 5 +move 2 from 3 to 6 +move 1 from 5 to 1 +move 3 from 6 to 8 +move 11 from 4 to 3 +move 7 from 6 to 1 +move 3 from 8 to 1 +move 1 from 2 to 3 +move 2 from 6 to 9 +move 2 from 2 to 3 +move 3 from 4 to 3 +move 2 from 9 to 4 +move 1 from 6 to 3 +move 5 from 1 to 2 +move 2 from 4 to 3 +move 24 from 3 to 7 +move 3 from 3 to 9 +move 1 from 2 to 6 +move 1 from 2 to 5 +move 1 from 6 to 1 +move 4 from 2 to 1 +move 2 from 9 to 2 +move 1 from 2 to 4 +move 18 from 7 to 5 +move 1 from 2 to 1 +move 1 from 9 to 1 +move 2 from 5 to 7 +move 13 from 1 to 8 +move 3 from 4 to 9 +move 7 from 1 to 7 +move 13 from 7 to 6 +move 1 from 9 to 5 +move 3 from 4 to 3 +move 1 from 9 to 8 +move 3 from 1 to 3 +move 1 from 9 to 5 +move 2 from 1 to 4 +move 2 from 7 to 3 +move 4 from 3 to 1 +move 1 from 1 to 5 +move 9 from 6 to 7 +move 5 from 7 to 1 +move 2 from 4 to 1 +move 4 from 6 to 1 +move 3 from 5 to 3 +move 3 from 3 to 5 +move 7 from 1 to 6 +move 6 from 6 to 1 +move 1 from 6 to 8 +move 2 from 7 to 9 +move 2 from 1 to 5 +move 1 from 3 to 7 +move 7 from 5 to 9 +move 10 from 1 to 5 +move 8 from 8 to 4 +move 6 from 4 to 8 +move 1 from 4 to 1 +move 2 from 9 to 8 +move 2 from 1 to 3 +move 2 from 7 to 3 +move 1 from 7 to 8 +move 4 from 3 to 8 +move 1 from 3 to 2 +move 20 from 5 to 8 +move 1 from 2 to 4 +move 4 from 9 to 4 +move 4 from 4 to 5 +move 18 from 8 to 6 +move 3 from 9 to 6 +move 1 from 3 to 9 +move 10 from 8 to 7 +move 7 from 7 to 9 +move 7 from 8 to 5 +move 3 from 7 to 8 +move 6 from 5 to 1 +move 6 from 9 to 4 +move 1 from 9 to 6 +move 1 from 3 to 6 +move 1 from 8 to 5 +move 1 from 9 to 4 +move 12 from 6 to 7 +move 5 from 7 to 1 +move 6 from 8 to 5 +move 1 from 5 to 1 +move 3 from 5 to 3 +move 8 from 4 to 9 +move 2 from 3 to 7 +move 4 from 7 to 2 +move 10 from 5 to 6 +move 11 from 1 to 6 +move 4 from 2 to 5 +move 1 from 3 to 8 +move 1 from 8 to 9 +move 1 from 4 to 7 +move 3 from 7 to 4 +move 1 from 1 to 6 +move 1 from 4 to 7 +move 1 from 7 to 1 +move 4 from 5 to 2 +move 3 from 7 to 1 +move 2 from 4 to 8 +move 20 from 6 to 8 +move 4 from 1 to 5 +move 2 from 5 to 2 +move 6 from 6 to 1 +move 5 from 1 to 8 +move 7 from 6 to 2 +move 6 from 9 to 7 +move 2 from 9 to 8 +move 2 from 7 to 4 +move 4 from 2 to 6 +move 3 from 5 to 8 +move 12 from 8 to 7 +move 1 from 4 to 3 +move 1 from 2 to 9 +move 1 from 9 to 2 +move 1 from 6 to 8 +move 1 from 3 to 1 +move 2 from 1 to 6 +move 1 from 4 to 2 +move 3 from 6 to 2 +move 2 from 5 to 7 +move 1 from 9 to 8 +move 6 from 2 to 4 +move 17 from 7 to 1 +move 10 from 1 to 7 +move 4 from 2 to 6 +move 10 from 7 to 8 +move 3 from 6 to 2 +move 4 from 4 to 1 +move 2 from 6 to 4 +move 4 from 2 to 6 +move 1 from 7 to 1 +move 2 from 4 to 3 +move 12 from 1 to 7 +move 5 from 6 to 3 +move 17 from 8 to 2 +move 4 from 3 to 8 +move 1 from 4 to 2 +move 20 from 8 to 7 +move 19 from 2 to 6 +move 7 from 6 to 3 +move 7 from 3 to 5 +move 2 from 5 to 7 +move 4 from 6 to 9 +move 1 from 4 to 2 +move 1 from 2 to 1 +move 2 from 3 to 6 +move 1 from 2 to 6 +move 1 from 3 to 1 +move 4 from 6 to 2 +move 1 from 5 to 9 +move 7 from 7 to 3 +move 7 from 3 to 8 +move 5 from 8 to 1 +move 2 from 8 to 3 +move 1 from 2 to 1 +move 3 from 5 to 6 +move 1 from 3 to 9 +move 2 from 9 to 2 +move 8 from 1 to 7 +move 3 from 7 to 6 +move 2 from 2 to 4 +move 21 from 7 to 3 +move 10 from 3 to 1 +move 2 from 9 to 2 +move 7 from 3 to 4 +move 3 from 3 to 7 +move 4 from 2 to 3 +move 3 from 7 to 8 +move 1 from 3 to 6 +move 1 from 3 to 2 +move 4 from 7 to 9 +move 10 from 1 to 6 +move 1 from 5 to 9 +move 6 from 7 to 2 +move 24 from 6 to 5 +move 2 from 8 to 4 +move 1 from 8 to 6 +move 2 from 2 to 9 +move 5 from 2 to 7 +move 1 from 2 to 9 +move 11 from 4 to 1 +move 3 from 3 to 2 +move 4 from 9 to 7 +move 1 from 1 to 5 +move 1 from 6 to 1 +move 5 from 1 to 9 +move 5 from 9 to 7 +move 5 from 7 to 5 +move 23 from 5 to 2 +move 5 from 7 to 8 +move 6 from 5 to 6 +move 1 from 3 to 7 +move 1 from 5 to 7 +move 6 from 7 to 8 +move 3 from 6 to 1 +move 2 from 8 to 7 +move 4 from 2 to 1 +move 4 from 8 to 5 +move 7 from 2 to 3 +move 1 from 7 to 4 +move 1 from 4 to 7 +move 4 from 3 to 8 +move 6 from 1 to 9 +move 4 from 8 to 6 +move 3 from 1 to 5 +move 3 from 8 to 5 +move 1 from 1 to 8 +move 3 from 9 to 1 +move 3 from 6 to 7 +move 1 from 7 to 9 +move 3 from 8 to 3 +move 8 from 5 to 7 +move 11 from 2 to 8 +move 5 from 8 to 3 +move 1 from 8 to 7 +move 10 from 3 to 4 +move 2 from 5 to 8 +move 3 from 9 to 2 +move 1 from 9 to 6 +move 7 from 2 to 7 +move 6 from 9 to 4 +move 1 from 8 to 5 +move 3 from 6 to 8 +move 1 from 5 to 3 +move 2 from 3 to 1 +move 6 from 1 to 3 +move 13 from 7 to 5 +move 16 from 4 to 3 +move 2 from 1 to 5 +move 5 from 5 to 4 +move 11 from 3 to 4 +move 2 from 7 to 1 +move 7 from 3 to 1 +move 2 from 8 to 3 +move 8 from 1 to 9 +move 12 from 4 to 8 +move 1 from 1 to 4 +move 2 from 6 to 2 +move 3 from 7 to 8 +move 2 from 4 to 6 +move 5 from 8 to 1 +move 3 from 7 to 5 +move 6 from 5 to 7 +move 2 from 2 to 5 +move 1 from 4 to 9 +move 5 from 1 to 8 +move 6 from 3 to 1 +move 7 from 5 to 7 +move 7 from 9 to 2 +move 1 from 6 to 7 +move 1 from 1 to 9 +move 2 from 5 to 3 +move 2 from 9 to 6 +move 13 from 7 to 3 +move 2 from 6 to 1 +move 1 from 9 to 2 +move 16 from 8 to 7 +move 6 from 8 to 5 +move 3 from 2 to 5 +move 4 from 2 to 1 +move 3 from 1 to 8 +move 2 from 8 to 9 +move 1 from 8 to 7 +move 1 from 2 to 1 +move 8 from 3 to 1 +move 1 from 4 to 5 +move 1 from 6 to 3 +move 2 from 9 to 7 +move 5 from 1 to 4 +move 15 from 7 to 9 +move 11 from 9 to 3 +move 7 from 1 to 3 +move 2 from 1 to 6 +move 1 from 6 to 3 +move 2 from 4 to 5 +move 2 from 4 to 9 +move 7 from 5 to 9 +move 5 from 9 to 3 +move 1 from 1 to 6 +move 5 from 5 to 9 +move 1 from 4 to 8 +move 1 from 8 to 4 +move 3 from 7 to 4 +move 8 from 9 to 5 +move 1 from 6 to 4 +move 4 from 9 to 3 +move 1 from 9 to 3 +move 23 from 3 to 1 +move 12 from 1 to 2 +move 6 from 1 to 9 +move 5 from 9 to 7 +move 3 from 3 to 7 +move 6 from 4 to 3 +move 1 from 6 to 8 +move 6 from 1 to 2 +move 3 from 7 to 3 +move 3 from 2 to 5 +move 10 from 3 to 5 +move 1 from 1 to 8 +move 12 from 2 to 5 +move 3 from 2 to 9 +move 2 from 8 to 4 +move 13 from 5 to 1 +move 2 from 9 to 2 +move 2 from 1 to 3 +move 11 from 3 to 1 +move 2 from 2 to 1 +move 2 from 1 to 9 +move 16 from 1 to 7 +move 17 from 5 to 8 +move 1 from 1 to 2 +move 3 from 9 to 6 \ No newline at end of file diff --git a/aoc22/five/out.txt b/aoc22/five/out.txt new file mode 100644 index 0000000..00208e3 --- /dev/null +++ b/aoc22/five/out.txt @@ -0,0 +1,1007 @@ +CNSZFDVLJ +[['S', 'C', 'V', 'N'], ['Z', 'M', 'J', 'H', 'N', 'S'], ['M', 'C', 'T', 'G', 'J', 'N', 'D'], ['T', 'D', 'F', 'J', 'W', 'R', 'M'], ['P', 'F', 'H'], ['C', 'T', 'Z', 'H', 'J'], ['D', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z'], ['C', 'S', 'L', 'H', 'D', 'F', 'P', 'W'], ['D', 'S', 'M', 'P', 'F', 'N', 'G', 'Z']] +['D', 'S', 'M', 'P', 'F', 'N', 'G', 'Z'] +['C', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z'] +['C', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z'] +['S', 'C', 'V', 'N'] +['P', 'F', 'H', 'N'] +['D', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z'] +['S', 'C', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z'] +['D', 'S', 'M', 'P', 'F'] +['D', 'M', 'P', 'F'] +['D', 'S'] +['S', 'C', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S'] +['D', 'M', 'P', 'F'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F'] +['S', 'C', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S'] +['C', 'S', 'L', 'H', 'D', 'F', 'P', 'W', 'S', 'C', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S'] +['C', 'S', 'L', 'H', 'D', 'F', 'P', 'W', 'S', 'C', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S'] +['C'] +['D', 'M', 'P', 'C'] +['D', 'M', 'P', 'C'] +['M', 'C', 'T', 'G', 'J', 'N', 'D', 'M', 'P', 'C'] +['M', 'C', 'T', 'G', 'J', 'N', 'D', 'M', 'P', 'C'] +['T', 'D', 'F', 'J', 'W', 'R', 'M', 'G', 'J', 'N', 'D', 'M', 'P', 'C'] +['C', 'S', 'L', 'H', 'D', 'F', 'P', 'W', 'S', 'C'] +['D', 'S', 'L', 'H', 'D', 'F', 'P', 'W', 'S', 'C'] +['M', 'C', 'T'] +['M', 'C', 'T'] +['P', 'F', 'H', 'N'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S', 'H', 'N'] +['D', 'S', 'L', 'H', 'D', 'F', 'P', 'W', 'S', 'C'] +['D', 'F', 'P', 'W', 'S', 'C'] +['M', 'C', 'T'] +['D', 'S', 'L', 'H', 'T'] +['D'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S', 'H', 'N', 'D'] +['P', 'F'] +['D', 'F', 'P', 'W', 'S', 'C', 'F'] +['C'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S', 'H', 'N', 'D', 'C'] +['D', 'S', 'L', 'H', 'T'] +['P', 'H', 'T'] +['M', 'C'] +['T', 'D', 'F', 'J', 'W', 'R', 'M', 'G', 'J', 'N', 'D', 'M', 'P', 'C', 'C'] +['P', 'H', 'T'] +['P', 'H', 'T'] +['P', 'H', 'T'] +['D', 'S', 'L', 'H', 'T'] +['P'] +['P'] +['D', 'F', 'P', 'W', 'S', 'C', 'F'] +['M', 'D', 'F', 'P', 'W', 'S', 'C', 'F'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z', 'S', 'H', 'N', 'D', 'C'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'C'] +['D', 'S', 'L', 'H', 'T'] +['L', 'H', 'T'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'C'] +['M', 'D', 'F', 'P', 'W', 'S', 'C', 'F', 'C'] +['P'] +['P'] +['D', 'S'] +['T', 'D', 'F', 'J', 'W', 'R', 'M', 'G', 'J', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['P'] +['L', 'H', 'T', 'P'] +['D'] +['M', 'D', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D'] +['T', 'D', 'F', 'J', 'W', 'R', 'M', 'G', 'J', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['M', 'D', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D'] +['L', 'H', 'T', 'P'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'P'] +['M', 'D'] +['D'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['M'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M'] +['L'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H', 'J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'P'] +['J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'P'] +['D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'P', 'D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['T', 'D', 'F', 'J', 'W', 'R', 'M'] +['F', 'J', 'W', 'R', 'M'] +['J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'P', 'D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['P', 'D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['J', 'N', 'G', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T'] +['Z', 'M', 'J', 'H', 'N', 'S', 'T', 'Z', 'H'] +['H', 'N', 'S', 'T', 'Z', 'H'] +['F', 'J', 'W', 'R', 'M'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M'] +['J', 'N', 'G'] +['J', 'N', 'G'] +['Z', 'M', 'J'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J'] +['P', 'D', 'N', 'D', 'M', 'P', 'C', 'C', 'S'] +['N', 'D', 'M', 'P', 'C', 'C', 'S'] +['J', 'N', 'G'] +['F', 'J', 'W', 'J', 'N', 'G'] +['N', 'D', 'M', 'P', 'C', 'C', 'S'] +['T', 'D', 'C', 'S'] +['N', 'D', 'M', 'P', 'C'] +['C'] +['N', 'D', 'M', 'P'] +['C', 'M', 'P'] +['C', 'M', 'P'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P'] +['C'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M', 'C'] +['N', 'D'] +['N', 'D'] +['P', 'D'] +['D'] +['F', 'J', 'W', 'J', 'N', 'G'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'W', 'J', 'N', 'G'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'W', 'J', 'N', 'G'] +['W', 'J', 'N', 'G'] +['P'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P'] +['W', 'J', 'N', 'G'] +['F', 'J', 'J', 'N', 'G'] +['F', 'J', 'J', 'N', 'G'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'G'] +['F', 'J', 'J', 'N'] +['D', 'J', 'N'] +['T', 'D', 'C', 'S'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S'] +['N', 'D'] +['D'] +['N'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N'] +['H', 'N', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'G'] +['D', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'G'] +['H', 'N'] +['F', 'J', 'N'] +['W'] +['D', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'G', 'W'] +['D', 'J', 'N'] +['J', 'N'] +['H'] +['H'] +['D'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D'] +['H'] +['H'] +['F', 'J', 'N'] +['H', 'F', 'J', 'N'] +['H', 'F', 'J', 'N'] +['H', 'F', 'J', 'N'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D'] +['J', 'N'] +['J', 'N'] +['J', 'N'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'J', 'N'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L', 'J', 'N'] +['J', 'N'] +['D', 'S', 'T', 'Z', 'H', 'R', 'M', 'C', 'G', 'W'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D', 'Z', 'H', 'R', 'M', 'C', 'G', 'W'] +['D', 'S', 'T'] +['D', 'S', 'T'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D', 'Z', 'H', 'R', 'M', 'C', 'G', 'W'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W'] +['J', 'N'] +['J', 'N'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J', 'M', 'L'] +['M', 'L'] +['S', 'L', 'Z', 'S', 'H', 'N', 'D', 'G', 'J'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W', 'D', 'G', 'J'] +['S', 'L', 'Z', 'S', 'H', 'N'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W', 'D', 'G', 'J', 'H', 'N'] +['S', 'L', 'Z', 'S'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D', 'Z', 'S'] +['M', 'L'] +['M', 'L'] +['J', 'N'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W', 'D', 'G', 'J', 'H', 'N', 'N'] +['J'] +['J'] +['J'] +['S', 'L', 'Z', 'J'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C', 'S', 'N', 'D', 'Z', 'S'] +['S', 'L', 'Z', 'J', 'S', 'N', 'D', 'Z', 'S'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W', 'D', 'G', 'J', 'H', 'N', 'N'] +['G', 'J', 'H', 'N', 'N'] +['H', 'F', 'J', 'N', 'Z', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['D', 'S', 'T', 'H', 'R', 'M', 'C', 'G', 'W', 'D'] +['H', 'R', 'M', 'C', 'G', 'W', 'D'] +['S', 'L', 'Z', 'J', 'S', 'N', 'D', 'Z', 'S'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'S', 'L', 'Z', 'J', 'S', 'N', 'D', 'Z', 'S'] +['D', 'S', 'T'] +['S', 'T'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'S', 'L', 'Z', 'J', 'S', 'N', 'D', 'Z', 'S'] +['J', 'S', 'N', 'D', 'Z', 'S'] +['D'] +['H', 'R', 'M', 'C', 'G', 'W', 'D', 'D'] +['G', 'J', 'H', 'N', 'N'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N'] +['H', 'R', 'M', 'C', 'G', 'W', 'D', 'D'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N', 'W', 'D', 'D'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D', 'H', 'T', 'S', 'L', 'Z'] +['H', 'T', 'S', 'L', 'Z'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'F', 'C', 'D'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N', 'W', 'D', 'D', 'F', 'C', 'D'] +['H', 'T', 'S', 'L', 'Z'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z'] +['J', 'S', 'N', 'D', 'Z', 'S'] +['Z', 'S'] +['Z', 'S'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N', 'W', 'D', 'D', 'F', 'C', 'D', 'S'] +['H'] +['G', 'J', 'H'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N', 'W', 'D', 'D', 'F', 'C', 'D', 'S'] +['W', 'D', 'D', 'F', 'C', 'D', 'S'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z'] +['H', 'R', 'M', 'C', 'G', 'Z'] +['Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['H', 'F', 'J', 'N', 'Z', 'H', 'N', 'N'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N'] +['S', 'T'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T'] +['H', 'F', 'J'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J'] +['W', 'D', 'D', 'F', 'C', 'D', 'S'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'C', 'D', 'S'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'C', 'D', 'S'] +['C', 'D', 'S'] +['S'] +['W', 'D', 'D', 'F', 'S'] +['M', 'J', 'M', 'P', 'P', 'T', 'D', 'C'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C'] +['M', 'J', 'M', 'P', 'P'] +['Z', 'J', 'M', 'P', 'P'] +['H', 'R', 'M', 'C', 'G', 'Z'] +['G', 'Z'] +['Z', 'J', 'M', 'P', 'P'] +['G', 'J', 'H', 'P'] +['G', 'J', 'H', 'P'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'J', 'H', 'P'] +['W', 'D', 'D', 'F', 'S'] +['Z', 'J', 'M', 'P', 'F', 'S'] +['M'] +['G', 'M'] +['J', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'J', 'H', 'P'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'J', 'H', 'P'] +['J'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'J', 'H', 'P', 'J'] +['G', 'M'] +['C', 'D', 'S', 'M'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'J', 'H', 'P', 'J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'J', 'H', 'P', 'J'] +['G'] +['G'] +['C', 'D', 'S', 'M'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'J', 'H', 'P', 'J', 'S', 'M'] +['C', 'D'] +['Z', 'J', 'M', 'P', 'F', 'S', 'C', 'D'] +['W', 'D', 'D'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'D', 'D'] +['H', 'R', 'M', 'C'] +['C'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'J', 'H', 'P', 'J', 'S', 'M'] +['P', 'J', 'S', 'M'] +['G'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'J', 'H', 'G'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D', 'C', 'D', 'D'] +['C', 'D', 'D'] +['H', 'R', 'M'] +['W', 'R', 'M'] +['W', 'R', 'M'] +['R', 'M'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'H', 'F', 'J', 'T', 'D'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'T', 'D'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'T', 'S', 'L', 'Z', 'J', 'H', 'G'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'T', 'D', 'T', 'S', 'L', 'Z', 'J', 'H', 'G'] +['G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'T', 'D', 'T', 'S', 'L', 'Z', 'J', 'H', 'G'] +['W', 'J', 'H', 'G'] +['Z', 'J', 'M', 'P', 'F', 'S', 'C', 'D'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'F', 'S', 'C', 'D'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'T', 'D', 'T', 'S', 'L', 'Z'] +['C', 'D', 'T', 'S', 'L', 'Z'] +['C', 'D', 'T', 'S', 'L', 'Z'] +['W', 'J', 'H', 'G', 'C', 'D', 'T', 'S', 'L', 'Z'] +['R', 'M'] +['C', 'D', 'D', 'R', 'M'] +['Z', 'J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'F', 'S', 'C', 'D', 'Z', 'J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'F', 'S', 'C', 'D', 'Z', 'J'] +['C', 'D', 'D', 'R', 'M', 'F', 'S', 'C', 'D', 'Z', 'J'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'T'] +['T'] +['C', 'D', 'D', 'R', 'M', 'F', 'S', 'C', 'D', 'Z', 'J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'D', 'D', 'R', 'M', 'F', 'S', 'C', 'D', 'Z', 'J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'D', 'D', 'R', 'M', 'F', 'S', 'C', 'D', 'Z', 'J'] +['C', 'D', 'Z', 'J'] +['C', 'D', 'Z', 'J'] +['J'] +['M', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'D', 'D', 'R', 'M', 'F', 'S'] +['J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'D', 'D', 'R', 'M', 'F', 'S'] +['M'] +['C', 'D', 'Z', 'M'] +['J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P', 'D', 'D', 'R', 'M', 'F', 'S'] +['H', 'D', 'D', 'R', 'M', 'F', 'S'] +['T'] +['H', 'D', 'D', 'R', 'M', 'F', 'S', 'T'] +['W', 'J', 'H', 'G', 'C', 'D', 'T', 'S', 'L', 'Z'] +['C', 'D', 'Z', 'M', 'D', 'T', 'S', 'L', 'Z'] +['J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'N', 'T', 'M', 'P'] +['C', 'N', 'T', 'M', 'P'] +['C', 'D', 'Z', 'M', 'D', 'T', 'S', 'L', 'Z'] +['W', 'J', 'H', 'G', 'C', 'Z'] +['J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N'] +['C', 'D', 'Z', 'M', 'D', 'T', 'S', 'L'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L'] +['W', 'J', 'H', 'G', 'C', 'Z'] +['C', 'N', 'T', 'M', 'P', 'H', 'G', 'C', 'Z'] +['H', 'D', 'D', 'R', 'M', 'F', 'S', 'T'] +['H', 'D', 'D', 'R', 'M', 'F', 'S', 'T'] +['C', 'N', 'T', 'M', 'P', 'H', 'G', 'C', 'Z'] +['G', 'C', 'Z'] +['H', 'D', 'D', 'R', 'M', 'F', 'S', 'T'] +['S', 'T'] +['C', 'N', 'T', 'M', 'P', 'H'] +['W', 'J', 'H'] +['C', 'N', 'T', 'M', 'P'] +['T', 'M', 'P'] +['T', 'M', 'P'] +['C', 'D', 'M', 'P'] +['W', 'J', 'H'] +['C', 'D', 'M', 'P', 'J', 'H'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'J', 'L', 'F', 'V', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'J', 'L', 'F', 'V'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L', 'V'] +['H', 'D', 'D', 'R', 'M', 'F'] +['T', 'M', 'F'] +['S', 'T'] +['W', 'S', 'T'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L', 'V'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L', 'V'] +['H', 'D', 'D', 'R'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L', 'V', 'D', 'D', 'R'] +['P', 'J', 'S', 'M', 'H', 'F', 'J', 'J', 'L', 'F'] +['H', 'H', 'F', 'J', 'J', 'L', 'F'] +['C', 'N'] +['C', 'N'] +['P', 'J', 'S', 'M'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'M'] +['G', 'C', 'Z'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'M', 'C', 'Z'] +['G'] +['T', 'M', 'F', 'G'] +['T', 'M', 'F', 'G'] +['T', 'M', 'F', 'G'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'D', 'N', 'M', 'C', 'Z'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['P', 'J', 'S'] +['J', 'S'] +['J', 'S'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'J', 'S'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'L', 'V', 'D', 'D', 'R'] +['C', 'N', 'L', 'V', 'D', 'D', 'R'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'J', 'S'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'J', 'S'] +['P'] +['P'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'J', 'S'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'J', 'S'] +['P'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'J', 'S'] +['S', 'J', 'S'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N'] +['W', 'S', 'T', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T'] +['S', 'J', 'S'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'J', 'S'] +['T', 'M', 'F', 'G'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G'] +['W', 'S', 'T'] +['S', 'T'] +['T', 'M', 'F'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F'] +['C', 'D', 'M', 'P', 'J', 'H', 'P', 'R'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R'] +['S', 'T'] +['C', 'D', 'M', 'P', 'J', 'S', 'T'] +['W'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'D', 'T', 'S', 'J', 'S'] +['T', 'D', 'T', 'S', 'J', 'S'] +['C', 'D', 'M', 'P', 'J', 'S', 'T'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['C', 'N', 'L', 'V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['C', 'N', 'L'] +['C', 'N', 'L'] +['T', 'D', 'T', 'S', 'J', 'S'] +['S'] +['T', 'D', 'T', 'S', 'J'] +['J'] +['S'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'S'] +['T', 'D', 'T', 'S'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S'] +['C', 'N', 'L'] +['N', 'L'] +['N', 'L'] +['C', 'D', 'M', 'P', 'J', 'L'] +['V', 'D', 'D', 'R', 'Q', 'F', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['N'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N'] +['C'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'S', 'T'] +['V', 'D', 'D', 'R', 'Q', 'F', 'S', 'T'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z', 'P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C'] +['C', 'D', 'M', 'P', 'J', 'L'] +['P', 'J', 'L'] +['H', 'H', 'F', 'J', 'J', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['V', 'D', 'D', 'R', 'Q', 'F', 'S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['V', 'D', 'D', 'R', 'Q', 'F', 'S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['D', 'R', 'Q', 'F', 'S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['P', 'J', 'L'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L'] +['C', 'D', 'M'] +['C', 'D', 'M'] +['P', 'J'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C', 'J'] +['H', 'H', 'F', 'J', 'J'] +['C', 'D', 'M', 'F', 'J', 'J'] +['P'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P'] +['H', 'H'] +['H', 'H'] +['V', 'D'] +['C', 'D', 'M', 'F', 'J', 'J', 'V', 'D'] +['C', 'D', 'M', 'F', 'J', 'J', 'V', 'D'] +['J', 'J', 'V', 'D'] +['J', 'J', 'V', 'D'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P', 'D'] +['D', 'R', 'Q', 'F', 'S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['S', 'T', 'L', 'F', 'D', 'N', 'M', 'C', 'Z'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'Z'] +['H', 'H'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'Z', 'H', 'H'] +['D', 'R', 'Q', 'F'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'Z', 'H', 'H', 'D', 'R', 'Q', 'F'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P', 'D'] +['C', 'D', 'M', 'F', 'L', 'P', 'D'] +['C', 'D', 'M', 'F', 'L', 'P', 'D'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P', 'D'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'Z', 'H', 'H', 'D', 'R', 'Q', 'F'] +['Z', 'H', 'H', 'D', 'R', 'Q', 'F'] +['Z', 'H', 'H', 'D', 'R', 'Q', 'F'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'Q', 'F'] +['Z'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C', 'J', 'Z'] +['S', 'T', 'L', 'F'] +['L', 'F'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'Q', 'F'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P', 'D', 'Q', 'F'] +['C', 'D', 'M', 'F'] +['S', 'T', 'F'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'R', 'W', 'L', 'P', 'D', 'Q', 'F'] +['L', 'F', 'R', 'W', 'L', 'P', 'D', 'Q', 'F'] +['J', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'D', 'T', 'S', 'N', 'C', 'J', 'Z'] +['T', 'D', 'T', 'S', 'N', 'C', 'J', 'Z'] +['T', 'D', 'T', 'S', 'N', 'C', 'J', 'Z'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z'] +['T', 'D'] +['J', 'D'] +['L', 'F', 'R', 'W', 'L', 'P', 'D', 'Q', 'F'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F'] +['J', 'D'] +['C', 'D', 'M', 'J', 'D'] +['S', 'T', 'F'] +['C', 'D', 'M', 'J', 'D', 'T', 'F'] +['S'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F', 'S'] +['C', 'D', 'M', 'J', 'D', 'T', 'F'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F'] +['C', 'D', 'M'] +['M'] +['J', 'F', 'P', 'W', 'S', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['M'] +['T', 'M'] +['L', 'F', 'R', 'W', 'L', 'P', 'D'] +['T', 'M', 'W', 'L', 'P', 'D'] +['T', 'M', 'W', 'L', 'P', 'D'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F', 'C', 'G', 'Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R'] +['L', 'F', 'R'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R'] +['C', 'D'] +['D'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J', 'Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F', 'C', 'G'] +['Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F', 'C', 'G'] +['Z', 'Q', 'F', 'S', 'J', 'D', 'T', 'F', 'C', 'G'] +['D', 'S', 'J', 'D', 'T', 'F', 'C', 'G'] +['P', 'Z', 'H', 'N', 'Z', 'M', 'S', 'T', 'S', 'N', 'C', 'J'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'S', 'T', 'S', 'N', 'C', 'J'] +['Z', 'Q', 'F'] +['P', 'Z', 'H', 'N', 'Z', 'Z', 'Q', 'F'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'S', 'T', 'S', 'N', 'C', 'J'] +['S', 'T', 'S', 'N', 'C', 'J'] +['D', 'S', 'J', 'D', 'T', 'F', 'C', 'G'] +['T', 'M', 'J', 'D', 'T', 'F', 'C', 'G'] +['D', 'S'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R', 'S'] +['C'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R', 'S', 'C'] +['P', 'Z', 'H', 'N', 'Z', 'Z', 'Q', 'F'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F'] +['D'] +['T', 'M', 'J', 'D', 'T', 'F', 'C', 'G', 'D'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R', 'S', 'C'] +['N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R', 'S', 'C'] +['N', 'M', 'C', 'H', 'H', 'D', 'R', 'L', 'F', 'R', 'S', 'C'] +['S', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C'] +['P', 'Z', 'H', 'N', 'Z', 'Z', 'Q'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'N', 'Z', 'Z', 'Q'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'N', 'Z', 'Z', 'Q'] +['S', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'N', 'Z', 'Z'] +['N', 'Z', 'Z'] +['T', 'M', 'J', 'D', 'T', 'F', 'C', 'G', 'D'] +['M', 'J', 'D', 'T', 'F', 'C', 'G', 'D'] +['N', 'Z', 'Z'] +['N', 'M', 'C', 'H', 'H', 'D', 'R', 'Z', 'Z'] +['N', 'M', 'C', 'H', 'H', 'D', 'R', 'Z', 'Z'] +['D', 'R', 'Z', 'Z'] +['J', 'F', 'P', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H'] +['S', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q'] +['D', 'R', 'Z', 'Z'] +['J', 'F', 'P', 'D', 'R', 'Z', 'Z'] +['N'] +['P', 'N'] +['P', 'N'] +['M', 'J', 'D', 'T', 'F', 'C', 'G', 'D', 'N'] +['T'] +['N', 'M', 'C', 'H', 'H', 'T'] +['N', 'M', 'C', 'H', 'H', 'T'] +['H', 'H', 'T'] +['S'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S'] +['H', 'H', 'T'] +['N', 'M', 'C', 'T'] +['N', 'M', 'C', 'T'] +['T'] +['J', 'F', 'P', 'D', 'R', 'Z', 'Z'] +['D', 'R', 'Z', 'Z'] +['N', 'M', 'C'] +['T', 'N', 'M', 'C'] +['H', 'H'] +['P', 'H', 'H'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'W', 'S', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S'] +['T', 'N', 'M', 'C'] +['J', 'F', 'P', 'T', 'N', 'M', 'C'] +['J', 'F', 'P', 'T', 'N', 'M', 'C'] +['D', 'R', 'Z', 'Z', 'M', 'C'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H', 'P', 'J', 'V', 'D', 'W', 'S'] +['P', 'J', 'V', 'D', 'W', 'S'] +['P', 'J', 'V', 'D', 'W', 'S'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S', 'J', 'V', 'D', 'W', 'S'] +['Z', 'S', 'N', 'G', 'M', 'F', 'H'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N', 'G', 'M', 'F', 'H'] +['M', 'J', 'D', 'T', 'F', 'C', 'G', 'D', 'N'] +['T', 'F', 'C', 'G', 'D', 'N'] +['M', 'J', 'D'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D'] +['T', 'F', 'C', 'G', 'D', 'N'] +['D', 'N'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N', 'G', 'M', 'F', 'H'] +['G', 'M', 'F', 'H'] +['J', 'F', 'P', 'T', 'N'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N'] +['T', 'F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N'] +['D', 'N'] +['N'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N'] +['M', 'N'] +['M', 'N'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N'] +['G', 'M', 'F', 'H'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'H'] +['N'] +['P', 'N'] +['P', 'N'] +['G', 'M', 'F', 'P', 'N'] +['D'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N', 'D'] +['G', 'M', 'F', 'P', 'N'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N', 'D', 'F', 'P', 'N'] +['J', 'F'] +['T', 'F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['M'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'H', 'M'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z', 'S', 'N', 'D', 'F', 'P', 'N'] +['S', 'N', 'D', 'F', 'P', 'N'] +['T', 'F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['T', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['D', 'R', 'Z', 'Z', 'M', 'C', 'Z'] +['G', 'M', 'Z', 'M', 'C', 'Z'] +['T', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['G', 'M', 'Z', 'M', 'C', 'Z'] +['D', 'R', 'Z', 'M', 'C', 'Z'] +['S', 'N', 'D', 'F', 'P', 'N'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N'] +['G', 'M', 'Z'] +['S', 'N', 'M', 'Z'] +['D', 'R', 'Z', 'M', 'C', 'Z'] +['G', 'Z', 'M', 'C', 'Z'] +['T'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T'] +['S', 'N', 'M', 'Z'] +['M', 'Z'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T'] +['G', 'Z', 'M', 'C', 'Z'] +['M', 'Z', 'G', 'Z', 'M', 'C', 'Z'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['D', 'R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F'] +['M', 'Z', 'G', 'Z', 'M', 'C', 'Z'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'Z', 'M', 'C', 'Z'] +['S', 'N'] +['D', 'R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'Z', 'M', 'C', 'Z'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'Z', 'M', 'C', 'Z'] +['D', 'R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['M', 'Z', 'G', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['M', 'Z', 'G', 'D', 'P', 'T', 'N', 'J', 'F', 'N'] +['D', 'P', 'T', 'N', 'J', 'F', 'N'] +['D', 'P', 'T', 'N', 'J', 'F', 'N'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'D', 'W', 'S', 'J'] +['D', 'W', 'S', 'J'] +['S'] +['D', 'S'] +['D', 'S'] +['S'] +['M', 'Z', 'G'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'Z', 'G'] +['D'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'Z', 'G', 'D'] +['M'] +['S', 'M'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'M', 'Z', 'G', 'D'] +['M', 'Z', 'G', 'D'] +['D', 'P', 'T', 'N', 'J'] +['D', 'W', 'S', 'J', 'J'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['J', 'Z', 'M', 'C', 'Z', 'F', 'N'] +['S', 'M', 'M', 'C', 'Z', 'F', 'N'] +['J', 'Z'] +['J', 'Z'] +['M', 'Z', 'G', 'D'] +['S', 'M', 'M', 'C', 'Z', 'F', 'N', 'D'] +['D', 'P', 'T', 'N'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N'] +['J', 'Z'] +['D', 'W', 'S', 'J', 'J', 'Z'] +['D', 'W', 'S', 'J', 'J', 'Z'] +['M', 'Z', 'G', 'J', 'Z'] +['S', 'M', 'M', 'C', 'Z', 'F', 'N', 'D'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'F', 'N', 'D'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'F', 'N', 'D'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D'] +['M', 'Z', 'G', 'J', 'Z'] +['J', 'Z'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['J', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['J', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['D', 'W', 'S', 'J'] +['M', 'Z', 'G', 'S', 'J'] +['J', 'T', 'P', 'H', 'H', 'W', 'L', 'P', 'D', 'M', 'F', 'Z'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z'] +['J', 'T', 'P', 'H', 'H'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'P', 'H', 'H'] +['M', 'Z', 'G', 'S', 'J'] +['J', 'T', 'Z', 'G', 'S', 'J'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N', 'P', 'H', 'H'] +['P', 'H', 'H'] +['J', 'T', 'Z', 'G', 'S', 'J'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J'] +['J', 'T', 'Z', 'G', 'S'] +['M', 'S'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V', 'D', 'F', 'P', 'N'] +['D', 'W', 'D', 'F', 'P', 'N'] +['H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['D'] +['D', 'W', 'D', 'F', 'P', 'N', 'D'] +['F', 'C', 'G', 'Q', 'S', 'J', 'V'] +['M', 'S', 'C', 'G', 'Q', 'S', 'J', 'V'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z'] +['P', 'H', 'H'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'H'] +['P'] +['P'] +['M', 'S', 'C', 'G', 'Q', 'S', 'J', 'V'] +['D', 'W', 'D', 'F', 'P', 'N', 'D', 'J', 'V'] +['M', 'S', 'C', 'G', 'Q', 'S'] +['F', 'S', 'C', 'G', 'Q', 'S'] +['M'] +['D', 'W', 'D', 'F', 'P', 'N', 'D', 'J', 'V', 'M'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'H'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'H'] +['J', 'T', 'Z', 'G'] +['T', 'Z', 'G'] +['D', 'W', 'D', 'F', 'P', 'N', 'D', 'J', 'V', 'M'] +['F', 'S', 'C', 'G', 'Q', 'S', 'D', 'J', 'V', 'M'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'H'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H'] +['P'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'P'] +['J', 'Z', 'W', 'L', 'P', 'D', 'M', 'F', 'Z', 'H', 'P'] +['D', 'W', 'D', 'F', 'P', 'N', 'M', 'F', 'Z', 'H', 'P'] +['D', 'W', 'D', 'F', 'P', 'N', 'M', 'F', 'Z', 'H', 'P'] +['F', 'S', 'C', 'G', 'Q', 'S', 'D', 'J', 'V', 'M', 'M', 'F', 'Z', 'H', 'P'] +['F', 'S', 'C', 'G', 'Q', 'S', 'D', 'J', 'V', 'M', 'M', 'F', 'Z', 'H', 'P'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H', 'M', 'F', 'Z', 'H', 'P'] +['R', 'L', 'F', 'R', 'S', 'C', 'H', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H', 'M', 'F', 'Z', 'H', 'P'] +['T', 'Z', 'G', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H', 'M', 'F', 'Z', 'H', 'P'] +['F', 'S', 'C', 'G', 'Q', 'S', 'D', 'J', 'V', 'M'] +['S', 'D', 'J', 'V', 'M'] +['R', 'L', 'F', 'R', 'S', 'C', 'H'] +['L', 'F', 'R', 'S', 'C', 'H'] +['J'] +['F', 'S', 'C', 'G', 'Q', 'J'] +['R'] +['F', 'S', 'C', 'G', 'Q', 'J', 'R'] +['F', 'S', 'C', 'G', 'Q', 'J', 'R'] +['S', 'D', 'J', 'V', 'M', 'S', 'C', 'G', 'Q', 'J', 'R'] +['L', 'F', 'R', 'S', 'C', 'H'] +['J', 'Z', 'W', 'L', 'P', 'D', 'S', 'C', 'H'] +['S', 'D', 'J', 'V', 'M', 'S', 'C', 'G', 'Q', 'J', 'R'] +['F', 'J', 'R'] +['T', 'Z', 'G', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H', 'M', 'F', 'Z', 'H', 'P'] +['J', 'Z', 'W', 'L', 'P', 'D', 'S', 'C', 'H', 'F', 'Z', 'H', 'P'] +['S', 'D', 'J', 'V', 'M', 'S', 'C', 'G', 'Q'] +['S', 'C', 'G', 'Q'] +['T', 'Z', 'G', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C', 'S', 'M', 'M', 'C', 'Z', 'H', 'M'] +['S', 'M', 'M', 'C', 'Z', 'H', 'M'] +['F', 'J', 'R'] +['R'] +['R'] +['F', 'J', 'R'] +['S', 'M', 'M', 'C', 'Z', 'H', 'M'] +['S', 'D', 'J', 'V', 'M', 'C', 'Z', 'H', 'M'] +['J', 'Z', 'W', 'L', 'P', 'D', 'S', 'C', 'H', 'F', 'Z', 'H', 'P'] +['D', 'W', 'D', 'F', 'P', 'N', 'C', 'H', 'F', 'Z', 'H', 'P'] +['S', 'D', 'J', 'V', 'M', 'C', 'Z', 'H', 'M'] +['L', 'F', 'R', 'C', 'Z', 'H', 'M'] +['J', 'Z', 'W', 'L', 'P', 'D', 'S'] +['S', 'C', 'G', 'Q', 'P', 'D', 'S'] +['S', 'D', 'J', 'V', 'M'] +['S', 'C', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M'] +['J', 'Z', 'W', 'L'] +['S', 'D', 'L'] +['D', 'W', 'D', 'F', 'P', 'N', 'C', 'H', 'F', 'Z', 'H', 'P'] +['J', 'Z', 'W', 'Z', 'H', 'P'] +['L', 'F', 'R', 'C', 'Z', 'H', 'M'] +['F', 'J', 'R', 'Z', 'H', 'M'] +['F', 'J', 'R', 'Z', 'H', 'M'] +['D', 'W', 'D', 'F', 'P', 'N', 'C', 'H', 'F', 'M'] +['S', 'D', 'L'] +['S', 'M', 'M', 'S', 'D', 'L'] +['S', 'C', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M'] +['F', 'J', 'R', 'Z', 'H', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M'] +['T', 'Z', 'G', 'P', 'T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C'] +['T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C'] +['T', 'N', 'F', 'N', 'D', 'J', 'H', 'T', 'S', 'N', 'C'] +['S', 'M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C'] +['T', 'N', 'F', 'N', 'D', 'J'] +['F', 'J', 'R', 'Z', 'H', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M', 'J'] +['S', 'M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C'] +['M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C'] +['S', 'C'] +['T', 'N', 'F', 'N', 'D', 'S', 'C'] +['D', 'W', 'D', 'F', 'P', 'N', 'C', 'H', 'F', 'M'] +['T', 'Z', 'G', 'P', 'H', 'F', 'M'] +['D', 'W', 'D', 'F', 'P', 'N', 'C'] +['L', 'F', 'R', 'C', 'C'] +['T', 'Z', 'G', 'P', 'H', 'F', 'M'] +['F', 'J', 'R', 'Z', 'H', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'H', 'F', 'M'] +['D', 'W', 'D', 'F', 'P', 'N'] +['M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['T', 'N', 'F', 'N', 'D', 'S', 'C'] +['C'] +['L', 'F', 'R', 'C', 'C'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'C', 'C'] +['C'] +['S', 'C'] +['S', 'C'] +['J', 'Z', 'W', 'Z', 'H', 'P', 'S', 'C'] +['J', 'Z', 'W', 'Z', 'H', 'P', 'S', 'C'] +['W', 'Z', 'H', 'P', 'S', 'C'] +['F', 'J', 'R', 'Z', 'H', 'G', 'Q', 'P', 'D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'H', 'F', 'M'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'H', 'F', 'M'] +['M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['W', 'Z', 'H', 'P', 'S', 'C', 'M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['J', 'Z'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'H', 'F', 'M', 'J', 'Z'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'H', 'F', 'M', 'J', 'Z'] +['H', 'F', 'M', 'J', 'Z'] +['W', 'Z', 'H', 'P', 'S', 'C', 'M', 'M', 'S', 'D', 'L', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['H', 'F', 'M', 'J', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['F', 'J', 'R', 'Z', 'H', 'G', 'Q', 'P'] +['Q', 'P'] +['W', 'Z', 'H', 'P', 'S', 'C', 'M', 'M', 'S', 'D', 'L'] +['Q', 'P', 'S', 'C', 'M', 'M', 'S', 'D', 'L'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'C', 'C'] +['W', 'Z', 'H', 'P', 'C', 'C'] +['Q', 'P', 'S', 'C', 'M', 'M', 'S', 'D', 'L'] +['P', 'S', 'C', 'M', 'M', 'S', 'D', 'L'] +['H', 'F', 'M', 'J', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N'] +['Q'] +['H', 'F', 'M', 'J', 'Q'] +['L', 'F'] +['L', 'F'] +['F', 'J', 'R', 'Z', 'H', 'G'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G'] +['H', 'F', 'M', 'J', 'Q'] +['J', 'Q'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G'] +['P', 'N', 'Z', 'H', 'G'] +['F', 'J', 'R'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'F', 'J', 'R'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'Z', 'G', 'P', 'F', 'J', 'R'] +['Z', 'G', 'P', 'F', 'J', 'R'] +['L', 'F'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'L', 'F'] +['H', 'F', 'M'] +['P', 'S', 'C', 'M', 'M', 'S', 'D', 'L', 'M'] +['P', 'N', 'Z', 'H', 'G'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G'] +['W', 'Z', 'H', 'P', 'C', 'C'] +['W', 'Z', 'H', 'P', 'C', 'C'] +['D', 'S', 'J', 'V', 'M', 'J', 'T', 'L', 'F'] +['Z', 'G', 'P', 'F', 'J', 'R', 'J', 'V', 'M', 'J', 'T', 'L', 'F'] +['P', 'S', 'C', 'M', 'M', 'S', 'D', 'L', 'M'] +['C', 'M', 'M', 'S', 'D', 'L', 'M'] +['J', 'Q'] +['Z', 'G', 'P', 'F', 'J', 'R', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['W', 'Z', 'H', 'P', 'C', 'C'] +['P', 'S', 'C'] +['D', 'S'] +['D', 'S'] +['P', 'S', 'C'] +['J', 'S', 'C'] +['Z', 'G', 'P', 'F', 'J', 'R', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['J', 'S', 'C'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C'] +['P'] +['C', 'M', 'M', 'S', 'D', 'L', 'M', 'P'] +['T', 'N', 'F', 'N', 'D', 'S', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G'] +['Z', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G'] +['T', 'N', 'F', 'N', 'D', 'S'] +['T', 'N', 'F', 'N', 'D', 'S'] +['C', 'M', 'M', 'S', 'D', 'L', 'M', 'P'] +['T', 'N', 'F', 'N', 'D', 'S', 'L', 'M', 'P'] +['C', 'M', 'M', 'S', 'D'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'M', 'S', 'D'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'M', 'S', 'D'] +['M', 'S', 'D'] +['M', 'S', 'D'] +['S', 'D'] +['M'] +['Z', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M'] +['C'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'C'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['H', 'F'] +['T', 'N', 'F', 'N', 'D', 'S', 'L', 'M', 'P', 'F'] +['J'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J'] +['S', 'D'] +['Z', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'J', 'T', 'L', 'F', 'Q'] +['H', 'J', 'T', 'L', 'F', 'Q'] +['Z', 'R', 'Z', 'H', 'T', 'S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D'] +['S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D'] +['S', 'N', 'C', 'D', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D'] +['W', 'Z', 'H', 'P', 'C', 'S', 'C', 'M', 'C', 'J', 'V', 'M'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M'] +['W', 'Z', 'H', 'P', 'C'] +['P', 'C'] +['P', 'C'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C'] +['H', 'J', 'T', 'L', 'F', 'Q'] +['T', 'N', 'F', 'N', 'D', 'S', 'L', 'M', 'P', 'F', 'F', 'Q'] +['H', 'J', 'T', 'L'] +['S', 'N', 'C', 'D', 'T', 'L'] +['T', 'N', 'F', 'N', 'D', 'S', 'L', 'M', 'P', 'F', 'F', 'Q'] +['S', 'N', 'C', 'D', 'T', 'L', 'S', 'L', 'M', 'P', 'F', 'F', 'Q'] +['S', 'N', 'C', 'D', 'T', 'L', 'S', 'L', 'M', 'P', 'F', 'F', 'Q'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q'] +['W', 'Z', 'H'] +['P', 'H'] +['T', 'N', 'F', 'N', 'D'] +['S', 'N', 'C', 'D', 'T', 'L', 'S', 'L', 'T', 'N', 'F', 'N', 'D'] +['H', 'J'] +['J'] +['J'] +['H', 'J'] +['Z', 'R', 'Z', 'H', 'T'] +['H', 'J', 'Z', 'H', 'T'] +['S', 'N', 'C', 'D', 'T', 'L', 'S', 'L', 'T', 'N', 'F', 'N', 'D'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D'] +['P', 'H'] +['H', 'J', 'Z', 'H', 'T', 'H'] +['S', 'N', 'C', 'D', 'T'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T'] +['S'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S'] +['W', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S'] +['W', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V', 'M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S'] +['M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S'] +['W', 'Z', 'H', 'G', 'M', 'S', 'D', 'S', 'C', 'M', 'C', 'J', 'V'] +['S', 'C', 'M', 'C', 'J', 'V'] +['S', 'C', 'M', 'C', 'J', 'V'] +['Z', 'R', 'C', 'M', 'C', 'J', 'V'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'P', 'N', 'Z'] +['Z', 'R', 'C', 'M', 'C', 'J', 'V', 'P', 'N', 'Z'] +['H', 'J', 'Z', 'H', 'T', 'H'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H'] +['P'] +['P'] +['W', 'Z', 'H', 'G', 'M', 'S', 'D'] +['M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G', 'M', 'S', 'D'] +['Z', 'R', 'C', 'M', 'C', 'J', 'V', 'P', 'N', 'Z'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N', 'Z'] +['M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G', 'M', 'S', 'D'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D', 'M', 'S', 'D'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N', 'Z'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D', 'M', 'S', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N', 'Z'] +['W'] +['P', 'W'] +['M', 'C', 'M', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D', 'M', 'S', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N', 'Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G'] +['M', 'C', 'M'] +['S', 'M', 'C', 'M'] +['P', 'W'] +['P', 'W'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D', 'M', 'S', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N', 'Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G'] +['S', 'M', 'C', 'M'] +['C', 'M'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'H', 'G'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G'] +['D', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G'] +['C', 'M'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G', 'C', 'M'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G', 'C', 'M'] +['S', 'M', 'C', 'M'] +['Z', 'P', 'F', 'F', 'Q', 'N', 'C', 'D', 'T', 'S', 'Z', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G'] +['Z', 'R', 'C', 'M', 'C', 'J', 'V', 'C', 'D', 'T', 'S', 'Z', 'S', 'G', 'P', 'F', 'J', 'R', 'J', 'W', 'D', 'H', 'G'] +['L', 'S', 'L', 'T', 'N', 'F', 'N', 'D', 'M', 'S', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N'] +['T', 'N', 'F', 'N', 'D', 'M', 'S', 'D', 'F', 'H', 'J', 'Z', 'H', 'T', 'H', 'P', 'N'] +['Z', 'P', 'F', 'F', 'Q', 'N'] +['N'] +['S', 'M', 'C', 'M'] +['M', 'C', 'M'] +QNDWLMGNS diff --git a/aoc22/five/stacks.txt b/aoc22/five/stacks.txt new file mode 100644 index 0000000..5b1095b --- /dev/null +++ b/aoc22/five/stacks.txt @@ -0,0 +1,9 @@ +[['S', 'C', 'V', 'N'], + ['Z', 'M', 'J', 'H', 'N', 'S'], + ['M', 'C', 'T', 'G', 'J', 'N', 'D'], + ['T', 'D', 'F', 'J', 'W', 'R', 'M'], + ['P', 'F', 'H'], + ['C', 'T', 'Z', 'H', 'J'], + ['D', 'P', 'R', 'Q', 'F', 'S', 'L', 'Z'], + ['C', 'S', 'L', 'H', 'D', 'F', 'P', 'W'], + ['D', 'S', 'M', 'P', 'F', 'N', 'G', 'Z']] diff --git a/aoc22/four/four.py b/aoc22/four/four.py new file mode 100644 index 0000000..2f9fd93 --- /dev/null +++ b/aoc22/four/four.py @@ -0,0 +1,18 @@ +fi = open("in.txt", "r") +lst = fi.read().split("\n") + +good1 = 0 +good2 = 0 + +for el in lst[:-1:]: + sets = el.split(",") + set1 = set(range(int(sets[0].split('-')[0]), int(sets[0].split('-')[-1])+1)) + set2 = set(range(int(sets[1].split('-')[0]), int(sets[1].split('-')[-1])+1)) + if set2.issubset(set1) or set1.issubset(set2): + good1 += 1 + if len([el for el in set1 if el in set2]) > 0: + good2 += 1 + +print(good1) +print(good2) + diff --git a/aoc22/four/in.txt b/aoc22/four/in.txt new file mode 100644 index 0000000..aa457d9 --- /dev/null +++ b/aoc22/four/in.txt @@ -0,0 +1,1000 @@ +12-80,12-81 +13-94,14-93 +9-9,10-61 +8-9,9-93 +36-63,55-63 +45-90,67-81 +32-61,13-80 +33-65,34-34 +4-95,5-95 +1-86,7-52 +10-65,64-64 +24-55,25-59 +19-81,6-19 +5-61,6-61 +85-85,11-86 +5-71,6-72 +71-94,70-93 +34-62,34-99 +51-80,57-90 +13-59,15-58 +65-84,64-87 +22-89,5-23 +5-5,6-98 +4-11,1-11 +85-96,5-86 +16-69,17-17 +69-70,14-70 +35-98,35-58 +73-83,81-81 +13-93,92-92 +2-92,96-99 +10-10,10-99 +3-70,2-70 +81-89,3-81 +8-9,9-78 +6-99,75-98 +11-88,11-90 +31-92,32-93 +9-98,90-93 +29-87,27-29 +17-95,17-95 +29-86,85-87 +16-19,1-18 +22-93,19-62 +34-96,34-95 +89-91,47-90 +47-71,52-70 +11-29,10-28 +23-30,23-80 +5-92,5-87 +53-53,7-53 +61-73,22-73 +34-49,32-67 +54-82,53-55 +5-29,27-29 +15-77,14-66 +22-76,21-22 +87-88,15-88 +38-38,19-37 +2-98,2-97 +36-94,35-36 +2-45,3-45 +99-99,57-92 +36-96,38-97 +2-97,2-98 +11-98,11-99 +44-92,93-95 +8-94,8-74 +7-24,23-45 +16-40,16-41 +21-76,7-75 +2-5,4-20 +96-99,77-97 +1-20,9-23 +14-33,33-48 +26-35,26-34 +67-99,17-68 +22-22,21-90 +2-9,8-87 +64-74,6-65 +39-99,17-39 +14-55,21-80 +39-88,65-87 +19-98,19-97 +49-50,3-49 +3-71,3-72 +84-88,83-88 +22-35,22-36 +25-96,24-69 +12-36,3-20 +42-84,41-71 +4-99,4-47 +53-59,54-59 +21-95,20-96 +17-50,44-60 +25-81,26-82 +3-96,2-95 +13-40,12-71 +30-98,30-69 +55-60,54-61 +43-96,42-95 +12-35,28-35 +2-2,3-92 +7-82,3-6 +92-99,92-97 +44-63,44-73 +71-71,57-72 +93-93,8-94 +5-83,4-82 +18-42,41-41 +6-27,7-27 +64-82,15-81 +2-61,5-60 +14-50,51-51 +50-53,49-49 +22-88,22-89 +7-87,1-88 +14-14,9-15 +23-27,23-29 +14-91,14-92 +63-72,47-80 +32-32,31-98 +18-40,9-17 +19-23,18-21 +5-97,6-97 +35-93,18-94 +27-95,24-94 +14-22,21-45 +60-75,59-76 +6-90,6-90 +72-72,16-73 +24-28,85-92 +13-93,13-92 +25-94,24-95 +20-65,20-45 +2-6,7-88 +17-97,16-17 +3-37,3-98 +75-93,43-96 +99-99,10-87 +39-39,39-90 +26-56,25-63 +23-28,29-76 +40-86,39-40 +2-94,3-95 +76-76,75-77 +16-82,15-81 +14-14,13-99 +1-38,37-98 +7-32,8-21 +1-7,5-86 +3-69,3-3 +33-92,33-91 +81-85,82-86 +1-95,94-95 +2-83,2-3 +9-58,10-10 +42-50,42-49 +58-66,18-66 +14-33,13-33 +39-76,39-40 +9-96,8-35 +94-97,11-93 +1-82,2-74 +8-10,15-98 +25-49,15-50 +86-95,63-87 +61-79,71-78 +29-81,43-98 +58-60,16-59 +41-64,40-64 +51-98,51-51 +30-31,31-98 +61-94,45-61 +32-55,33-64 +80-81,37-81 +37-84,36-37 +40-40,41-91 +20-83,20-83 +16-23,17-22 +36-52,35-53 +21-86,24-90 +14-81,15-81 +18-76,18-98 +88-90,7-89 +98-99,8-94 +26-57,26-27 +98-98,2-97 +18-28,17-28 +34-63,56-89 +18-70,18-69 +66-88,40-87 +12-68,69-76 +55-77,78-87 +20-77,25-78 +73-86,4-99 +41-54,53-53 +25-60,59-60 +61-84,61-83 +27-43,26-42 +8-62,15-42 +3-63,15-62 +27-84,26-85 +24-87,2-25 +23-30,29-98 +10-61,9-60 +9-93,9-51 +90-91,7-91 +14-20,4-14 +96-99,27-97 +21-93,13-22 +23-74,73-73 +10-85,1-84 +34-75,72-72 +59-93,59-94 +87-93,49-96 +8-97,8-89 +98-98,14-96 +38-92,93-96 +35-36,36-95 +14-38,15-99 +55-91,73-91 +10-19,11-62 +17-93,4-56 +45-88,24-46 +75-78,28-71 +4-87,3-86 +67-94,67-93 +48-86,16-47 +12-58,8-57 +13-14,1-14 +66-69,33-79 +25-97,19-97 +38-55,28-39 +2-93,3-92 +28-65,30-64 +68-68,65-70 +29-85,30-86 +2-99,98-98 +7-64,33-98 +28-95,96-98 +72-82,72-81 +25-68,18-96 +81-84,82-86 +9-75,9-76 +96-99,42-94 +11-75,4-12 +20-89,47-88 +56-84,36-56 +24-73,24-84 +50-84,11-83 +29-99,2-93 +32-48,31-48 +49-49,48-86 +30-30,30-49 +56-97,36-96 +14-22,23-31 +90-90,3-90 +23-26,23-27 +31-49,31-50 +1-14,2-13 +10-73,10-72 +4-73,4-73 +26-92,91-94 +12-98,16-99 +50-91,38-39 +76-96,77-82 +17-98,51-96 +3-73,1-4 +1-99,98-99 +80-83,81-81 +24-58,25-25 +22-65,64-65 +1-2,3-95 +30-71,60-68 +46-46,17-45 +24-66,22-65 +4-97,6-97 +53-67,54-54 +16-90,20-89 +53-95,31-96 +17-44,18-29 +2-58,57-57 +63-63,3-63 +19-75,20-80 +13-60,13-60 +49-50,50-76 +32-48,33-48 +22-34,22-35 +7-29,18-86 +52-85,84-84 +90-99,72-94 +8-73,10-83 +50-50,36-51 +40-75,40-74 +67-93,67-76 +79-80,18-66 +92-95,6-91 +1-99,9-99 +24-32,24-31 +7-8,7-93 +5-99,21-81 +82-90,89-92 +58-58,3-57 +4-95,5-98 +85-88,84-87 +3-92,2-92 +48-90,48-89 +8-97,7-15 +26-62,61-61 +82-82,4-81 +19-32,21-32 +1-5,6-75 +37-37,36-63 +14-34,15-34 +26-46,10-47 +10-29,10-28 +58-86,1-60 +36-36,35-81 +25-60,26-59 +2-94,1-99 +5-39,8-39 +16-95,17-17 +4-96,4-96 +80-95,15-79 +41-41,24-41 +25-67,32-66 +10-37,11-38 +15-83,48-64 +2-6,5-36 +77-88,3-78 +35-95,35-96 +51-69,24-96 +71-96,45-97 +1-93,5-94 +19-92,93-93 +54-84,54-89 +7-86,18-87 +12-12,13-90 +90-95,16-91 +6-73,6-73 +9-27,8-23 +13-48,12-26 +9-55,54-54 +23-99,29-98 +56-74,73-74 +46-87,29-89 +97-97,47-98 +17-82,8-16 +2-84,2-97 +41-53,3-40 +6-16,6-64 +41-43,6-42 +2-41,3-40 +17-66,18-81 +2-2,1-99 +30-54,6-54 +70-81,69-69 +46-72,46-73 +18-87,17-86 +10-95,10-95 +28-79,23-89 +13-52,28-52 +2-24,2-24 +35-35,36-86 +35-74,35-85 +79-83,26-83 +4-60,4-88 +5-5,5-94 +6-35,34-87 +2-2,1-97 +59-94,93-95 +10-88,88-95 +48-88,45-89 +85-88,88-89 +16-39,15-80 +3-97,2-99 +26-56,27-59 +7-98,6-7 +64-84,64-98 +38-91,38-99 +43-97,43-98 +68-71,29-85 +32-89,38-89 +1-4,5-99 +6-86,6-38 +25-99,24-98 +2-99,59-97 +15-66,15-67 +53-74,53-73 +43-87,43-86 +9-73,7-73 +8-97,8-9 +69-73,70-71 +20-25,26-31 +20-26,25-99 +29-51,30-52 +18-28,19-35 +19-72,20-20 +27-80,2-60 +90-90,79-91 +30-67,66-68 +82-90,48-62 +9-11,10-90 +13-98,17-98 +8-13,7-12 +14-56,15-98 +25-97,24-24 +46-64,45-64 +80-89,80-81 +40-57,56-57 +49-50,32-50 +25-66,24-67 +21-68,21-26 +6-99,3-98 +11-63,11-90 +6-8,7-84 +9-75,8-74 +64-65,41-65 +17-17,17-34 +69-69,47-70 +2-10,10-64 +85-97,55-84 +72-72,40-71 +19-90,20-20 +5-84,83-85 +27-81,27-81 +21-98,28-61 +3-5,4-90 +25-67,23-25 +96-96,27-97 +11-11,10-97 +39-91,65-91 +29-60,59-60 +24-24,25-77 +72-73,72-98 +10-28,10-29 +8-97,36-85 +7-81,7-80 +39-50,38-39 +29-55,28-56 +7-98,6-97 +3-96,1-2 +43-99,42-98 +36-64,37-66 +26-96,96-96 +39-82,38-38 +10-98,11-99 +1-14,4-89 +3-63,1-99 +4-98,4-97 +79-80,2-80 +8-88,7-88 +47-58,44-57 +29-97,97-99 +21-63,20-22 +14-82,4-14 +20-72,45-71 +85-92,58-86 +15-29,15-30 +30-76,29-29 +19-50,13-51 +12-93,2-94 +14-20,21-87 +53-83,52-84 +2-14,2-84 +10-98,99-99 +2-98,3-99 +46-60,46-94 +8-69,63-70 +93-93,2-92 +40-81,49-80 +80-81,10-81 +17-67,5-68 +27-88,27-87 +92-92,14-91 +98-99,17-97 +7-53,1-7 +5-79,6-96 +2-18,4-65 +1-55,1-54 +46-60,59-59 +47-68,6-64 +4-26,5-22 +15-16,16-17 +51-52,49-52 +20-36,20-35 +1-29,1-98 +11-79,10-80 +25-69,43-79 +45-65,46-94 +35-35,24-38 +22-88,1-99 +14-65,15-65 +4-4,4-99 +1-87,82-87 +13-51,14-14 +9-82,3-10 +4-15,14-38 +26-86,48-53 +3-93,1-1 +22-22,23-48 +35-97,36-36 +1-94,1-95 +31-31,30-82 +3-30,3-75 +46-79,46-79 +43-73,13-87 +14-88,14-92 +41-95,42-95 +1-64,63-63 +3-98,97-98 +75-75,75-96 +11-52,12-51 +11-11,12-98 +30-92,55-93 +15-98,15-87 +25-40,22-95 +60-61,61-87 +6-19,18-90 +2-8,9-94 +61-90,42-60 +82-92,81-91 +1-33,1-48 +51-93,50-51 +47-74,48-75 +1-89,1-88 +65-67,28-66 +9-98,63-97 +91-92,12-92 +67-91,86-87 +48-89,86-89 +87-87,3-88 +8-79,78-78 +87-87,6-88 +46-46,46-75 +35-57,36-70 +9-51,9-12 +28-92,1-92 +52-65,24-66 +45-72,44-44 +42-48,41-46 +6-26,20-31 +10-48,48-49 +4-50,4-50 +23-75,75-83 +33-34,33-85 +49-70,49-70 +3-84,1-83 +20-92,21-91 +1-92,1-93 +2-81,1-96 +18-39,38-73 +61-82,60-81 +1-21,1-99 +28-31,30-31 +45-46,44-84 +57-95,58-94 +18-46,20-46 +43-87,14-90 +6-95,4-31 +15-61,16-73 +14-97,15-96 +15-86,16-16 +18-55,18-54 +24-99,24-97 +11-15,16-32 +12-12,12-93 +15-24,15-67 +7-62,30-58 +5-94,3-4 +87-99,3-53 +1-45,1-45 +31-68,30-31 +1-38,14-39 +43-96,42-43 +4-98,5-98 +76-90,7-91 +63-80,62-81 +6-98,15-97 +2-56,36-55 +9-32,10-33 +54-74,54-86 +71-80,2-84 +10-10,9-96 +24-44,25-43 +17-40,17-87 +7-56,1-55 +47-47,47-48 +25-66,25-65 +2-3,1-96 +65-65,65-66 +16-96,16-98 +87-92,11-93 +28-58,8-57 +2-60,59-60 +7-19,20-88 +30-54,31-55 +41-78,40-77 +45-61,44-44 +30-97,29-92 +10-37,2-46 +3-59,2-60 +9-69,9-88 +72-94,73-86 +37-42,41-41 +82-91,40-92 +40-97,24-40 +26-88,26-81 +43-61,4-62 +6-97,79-98 +38-61,60-60 +35-53,35-53 +64-64,63-73 +40-42,22-41 +28-57,50-56 +4-93,80-81 +2-50,2-59 +16-50,15-16 +11-74,75-75 +7-71,2-81 +9-94,9-95 +70-84,69-84 +2-99,3-99 +8-82,6-7 +9-93,9-98 +62-69,62-62 +26-91,30-92 +7-94,8-95 +73-73,1-74 +24-24,25-80 +3-96,1-1 +12-34,5-60 +2-96,97-99 +11-96,10-96 +12-90,7-93 +10-61,60-62 +36-51,50-52 +38-98,39-39 +9-97,9-81 +27-62,28-62 +28-71,29-29 +16-40,16-18 +51-95,33-71 +21-71,72-72 +58-66,66-66 +11-11,11-65 +26-86,26-88 +41-93,63-93 +37-47,37-46 +31-99,31-98 +75-90,75-95 +6-15,14-20 +6-85,6-37 +43-97,88-96 +95-95,96-96 +1-20,6-58 +23-45,29-44 +8-35,17-37 +44-71,45-71 +59-79,49-79 +39-73,40-74 +56-77,55-60 +45-45,45-71 +11-89,11-90 +43-52,51-51 +57-96,57-97 +89-91,89-90 +23-90,1-90 +2-98,2-9 +6-63,28-62 +29-29,28-98 +3-77,5-78 +39-69,38-74 +10-97,9-99 +6-19,6-20 +52-66,13-81 +30-30,29-70 +67-96,67-91 +72-91,71-83 +1-94,36-93 +8-9,9-98 +3-78,73-77 +31-97,31-96 +44-70,65-67 +42-66,50-67 +6-79,5-80 +30-36,21-37 +38-43,39-51 +51-51,52-81 +10-87,87-88 +19-27,18-19 +13-99,85-98 +59-89,88-88 +25-26,26-97 +31-74,75-75 +6-95,95-95 +30-71,70-72 +24-51,23-95 +55-77,56-76 +26-49,26-48 +34-56,34-57 +9-11,8-10 +1-98,1-97 +6-97,12-96 +35-72,35-75 +2-99,4-99 +4-92,3-93 +6-98,13-99 +2-85,84-86 +90-98,5-90 +59-84,60-85 +9-19,19-93 +15-71,19-65 +98-99,85-99 +8-25,24-26 +42-72,42-71 +52-81,81-82 +50-88,51-51 +87-87,9-86 +6-91,3-5 +10-83,3-82 +99-99,9-95 +68-69,68-68 +42-42,36-43 +28-58,27-58 +3-85,1-85 +8-88,8-89 +11-86,12-93 +21-60,1-99 +6-96,3-7 +73-91,83-85 +98-98,11-99 +31-69,28-70 +89-91,57-90 +5-95,10-94 +48-50,3-49 +12-76,10-13 +2-60,2-25 +2-33,34-72 +14-19,18-18 +34-86,35-87 +20-92,97-99 +11-83,83-84 +17-80,16-79 +96-99,4-97 +15-92,16-92 +24-99,81-97 +7-92,93-99 +24-80,25-90 +71-88,87-94 +6-64,32-69 +34-48,46-67 +13-14,14-63 +26-47,26-46 +18-33,18-33 +96-97,5-95 +49-93,48-94 +52-79,58-58 +2-62,3-63 +8-80,9-71 +41-75,32-40 +53-96,71-71 +85-85,84-84 +63-76,59-77 +58-76,59-75 +4-19,18-19 +1-98,3-99 +22-90,22-68 +9-96,97-97 +11-75,12-76 +9-45,9-46 +20-83,20-84 +8-83,5-84 +74-96,92-92 +3-95,4-95 +19-30,19-29 +71-81,8-71 +10-98,11-95 +3-90,4-90 +7-18,18-36 +9-21,4-21 +1-52,3-52 +21-61,21-61 +2-99,21-24 +31-92,58-97 +4-71,4-71 +16-40,17-64 +43-85,44-86 +4-62,61-62 +3-91,4-90 +64-64,35-63 +6-78,5-5 +59-71,33-72 +56-60,55-61 +3-76,1-77 +30-32,31-31 +23-78,25-69 +9-99,4-10 +19-85,9-88 +4-97,3-3 +75-96,74-96 +97-98,96-96 +10-97,10-98 +85-85,85-85 +4-49,4-48 +17-97,14-97 +4-4,3-89 +34-64,15-34 +19-83,19-19 +24-70,23-69 +18-40,17-62 +19-79,18-19 +30-82,30-58 +5-8,7-28 +2-8,4-85 +4-4,3-85 +10-41,11-40 +86-89,69-85 +44-71,71-84 +51-79,51-97 +20-97,64-97 +2-23,2-23 +8-29,22-28 +81-97,57-68 +69-84,68-84 +2-98,2-90 +23-42,29-56 +11-89,11-88 +14-72,10-79 +46-75,74-74 +52-54,48-53 +12-80,19-80 +4-62,3-62 +3-4,3-87 +1-2,4-84 +3-43,3-44 +56-94,94-94 +14-49,15-49 +54-58,55-58 +1-96,2-62 +32-70,17-70 +23-86,23-85 +5-97,2-96 +46-72,47-71 +90-90,25-90 +30-54,53-54 +4-88,34-45 +27-92,28-92 +38-39,38-85 +8-46,7-28 +5-66,5-67 +7-98,7-56 +39-85,39-86 +17-64,17-65 +50-88,49-88 +4-49,4-79 +14-72,14-71 +62-79,63-83 +2-75,2-21 +8-83,8-15 +72-94,77-77 +63-98,63-98 +52-56,52-70 +4-77,3-4 +73-81,73-73 +6-91,7-37 +33-86,2-80 +19-22,18-18 +2-98,4-77 +18-63,13-17 +29-40,30-41 +5-98,20-92 +24-78,20-23 +5-34,5-35 +97-99,15-98 +4-69,5-68 +74-76,63-76 +23-97,96-97 +7-94,7-93 +18-24,18-24 +28-45,45-45 +14-63,48-55 +10-69,10-68 +78-80,47-79 +33-72,32-32 +68-90,68-69 +52-58,59-72 +18-26,8-44 +11-96,6-97 +52-98,52-99 +64-96,63-82 +24-90,77-90 +2-73,82-85 +70-79,68-90 +8-74,13-75 +1-25,3-24 +1-94,6-52 +34-92,31-96 +36-78,35-79 +2-64,1-65 +41-90,20-91 +68-70,3-71 +51-53,51-59 +10-13,14-88 +33-95,33-94 +71-98,70-96 +1-93,4-88 +8-62,5-61 +39-90,40-91 +89-89,32-90 +1-11,1-10 +6-63,6-62 +22-85,11-51 +9-9,8-95 +9-79,9-73 +9-91,9-34 +62-85,20-61 +73-87,73-86 +15-45,17-45 +16-94,16-95 +1-18,4-57 +28-45,44-45 +14-62,13-61 +8-36,3-8 +12-50,44-49 +47-62,47-61 +16-78,15-64 +44-45,45-51 +3-25,6-26 +47-70,46-71 +28-83,13-84 +1-99,2-98 +19-76,19-77 +35-58,25-57 +4-63,1-3 +98-99,3-99 +28-89,89-90 +64-86,13-86 +66-89,42-67 +22-71,8-88 +91-94,1-92 +72-92,73-91 +13-28,13-65 +28-99,28-97 +59-81,59-80 +57-93,92-92 +71-98,71-81 +2-4,3-53 +20-65,30-65 +11-75,76-85 +1-90,1-89 +2-25,24-24 +64-91,63-93 +15-97,7-16 +33-64,42-63 +77-81,6-98 +7-91,8-92 +2-48,2-48 +63-65,32-64 +23-95,23-95 +41-41,52-94 +10-26,10-80 +99-99,2-57 +37-66,25-37 +17-81,18-81 +76-93,92-92 +58-89,9-59 +31-31,30-87 +46-85,84-86 +3-4,5-99 +37-95,37-40 +3-75,3-93 +44-86,42-44 +4-50,49-50 +20-43,19-43 +83-91,82-97 +39-39,38-77 +1-94,1-95 +53-74,30-54 +25-69,25-68 +3-85,85-85 +37-69,4-68 +57-84,53-57 +57-95,20-99 +9-85,9-84 +25-79,26-26 +5-99,3-98 +58-86,57-85 +3-24,4-59 +6-93,7-93 +74-96,75-96 +92-98,12-92 +55-62,49-56 +1-73,1-99 +8-99,98-99 +12-72,12-71 +52-72,71-71 +63-97,63-96 +21-99,20-21 diff --git a/aoc22/one/in.txt b/aoc22/one/in.txt new file mode 100644 index 0000000..8da7887 --- /dev/null +++ b/aoc22/one/in.txt @@ -0,0 +1,2236 @@ +3864 +5112 +3233 +3008 +5052 +3291 +4002 +5402 +2907 +2398 +3014 +3923 +1475 +1997 +2519 + +9130 +9712 +12437 +3457 +11610 +4598 + +1698 +1551 +6798 +7440 +3574 +12107 +3697 + +9019 +12113 +6266 +11838 +7562 +6444 + +10364 +1437 +10513 +2988 +10836 +13749 + +3011 +9552 +11575 +12646 +9861 +6347 + +15883 +15888 +6725 +7353 +4998 + +3165 +7637 +6348 +3250 +13535 +12802 + +6683 +13364 +15858 +5489 +5315 + +12294 +13732 +9734 +6165 + +6023 +2374 +5773 +5578 +6419 +4301 +6861 +4560 +6021 +2960 +1349 + +1847 +2687 +4164 +3599 +4361 +7463 +3010 +4351 +6738 +7941 +3855 + +1848 +6606 +1662 +4276 +2488 +3635 +1954 +2375 +2020 +6327 +4907 +4523 +1756 + +25495 +6242 + +20001 +19849 +1924 + +14631 +12374 +3017 +16388 + +4779 +3772 +5719 +3491 +5698 +4909 +5656 +3250 +3805 +4068 +1689 +5141 +5754 +5097 +1951 + +1824 +1235 +5428 +4808 +5453 +6331 +8706 +2132 +2107 +4675 + +8668 +11626 +8358 +8178 +3039 + +6897 +2675 +5347 +6427 +7065 +1305 +5852 +4200 +4995 +5786 +7447 +6742 + +3863 +5824 +1725 +3534 +5440 +5958 +5225 +1794 +3812 +5589 +3028 +1252 +1746 +1196 +5477 + +3938 +2800 +8859 +7153 +4821 +3198 +2694 +4947 + +6697 +3509 +4723 +3891 +6796 +1662 +1369 +3632 +3649 +6928 +2270 +5340 + +20974 +30984 + +7699 +5994 +4189 +4527 +11298 +3529 +2212 + +2603 +2414 +8646 +3184 +4391 +5234 +7213 +7920 +2147 +1809 + +5039 +7539 +4470 +2247 +9676 +12772 + +1630 +8375 +9097 +9007 +7498 +5776 +8173 +8946 + +1130 +3475 +5415 +4784 +5293 +5724 +1730 +2220 +4327 +4915 +4210 +2089 +2161 + +54387 + +5235 +6486 +6332 +6169 +4904 +3117 +4987 +5488 +3506 +6267 +3229 +2268 +2058 +2575 + +10343 +7175 +7614 +1014 +8145 +7014 +8807 +7703 + +2942 +2045 +9735 +6097 +9103 +3805 +10274 +4901 + +5227 +6127 +6923 +3691 +2423 +4298 +4130 +5149 +6163 +3855 +2709 +4583 +5465 + +6713 +7303 +2326 +1054 +2108 +6795 +1399 +5164 +8389 +1413 + +11210 +2885 +2768 +4565 +7853 +8590 +4953 + +3359 +5464 +6359 +9578 +3986 +3114 +2449 +5502 +8884 + +4380 +6795 +6388 +3666 +6385 +5336 +4891 +2633 +6116 +4340 +6410 +2381 +5618 + +6611 +8713 +3262 +2084 +5305 +6025 +6210 +4838 +6432 +1770 + +7316 +7253 +1999 +2136 +9789 +6351 +9843 +6965 + +13110 +10487 +2738 +11418 +5886 +4257 + +5279 +3005 +5787 +4700 +4579 +5366 +4134 +3856 +4433 +4225 +1119 +3261 +1206 + +7528 +6795 +3581 +7530 +4287 +3004 +4899 +1682 +6540 +8041 +1163 + +5271 +9504 +4466 +5030 +9039 +6302 +9526 +5770 +7822 + +3927 +1053 +7169 +8745 +6919 +8249 +1402 +5462 +2763 +7113 + +4657 +20694 +21592 + +4904 +6515 +9389 +9141 +5209 +1682 +7319 +9383 +4057 + +13752 +9584 +8823 + +2085 +8569 +6909 +6769 +7842 +1740 +8757 +2428 +1151 + +1240 +6410 +5661 +1817 +4367 +6749 +3837 +3287 +2126 + +48984 + +5064 +2260 +7884 +6506 +1312 +2949 + +2501 +3041 +5435 +4134 +4921 +9071 +1539 +8718 +4927 + +13457 +13830 +14262 +16094 +6856 + +4134 +5955 +2100 +3580 +1618 +6258 +2037 +3407 +6043 +5882 +5180 +5852 +1142 + +6315 +3132 +4804 +7315 +1145 +6572 +4295 +1818 +6889 +3224 +2124 +4383 + +49471 + +16847 +14810 +10031 +15268 + +9925 +13290 +11355 +12632 +7822 + +2393 +2849 +1713 +6708 +2818 +7002 +4987 +2814 +1650 +5845 +6962 +3250 + +3022 +4101 +6484 +6655 +5900 +3114 +2479 +7243 +3711 +3322 +3543 +6403 + +3922 +6921 +2825 +3470 +6452 +1334 +7415 +4350 +1250 +6732 +6071 + +13203 +10169 +14375 +9425 +6521 + +14621 +8430 +19479 +10045 + +5082 +1198 +1420 +2902 +2764 +3099 +6677 +5280 +1059 +2165 +6836 + +1275 +7294 +5909 +4850 +3642 +4437 +7639 +2001 +8353 +7923 + +65166 + +8180 +2720 +5919 +1586 +7115 +2500 +1213 +8595 +6904 +1338 + +3154 +6288 +8212 +7799 +4547 +5465 +4819 +4080 +7698 + +4718 +2231 +3672 +4929 +3608 +1125 +1283 +3307 +5198 +6605 +5178 +5314 +1539 + +5772 +5108 +5245 +3701 +2893 +5852 +2399 +4988 +4363 +4949 +5894 +6708 + +7223 +3143 +8012 +1442 +5661 +8021 +6281 +5132 +3742 +3028 +5716 + +1439 +9221 +8094 +7476 +1144 +1889 +4245 +6198 +9020 + +6934 +5060 +2312 +1886 +1988 +4895 +7235 +1647 +2814 +3147 +5432 +7285 + +39249 + +18283 +24247 +1734 + +7175 + +7790 +7393 +12909 +14444 +4285 + +4692 +7363 +6394 +7058 +4988 +5041 +1886 +2515 +1490 +2791 +5734 +2365 + +1468 +8324 +23095 + +4178 +5102 +5153 +3115 +4749 +1387 +5849 +2752 +1318 +5515 +6390 +3345 +5912 +5829 + +4765 +4421 +1225 +3593 +8691 +6986 +7451 +8529 +5251 +4784 + +2862 +3838 +7199 +7330 +2514 +8670 +8281 +3576 +4912 +2260 + +1962 +5598 +4649 +5922 +4135 +4373 +6511 +5068 +3156 +2439 +6200 +1464 +4222 + +5741 +10630 +3768 +3343 +8548 +3202 +2871 + +6916 +17569 +24608 + +7823 +7460 +6920 +3049 +8003 +3858 +3611 +4790 +3392 + +27393 + +4616 +8220 +1239 +7295 +6397 +1372 + +17576 +18361 +10204 +13704 + +15826 +3578 +14185 +2385 +1221 + +5127 +3905 +4206 +1073 +5846 +2267 +1482 +1450 +1451 +2768 +2849 +2850 +3312 +1479 +5513 + +10345 +4158 +12513 +5591 +16153 + +6027 +1377 +1804 +3795 +5796 +2626 +6336 +3746 +6146 +6311 +6113 +4062 +3067 + +2448 +1058 +4229 +3204 +6020 +2882 +5419 +2084 +3590 +5993 +3840 +1156 +2502 +1817 +6055 + +32707 +1241 + +3045 +1309 +3599 +3823 +2307 +1547 +1612 +6550 +3459 +5435 +1056 +4990 +4650 + +4354 +6100 +2169 +2654 +6645 +4525 +2880 +2747 +6052 +6365 +5701 + +1503 +1293 +2530 +9166 +8656 +9926 +9255 +7066 + +9305 +7085 +6824 +9498 +9025 +7904 +3118 +3142 + +10108 +2329 +4742 +8494 +1708 +1343 +3350 +6716 + +6532 +2895 +4189 +1971 +7834 +1107 +1027 +6415 +1211 +3023 +1636 + +4973 +5464 +3843 +6092 +2053 +1745 +6005 +5862 +4142 +1415 +4875 +1617 +5642 +1920 +4706 + +7408 +17800 +11194 +13159 + +5566 +1756 +2450 +5854 +1639 +3928 +2742 +6385 +6120 +5802 +1599 +1249 +3625 + +1670 +4618 +5316 +3653 +5167 +3252 +4995 +1200 +3446 +4433 +6113 +1342 +4176 +5753 + +4597 +9620 +3712 +1774 +5338 +4078 +7296 +3434 +9310 + +8976 +12080 +8938 +6131 +10273 +10621 +4234 + +6447 +13533 +10763 +11732 +5190 +9129 + +5281 +3655 +5424 +5314 +3908 +5582 +3114 +1744 +5385 +3111 +4497 +2897 +4401 +1298 + +12623 +8559 +12761 +1280 +12850 +11620 + +1809 +2403 +2257 +4586 +4585 +5761 +3264 +4621 +1045 +2354 +1954 + +5074 +7245 +5125 +6481 +6424 +5650 +6906 +1789 +5924 +1086 +1690 +2558 + +3471 +1419 +10640 +2304 +11881 +11729 +12014 + +17503 +19515 +15606 +1866 + +4486 +3617 +9287 +4473 +7289 +1852 +9402 +3964 +3602 + +7989 +2612 +1003 +7634 +4889 +1978 +5232 +1146 + +5487 +7770 +8115 +2268 +3609 +3100 + +6205 +6444 +8414 +2959 +7972 +8829 +6256 +1156 + +4737 +1069 +3768 +2510 +3527 +5221 +1666 +4470 +3563 +1654 +5734 +3075 +5575 + +15504 +12559 +8976 +9824 +8990 + +7934 +3476 +6965 +3686 +3923 +2709 +8648 +7699 + +6772 +3077 +2503 +4261 +2890 +3068 +3921 +4858 +4882 +2770 +5354 +6859 +3445 + +52484 + +11901 +15405 +13990 +17226 + +5850 +4678 +5707 +5673 +1485 +3913 +3480 +5013 +2565 +2062 +2406 +6342 +5828 + +4758 +3972 +5428 +7975 +1407 +5563 +4808 +7919 +4359 +5078 +3682 + +18959 +4053 +1937 +6684 + +6150 +2908 +4347 +1341 +6863 +6723 +2992 +4434 +6267 +4876 + +4458 +12449 +10626 +4621 +3687 +9892 + +13207 +1659 +18006 +12201 + +6923 +2813 +2898 +1837 +5875 +4333 +5434 +1703 +1930 +3207 +4145 +6236 +5833 + +8993 +6150 +10505 +2085 +9550 +9271 +11322 + +3046 +2665 +1049 +2145 +1082 +2523 +3809 +3976 +1052 +3415 +3224 +3522 +3740 +4872 +2536 + +23303 +24203 +6904 + +5562 +1246 +3109 +4849 +3079 +4853 +2026 +5356 +4397 +2953 +6317 +6009 +4248 +2557 + +14594 +25779 +16865 + +1229 +5756 +3663 +5951 +7077 +1950 +3508 + +3758 +4208 +8189 +10315 +3057 +2813 +4001 + +7597 +1192 +8466 +10400 +4446 +7610 +6265 +3735 + +7012 +2301 +12432 +4820 +1329 + +12293 +4034 + +4964 +3467 +2701 +5807 +3710 +4313 +3761 +3127 +4525 +2948 +4560 +1989 +3900 +4193 +4177 + +11249 +36854 + +1034 +4105 +2297 +5906 +3525 +2047 +6844 +2436 +6523 +3394 +2502 +4028 +2509 + +4336 +3094 +2833 +4452 +6331 +6115 +2301 +3217 +5287 +7749 +7323 + +4148 +1984 +4102 +6569 +3790 +6576 +3567 +3802 +2742 +6539 +2247 +5713 +6088 + +4975 +1430 +2970 +3669 +1025 +1244 +3788 +1979 +5738 +3292 +3556 +3730 +6105 +3277 +4346 + +15738 +9547 +16697 + +66474 + +4263 +6015 +3324 +3812 +5843 +2654 +1389 +6766 +6319 +1516 +5893 +4485 +2272 + +12631 +3624 +7153 +16205 +13771 + +10426 +12897 +17028 + +9876 +6551 +9756 +1740 +7096 +8600 +7217 +4773 + +7909 +7798 +9063 +8985 +4679 +1808 +7964 +1699 +4306 + +4503 +6328 +7241 +2595 +4247 +7351 +4336 +4402 +4159 + +31634 + +8118 +1323 +4680 +1149 +4085 +10126 +4137 +3525 + +8530 +3662 +3779 +8656 +5607 +8840 +7246 +4802 +2720 + +2839 +5366 +5585 +1265 +6497 +1123 +2588 +3881 +5866 +3361 +5737 +5557 +3432 +3415 + +1155 +6948 +1379 +3529 +2804 +6611 +2950 +1813 +6580 +6723 +5971 +5549 + +2561 +2538 +1721 +2674 +2618 +3598 +1152 +5254 +6073 +3352 +1016 +2452 +5835 +5319 +2337 + +4682 +8460 +8055 +1318 +8906 +7333 +7422 +1762 +3159 + +4290 +4947 +3993 +1717 +7989 +6175 +3558 +1492 +6565 +7338 + +1687 +6502 +5542 +6358 +2954 +5758 +5980 +6825 +5866 +1280 +4830 +3345 + +5162 +3923 +1385 +4797 +3288 +1723 +2312 +5272 +5749 +5538 +4432 +3931 +4573 +2554 + +7658 +4023 +7144 +6541 +3310 +5114 +4847 +8803 +5657 +1784 + +4370 +3305 +6516 +5828 +9182 +4402 +9934 + +6053 + +8494 + +6095 +11294 +8547 +10083 +8434 +11764 +2951 + +2952 +3177 +7103 +4875 +1817 +10323 +1381 + +13123 +9521 +23873 + +5787 +12655 +12756 +20017 + +1849 +4191 +6295 +6289 +2796 +4640 +4409 +1030 +2279 +1813 +1948 +2271 +6518 + +9749 +1518 +3621 +9996 +9173 +1741 + +8417 +2916 +6781 +9461 +7940 +8660 +10204 +8902 + +36117 + +4928 +11184 +6168 +12046 +3466 +6830 + +4507 +1340 +5878 +3276 +3793 +6844 +4796 +1096 +5405 +3905 +1762 +5264 +1384 + +3121 +5572 +5864 +6716 +9604 +1966 +10685 +4693 + +5684 +5699 +2937 +2273 +1618 +4506 +3601 +5460 +6154 +4258 +6404 +4984 +3264 +1155 + +4268 +7380 +7893 +3865 +6244 +5745 +7877 +3322 +3627 + +5996 +4074 +5569 +3507 +6114 +3961 +6042 +5272 +2995 +4667 +2161 +5336 +3922 +5647 +2187 + +4228 +4393 +5050 +1155 +2427 +4201 +1233 +6100 +5369 +4142 +3524 +3058 +6176 +2121 + +7869 +8100 +6906 +2028 +3868 +8614 +5236 +1366 +9400 + +23443 +9993 +8524 + +1473 +4354 +2258 +5343 +2574 +6151 +4949 +4792 +5509 +5791 +6246 +3977 +5126 +4920 + +2080 +3619 +2138 +2745 + +2001 +9394 +7088 +5665 +9985 +8964 +2620 + +3346 +4344 +15757 +4227 +9296 + +4465 +5869 +4651 +2306 +3055 +5572 +4963 +3055 +1328 +4879 +6011 +4266 +5300 +1046 +5571 + +6086 +5882 +21009 + +4163 +9276 +11926 +2012 +11726 +9290 + +23241 +20013 +6592 + +4638 +8473 +2576 +3643 +8712 +5578 +4112 +3300 +4531 +6702 + +1360 +2866 +5521 +4452 +1437 +6475 +4393 +6121 +4211 +3168 +6841 +3096 +2048 + +11379 + +3821 +6927 +1607 +3907 +8928 +4193 +2371 +3760 +7531 + +3976 +1570 +8665 +8603 +2337 +3396 +3583 +5928 +6876 +6429 + +9263 +5094 +11647 +3988 +7631 +3263 + +5716 +8255 +5940 +10735 +7349 +6548 +4650 +5816 + +1229 +2098 +6221 +5073 +4343 +6126 +3950 +1293 +2848 +4351 +6438 +5156 +2619 +3244 + +6788 +5274 +2215 +3979 +2788 +7081 +2119 +6235 +1359 +7141 +1497 +3362 + +6956 +2914 +3014 +5001 +7681 +7144 +2914 +4128 +3004 +6170 +1417 + +13926 +18761 +6405 + +2805 +2134 +5990 +1899 +3919 +3040 +2357 +2352 +2295 +3900 +1039 +4151 + +21789 +17570 +24738 + +3241 +9968 +5793 +8790 +10130 +6838 +2229 +9715 + +7270 +6954 +10077 +10701 +10903 +4370 + +7931 +3629 +14710 +2728 +5862 + +2262 +2517 +3677 +4296 +1177 +5268 +3759 +4892 +2275 +6369 +4674 +4536 +1970 + +8547 +4623 +1624 +7643 +9658 +6489 +1199 +7866 +9443 + +6363 +6567 +2584 +9352 +8291 +10254 +3179 +4177 + +1358 +4057 +5758 +1719 +5758 +5143 +5942 +3502 +1033 +3488 +4825 +2379 +5280 +4139 +2928 + +16444 +23345 + +1933 +3294 +5717 +7357 +2773 +7946 +3876 +7471 +5962 +4976 +6369 + +14677 +9136 +24025 + +14151 +18024 +4880 +10196 + +1152 +5591 +5800 +2475 +5481 +7792 +6041 +1224 +1138 +5768 +3158 + +2689 +3417 +4316 +1811 +1853 +4110 +1860 +2250 +6493 +3285 +6372 +2214 +4907 +5587 + +3713 +4494 +3322 +5279 +2203 +5933 +4894 +1353 +4219 +1011 + +4117 +2122 +4192 +3719 +1855 +1842 +3312 +2056 +3121 +1974 +5752 +3417 +4830 +3341 +3080 + +5172 +5003 +2775 +4138 +5964 +4643 +5584 +5634 +3776 +5664 +3815 +1702 +5195 +6368 + +8665 + +41002 + +4531 +5677 +2926 +2964 +3287 +2916 +2527 +1677 +1535 +3773 +6299 +5507 +3247 + +6025 +8452 +9375 +8793 +4184 +6122 +11183 + +21084 + +2635 +7467 +1635 +2903 +2572 +4592 +7070 +4212 +8780 + +4910 +7018 +6084 +3618 +1922 +2781 +2283 +1541 +1971 +1445 +1528 +6543 + +6867 +5700 +4220 +8066 +3951 +1890 +7064 +2486 +3213 +1323 + +49337 + +2188 +7181 +6604 +5420 +4804 +5447 +2652 +1824 +5731 +3217 +2954 +7297 + +4106 +3442 +6464 +6654 +3723 +1293 +6951 +3407 +3993 +3524 + +2163 +5961 +6245 +1510 +4674 +6248 +2035 +1510 +1105 +4586 +5132 +5687 +5381 +2342 + +15330 +22553 +25696 + +6825 +3520 +3181 +2552 +1875 +2522 +4232 +1897 +6190 +1155 +4446 +2414 +5686 + +6164 +5650 +4649 +6471 +2415 +1229 +6458 +6585 +6982 +2279 +4215 +3518 + +5048 +5614 +2542 +5841 +1986 +10453 +8196 +9669 + +8040 +4567 +7515 +2496 +5786 +1226 +8596 +2383 +7726 +1760 \ No newline at end of file diff --git a/aoc22/one/one.py b/aoc22/one/one.py new file mode 100644 index 0000000..8f7faf0 --- /dev/null +++ b/aoc22/one/one.py @@ -0,0 +1,19 @@ +fi = open("in.txt", "r") + +lst = [] +tempLi = [] + +for li in fi.readlines(): + if not li == "\n": + tempLi.append(int(li)) + if li == "\n": + lst.append(tempLi) + tempLi = [] + +su = map(sum, lst) +print(f"part 1: {max(su)}") + +sumList = [num for num in map(sum, lst)] +sumList.sort(reverse=True) +print(f"part 2: {sumList[0] + sumList[1] + sumList[2]}") + diff --git a/aoc22/one/one_shorter.py b/aoc22/one/one_shorter.py new file mode 100644 index 0000000..844170e --- /dev/null +++ b/aoc22/one/one_shorter.py @@ -0,0 +1,7 @@ +# part 1 +print(max([ sum([int(z) for z in x]) for x in [x.split('\n') for x in open('in.txt', 'r').read().split('\n\n') ]])) +# part 2 +print(sum(sorted([ sum([int(z) for z in x]) for x in [x.split('\n') for x in open('in.txt', 'r').read().split('\n\n')]], reverse=True)[0:3])) + + + diff --git a/aoc22/three/in.txt b/aoc22/three/in.txt new file mode 100644 index 0000000..1e9f1dd --- /dev/null +++ b/aoc22/three/in.txt @@ -0,0 +1,300 @@ +GGVGlqWFgVfFqqVZGFlblJPMsDbbMrDMpDsJRn +LwzHtwdLHHwDrzPZzzsJbJ +wdLTBvSvHvZVGCjhfN +HsSSnZVHjjssZnJpSJjBHHWgQGcgqqQLQdQFqNgWgqGNDg +rmmRwrtfThtTrbCrGGGcLBDTqDBNQLdL +mwPrrbzPfwvbzhwMMnnjHnBjZlnzMM +gjjdMBgdqdTpJpBcjgRRRlqnvrqfnZtrtZDw +zHShWLhCszCWHVbVzQWCPtQvNZRwtfftfNnrnftlfR +PzPSssHbVhCLFMJFcMFJJMjdJw +ZqJdtpfpjmpJjpnwWdttTCDLLTQFNTzTzrcqrQqc +MsSlBGvBsSGGSlbGsCgggNTgzNLczFQNrNQVQcFzFF +sGHHSGllhvMGhSRGCjtjtjnjnnmHWpWWtJ +tMdjQlHPHsGjsCtsCpwwqfhfnnFMDMrpfD +SbNvWvBRJRWwFSgppgSrfg +RNcNbvzJRcVLRVzTRFLjdHCQttdZdPlHstPl +QWqgpdBflpHNCNWNHHPm +VVMbbJsLFVMhrMJMmRjFNHwHjjCTGSSRFj +mbMsZzsLmVhJZrcLcJhLMtnqvBnZdggplDffvlnlvnDn +prnNnsFnZpnBNdNtFrNnzNQQwTTQZqTHTQJQMwHDMDlZ +jgfgcSmbLmhmcPShghRdmwJTQjTlqGlJQJHqQqGHqQ +hRVhPfbCgbVggLVRSSmRhRPhrrrnCzzsvCvrnvFnNppsvBtd +QJLNDWSWQdLFFFhLdt +npHhHMsfsjpZjznRtmrMCdBwFBFrBdmt +HsjHqRRfnnHRsgfHffZspgzqDGQSWbQTDNGhQhSqNPhDWWbT +bsCmFDsGZCNsDmLDLZBSHSJTHnrZQMQSSQ +jqRpwvfqnnRQrftdBMHddB +phpchwpzjpvwRzwcsnlFsssPCCGzDlsD +rMqzVQfrfVZWZhTdRTQL +cgmtFtjFFJDDtFvSFRZdLlhpHZddmwTZWh +FbcSTtctcvFTJNgtJDGNPnCqMPMfMBfznGVsrMCq +wLJfGJJPZLBfwSLGHbqmhhDHHhFDzfhv +FsnpFjVjplTQCspNlCDbzhMMbqvMvsgmHDqb +lRdlTdTddllpRQFRltVVdFRcwrtrcWWcPrrWPrPSrZWLPc +VGVZhTppGTfPnJVJrFqbsmbSSshHqWqRHF +llzDCzlBLdNcCddlMMNBdCCtWHbFqFRRRsHjWtRwSWqbmjWm +NbcMBBvzzMQLCDBVTQQPVrPQPPZVPp +cdcgfmQdqlqhzzPjzfwpwf +GLBGBDvbvRzGwtnnmPpp +ZRCZBRFSRvLRLFvvbLLFQdHMTHTlQlNqNmqFlWdH +vzjzvHtcHvJcDStLLGSShCbbfF +MWFFTVZRMmMgdQdSQLwQrQwbGw +gFTmgmVZssRsWZRNzJlBHHnnJDvzNPlP +rHrvHpmHZfdGDDGGZd +cTlMsNhllMhGchNPCBlhMQgVDdgDSSWVbWVwRQwRSgbV +lnBjnNNTTMnCTcChPNhMvtzvFGLtJrjFtHHHzHJm +lgpdZZMmGVVzVZzt +HfHLrHqbPbzJJzRJJPTl +HsLWWbDqFrqlqfbsbDqDBncpgFmmvpnmmgpvdvjcdM +GpNVbTpJJNvMBMVvJTGvhnWQQScllnhhWlhVSznV +ZjswwHHLZzGnjWjSjl +sHdftLLtgLfwdtPmHtMbNpMTpNqGRbPvTqPv +sHSNNhNwsllGSGGlWSGWSsFrrVbQrdmFrVrrmnrHmrHr +QQMRZDDRcrcnmRcV +fJfCPMJCzTMZSGsWwsWBwqQf +HwQZZJsHdqqsdJQGRgCgVGgSqgpcGG +ljWWbnPhjBlGpCRCnScSGg +hrrztWlbPjltjMPSdJDZSsHttwsZwD +VzzbmzvpvNhvBDqc +QHSJSQGCwJCGrGQjjcgcBFhdgqdqFdDNNw +rCGJtZrHhhtLRsth +TMWwCLPpMTThrvtMRJjbjRvmJs +fDzcHFfSfFQfZzZRJbdmmqqssqtbSW +WWgGZglcllgPBBCBNVGPNr +wrwwhpTpbqhqrshrrfrFfwfzRJGdNJHNmcFzCCzCRJGzGR +vMggvjQvgPvQjVLMMPSZqWNJGCzcNGdcdzHPPzcmCzPz +qDZWvBZVfDhbTtrp +LpDvHdjVghnjbGrn +FBBBPwwlBlwSfFTWPHPWWhmgngmmnPnmbsngngbGrb +FwftBSCSfWCtwfVQDvHHCMVvdQLQ +ZrQpQlSpNlqQCVnQBmdDqmWDqmWWBDBB +HsZMsJvZzLMHTRwWhgDwmfDBgdhWdf +RZvTzJGzRjFrVNVjlQrS +mqjMwfqlSSPmSrlPhwhVpGRcppWcpcGRcGWv +ssJDJJNgZNDWrRWcRpvr +ZTsTnnsLJQgPnfMwmnMrfm +qsVBvZqWLdfbfvLj +mPNRgmHBBGQrCbSbrdfCCSbC +PlQTGcTTcgGFQQGPTGllpqMzwzpVJZwBMssZ +FWGcNRLRLhwJJQfV +nzbzlDBHSpTDbpDpzHwCqhqwJJghQqQMCCBw +JnzndzpmJFmNsrrFsc +gmRwwDwfnRDJgwZLFQFFNGNQrFBmFbbm +CCVHVWWThSrjVGvbNj +WpdqpplppHCWzlClMMTTZJcJsdscJLLdbDDfZDgL +VNtCCMDllpBqDvtdCczTSgjHlzGSHSGZTZ +hPFPsQhhFhLnbsRnLFssdzcHdsSHSSHgjzHG +QPWPQrPPmbdnbWLFPrrBVrVDBqqNMVwttDtBvD +PPNNRggwgRRgHBhDtwhTwbDs +SFGSFSMCJFMrcrCMSSsbtrTbbZhBvtHhrTHD +MFfSMpflQLQflfLjnLmddsLdddqq +RcgbcrrFscVrwZVCgVGGmHppNNndWnGdNqddqqNqND +jTlSTBSTjLTvlvjjPtvMLlhHnftphtDFNFqDnDHWNddn +QBMQvzzjzvJPjFQMmwZJrgmCCJVRVbbc +CzPJsWCpvsNszsJsNsHlDhMrrJGjhrRVhRGgDDjG +tFFdbqFLFdwctQdfVhjRRghTcrjVRTDW +bwQtFLdLBdFmwnHnWHPBNnHCnp +CNTstGNslRRRstlmNmmTZZqfFwtqgwqgfBPSwSWwqgWq +hpDbcHbpSrcgqqzhhWVfqg +DDcLDjbMjCSsZRNlMv +MhHMCMNbzbMHlcqmGmrmWc +tnPggdZPBPgdtttJpdnwVBnmqQcvlQrQlfGqmfWffBcqWD +VPPwPPLPwLGFGLzCbG +rqBcBmjHTGfPbcVgPG +dlDpsdshzlldlDvsWlWvLQbQBbfLFLbPvbBGQBgG +BlBznnRWzlphphBnhZjZtNNCNmrNqjCqHwHN +mQBvmvBmmLJvvrLtttQrfhGlcRGfRhVGWJVChlRG +MzPswTsbTPPsNgMNszgzMpbMfcRcGflVGRfWSpFRlWWWFhcC +bcPsTbgbbTTwNZzTZzvdjdjtQQndZvdrvdmZ +hQzTQJFFZJrcdcdZFFrGFSVWVRWRwRgRHVMWDCDSWc +lPmpNBnnnsNBnLnfbfnCDWMvwRvDCCMPwwHWvM +HpjmffNlnqqhddTddFZjGJ +BwsLFFbHLbVCSCSFbsbFLsJbqnTtZrRMHTZtrTrZTcRRRRTq +lGhNhpPmmhpztZTBrcpjRqpB +QPzdfzBQNgFJSCwsdLbS +ZsZsSBTgffSCqSSfrMnnMwjqmqmnnnqwMm +bbPPbzVclcPzGNlvzVtmnDBnQmtnQLBjJVLn +zPFGplGGvdPbHplcbzzvdlNBTThgRpCTCTfhfsCCsSRZhR +CVLSVCLVZRsHcnzSRpdZZRCdPlmcMWDDlPNqMqtDMmqPMlDt +TBnGjfQrQJjhfWlPPmPQDNlmlP +fjhhGvjvvrTTBhvTBTbvGVRLzVnbSRZpHddspHRzLs +DDtWjfRfftWMLzSQjzzhWjjwRVPHqFbBbZHVwZBFvFwZvZ +JGllgCJlJsrCGPrCNTPdslvZVVNVbvBqNbbpbbFHpBwZ +CcPdnCdmCJjfcftWhtSL +pgpfddDGHWzDNGNGpRCQjCTFHZZQFQjcRT +bJlhqmMvnlrRQFtTthPVhZ +lvbJrlJMBwfzGNTddB +wpbJGGZpsjvtdWvGWF +HqqhBhBqhhNQHTSHqqNzRHVPvTvddWrjtrjFvrvdTdVP +NRLCRzlqHQtNRBLzQllhhZcgbggwmLDZpsgssDpwwD +pDzFzJFcVMcWJFJFzpLBsqWLZssshsGLGbsS +wqHqfvnfrRwQtdQRthhBbBbZLhPLnBTGsh +CfQqlqvtfHNvMVmzmmMCFDMc +GcgpNHvcSNvpSLphdhsLdQTsdWThhQ +wwzttPrrhQswdhnT +tjJjMJRbRbjztmjtjbgcRsNlgglHpDFSlSvg +VVLvLqqPVlvcqLLdwLbHpzcHSsbRJppHbHpF +CfjjCNGmMWhWjhWHWb +ZmGZffggrDqZvZtlbTqL +TTmmhvBvvHWzHpsPpstpLVdwwsLb +qflfFgNctNcCnCCNDnfFFNDwrslwZbPswwZbJLJZbrlPLL +FgQDDcncStCgtqccjSDTHWMThvhTQMBQhWvWRG +SqhVghPccSBhgSBqWBFNQNsHQHMjCCQQWCwQHN +fLZftnlttcbbtZbZlpZtttQjwsCQjRwwRDQspMRMNNQs +TfLtvbJtZmlbTTTtlJbFvVqPSgBdPqPhFSGBcd +pPPNDptcqtpcDztLDhhngnnJgJTmJwNnwm +HVVCsSClHGBCHslWHbSCGGVngTrJwnnJnQRRBrhQhgJhdm +WTWWWsvVlvGbWCFvjDftPpjqZLLtDz +wWclwtDwRvflvffB +sMMsGdsSTMrJZNqczfdvhvnzCnfv +rspppMjMspSTSMpgLjcPFmwPLmPHwb +tCdSMHtHtRFHdWSSJQSgrrrnghTNJN +BGfcvDsfvsqcvqfGvfGnNLhggBNQJNJQmpgQJm +sGfQDPDZzfDZzclwDzwsDlfjtbdHClFRCMWjbMFMRFWbdj +pJNCcvqCccsVvFCpqsmvWJfCBWgSzBBRrrBRDDgDrSbbgQbQ +TMLnLjjffwfwGdjQjDDBjBrDtztRSb +MdPLGhHnMZhlPHHTFfZvVCpmmmcFcVFC +SwFMfCMRCdQDdMbmdFfdbbnlcVncVCcgLqWcNNnCcWlW +hPjQzzhGzhpPrtPJPpPHrVgnqVVncVVnNHlqVnncNB +ptjGrptztpthtrtJJhTsGwFDZZDQmSdfZSwsRZSwfZ +rSSWWCWrdllHWpjcnFNnRCNjQp +bGwwJqGVGbGJVVhgbBgttGmBQjFsMjpMcMnnMBcQFNnsssvv +bfthwmfJfgwwmmwZqVJPHNHSZHWzSlDPrdDdSH +nmJccvclcbwmlbbvVbvsHwJJPCPNCNPnLBhrBPPLBhLhBgBP +MdRGtdDRTqWDMqtMDtQDRWSdLLBsrhLgBCgrgCgNNLPBfNMf +dRZQdDdRRSQWGsjZmwzjmlzsZH +PBGGMrTQTrTBpPQpLpSlwjwfjtlnfwbmGttw +fCsJCWJcvRCtwwjbCl +NsqcsfcvDHFVDJvdLQTrpdTTzTPpHr +rltrwsBTlrfGZggGBLGGNN +jhMnRQJVphMnbhvQjDZNqqZDNTNHZVHGHq +MRvbhQRQQChpvbjvMSvQnMcsFsfwwmlCwFwWcTWwrmPc +DDvLLLBnvrzvbvbmtv +TMwRjTRMGCwGGwrjQQnmrQrrQdhZ +MJPFHFTwgCGqGqgJMGDfSWcsnBSccgVDlnpW +flzVzNrdLNLJzrGlfdlzjrQDgFTpDgDmmmgFmqFDQjQh +CbnBcsZnPZVSnwvVsZbRhhBDpgFphgmgDgTppq +ZWnsWSnncSZsntZCbsswwJMzdLzlMdNMLtMVfrllMt +ZffSgNfgJgGCHZcZrpHrNJTLhqvSLTqQnvVTLvzvLTjV +tWFtHMwlBlDqjjzjnqvvlV +DRMPDtWHPFDBFFwWMFBmFRPgZpJfsffNGJNrGcsprrsmfg +wRZRmpZmlPqZjzGrdrGq +bBhQQFPQbPDVNzVNzdGWNdrf +QFbcDcDbLHgHBPDFRsSSMtmvRttMpCLS +MpWJVVJMcWvpRShcwpLGflmqzSfNdfNLdQzN +CDBTtCgtbjgCRrBrPBTQqzflNqjGdLzzmqffzq +rFgnnBbttDTPtHCDPrPMnpwVJhJvMZvpMvppRZ +sWTTmpsfsWppPTTsTVZWHVVZNvVcdcJvdN +DjjBzjhRHvvvSzdc +rMBjjrjbjrGDlgMlMrGjBgRLPTTwHMsfnFwFQPMPMnmFFm +QRRbDjjmPzNQwFDNmrQmzCbVHrMhBVrJLJJfMGGLtfJBHh +dsWcsqqWSWvnWnWcWGPJLBqhLBqGhBJHHH +ZWnPWgWgPnlbCDDwmmDbRZ +nfPqqfLqQnfHBSqnzztQjVmjfGRWJNGRWsJWJfmJ +TTMlMMlFDMGVGRsVJH +CbDbFDbvgTFFwgTDlDprhlPSqBzSnPdLPtPPHgznQqBQ +fJmWVfHqjfjhZCQZ +NcNzBNvgszQmzjnthZQC +LsLsgBNFmFgTFgGBBgcdMdvPDPDJWrlpVbGpJWqHDlHJHD +SllDdvzgdFDdlPJvbFDDSzFScPTRTNcwfZRwRhcwwNnRZTtf +WBpWBCLGVpLjHrHGGVhZNwcTVcNhVnRcNZ +LHLQLspHWQGpWCHnBvdzDJFlqvdsqgSgqS +GcTctDMjMhpMDRjLsMMsfDWFfdPCFNbnCPnvCPgW +JmvwqlBwnmfdFPFP +SvZqHSZqqHZZZBlllBwSwsRsMHpLjpLsMGtsMspGRT +ClLnCLfClLVllfLLcQjLBCfCmSHVsttsmtsVStDNVdppdsSp +PFrRMbWqMRwFRqRSqwqvMvMsGtgsdmssrgNtdmpNdDGgdt +bwJbPWPwFFPFSczCZzZZCcfjBJ +MwmBmzwJQTcTmfPVfZPwhhwHPH +jlnrglFLvbrGRFGnvFZdNNFfPZddPThVhdPH +RjbjpgbnLGvpLgzBqBpmWmmzqTMS +FnsSpttPnPbNCFDtsPnFHQZTQZgcwgDDTfrfTHMZ +mRjzRzlvBvhjZrQmMMwfZZNN +ldzddlzLRlRWdhjdRLjhRWtJbJbNtJJpJPbCbGCWNG +wBwmNZBTmzzcVcmpzZqdMgPjnLSVlPgDPdbMdg +flJvGtHffHDddddbHjnb +RstrhfrhhRGFQtRhtftvQhvFZpsmpWwNlWqcWTccBNWswqNp +DPWhbzDlQLLlQbLDlLhPhLFNNJqCFGqnNJCCSCnGPnGN +wvwjtvtdwfssvSJgFFvGGSCFcp +mtdrZwwJsrtddrHRtZWbVThLlBzVTzhHQWhB +TsRRWctsTJMQZllggc +zDvhpbprgGvpvVlVQlZpQMJVlQ +rrrvFvGCDhDSrrrvChCgSstBNTSftWBjTdfWBN +JJdssBcLVGrgbBHWrH +QZTptvmvmlZpRDlMMMZCQvnjjFnrjWGFbjnrnFGWgZrz +TMRplDMggtwlppTlvhsJJqdcqwVPSSNcLd +JjTCCrcRvccPLmMP +NfGFPZlNnwBfPlbbbQZGqLHgzLghSmMBzSgvzmDMhv +ZfbnNQpQnZGlGlGpWTddjdTJdpRPTrCj +gWLblMMggdWsdRJlblMRMMqWDvPvcPPPccJPJVTZVZThmcDP +rQFfGfrCHrjnrtNTcPShTSPvvVLtmm +fQrCfLrpLHnCHwslqzqsslswzqRW +zpJtGlJPMPTlTjGJCDGCDljpdnvhhWnZnZnDwwmvnWDWWvdd +sHrVrSrRRRLNgLVBqSsZmWwvwcvwZjmwngmdbn +QsQQBrrLHTjPpTQzzP +JDlzHHzzptRDmbTMrrVQ +dRRNqnCBnmrQsVQQ +wFPCBNFgwjPwhgFNztftpJRPpzRvvHtZ +DlBhrDBPPwMWwhWchW +ntSqbbSJFJNqzVzjCfMvfSlSRWccRL +mVlHtNVtqldbJVmNHmdTTBBgrQQgGsPQdrDgsP +HWHNbBgvNLdcvQMnSf +wqqqVPDPhqwszFwrrszFfMdWthLcMdfhthSQfJSt +qVPVwTzFwFDpDrPDzDPFDPlCHjBGjTmZGjbWWGZBRTNjjH +GVgdWjllSqgjdgHqqlfmhwcpwCzhvZwMcScv +nsJQbLRQsNnzQDQQPPBbRBRhfZwpZcvwpvvmLCcvpcmfMM +DRJtnnRbBBnPztsrPzRBPbsFFHqqVrqggjFWqrgWjTGgFq +hhZJQPJFHGGlcWWslpNN +VwwwJjvwMtrCnwjDNDzlfscWszWW +nVStCrMqbVwqVqSqwnLPhTJFdRgJHZSFRLTP +vPgMbbRhhvMvNjjLWsWQsHQmHwBrmmBzww +tFctDnVFpppHVBTdzdTQwl +FtSFqSptfJCqqJStZCqDpDJMhvLLgLMgQgjgGZgGgMPLZg +zwsWgSGWLSVhPWhtLgLWhPVNQTmDrDQttZpdQtdpQDDQZQ +fjCHcvvjMDrppCQpVV +VMqRnVJMVLPzbRWhGh +mjRmzQlzDzNHWwDZ +FBfJBGqnnpfSVGnpJbJVfNtCsJHWZvrsNJCZrCNsvN +fZPBnfPqSBqdfpFbVnVSjgdcLLgRLjmgRhLLghlR +FSFnTcppdQtnnDhtzDfg +ZLGVmBLBVwZCVjjGqGhVwVVgzzbMDtNNvszMmMffNDDvtM +VZPJjBZVqBZZBjqwVqllpSTphhQFPShWSQcW +hTRdcLrCLgplLvBFGvlL +nZDZqzbDbDzRZtVNDzDWGwslsllBFpnlpGvJssFG +zbqjNWQVmVPrrRjRdRhS +VpNCbVHlHHZfflVfmchctqFcqQQjZmZM +WDSRGgsSvgJSRrnWgqQhmjBqmhqrtLqmQm +znSGTgDJnsDGzgwCwlpbCNwHzVtl +sTTTrpHFFFqTnQbbvfJdDzHHDLVV +CjMtgMgRvbPfjjvB +mhMvlhhWClvqshNTQQqsNN +tWFtFBzbwdFrpmdhdm +qTqDjJjJQQqMjTDLJjNqNqPNdmpcSmhdmhhmcrWZpdPGddcc +RjNQLJNTTJDDJRHHjQqnMWtlvvVvbtBvRVzgzgwgVg +CGdQjwdJrbBmpmZZZlRWcb +NgtMPVstgSzBLzhgzgLgDRlcmDWRmlZvcSmDSvvp +LhNsgPPLFPPsNzMhhVzPsGJBFqwQGfnqfQjdGdGfwr +CNbNdbzjCZpPNzjmzjsCMRJvnnMRGnsvJGRs +wrtdwTLWFcFWdFgwRRsnJGnGfTGJfMsq +FttcwgBtgVLgPldQSNZBzBpz +DjRZrrRmttRFDvDrFTZsnWnHVSTSSJVZJH +dNNhLqlLLqdCzfMMlCfSncTVVWcHdcVsVdSVnT +QqppMfzMfqWCwbRQrwFrrttQ +dwGjHrtjsdhfCHnPSpfMfDPpPDWS +lmNzzlLbFqcqNgzpWMSvbbvDQDGWDp +LBmglgmqBqmrwCGhCjVtBC +tvHgWZCCprlgpWglCtjPhLmPmhVdJFSzVzdJVmmQ +fBnTTnNNBnwfnNqcBbBBTbGJQQJhSSdQJJsmdJFSQGSmVV +cMcDwFbRfFRlHCRCZrrp +ZFWmgghzBgwgjWBzjzmRWWMmsVwnVrsdVdwNrrpnnVrPCnCP +GLLbtGqllctqvGJvSlQbJGsPnVdsdpsTPLsVppBCTVss +tJBStGSvctvDDfczmRgRZjzDjZmgzH +FMrLmsQQSWzCZBhpQJTQQZ +dPPVncVvPBJDCPhwJD +fvHbbVHvqnvvvBzgLbbGGmrbMr +mrZzrzqDrhZqDddSFrCGLLLPQPQBJPJJBnQq +TgbpGblWlMsjgWlgMfpNRgbRHHBnHHHtLpCJPCPBnBLJtQQL +sbTlblTlvRbbGblbFcdDzccVcDVvzzzd +zMzfzlGwSBMMSCMzhsPgfcPcfcbhjQPt +FHHqJVdJmFmdVrJdJppthscjGtqRPRcccgcQbR +rvNJJpLrvvLnJvNFFvZZZBWznBWGSDCMnCwz diff --git a/aoc22/three/out.txt b/aoc22/three/out.txt new file mode 100644 index 0000000..c9518b5 --- /dev/null +++ b/aoc22/three/out.txt @@ -0,0 +1,101 @@ +8233 +{'Z'} +{'B'} +{'w'} +{'C'} +{'F'} +{'m'} +{'d'} +{'h'} +{'n'} +{'T'} +{'F'} +{'b'} +{'m'} +{'F'} +{'G'} +{'l'} +{'G'} +{'Q'} +{'S'} +{'h'} +{'W'} +{'q'} +{'H'} +{'Z'} +{'r'} +{'B'} +{'J'} +{'b'} +{'d'} +{'s'} +{'F'} +{'W'} +{'S'} +{'G'} +{'B'} +{'c'} +{'H'} +{'B'} +{'B'} +{'n'} +{'P'} +{'T'} +{'t'} +{'q'} +{'s'} +{'b'} +{'t'} +{'c'} +{'T'} +{'c'} +{'Q'} +{'f'} +{'Q'} +{'N'} +{'s'} +{'f'} +{'T'} +{'n'} +{'V'} +{'H'} +{'P'} +{'R'} +{'H'} +{'P'} +{'H'} +{'m'} +{'n'} +{'v'} +{'S'} +{'T'} +{'N'} +{'l'} +{'J'} +{'g'} +{'g'} +{'P'} +{'L'} +{'j'} +{'R'} +{'l'} +{'W'} +{'z'} +{'J'} +{'Q'} +{'V'} +{'Z'} +{'h'} +{'R'} +{'t'} +{'v'} +{'W'} +{'B'} +{'d'} +{'W'} +{'G'} +{'F'} +{'B'} +{'B'} +{'G'} +{'G'} diff --git a/aoc22/three/three.py b/aoc22/three/three.py new file mode 100644 index 0000000..629b263 --- /dev/null +++ b/aoc22/three/three.py @@ -0,0 +1,34 @@ +fi = open("in.txt", "r") + +sum = 0 +ip = fi.readlines() + +# part 1 + +for line in ip: + half = line[0:len(line)//2] + ohalf = line[len(line)//2::] + common = set() + _ = [ common.add(el) for el in half if el in ohalf ] + el: str = common.pop() + if el.isupper(): + sum += ord(el) - 38 + else: + sum += ord(el) - 96 + +print(sum) + +# part 2 + +sum2 = 0 + +for i in range(0, len(ip)-2, 3): + common = set() + _ = [ common.add(el) for el in ip[i].strip() if (el in ip[i+1].strip() and el in ip[i+2].strip()) ] + el: str = common.pop() + if el.isupper(): + sum2 += ord(el) - 38 + else: + sum2 += ord(el) - 96 + +print(sum2) diff --git a/aoc22/two/in.txt b/aoc22/two/in.txt new file mode 100644 index 0000000..5183b33 --- /dev/null +++ b/aoc22/two/in.txt @@ -0,0 +1,2500 @@ +B X +C Y +A X +B X +B Y +B X +A Z +A Z +A X +C X +C X +B X +B X +C X +C Y +A Z +B Y +C Y +C X +B X +B X +C Y +A Z +A Z +C X +A Z +A Z +B X +A X +C Y +B Y +C X +B Y +B X +B X +A X +B Y +A Z +A Z +A Z +A Z +C X +B X +B Z +B X +C Y +B X +A Z +B X +A Z +A Z +A Z +C Y +C Y +C Y +A X +B X +B X +B Y +A Z +B Y +B X +B Y +A Z +C X +B X +A Z +B X +A Z +C Y +B X +C Y +A Z +C X +C Y +C X +C Y +C X +A X +A X +B Y +A X +A Y +A X +C Y +C Y +A Z +B Y +A Z +C Y +A Z +B X +A X +B X +C Y +A Y +B X +B X +C Y +A X +A X +C Y +B Y +A Z +A X +C Y +C X +A Z +B Y +B X +B Z +C X +B Y +C X +B Z +C X +A Z +C X +C Y +C Y +B Y +B Y +C Y +A X +B Y +A Z +B X +C X +C Y +B X +A X +C Z +A Z +B Y +A X +B X +A X +B X +B Y +B X +B Y +B Y +C Y +B X +B Y +B X +B X +A Z +C Y +B Y +A Z +C X +B X +B X +B Y +B X +C Y +A Z +A Z +C Y +C Y +A X +A Z +A Z +C X +A Z +B Y +A Z +A Y +B X +A Z +C Y +C Y +B X +A Z +B X +A X +A X +B Z +C Y +C Y +C Y +C X +C Y +B X +B X +B Y +A X +B X +B X +C X +A X +C Y +B X +A Z +B Y +A Z +B Y +B X +A Y +C Y +C X +B Z +C Y +B Y +B Y +B X +C Y +B X +C Y +A Z +A X +B X +A Z +C Y +C X +C Y +B Y +B Y +A Z +C Y +B X +B X +B X +A Z +C X +A Z +B X +A Z +B X +B X +B X +B Y +C X +A Z +B X +B X +C Y +A X +B Y +B X +A Z +A Z +B X +C Y +A Z +A Z +B X +B Y +B Y +B X +A Z +C X +A Z +A X +C Y +B Z +A Z +A Z +A Z +A X +C Y +B X +C Y +A Z +A Z +C Y +B X +A Z +A X +A Y +A Z +B Y +C Y +B Y +A Z +A Z +C Y +C Y +A Z +A Z +C X +A Z +A Z +C X +C Y +B X +B Y +B Y +B X +C Y +A X +C X +A X +B X +C Y +C Y +C X +B Z +A X +A Z +C Y +C Y +C Y +B X +B Y +A Z +A Z +C X +B X +A Z +C Y +B Z +B X +A X +A Z +A X +B X +B X +A Z +A Z +B Y +B Y +B Y +B X +A Z +B X +C X +B Y +B Z +A Z +C X +C Y +B Y +A X +C X +A Z +B X +A X +A Z +B X +C X +B X +A Z +B Y +B Z +A X +C Y +A Z +B Y +B Z +C X +B X +C Y +C Y +B X +A X +B X +B Y +A Z +C Y +A Z +C Y +A Z +A X +B Z +C X +C Y +B X +C X +B Z +B X +C Y +A Z +A Z +C Y +B X +A Z +C Y +A X +B Y +A Z +B X +A Z +A Z +C Y +B X +A Z +A Z +C Y +B Y +B Y +C X +C Y +B Y +C X +B Y +A Z +C Y +B Y +A Z +B X +B X +A Y +B X +B X +B Y +B Y +C X +C Y +A Z +C X +A Z +A Z +A Y +A Z +B Z +C Y +C Y +C Y +C X +C Y +C Y +B X +C Y +C X +B X +C Y +C X +C Y +A Z +C Y +B Z +C X +A Z +C Y +C X +B X +B Z +C Y +C Y +B X +B Y +A X +B Y +A Z +C Y +C X +C X +A X +B Y +A Z +B Y +C Y +B Y +B Y +A X +C X +A Z +C X +A Z +B X +A X +A Z +B X +A X +B X +C Y +B Y +B X +C X +C Z +A Z +B Y +B X +A X +B Y +C Y +C Y +A X +C X +B Z +A Z +A Z +B X +A Z +C X +B Z +B Z +C Y +C Y +B Y +C Y +A Z +C Y +B X +B X +B X +A Y +A Z +A Z +A Z +C Y +B Y +B Y +C Y +A Z +A Z +A Y +C Y +C Y +A Z +C X +B X +A Z +C Y +C Y +A X +A Z +C X +A X +B Z +B X +B X +A Z +C Y +B Y +A Z +A Z +C Y +A Z +A X +C X +A Z +B X +C X +C Y +B Z +C Z +A Z +A X +C X +B Y +C Y +A X +B Y +A Z +B X +B Y +A X +C X +A Z +A Z +B X +A X +A X +C Y +B Y +A Z +C X +A Z +B Y +A Y +C Y +B X +C X +B X +B X +A Z +B X +C X +C Y +A Z +C Y +A Z +B Z +B Z +A Z +A Z +A Z +A Z +C Y +C Y +A Z +A Z +B Y +A Z +A Z +A X +C Y +C Z +A X +C X +B X +B X +A Z +C Y +A Z +A Z +B X +A Z +C Y +B Z +A Z +A Z +A Y +C X +A Z +B Y +B Y +C X +B X +C X +A X +C Y +A X +C X +A Z +B X +B X +A Z +B X +A Z +A X +B X +A Z +B X +C Z +B X +C Z +A Z +B X +C Y +A Z +B X +B X +B Y +C Y +A Z +A Z +C X +C Y +A Z +C Y +A Y +C Y +B Y +B Y +B X +C X +A Z +C Y +A Z +C Y +C X +A Y +C Y +C X +A Z +C Y +B X +A Z +A Z +B Y +C X +A Z +A Z +B Y +C Z +A Z +B X +B X +B Y +A Y +A X +A Z +B Y +C X +C X +B Z +B Y +A Z +B Z +C Y +B X +A X +C X +A Z +A Z +B Y +B Y +B X +C Y +A X +C X +C Z +C X +B Y +B Y +A Z +B X +A Z +A Z +C Y +C Y +A X +C X +C Y +C X +A Z +B Z +B Y +C X +A Z +B X +B X +A X +A Z +B Z +B X +A Z +A Z +A Z +B X +C Y +B X +A X +A X +C Y +A Z +C Y +B X +A Z +B X +B Y +B Y +A Z +B X +B Y +C Y +B X +B Y +B Y +B Y +A Z +C Y +B X +B Y +C Y +C X +B X +C X +A Z +C Y +A Z +A Z +C Y +B Y +A Z +B Y +B Y +B Z +B X +B X +B X +A X +C Y +B X +B X +B X +B X +B X +A Z +A Z +A Z +A Z +A Z +C Y +B Y +C X +A Z +C Y +B X +C Y +C X +A Z +A Z +B X +C Y +C Y +A Z +B X +A Z +B Y +B Y +C Y +C Z +C Y +B Y +B X +C X +C Y +B X +B X +A X +C Y +A Z +B Y +A X +C Y +A Z +A Z +A X +A Z +A X +B Y +C Y +B X +C Y +A X +C X +C X +B Y +A Z +C Y +C Z +C Y +C Y +C X +C Y +A Z +A Z +B X +C X +A Y +B X +C X +C X +B Y +A Y +A Z +C X +C X +C Z +B X +A X +C Y +A Z +B X +A Z +B X +B X +C X +B X +B X +A X +B X +B X +C Y +B Y +A Y +B X +B Z +C X +A Z +C Y +A X +C Y +C Y +B X +B X +C Y +C Y +C Y +A Z +A Z +C X +C X +B X +C Y +C Y +B X +C Y +A Z +A Z +C Y +C X +A Z +A Z +B X +B Y +C X +B X +B Z +A Z +B X +B X +B X +C Y +A Y +A Z +B Z +B X +B X +B Y +A Z +B Y +B X +A X +A Z +C Y +B X +C Y +C Y +A Z +A Z +B Z +A Z +B X +C Y +B Y +B Z +B Y +A Z +C Y +C Y +B Y +C X +C Y +A Z +C X +A Z +B X +B Y +A Z +B Z +C X +C Y +B Y +C Y +B Y +A Z +C X +B X +A Z +B X +B X +B X +A X +C X +B Y +C X +A Z +C Y +B X +A Z +A Z +A X +B Y +A Z +A Z +C X +A Z +B Y +A X +B X +B Y +A Z +B Z +B X +A Z +C Y +A X +A Z +C Y +C X +C Y +C X +A Z +A Z +A Z +C Z +C X +C Y +A Z +C Y +C Y +C Z +C Y +C Y +A X +A X +A Z +B X +B Z +A Z +B X +A Z +A Z +C X +A Z +B Y +A Z +B Z +A Z +C X +A Z +B Z +A X +C Y +B Y +C Y +C X +C Y +C X +A Z +C Y +C Y +C Y +C Y +A Z +B Z +B Y +B X +B X +C Y +A Z +A Z +A X +C X +A Z +B X +A Z +B X +C Y +C X +A Z +B X +C Y +A X +B Y +C Y +C X +A X +C Y +A Z +B X +C X +A X +B Y +B Z +A Z +A Z +A X +A Z +C X +A Z +B X +B X +C Y +B X +B X +A Z +B X +A Z +B X +B Z +A Y +A X +A Z +C X +A Z +A Z +B X +B X +B Y +B Y +A X +C X +A Z +C X +A Y +A Z +C X +B Y +A Z +C Y +A Z +A Z +C Y +A Z +A Z +A Z +A Z +B X +C Y +B Y +A X +B X +A Z +B Y +B X +B Y +B Y +C Y +C X +C X +B Y +C Y +A Z +B X +C X +B Z +A Z +C X +B X +C Y +C X +A Z +C X +C Y +B X +C X +C Y +B Y +A X +A Z +C X +C X +B X +B X +B X +C Y +B X +B X +B Y +B Y +B X +C X +C Y +B X +B X +B X +A Y +B Z +C X +C Y +C Y +B X +B X +A Z +A X +C Y +B X +C X +B X +B Y +A X +C Z +C Y +A Z +B Y +B Y +A Z +C X +C X +A Z +B Y +A Z +B X +A Z +C Y +C Y +B Y +A Z +A Z +A Z +C Y +C Y +A X +C X +B Y +C Y +C Y +C X +A Z +A Z +C X +C Y +A X +B X +A X +B Y +A X +A Z +A Z +C Y +A Z +B X +C X +A Z +A Z +A Z +C Y +C X +A Z +C Y +C Y +B X +B X +C X +B X +C X +A Z +B X +B Z +B X +B X +C Y +A X +A Z +B X +A Z +C Y +A Z +C Z +A Z +C Z +C X +A Z +B Z +A Z +C Y +B X +C Y +A Y +C Y +C X +B X +B Y +C X +A Z +B Z +A Z +B Y +B X +A X +B X +B Z +C Y +B Y +C Y +C X +B X +C Y +C Y +A Y +C Y +B X +B X +A Z +B X +B Z +C X +A Z +C Z +C Y +A Z +A Z +B Z +C X +A Z +C Y +A Z +A Z +B X +B Y +B Z +C X +C Y +B X +A Z +B X +A Z +B X +A Z +B X +A X +C Y +B Y +C Y +B X +A Z +B X +C Y +B Y +B Y +B X +A Z +B X +C Y +A X +A Y +B X +A Z +A Z +B Y +A Z +A Z +C Y +B Y +A Z +C Y +C Y +C Y +B Y +A Z +B X +A Z +C Z +A Z +A Y +B Z +C Y +A Z +C Y +C X +B Y +A Z +A Z +B X +A X +A Z +B X +A Z +C Y +C X +A Z +A Z +C X +A X +A Z +C Y +A Z +A Z +C X +C Y +B X +B Y +B Y +C Y +C Z +B Z +C X +C Y +A X +A Z +B X +B Y +B Y +C X +B Z +B Y +B X +B Y +C X +C Y +B X +B Y +B X +C X +C Y +C X +A Z +B Z +B Z +C X +C X +B X +C X +B X +C Y +C Y +C Y +B X +C Y +C X +A X +A Z +A X +A Z +B X +B X +A Z +A X +B Y +A Z +B X +A Y +B X +C Y +A Y +A Y +B X +B Y +C Z +C Y +B Y +B Y +B X +A Z +A Z +B X +A X +B X +B Y +B X +B X +A Z +C X +A Z +A X +A Z +B Z +B X +A Z +C X +A X +B Y +C X +B X +C X +A Y +A Z +B Y +C Y +A Z +A Z +A Z +A Z +A X +A Z +B X +A Z +C X +A Z +B Y +C Y +A Z +B X +A Z +C Y +B X +C Z +B Y +C X +A Z +A X +C Y +B Y +B X +C Y +C X +A Z +B X +C Y +A Z +A Y +C Y +B X +C X +B Y +A X +C Y +B X +C Y +A Z +A Z +A Z +C Y +B Z +B X +A Z +A X +B X +C X +B X +A Z +B X +B X +B Y +B X +A Z +C X +B X +A Z +A Z +C X +A X +A X +B X +B Y +A Z +C Y +C Y +B X +B X +A X +A Z +A Z +A X +B X +A Z +B Y +C X +B X +B X +C Y +A Z +B X +A X +C Y +C Y +C Y +A Z +B Y +C Y +C Y +C X +A Z +B Y +B X +B Y +B X +C Y +C Y +A X +B X +B X +C Z +C Y +B Z +A Z +B X +B X +B Y +C Y +C Y +A Z +C X +B X +B X +A Z +B Y +B Z +B X +A Z +A Z +A Z +C X +C Y +C X +C X +A X +C X +C Y +A X +B X +A Z +A X +B Y +B X +A Z +A Z +C Y +B Y +A Z +B X +C X +A Z +A Z +C X +B X +C Y +B X +B X +C Y +A Z +A Z +A Z +A X +A X +B X +A Z +B X +A X +C Y +C X +C X +A X +A Z +C Y +B X +A Z +A Z +A X +A Z +B Y +C X +B X +C X +C X +C X +A X +C Y +A Z +C Y +B X +B X +B X +C Y +C Y +A Z +A Z +C Y +A Z +B Y +B X +A Z +B Y +C Y +A Z +C X +B X +C Y +C Y +C X +C X +A Z +B X +A Z +B X +C X +B X +C Y +C Z +C X +C Y +A Z +A Z +A Z +B Z +B X +A Z +A Z +B X +A X +B Y +B X +C Y +C Y +A Z +B X +C Y +A X +A Z +B Z +A Z +C X +B Y +B Y +A Z +A Z +C Y +B X +C Z +C X +A Z +A Z +B X +B X +A X +B Y +C X +A Z +C Y +A X +B X +A Z +B Y +B X +B Y +A Z +B Y +C X +A Z +B X +A Z +C Z +A Z +A X +B X +C Y +A Z +A Z +A Z +C X +B X +A Z +A Z +B X +A Z +A Z +B Z +A Z +C Y +B X +C Y +C Y +C X +B X +A Z +B Y +A Z +C X +B X +C Y +A Z +B X +B Y +C X +C Y +A X +C Y +B Z +C X +B X +C X +B X +A Z +B X +A Z +B Y +B X +A Z +B Z +A X +B Y +B X +C X +C X +B X +B Y +C Y +B X +C X +C X +C Y +A Z +C X +A Z +C Z +C X +B X +B X +A Z +A X +A Z +C X +A Z +B X +A Z +B Y +A Z +A Z +A Z +B Y +A Z +A X +A Z +C Y +A Z +C Y +A Z +A Z +C Y +A Z +A Z +C Y +B Y +A Z +A Z +A X +C X +B X +A Y +B Y +A Z +C Y +C Y +A Y +C Y +B Y +B X +A Z +B Y +C X +A Z +A Z +A Z +B Z +A Z +C Y +B X +B X +C Y +A Z +C Y +A Z +A X +A Z +B Z +C Y +B X +C Y +A Z +C Y +B X +C Y +B Z +B X +A Z +C Y +A Z +C Z +A Z +C X +B X +A X +A X +B Y +A X +B Z +B X +A Z +B Y +B X +A Z +A Z +A Z +C X +A Z +B Y +C Y +A Z +C X +A Y +A Z +B Z +B Z +C Y +A X +B X +B Y +C Y +C Y +A X +A Z +C X +C Y +C Y +B Y +B X +A Z +B X +A Z +A Z +B X +B Y +B X +A X +C Y +B X +B Z +A Z +A X +C X +B Y +C Z +B X +A X +B Y +A Z +C Y +C Y +A X +C Y +B X +A Z +A Z +A Z +A Y +B X +B X +A Z +C X +A Z +C Z +B Z +A Z +B X +A Z +C Y +B Y +B X +A Z +C Z +B Y +A Y +B X +B Y +A Z +C Y +B X +A Z +B X +C Y +A X +C X +A Z +A X +A X +A X +C Y +C X +A Z +A Z +C Y +B X +B Y +B X +B Y +A Z +C Y +B Y +B X +A Y +B Y +A Z +B X +B X +A Z +C X +B Y +A Z +A X +C X +C X +A Z +C Y +B Y +A Z +A Z +C Y +C X +A Z +C X +B X +C Y +C X +C Y +B X +B Y +C X +A Z +A Z +C Z +A Z +A Z +C X +C X +B X +B X +C X +B Y +A Z +C Y +C X +B Z +B X +B X +C X +B X +A Z +C Y +A X +B Y +B X +C X +B X +C Y +B X +B Y +A Z +C Z +C X +B Y +A Z +B Z +C Y +B Y +A Z +A Z +B X +B X +B Y +A Z +B X +B Z +A Z +C Y +C Y +A Z +B Z +C Y +C Y +C X +B X +B X +C Y +B X +C X +C X +A X +C Y +B Y +A Z +C Y +A X +A Z +A Z +C Y +C Y +B Y +B Y +A X +A Z +B X +A X +A X +B Y +B Y +B X +C X +A Z +A Z +B Y +C Y +C X +B Y +B Y +A X +B X +C Y +B X +A Z +A Z +C Z +A Z +B Z +B Z +B X +A X +C Y +B X +B X +C X +A Z +B X +C X +C Y +C Y +A Z +A Y +C Y +C Y +B X +A Y +B Z +A Z +A Z +C X +C Y +A Z +A Z +B X +B Y +A Z +A Y +B X +C Y +A Z +B Y +B X +B X +B X +A Z +A Z +A X +B Z +B Z +A X +C Y +C Y +B X +A Z +A X +A Z +C X +A Z +C Y +A Z +A Z +B X +A Z +C X +C Y +C X +B Y +C Y +B X +A Z +B Y +A Z +A Z +A Z +C X +C X +B Z +B Z +B X +B Y +A Z +C X +C Y +A X +C Z +A Z +B X +C X +B X +A Z +B X +A Z +C X +A X +B X +B X +A Z +B X +B X +C Z +B Z +B X +A Y +C X +B X +B Y +B Z +C Y +B X +C X +C Y +A X +B X +C X +C X +B X +A Z +C Y +B X +A X +A Z +B X +B X +C X +A X +A X +A X +C Y +A Z +C X +A Z +C X +C X +A Z +C Y +A Z +B Y +A Z +B X +C X +A Z +C X +B Z +B X +A X +C X +C X +C Y +C Y +B X +B Y +B X +C Y +C X +C Y +B Y +A Z +B Z +C Y +C Y +A Z +B X +C Y +A Z +A Z +A X +B X +A Z +B X +A X +C X +B Y +B X +A Z +C X +C X +B X +C Y +C Y +C Y +A Z +B X +A Z +B Y +A X +B X +A Z +B Y +B Y +B X +C X +A X +B Y +A Z +B X +C X +B X +A Z +C Y +A Z +A Z +B X +B X +A X +A X +C Z +C X +B Z +C Y +A Z +C Y +C Y +A Z +B X +C Z +C X +B X +C X +A Z +C Y +C Y +B X +A Z +C X +B X +B X +A X +C Y +B X +A Z +A Z +B X +B X +B Y +A Z +A Z +B Y +B X +C X +B X +A X +A Z +A X +B X +B X +C Y +A Z +A X +C Y +B X +C X +C X +C X +C X +B Z +B Y +C X +A X +C Y +C Y +C X +B X +B Y +B X +B X +B X +C X +B X +B X +C Y +C Z +B X +C Z +A Z +A Z +C Y +B Z +B Y +A Z +A Y +C Y +B X +C Y +A Z +B Y +C Y +C Y +A Z +A Z +C Z +A X +A Y +B Y +A Z +A Z +A X +C Y +B Y +A Z +A Z +B Y +C Y +C Y +A Z +A Z +B Y +A Z +B X +A X +A Z +B Y +C Y +C X +A X +C X +C Y +B X +B X +A Z +C Y +B X +B Y +C Y +A X +B Z +B Y +C Y +C Y +A Z +A Z +A X +C Y +A Z +B X +A Z +C X +C X +C Y +C X +B X +C X +A Z +B X +B X +B Y +B X +C Y +A Z +B Y +B X +C X +C Y +C Y +A Z +A Z +B Z +B X +A Z +C Y +A Z +B X +A Z +A Z +B X +B Y +A Z +B Z +C Y +A X +C Y +C Y +B Y +B Y +B X +C X +A Z +B Z +A X +C Y +B X +A Z +A Z +C Y +B X +C X +B X +A Z +C Y +A Z +B Z +A Z +A Z +A Z +B X +C Y +C Y +C Y +A Y +C X +C Y +B Y +A Z +C Y +A X +A X +C Y +A X +B Y +C X +C Y +A Z +C Y +A X +B Y +C Y +B Y +B X +B X +C Y +A Z +C X +A Z +C Y +A Z +C Z +A Z +C Y +A Z +C X +A X +C Y +B Y +C Y +C X +A Y +A Z +C Z +A Z diff --git a/aoc22/two/two.py b/aoc22/two/two.py new file mode 100644 index 0000000..f5244b9 --- /dev/null +++ b/aoc22/two/two.py @@ -0,0 +1,92 @@ +fi = open('in.txt', 'r') + + +RO, PO, SO = "A", "B", "C" +RM, PM, SM = "X", "Y", "Z" +W, D, L = 6, 3, 0 +R, P, S = 1, 2, 3 + +x = fi.read().split('\n') +x2 = [z.split(" ") for z in x] +# 0 is the oppontent, 1 is you + +score = 0 + +def w(o, m): + return (m == RM and o == SO) or ( m == PM and o == RO ) or (m == SM and o == PO) +def d(o, m): + return (m == RM and o == RO) or (m == PM and o == PO) or (m == SM and o == SO) +def p(x): + match x: + case "X": + return 1 + case "Y": + return 2 + case "Z": + return 3 + case _: + return 0 + + +for sc in x2[0:-1]: + if (w(sc[0], sc[1])): + score += W + elif (d(sc[0], sc[1])): + score += D + else: + score += L + score += p(sc[1]) + +print(score) + +# A = rock, B = Paper, C = Scissors + +def x(o): + match o: + case "A": + return SM + case "B": + return RM + case "C": + return PM + case _: + return "" + +def d2(o): + match o: + case "A": + return RM + case "B": + return PM + case "C": + return SM + case _: + return "" + +def w2(o): + match o: + case "A": + return PM + case "B": + return SM + case "C": + return RM + case _: + return "" + +score2 = 0 + +for sc in x2[0:-1]: + match sc[1]: + case "X": + resu = x(sc[0]) + score2 += 0 + case "Y": + resu = d2(sc[0]) + score2 += 3 + case "Z": + resu = w2(sc[0]) + score2 += 6 + score2 += p(resu) + +print(score2)