diff options
author | Jack Sangdahl <[email protected]> | 2024-06-15 22:20:32 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2024-06-15 22:20:32 -0600 |
commit | 8e313e2614c7a0fe5af924febdbacc650e33835e (patch) | |
tree | 63426b6942ceebe17708140c972a7d7451bd2f74 | |
download | aoc-8e313e2614c7a0fe5af924febdbacc650e33835e.tar.gz aoc-8e313e2614c7a0fe5af924febdbacc650e33835e.zip |
intial
-rw-r--r-- | 10_2020.py | 43 | ||||
-rw-r--r-- | 10_2021.py | 49 | ||||
-rw-r--r-- | 10_2022.py | 37 | ||||
-rw-r--r-- | 10_2023.py | 155 | ||||
-rw-r--r-- | 11_2020.py | 62 | ||||
-rw-r--r-- | 11_2021.py | 49 | ||||
-rw-r--r-- | 11_2022.py | 58 | ||||
-rw-r--r-- | 11_2023.py | 56 | ||||
-rw-r--r-- | 12_2020.py | 82 | ||||
-rw-r--r-- | 12_2021.py | 33 | ||||
-rw-r--r-- | 12_2022.py | 46 | ||||
-rw-r--r-- | 12_2023.py | 55 | ||||
-rw-r--r-- | 13_2020.py | 89 | ||||
-rw-r--r-- | 13_2021.py | 43 | ||||
-rw-r--r-- | 13_2022.py | 58 | ||||
-rw-r--r-- | 13_2023.py | 39 | ||||
-rw-r--r-- | 14_2020.py | 76 | ||||
-rw-r--r-- | 14_2021.py | 27 | ||||
-rw-r--r-- | 14_2022.py | 47 | ||||
-rw-r--r-- | 14_2023.py | 67 | ||||
-rw-r--r-- | 15_2020.py | 22 | ||||
-rw-r--r-- | 15_2021.py | 40 | ||||
-rw-r--r-- | 15_2022.py | 56 | ||||
-rw-r--r-- | 15_2023.py | 45 | ||||
-rw-r--r-- | 16_2020.py | 62 | ||||
-rw-r--r-- | 16_2021.py | 66 | ||||
-rw-r--r-- | 16_2022.py | 36 | ||||
-rw-r--r-- | 16_2023.py | 67 | ||||
-rw-r--r-- | 17_2020.py | 38 | ||||
-rw-r--r-- | 17_2021.py | 39 | ||||
-rw-r--r-- | 17_2022.py | 100 | ||||
-rw-r--r-- | 17_2023.py | 49 | ||||
-rw-r--r-- | 18_2020.py | 98 | ||||
-rw-r--r-- | 18_2021.py | 102 | ||||
-rw-r--r-- | 18_2022.py | 67 | ||||
-rw-r--r-- | 18_2023.py | 101 | ||||
-rw-r--r-- | 19_2020.py | 76 | ||||
-rw-r--r-- | 19_2021.py | 98 | ||||
-rw-r--r-- | 19_2022.py | 85 | ||||
-rw-r--r-- | 19_2023.py | 111 | ||||
-rw-r--r-- | 1_2020.py | 12 | ||||
-rw-r--r-- | 1_2021.py | 11 | ||||
-rw-r--r-- | 1_2022.py | 10 | ||||
-rw-r--r-- | 1_2023.py | 21 | ||||
-rw-r--r-- | 20_2020.py | 231 | ||||
-rw-r--r-- | 20_2021.py | 56 | ||||
-rw-r--r-- | 20_2022.py | 39 | ||||
-rw-r--r-- | 20_2023.py | 104 | ||||
-rw-r--r-- | 21_2020.py | 50 | ||||
-rw-r--r-- | 21_2021.py | 46 | ||||
-rw-r--r-- | 21_2022.py | 2193 | ||||
-rw-r--r-- | 21_2023.py | 128 | ||||
-rw-r--r-- | 22_2020.py | 55 | ||||
-rw-r--r-- | 22_2021.py | 95 | ||||
-rw-r--r-- | 22_2022.py | 143 | ||||
-rw-r--r-- | 22_2023.py | 102 | ||||
-rw-r--r-- | 23_2020.py | 49 | ||||
-rw-r--r-- | 23_2021.py | 130 | ||||
-rw-r--r-- | 23_2022.py | 97 | ||||
-rw-r--r-- | 23_2023.py | 80 | ||||
-rw-r--r-- | 24_2020.py | 74 | ||||
-rw-r--r-- | 24_2021.py | 25 | ||||
-rw-r--r-- | 24_2022.py | 67 | ||||
-rw-r--r-- | 24_2023.py | 66 | ||||
-rw-r--r-- | 25_2020.py | 22 | ||||
-rw-r--r-- | 25_2021.py | 21 | ||||
-rw-r--r-- | 25_2022.py | 45 | ||||
-rw-r--r-- | 25_2023.py | 31 | ||||
-rw-r--r-- | 2_2020.py | 21 | ||||
-rw-r--r-- | 2_2021.py | 26 | ||||
-rw-r--r-- | 2_2022.py | 33 | ||||
-rw-r--r-- | 2_2023.py | 25 | ||||
-rw-r--r-- | 3_2020.py | 22 | ||||
-rw-r--r-- | 3_2021.py | 44 | ||||
-rw-r--r-- | 3_2022.py | 28 | ||||
-rw-r--r-- | 3_2023.py | 42 | ||||
-rw-r--r-- | 4_2020.py | 63 | ||||
-rw-r--r-- | 4_2021.py | 58 | ||||
-rw-r--r-- | 4_2022.py | 19 | ||||
-rw-r--r-- | 4_2023.py | 21 | ||||
-rw-r--r-- | 5_2020.py | 50 | ||||
-rw-r--r-- | 5_2021.py | 26 | ||||
-rw-r--r-- | 5_2022.py | 39 | ||||
-rw-r--r-- | 5_2023.py | 80 | ||||
-rw-r--r-- | 6_2020.py | 38 | ||||
-rw-r--r-- | 6_2021.py | 23 | ||||
-rw-r--r-- | 6_2022.py | 15 | ||||
-rw-r--r-- | 6_2023.py | 59 | ||||
-rw-r--r-- | 7_2020.py | 65 | ||||
-rw-r--r-- | 7_2021.py | 23 | ||||
-rw-r--r-- | 7_2022.py | 38 | ||||
-rw-r--r-- | 7_2023.py | 56 | ||||
-rw-r--r-- | 8_2020.py | 55 | ||||
-rw-r--r-- | 8_2021.py | 112 | ||||
-rw-r--r-- | 8_2022.py | 56 | ||||
-rw-r--r-- | 8_2023.py | 54 | ||||
-rw-r--r-- | 9_2020.py | 24 | ||||
-rw-r--r-- | 9_2021.py | 47 | ||||
-rw-r--r-- | 9_2022.py | 43 | ||||
-rw-r--r-- | 9_2023.py | 24 | ||||
-rwxr-xr-x | data.py | 19 | ||||
-rw-r--r-- | data/10_2020.txt | 114 | ||||
-rw-r--r-- | data/10_2021.txt | 106 | ||||
-rw-r--r-- | data/10_2022.txt | 140 | ||||
-rw-r--r-- | data/10_2023.txt | 140 | ||||
-rw-r--r-- | data/11_2020.txt | 95 | ||||
-rw-r--r-- | data/11_2021.txt | 10 | ||||
-rw-r--r-- | data/11_2022.txt | 55 | ||||
-rw-r--r-- | data/11_2023.txt | 140 | ||||
-rw-r--r-- | data/12_2020.txt | 760 | ||||
-rw-r--r-- | data/12_2021.txt | 24 | ||||
-rw-r--r-- | data/12_2022.txt | 41 | ||||
-rw-r--r-- | data/12_2023.txt | 1000 | ||||
-rw-r--r-- | data/13_2020.txt | 2 | ||||
-rw-r--r-- | data/13_2021.txt | 900 | ||||
-rw-r--r-- | data/13_2022.txt | 449 | ||||
-rw-r--r-- | data/13_2023.txt | 1349 | ||||
-rw-r--r-- | data/14_2020.txt | 565 | ||||
-rw-r--r-- | data/14_2021.txt | 102 | ||||
-rw-r--r-- | data/14_2023.txt | 100 | ||||
-rw-r--r-- | data/15_2020.txt | 1 | ||||
-rw-r--r-- | data/15_2021.txt | 100 | ||||
-rw-r--r-- | data/15_2022.txt | 32 | ||||
-rw-r--r-- | data/15_2023.txt | 1 | ||||
-rw-r--r-- | data/16_2020.txt | 261 | ||||
-rw-r--r-- | data/16_2021.txt | 1 | ||||
-rw-r--r-- | data/16_2022.txt | 61 | ||||
-rw-r--r-- | data/16_2023.txt | 110 | ||||
-rw-r--r-- | data/17_2020.txt | 8 | ||||
-rw-r--r-- | data/17_2021.txt | 1 | ||||
-rw-r--r-- | data/17_2022.txt | 1 | ||||
-rw-r--r-- | data/17_2023.txt | 141 | ||||
-rw-r--r-- | data/18_2020.txt | 381 | ||||
-rw-r--r-- | data/18_2021.txt | 100 | ||||
-rw-r--r-- | data/18_2022.txt | 2888 | ||||
-rw-r--r-- | data/18_2023.txt | 618 | ||||
-rw-r--r-- | data/19_2020.txt | 516 | ||||
-rw-r--r-- | data/19_2021.txt | 778 | ||||
-rw-r--r-- | data/19_2022.txt | 30 | ||||
-rw-r--r-- | data/19_2023.txt | 783 | ||||
-rw-r--r-- | data/1_2020.txt | 200 | ||||
-rw-r--r-- | data/1_2021.txt | 2000 | ||||
-rw-r--r-- | data/1_2022.txt | 2255 | ||||
-rw-r--r-- | data/1_2023.txt | 1000 | ||||
-rw-r--r-- | data/20_2020.txt | 1728 | ||||
-rw-r--r-- | data/20_2021.txt | 102 | ||||
-rw-r--r-- | data/20_2022.txt | 5000 | ||||
-rw-r--r-- | data/20_2023.txt | 58 | ||||
-rw-r--r-- | data/21_2020.txt | 49 | ||||
-rw-r--r-- | data/21_2021.txt | 2 | ||||
-rw-r--r-- | data/21_2022.txt | 2193 | ||||
-rw-r--r-- | data/21_2023.txt | 131 | ||||
-rw-r--r-- | data/22_2020.txt | 53 | ||||
-rw-r--r-- | data/22_2021.txt | 420 | ||||
-rw-r--r-- | data/22_2022.txt | 202 | ||||
-rw-r--r-- | data/22_2023.txt | 1329 | ||||
-rw-r--r-- | data/23_2020.txt | 1 | ||||
-rw-r--r-- | data/23_2021.txt | 5 | ||||
-rw-r--r-- | data/23_2023.txt | 141 | ||||
-rw-r--r-- | data/24_2020.txt | 406 | ||||
-rw-r--r-- | data/24_2021.txt | 252 | ||||
-rw-r--r-- | data/24_2022.txt | 37 | ||||
-rw-r--r-- | data/24_2023.txt | 300 | ||||
-rw-r--r-- | data/25_2020.txt | 2 | ||||
-rw-r--r-- | data/25_2021.txt | 137 | ||||
-rw-r--r-- | data/25_2022.txt | 113 | ||||
-rw-r--r-- | data/25_2023.txt | 1216 | ||||
-rw-r--r-- | data/2_2020.txt | 1000 | ||||
-rw-r--r-- | data/2_2021.txt | 1000 | ||||
-rw-r--r-- | data/2_2022.txt | 2500 | ||||
-rw-r--r-- | data/2_2023.txt | 100 | ||||
-rw-r--r-- | data/3_2020.txt | 323 | ||||
-rw-r--r-- | data/3_2021.txt | 1000 | ||||
-rw-r--r-- | data/3_2022.txt | 300 | ||||
-rw-r--r-- | data/3_2023.txt | 140 | ||||
-rw-r--r-- | data/4_2020.txt | 1159 | ||||
-rw-r--r-- | data/4_2021.txt | 601 | ||||
-rw-r--r-- | data/4_2022.txt | 1000 | ||||
-rw-r--r-- | data/4_2023.txt | 209 | ||||
-rw-r--r-- | data/5_2020.txt | 850 | ||||
-rw-r--r-- | data/5_2021.txt | 500 | ||||
-rw-r--r-- | data/5_2022.txt | 513 | ||||
-rw-r--r-- | data/5_2023.txt | 226 | ||||
-rw-r--r-- | data/6_2020.txt | 2195 | ||||
-rw-r--r-- | data/6_2021.txt | 1 | ||||
-rw-r--r-- | data/6_2022.txt | 1 | ||||
-rw-r--r-- | data/6_2023.txt | 2 | ||||
-rw-r--r-- | data/7_2020.txt | 594 | ||||
-rw-r--r-- | data/7_2021.txt | 1 | ||||
-rw-r--r-- | data/7_2022.txt | 1031 | ||||
-rw-r--r-- | data/7_2023.txt | 1000 | ||||
-rw-r--r-- | data/8_2020.txt | 629 | ||||
-rw-r--r-- | data/8_2021.txt | 200 | ||||
-rw-r--r-- | data/8_2022.txt | 99 | ||||
-rw-r--r-- | data/8_2023.txt | 776 | ||||
-rw-r--r-- | data/9_2020.txt | 1000 | ||||
-rw-r--r-- | data/9_2021.txt | 100 | ||||
-rw-r--r-- | data/9_2022.txt | 2000 | ||||
-rw-r--r-- | data/9_2023.txt | 200 |
199 files changed, 61366 insertions, 0 deletions
diff --git a/10_2020.py b/10_2020.py new file mode 100644 index 0000000..211f2ba --- /dev/null +++ b/10_2020.py @@ -0,0 +1,43 @@ +import fileinput +import re + +p1 = 0 +p2 = 0 + +xs = [int(x) for x in list(fileinput.input())] +xs.append(0) +xs = sorted(xs) +xs.append(max(xs) + 3) +n1 = 0 +n3 = 0 +for i in range(len(xs) - 1): + d = xs[i + 1] - xs[i] + if d == 1: + n1 += 1 + elif d == 3: + n3 += 1 + +# dynamic programming +DP = {} + + +# dp(i) = the number of ways to complete the adapter chain given +# that you are currently at adapter xs[i] +def dp(i): + if i == len(xs) - 1: + return 1 + if i in DP: + return DP[i] + ans = 0 + for j in range(i + 1, len(xs)): + if xs[j] - xs[i] <= 3: + # one way to get from i to the end is to first step to j + # the number of paths from i that *start* by stepping to xs[j] is just DP[j] + # So dp(i) = \sum_{valid j} dp(j) + ans += dp(j) + DP[i] = ans + return ans + + +print(n1 * n3) +print(dp(0)) diff --git a/10_2021.py b/10_2021.py new file mode 100644 index 0000000..539ee7e --- /dev/null +++ b/10_2021.py @@ -0,0 +1,49 @@ +import sys +from collections import defaultdict, Counter, deque + +SCORES = [] +ans = 0 +data = sys.argv[1] if len(sys.argv) > 1 else "day10data.txt" +for line in open(data): + bad = False + S = deque() + for c in line.strip(): + if c in ["(", "[", "{", "<"]: + S.append(c) + elif c == ")": + if S[-1] != "(": + ans += 3 + bad = True + break + else: + S.pop() + elif c == "]": + if S[-1] != "[": + ans += 57 + bad = True + break + else: + S.pop() + elif c == "}": + if S[-1] != "{": + ans += 1197 + bad = True + break + else: + S.pop() + elif c == ">": + if S[-1] != "<": + ans += 25137 + bad = True + break + else: + S.pop() + if not bad: + score = 0 + P = {"(": 1, "[": 2, "{": 3, "<": 4} + for c in reversed(S): + score = score * 5 + P[c] + SCORES.append(score) +print(ans) +SCORES.sort() +print(SCORES[len(SCORES) // 2]) diff --git a/10_2022.py b/10_2022.py new file mode 100644 index 0000000..1bcd555 --- /dev/null +++ b/10_2022.py @@ -0,0 +1,37 @@ +import sys +from collections import defaultdict + +infile = sys.argv[1] if len(sys.argv) > 1 else "10.in" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +G = [["?" for _ in range(40)] for _ in range(6)] +p1 = 0 +x = 1 +t = 0 + + +def handle_tick(t, x): + global p1 + global G + t1 = t - 1 + G[t1 // 40][t1 % 40] = "#" if abs(x - (t1 % 40)) <= 1 else " " + if t in [20, 60, 100, 140, 180, 220]: + p1 += x * t + + +for line in lines: + words = line.split() + if words[0] == "noop": + t += 1 + handle_tick(t, x) + elif words[0] == "addx": + t += 1 + handle_tick(t, x) + t += 1 + handle_tick(t, x) + x += int(words[1]) +print(p1) +for r in range(6): + print("".join(G[r])) diff --git a/10_2023.py b/10_2023.py new file mode 100644 index 0000000..47349b8 --- /dev/null +++ b/10_2023.py @@ -0,0 +1,155 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") + +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +for r in range(R): + for c in range(C): + if G[r][c] == "S": + sr, sc = r, c + up_valid = G[r - 1][c] in ["|", "7", "F"] + right_valid = G[r][c + 1] in ["-", "7", "J"] + down_valid = G[r + 1][c] in ["|", "L", "J"] + left_valid = G[r][c - 1] in ["-", "L", "F"] + assert sum([up_valid, right_valid, down_valid, left_valid]) == 2 + if up_valid and down_valid: + G[r][c] = "|" + sd = 0 + elif up_valid and right_valid: + G[r][c] = "L" + sd = 0 + elif up_valid and left_valid: + G[r][c] = "J" + sd = 0 + elif down_valid and right_valid: + G[r][c] = "F" + sd = 2 + elif down_valid and left_valid: + G[r][c] = "7" + sd = 2 + elif left_valid and right_valid: + G[r][c] = "-" + sd = 1 + else: + assert False + +# up right down left +DR = [-1, 0, 1, 0] +DC = [0, 1, 0, -1] +r = sr +c = sc +d = sd +dist = 0 +while True: + dist += 1 + r += DR[d] + c += DC[d] + if G[r][c] == "L": + if d not in [2, 3]: + break + elif d == 2: + d = 1 + else: + d = 0 + if G[r][c] == "J": + if d not in [1, 2]: + break + elif d == 1: + d = 0 + else: + d = 3 + if G[r][c] == "7": + # up right dswn left + if d not in [0, 1]: + break + elif d == 0: + d = 3 + else: + d = 2 + if G[r][c] == "F": + if d not in [0, 3]: + break + elif d == 0: + d = 1 + else: + d = 2 + assert G[r][c] != "." + if (r, c) == (sr, sc): + print(dist // 2) + break + +R2 = 3 * R +C2 = 3 * C +G2 = [["." for _ in range(C2)] for _ in range(R2)] +for r in range(R): + for c in range(C): + if G[r][c] == "|": + G2[3 * r + 0][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 2][3 * c + 1] = "x" + elif G[r][c] == "-": + G2[3 * r + 1][3 * c + 0] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 2] = "x" + elif G[r][c] == "7": + G2[3 * r + 1][3 * c + 0] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 2][3 * c + 1] = "x" + elif G[r][c] == "F": + G2[3 * r + 2][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 2] = "x" + elif G[r][c] == "J": + G2[3 * r + 1][3 * c + 0] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 0][3 * c + 1] = "x" + elif G[r][c] == "L": + G2[3 * r + 0][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 1] = "x" + G2[3 * r + 1][3 * c + 2] = "x" + elif G[r][c] == ".": + pass + else: + assert False, G[r][c] +for row in G2: + # print(''.join(row)) + pass + +Q = deque() +SEEN = set() +for r in range(R2): + Q.append((r, 0)) + Q.append((r, C2 - 1)) +for c in range(C2): + Q.append((0, c)) + Q.append((R2 - 1, c)) +while Q: + r, c = Q.popleft() + if (r, c) in SEEN: + continue + if not (0 <= r < R2 and 0 <= c < C2): + continue + SEEN.add((r, c)) + if G2[r][c] == "x": + continue + for d in range(4): + Q.append((r + DR[d], c + DC[d])) +ans = 0 +for r in range(R): + for c in range(C): + seen = False + for rr in [0, 1, 2]: + for cc in [0, 1, 2]: + if (3 * r + rr, 3 * c + cc) in SEEN: + seen = True + if not seen: + ans += 1 +print(ans) diff --git a/11_2020.py b/11_2020.py new file mode 100644 index 0000000..e2d5041 --- /dev/null +++ b/11_2020.py @@ -0,0 +1,62 @@ +import fileinput +import re +from copy import deepcopy + +L = [list(l.strip()) for l in list(fileinput.input())] +R = len(L) +C = len(L[0]) + + +def solve(L, p1): + t = 0 + while True: + t += 1 + # print('='*80) + # for r in range(R): + # print(''.join(L[r])) + + newL = deepcopy(L) + change = False + for r in range(R): + for c in range(C): + nocc = 0 + for dr in [-1, 0, 1]: + for dc in [-1, 0, 1]: + if not (dr == 0 and dc == 0): + rr = r + dr + cc = c + dc + # Only skip floor in part 2 + while ( + 0 <= rr < R + and 0 <= cc < C + and L[rr][cc] == "." + and (not p1) + ): + rr = rr + dr + cc = cc + dc + if 0 <= rr < R and 0 <= cc < C and L[rr][cc] == "#": + nocc += 1 + + if L[r][c] == "L": + if nocc == 0: + newL[r][c] = "#" + change = True + # Threshold changes from 4->5 in part 2 + elif L[r][c] == "#" and nocc >= (4 if p1 else 5): + newL[r][c] = "L" + change = True + if not change: + break + L = deepcopy(newL) + + print(t) + ans = 0 + for r in range(R): + for c in range(C): + if L[r][c] == "#": + ans += 1 + return ans + + +print(solve(L, True)) +print(solve(L, False)) diff --git a/11_2021.py b/11_2021.py new file mode 100644 index 0000000..93dcd90 --- /dev/null +++ b/11_2021.py @@ -0,0 +1,49 @@ +import sys +from collections import defaultdict, Counter, deque + +data = sys.argv[1] if len(sys.argv) > 1 else "day11data.txt" +G = [] +for line in open(data): + G.append([int(x) for x in line.strip()]) + +R = len(G) +C = len(G[0]) +ans = 0 + + +def flash(r, c): + global ans + ans += 1 + G[r][c] = -1 + for dr in [-1, 0, 1]: + for dc in [-1, 0, 1]: + rr = r + dr + cc = c + dc + if 0 <= rr < R and 0 <= cc < C and G[rr][cc] != -1: + G[rr][cc] += 1 + if G[rr][cc] >= 10: + flash(rr, cc) + + +t = 0 +while True: + t += 1 + for r in range(R): + for c in range(C): + G[r][c] += 1 + for r in range(R): + for c in range(C): + if G[r][c] == 10: + flash(r, c) + done = True + for r in range(R): + for c in range(C): + if G[r][c] == -1: + G[r][c] = 0 + else: + done = False + if t == 100: + print(ans) + if done: + print(t) + break diff --git a/11_2022.py b/11_2022.py new file mode 100644 index 0000000..3f69f1f --- /dev/null +++ b/11_2022.py @@ -0,0 +1,58 @@ +import sys +from copy import deepcopy + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/11_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +m = [] +op = [] +div = [] +true = [] +false = [] +for monkey in data.split("\n\n"): + id_, items, op_, test, t, f = monkey.split("\n") + m.append([int(i) for i in items.split(":")[1].split(",")]) + words = op_.split() + op_ = "".join(words[-3:]) + # last 3 words of input are a valid python function of the single variable 'old' + op.append(lambda old, op_=op_: eval(op_)) + div.append(int(test.split()[-1])) + true.append(int(t.split()[-1])) + false.append(int(f.split()[-1])) + +start = deepcopy(m) + +# want to know for each item if it's divisible by 23, 19, 13, 17 +# we can check using modulo eg. val % 17 +# x + a is divisible by 23 if (x % 23) + a is divisible by 23 +# x * a is divisible by 23 if (x % 23) * a is divisible by 23 +# now keep track of number modulo 23 * 19 * 13 * 17 +lcm = 1 +for x in div: + lcm = lcm * x # math.gcd(lcm, x) +# print(len(str(lcm))) + +for part in [1, 2]: + c = [0 for _ in range(len(m))] + m = deepcopy(start) + for t in range(20 if part == 1 else 10000): + for i in range(len(m)): + for item in m[i]: + # print(i, item) + c[i] += 1 + item = op[i](item) + if part == 2: + item %= lcm + # print(i, item) + if part == 1: + item = item // 3 + # print(i, item, item % div[i], true[i], false[i]) + if item % div[i] == 0: + # print(f'item {item} thrown to {true[i]}') + m[true[i]].append(item) + else: + # print(f'item {item} thrown to {false[i]}') + m[false[i]].append(item) + m[i] = [] + print(sorted(c)[-1] * sorted(c)[-2]) diff --git a/11_2023.py b/11_2023.py new file mode 100644 index 0000000..2df4fc1 --- /dev/null +++ b/11_2023.py @@ -0,0 +1,56 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) +for r in range(R): + assert len(G[r]) == C + +EMPTY_R = [] +r = 0 +while r < R: + empty = True + for c in range(C): + if G[r][c] == "#": + empty = False + if empty: + EMPTY_R.append(r) + r += 1 +EMPTY_C = [] +c = 0 +while c < C: + empty = True + for r in range(R): + if G[r][c] == "#": + empty = False + if empty: + EMPTY_C.append(c) + c += 1 + +GAL = [] +for r in range(R): + for c in range(C): + if G[r][c] == "#": + GAL.append((r, c)) + +for part2 in [False, True]: + expansion_factor = 10**6 - 1 if part2 else 2 - 1 + ans = 0 + for i, (r, c) in enumerate(GAL): + for j in range(i, len(GAL)): + r2, c2 = GAL[j] + dij = abs(r2 - r) + abs(c2 - c) + for er in EMPTY_R: + if min(r, r2) <= er <= max(r, r2): + dij += expansion_factor + for ec in EMPTY_C: + if min(c, c2) <= ec <= max(c, c2): + dij += expansion_factor + ans += dij + print(ans) diff --git a/12_2020.py b/12_2020.py new file mode 100644 index 0000000..6f16047 --- /dev/null +++ b/12_2020.py @@ -0,0 +1,82 @@ +import fileinput + +L = [l.strip() for l in fileinput.input()] + +# Why (x,y) vs. (r,c)? +# Here we're on a plane instead of a grid, so (x,y) is a better coordinate system (more "mathy"). +# What is the difference between a grid and a plane? If you're indexing into an array, it's a grid. +# The main difference is that y increases as it goes up, whereas r decreases as it goes up. + + +def solve_p1(): + # Direction is a number 0,1,2,3 + # 0=north, 1=east, 2=south, 3=west + DX = [0, 1, 0, -1] + DY = [1, 0, -1, 0] + x = 0 + y = 0 + dir_ = 1 + for line in L: + cmd = line[0] + n = int(line[1:]) + if cmd == "N": + y += n + elif cmd == "S": + y -= n + elif cmd == "E": + x += n + elif cmd == "W": + x -= n + elif cmd == "L": + for _ in range(n / 90): + dir_ = (dir_ + 3) % 4 + elif cmd == "R": + for _ in range(n / 90): + dir_ = (dir_ + 1) % 4 + elif cmd == "F": + x += DX[dir_] * n + y += DY[dir_] * n + else: + assert False + return abs(x) + abs(y) + + +def solve_p2(): + wx = 10 + wy = 1 + x = 0 + y = 0 + for line in L: + cmd = line[0] + n = int(line[1:]) + if cmd == "N": + wy += n + elif cmd == "S": + wy -= n + elif cmd == "E": + wx += n + elif cmd == "W": + wx -= n + # Complex numbers are a good way to think about rotations! + # Think of the point (x,y) as the complex number x+iy + # Remember i^2=-1. Multiplying by i is the same as rotating 90 degrees. + # Why? Note i^4 = (-1)^2 = 1, so multiplying by i four times does nothing. + # i^2 = -1, so multiplying by i flips you around the x and y axes (which is a 180-degree rotation). + # (x,y)*i = (x+iy)*i = ix+i^2y = -y+ix = (-y,x) + # (x,y)*i^3 = (x+iy)*i^3 = i^3x+i^4y = y - ix = (y,-x) + elif cmd == "L": + for _ in range(n / 90): + wx, wy = -wy, wx + elif cmd == "R": + for _ in range(n / 90): + wx, wy = wy, -wx + elif cmd == "F": + x += n * wx + y += n * wy + else: + assert False + return abs(x) + abs(y) + + +print(solve_p1()) +print(solve_p2()) diff --git a/12_2021.py b/12_2021.py new file mode 100644 index 0000000..a5ed747 --- /dev/null +++ b/12_2021.py @@ -0,0 +1,33 @@ +import sys +from collections import defaultdict, deque + +data = sys.argv[1] if len(sys.argv) > 1 else "day12data.txt" +E = defaultdict(list) +for line in open(data): + a, b = line.strip().split("-") + E[a].append(b) + E[b].append(a) + + +def solve(p1): + start = ("start", set(["start"]), None) + ans = 0 + Q = deque([start]) + while Q: + pos, small, twice = Q.popleft() + if pos == "end": + ans += 1 + continue + for y in E[pos]: + if y not in small: + newSmall = set(small) + if y.lower() == y: + newSmall.add(y) + Q.append((y, newSmall, twice)) + elif y in small and twice is None and y not in ["start", "end"] and not p1: + Q.append((y, small, y)) + return ans + + +print(solve(p1=True)) +print(solve(p1=False)) diff --git a/12_2022.py b/12_2022.py new file mode 100644 index 0000000..92da9a2 --- /dev/null +++ b/12_2022.py @@ -0,0 +1,46 @@ +import sys +from collections import deque + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/12_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +g = [] +for l in lines: + g.append(l) +r = len(g) +c = len(g[0]) +e = [[0 for _ in range(c)] for _ in range(r)] +for i in range(r): + for j in range(c): + if g[i][j] == "S": + e[i][j] = 1 + elif g[i][j] == "E": + e[i][j] = 26 + else: + e[i][j] = ord(g[i][j]) - ord("a") + 1 + + +def bfs(part): + q = deque() + for i in range(r): + for j in range(c): + if (part == 1 and g[i][j] == "S") or (part == 2 and e[i][j] == 1): + q.append(((i, j), 0)) + s = set() + while q: + (i, j), k = q.popleft() + if (i, j) in s: + continue + s.add((i, j)) + if g[i][j] == "E": + return k + for dr, dc in [(-1, 0), (0, 1), (1, 0), (0, -1)]: + rr = i + dr + cc = j + dc + if 0 <= rr < r and 0 <= cc < c and e[rr][cc] <= 1 + e[i][j]: + q.append(((rr, cc), k + 1)) + + +print(bfs(1)) +print(bfs(2)) diff --git a/12_2023.py b/12_2023.py new file mode 100644 index 0000000..ce59509 --- /dev/null +++ b/12_2023.py @@ -0,0 +1,55 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] + +# i == current position within dots +# bi == current position within blocks +# current == length of current block of '#' +# state space is len(dots) * len(blocks) * len(dots) +DP = {} + + +def f(dots, blocks, i, bi, current): + key = (i, bi, current) + if key in DP: + return DP[key] + if i == len(dots): + if bi == len(blocks) and current == 0: + return 1 + elif bi == len(blocks) - 1 and blocks[bi] == current: + return 1 + else: + return 0 + ans = 0 + for c in [".", "#"]: + if dots[i] == c or dots[i] == "?": + if c == "." and current == 0: + ans += f(dots, blocks, i + 1, bi, 0) + elif ( + c == "." and current > 0 and bi < len(blocks) and blocks[bi] == current + ): + ans += f(dots, blocks, i + 1, bi + 1, 0) + elif c == "#": + ans += f(dots, blocks, i + 1, bi, current + 1) + DP[key] = ans + return ans + + +for part2 in [False, True]: + ans = 0 + for line in L: + dots, blocks = line.split() + if part2: + dots = "?".join([dots, dots, dots, dots, dots]) + blocks = ",".join([blocks, blocks, blocks, blocks, blocks]) + blocks = [int(x) for x in blocks.split(",")] + DP.clear() + score = f(dots, blocks, 0, 0, 0) + ans += score + print(ans) diff --git a/13_2020.py b/13_2020.py new file mode 100644 index 0000000..956805f --- /dev/null +++ b/13_2020.py @@ -0,0 +1,89 @@ +import fileinput +import re + + +def gcd(x, y): + if x == 0: + return y + return gcd(y % x, x) + + +# Compute b**e modulo mod +def mod_pow(b, e, mod): + if e == 0: + return 1 + elif e % 2 == 0: + # If E is even, a**E = (a^2)^(E/2) + return mod_pow((b * b) % mod, e / 2, mod) + else: + return (b * mod_pow(b, e - 1, mod)) % mod + + +# We want to find x s.t. (a*x)%m == 1 +# Number theory fact: if m is prime, then a**(m-1)==1 for any a. +# Therefore, a**(m-2)*a == 1 for every a. +# So a**(m-2) is a modular inverse of a! +def mod_inverse(a, m): + return mod_pow(a % m, m - 2, m) + + +lines = list(fileinput.input()) +t0 = int(lines[0]) +B1 = [int(x) for x in lines[1].strip().split(",") if x != "x"] +best = None +for b in B1: + t = t0 + while t % b != 0: + t += 1 + wait_time = t - t0 + if best is None or wait_time < best[0]: + best = (wait_time, b) +print(best[0] * best[1]) + +# Part 2. We want to find time T. +B = lines[1].strip().split(",") +# Suppose bus K appears at index I in the list. +# K should depart at time T+I. i.e. T+I should be a multiple of K. +# T+I % K == 0 +# T % K == -I +# T % K == (K-(I%K))%K (want 0<=RHS<K) + +# Chinese remainder theorem: Let N be the product of the bus IDs in our input. +# There is exactly one T <N satisfying the constraints. + +constraints = [] +N = 1 +for i, b in enumerate(B): + if b != "x": + b = int(b) + i %= b + constraints.append(((b - i) % b, b)) + N *= b + +ans = 0 +# x % b = i +for i, b in constraints: + NI = N / b + # NI is the product of the *other* bus IDs + # If we add a multiple of NI to T, it won't affect when the other buses arrive modulo T, + # since NI is a multiple of each other bus ID. + # Is there a multiple of NI we can add to T so that T%b==i? Yes! + # We want to find a multiple of NI s.t. (a*NI)%b == i + # First find MI s.t. (MI*NI)%b == 1 + # Then (i*MI*NI)%b == i + assert gcd(NI, b) == 1 + mi = mod_inverse(NI, b) + assert mi == mod_inverse(NI, b) + assert (mi * NI) % b == 1 + assert (i * mi * NI) % b == i + for_b = i * mi * NI + assert for_b % b == i + assert for_b % NI == 0 + ans += for_b + # print(i,ni,mi,b) + +ans %= N +for i, b in constraints: + assert ans % b == i + +print(ans) diff --git a/13_2021.py b/13_2021.py new file mode 100644 index 0000000..c7189a8 --- /dev/null +++ b/13_2021.py @@ -0,0 +1,43 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "day13data.txt" +didP1 = False +G = {} + +for line in open(data): + line = line.strip() + if line and line.startswith("fold"): + G2 = {} + instr = line.split()[-1] + d, v = instr.split("=") + v = int(v) + if d == "x": + for x, y in G: + if x < v: + G2[(x, y)] = True + else: + G2[(v - (x - v), y)] = True + else: + assert d == "y" + for x, y in G: + if y < v: + G2[(x, y)] = True + else: + G2[(x, v - (y - v))] = True + G = G2 + if not didP1: + didP1 = True + print(len(G2)) + elif line: + x, y = [int(v) for v in line.strip().split(",")] + G[(x, y)] = True + +X = max([x for x, y in G.keys()]) +Y = max([y for x, y in G.keys()]) + +ans = "" +for y in range(Y + 1): + for x in range(X + 1): + ans += "x" if (x, y) in G else " " + print(ans) + ans = "" diff --git a/13_2022.py b/13_2022.py new file mode 100644 index 0000000..5108a47 --- /dev/null +++ b/13_2022.py @@ -0,0 +1,58 @@ +import sys +from functools import cmp_to_key + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/13_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def compare(p1, p2): + if isinstance(p1, int) and isinstance(p2, int): + if p1 < p2: + return -1 + elif p1 == p2: + return 0 + else: + return 1 + elif isinstance(p1, list) and isinstance(p2, list): + i = 0 + while i < len(p1) and i < len(p2): + c = compare(p1[i], p2[i]) + if c == -1: + return -1 + if c == 1: + return 1 + i += 1 + if i == len(p1) and i < len(p2): + return -1 + elif i == len(p2) and i < len(p1): + return 1 + else: + return 0 + elif isinstance(p1, int) and isinstance(p2, list): + return compare([p1], p2) + else: + return compare(p1, [p2]) + + +packets = [] +part1 = 0 +for i, group in enumerate(data.split("\n\n")): + p1, p2 = group.split("\n") + p1 = eval(p1) + p2 = eval(p2) + packets.append(p1) + packets.append(p2) + if compare(p1, p2) == -1: + part1 += 1 + i + +print(part1) + +packets.append([[2]]) +packets.append([[6]]) +packets = sorted(packets, key=cmp_to_key(lambda p1, p2: compare(p1, p2))) +part2 = 1 +for i, p in enumerate(packets): + if p == [[2]] or p == [[6]]: + part2 *= i + 1 +print(part2) diff --git a/13_2023.py b/13_2023.py new file mode 100644 index 0000000..780c62b --- /dev/null +++ b/13_2023.py @@ -0,0 +1,39 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] + +for part2 in [False, True]: + ans = 0 + for grid in D.split("\n\n"): + G = [[c for c in row] for row in grid.split("\n")] + R = len(G) + C = len(G[0]) + for c in range(C - 1): + badness = 0 + for dc in range(C): + left = c - dc + right = c + 1 + dc + if 0 <= left < right < C: + for r in range(R): + if G[r][left] != G[r][right]: + badness += 1 + if badness == (1 if part2 else 0): + ans += c + 1 + for r in range(R - 1): + badness = 0 + for dr in range(R): + up = r - dr + down = r + 1 + dr + if 0 <= up < down < R: + for c in range(C): + if G[up][c] != G[down][c]: + badness += 1 + if badness == (1 if part2 else 0): + ans += 100 * (r + 1) + print(ans) diff --git a/14_2020.py b/14_2020.py new file mode 100644 index 0000000..45773e6 --- /dev/null +++ b/14_2020.py @@ -0,0 +1,76 @@ +import fileinput +import re + + +def indices(newidx, floating): + if len(floating) == 0: + return [newidx] + else: + b0 = floating[0] + rest = floating[1:] + ans = indices(newidx, rest) + indices(newidx + 2**b0, rest) + return ans + + +def modify_value(value, mask): + newvalue = 0 + for i, bit in enumerate(reversed(mask)): + if bit == "X": + newvalue += value & (2**i) + elif bit == "1": + newvalue += 2**i + elif bit == "0": + pass + else: + assert False + return newvalue + + +def modify_idx(idx, mask): + newidx = 0 + floating = [] + for i, bit in enumerate(reversed(mask)): + ibit = idx & (2**i) + if bit == "X": + floating.append(i) + elif bit == "1": + newidx += 2**i + elif bit == "0": + newidx += ibit + pass + else: + assert False + return indices(newidx, floating) + + +def solve(p1): + mask = "" + mem = {} + lines = list(fileinput.input()) + for line in lines: + line = line.strip() + if line.startswith("mask"): + newmask = line.split()[-1] + mask = newmask + else: + assert len(mask) == 36 + idx, _, value = line.split() + idx = int(idx.split("[")[-1][:-1]) + value = int(value) + I = [idx] + if p1: + value = modify_value(value, mask) + else: + I = modify_idx(idx, mask) + + for idx2 in I: + mem[idx2] = value + + ans = 0 + for k, v in mem.items(): + ans += v + return ans + + +print(solve(True)) +print(solve(False)) diff --git a/14_2021.py b/14_2021.py new file mode 100644 index 0000000..d7a1d64 --- /dev/null +++ b/14_2021.py @@ -0,0 +1,27 @@ +import sys +from collections import Counter + +infile = sys.argv[1] if len(sys.argv) > 1 else "day14data.txt" +S, rules = open(infile).read().split("\n\n") +R = {} + +for line in rules.strip().split("\n"): + start, end = line.strip().split(" -> ") + R[start] = end + +C1 = Counter() +for i in range(len(S) - 1): + C1[S[i] + S[i + 1]] += 1 + +for t in range(41): + if t in [10, 40]: + CF = Counter() + for k in C1: + CF[k[0]] += C1[k] + CF[S[-1]] += 1 + print(max(CF.values()) - min(CF.values())) + C2 = Counter() + for k in C1: + C2[k[0] + R[k]] += C1[k] + C2[R[k] + k[1]] += C1[k] + C1 = C2 diff --git a/14_2022.py b/14_2022.py new file mode 100644 index 0000000..1a56eab --- /dev/null +++ b/14_2022.py @@ -0,0 +1,47 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/14_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +r = set() +for l in lines: + prev = None + for p in l.split("->"): + x, y = p.split(",") + x, y = int(x), int(y) + if prev is not None: + dx = x - prev[0] + dy = y - prev[1] + len_ = max(abs(dx), abs(dy)) + for i in range(len_ + 1): + xx = prev[0] + i * (1 if dx > 0 else (-1 if dx < 0 else 0)) + yy = prev[1] + i * (1 if dy > 0 else (-1 if dy < 0 else 0)) + r.add((xx, yy)) + prev = (x, y) + +floor = 2 + max(i[1] for i in r) +low_x = min(i[0] for i in r) - 2000 +high_x = max(i[0] for i in r) + 2000 +for x in range(low_x, high_x): + r.add((x, floor)) + +did_p1 = False +for t in range(1000000): + rock = (500, 0) + while True: + if rock[1] + 1 >= floor and (not did_p1): + did_p1 = True + print(t) + if (rock[0], rock[1] + 1) not in r: + rock = (rock[0], rock[1] + 1) + elif (rock[0] - 1, rock[1] + 1) not in r: + rock = (rock[0] - 1, rock[1] + 1) + elif (rock[0] + 1, rock[1] + 1) not in r: + rock = (rock[0] + 1, rock[1] + 1) + else: + break + if rock == (500, 0): + print(t + 1) + break + r.add(rock) diff --git a/14_2023.py b/14_2023.py new file mode 100644 index 0000000..c7930ce --- /dev/null +++ b/14_2023.py @@ -0,0 +1,67 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] + + +def rotate(G): + R = len(G) + C = len(G[0]) + NG = [["?" for _ in range(R)] for _ in range(C)] + for r in range(R): + for c in range(C): + NG[c][R - 1 - r] = G[r][c] + return NG + + +def roll(G): + R = len(G) + C = len(G[0]) + for c in range(C): + for _ in range(R): + for r in range(R): + if G[r][c] == "O" and r > 0 and G[r - 1][c] == ".": + G[r][c] = "." + G[r - 1][c] = "O" + return G + + +def score(G): + ans = 0 + R = len(G) + C = len(G[0]) + for r in range(R): + for c in range(C): + if G[r][c] == "O": + ans += len(G) - r + return ans + + +def show(G): + for r in range(len(G)): + print("".join(G[r])) + + +BY_GRID = {} + +target = 10**9 +t = 0 +while t < target: + t += 1 + for j in range(4): + G = roll(G) + if t == 1 and j == 0: + print(score(G)) + G = rotate(G) + Gh = tuple(tuple(row) for row in G) + if Gh in BY_GRID: + cycle_length = t - BY_GRID[Gh] + amt = (target - t) // cycle_length + t += amt * cycle_length + BY_GRID[Gh] = t +print(score(G)) diff --git a/15_2020.py b/15_2020.py new file mode 100644 index 0000000..e1eac70 --- /dev/null +++ b/15_2020.py @@ -0,0 +1,22 @@ +import fileinput +import re + +S = [14, 8, 16, 0, 1, 17] +last_index = {} + +for i, n in enumerate(S): + if i != len(S) - 1: + last_index[n] = i + +while len(S) < 30000000: + prev = S[-1] + prev_prev = last_index.get(prev, -1) + last_index[prev] = len(S) - 1 + if prev_prev == -1: + next_ = 0 + else: + next_ = len(S) - 1 - prev_prev + S.append(next_) + if len(S) == 2020: + print(next_) +print(S[-1]) diff --git a/15_2021.py b/15_2021.py new file mode 100644 index 0000000..77fae0c --- /dev/null +++ b/15_2021.py @@ -0,0 +1,40 @@ +import sys +import heapq + +sys.setrecursionlimit(int(1e6)) +data = sys.argv[1] if len(sys.argv) > 1 else "day15data.txt" +G = [] +for line in open(data): + G.append([int(x) for x in line.strip()]) +R = len(G) +C = len(G[0]) +DR = [-1, 0, 1, 0] +DC = [0, 1, 0, -1] + + +def solve(nTiles): + D = [[None for _ in range(nTiles * C)] for _ in range(nTiles * R)] + Q = [(0, 0, 0)] + while Q: + (dist, r, c) = heapq.heappop(Q) + if r < 0 or r >= nTiles * R or c < 0 or c >= nTiles * C: + continue + val = G[r % R][c % C] + (r // R) + (c // C) + while val > 9: + val -= 9 + rcCost = dist + val + if D[r][c] is None or rcCost < D[r][c]: + D[r][c] = rcCost + else: + continue + if r == nTiles * R - 1 and c == nTiles * C - 1: + break + for d in range(4): + rr = r + DR[d] + cc = c + DC[d] + heapq.heappush(Q, (D[r][c], rr, cc)) + return D[nTiles * R - 1][nTiles * C - 1] - G[0][0] + + +print(solve(1)) +print(solve(5)) diff --git a/15_2022.py b/15_2022.py new file mode 100644 index 0000000..84d7906 --- /dev/null +++ b/15_2022.py @@ -0,0 +1,56 @@ +import sys +import time + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/15_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +s = set() +b = set() +sum_d = 0 +for l in lines: + words = l.split() + sx, sy = words[2], words[3] + bx, by = words[8], words[9] + sx = int(sx[2:-1]) + sy = int(sy[2:-1]) + bx = int(bx[2:-1]) + by = int(by[2:]) + d = abs(sx - bx) + abs(sy - by) + sum_d += d + s.add((sx, sy, d)) + b.add((bx, by)) + + +def valid(x, y, s): + for sx, sy, d in s: + dxy = abs(x - sx) + abs(y - sy) + if dxy <= d: + return False + return True + + +p1 = 0 +for x in range(-int(1e7), int(1e7)): + y = int(2e6) + if not valid(x, y, s) and (x, y) not in b: + p1 += 1 +print(p1) + +n_checked = 0 +found_p2 = False +time.sleep(210) +for sx, sy, d in s: + for dx in range(d + 2): + dy = (d + 1) - dx + for signx, signy in [(-1, -1), (-1, 1), (1, -1), (1, 1)]: + n_checked += 1 + x = sx + (dx * signx) + y = sy + (dy * signy) + if not (0 <= x <= 4000000 and 0 <= y <= 4000000): + continue + assert abs(x - sx) + abs(y - sy) == d + 1 + if valid(x, y, s) and (not found_p2): + print(x * 4000000 + y) + found_p2 = True +print(n_checked, 4 * sum_d) diff --git a/15_2023.py b/15_2023.py new file mode 100644 index 0000000..a7f2e8a --- /dev/null +++ b/15_2023.py @@ -0,0 +1,45 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] + + +def f(s): + h = 0 + for c in s: + h = ((h + ord(c)) * 17) % 256 + return h + + +cmds = D.split(",") + +p1 = 0 +for cmd in cmds: + p1 += f(cmd) +print(p1) + +BOX = [[] for _ in range(256)] +for cmd in cmds: + if cmd[-1] == "-": + name = cmd[:-1] + h = f(name) + BOX[h] = [(n, v) for (n, v) in BOX[h] if n != name] + elif cmd[-2] == "=": + name = cmd[:-2] + h = f(name) + len_ = int(cmd[-1]) + if name in [n for (n, v) in BOX[h]]: + BOX[h] = [(n, len_ if name == n else v) for (n, v) in BOX[h]] + else: + BOX[h].append((name, len_)) + +p2 = 0 +for i, box in enumerate(BOX): + for j, (n, v) in enumerate(box): + p2 += (i + 1) * (j + 1) * v +print(p2) diff --git a/16_2020.py b/16_2020.py new file mode 100644 index 0000000..eb2d864 --- /dev/null +++ b/16_2020.py @@ -0,0 +1,62 @@ +import fileinput +import re + +L = list(l.strip() for l in fileinput.input()) +limits = [] +mine = None +other = [] +for l in L: + ints = [int(x) for x in re.findall("\d+", l)] + if len(ints) == 4: + limits.append(ints) + elif len(ints) > 4: + if mine is None: + mine = ints + else: + other.append(ints) + +n = len(limits) +assert n == 20 + +p1 = 0 +OK = [[True for _ in range(n)] for _ in range(n)] + +for vs in other: + assert len(vs) == len(limits) + ticket_valid = True + for v in vs: + valid = False + for a, b, c, d in limits: + if a <= v <= b or c <= v <= d: + valid = True + if not valid: + p1 += v + ticket_valid = False + + if ticket_valid: + for i, v in enumerate(vs): + for j, (a, b, c, d) in enumerate(limits): + if not (a <= v <= b or c <= v <= d): + OK[i][j] = False + +print(p1) + +MAP = [None for _ in range(20)] +USED = [False for _ in range(20)] +found = 0 +while True: + for i in range(20): + valid_j = [j for j in range(20) if OK[i][j] and not USED[j]] + if len(valid_j) == 1: + MAP[i] = valid_j[0] + USED[valid_j[0]] = True + found += 1 + if found == 20: + break + +# print(MAP) +p2 = 1 +for i, j in enumerate(MAP): + if j < 6: + p2 *= mine[i] +print(p2) diff --git a/16_2021.py b/16_2021.py new file mode 100644 index 0000000..6f887c4 --- /dev/null +++ b/16_2021.py @@ -0,0 +1,66 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "day16data.txt" + +ll = open(data).read().strip() + +d = bin(int(ll, 16))[2:] +while len(d) < 4 * len(ll): + d = "0" + d + + +def peek(data, n): + ret = data[0][:n] + data[0] = data[0][n:] + return ret + + +sumofversions = 0 + + +def parse(data): + global sumofversions + version = int(peek(data, 3), 2) + sumofversions += version + + tid = int(peek(data, 3), 2) + if tid == 4: + t = [] + while True: + cnt, *v = peek(data, 5) + t += v + if cnt == "0": + break + return int("".join(t), 2) + + ltid = peek(data, 1)[0] + spv = [] + if ltid == "0": + subpacketslen = int(peek(data, 15), 2) + subpackets = [peek(data, subpacketslen)] + while subpackets[0]: + spv.append(parse(subpackets)) + else: + spv = [parse(data) for i in range(int(peek(data, 11), 2))] + if tid == 0: + return sum(spv) + elif tid == 1: + p = 1 + for x in spv: + p *= x + return p + elif tid == 2: + return min(spv) + elif tid == 3: + return max(spv) + elif tid == 5: + return int(spv[0] > spv[1]) + elif tid == 6: + return int(spv[0] < spv[1]) + elif tid == 7: + return int(spv[0] == spv[1]) + + +p2 = parse([d]) +print(sumofversions) +print(p2) diff --git a/16_2022.py b/16_2022.py new file mode 100644 index 0000000..68deffe --- /dev/null +++ b/16_2022.py @@ -0,0 +1,36 @@ +import re +from collections import defaultdict + +graph = {} +rates = {} +for line in open("data/16_2022.txt").read().strip().split("\n"): + front, back = re.split(r"; tunnels? leads? to valves? ", line) + x = front.split(" ")[1] + rates[x] = int(front.split("=")[-1]) + graph[x] = back.split(", ") + +node_id = defaultdict(lambda: len(node_id)) +[node_id[u] for u in rates if rates[u]] +all_mask = (1 << len(node_id)) - 1 +cache = defaultdict(lambda: [[-1 for mask in range(all_mask + 1)] for t in range(31)]) + + +def dp(u, t, mask): + if t == 0: + return 0 + if cache[u][t][mask] == -1: + best = max(dp(v, t - 1, mask) for v in graph[u]) + bit = 1 << node_id[u] + if bit & mask: + best = max(best, dp(u, t - 1, mask - bit) + rates[u] * (t - 1)) + cache[u][t][mask] = best + return cache[u][t][mask] + + +print(dp("AA", 30, all_mask)) +print( + max( + dp("AA", 26, all_mask - mask) + dp("AA", 26, mask) + for mask in range(all_mask + 1) + ) +) diff --git a/16_2023.py b/16_2023.py new file mode 100644 index 0000000..610d406 --- /dev/null +++ b/16_2023.py @@ -0,0 +1,67 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) +DR = [-1, 0, 1, 0] +DC = [0, 1, 0, -1] + + +def step(r, c, d): + return (r + DR[d], c + DC[d], d) + + +def score(sr, sc, sd): + POS = [(sr, sc, sd)] + SEEN = set() + SEEN2 = set() + while True: + NP = [] + if not POS: + break + for r, c, d in POS: + if 0 <= r < R and 0 <= c < C: + SEEN.add((r, c)) + if (r, c, d) in SEEN2: + continue + SEEN2.add((r, c, d)) + ch = G[r][c] + if ch == ".": + NP.append(step(r, c, d)) + elif ch == "/": + NP.append(step(r, c, {0: 1, 1: 0, 2: 3, 3: 2}[d])) + elif ch == "\\": + NP.append(step(r, c, {0: 3, 1: 2, 2: 1, 3: 0}[d])) + elif ch == "|": + if d in [0, 2]: + NP.append(step(r, c, d)) + else: + NP.append(step(r, c, 0)) + NP.append(step(r, c, 2)) + elif ch == "-": + if d in [1, 3]: + NP.append(step(r, c, d)) + else: + NP.append(step(r, c, 1)) + NP.append(step(r, c, 3)) + else: + assert False + POS = NP + return len(SEEN) + + +print(score(0, 0, 1)) +ans = 0 +for r in range(R): + ans = max(ans, score(r, 0, 1)) + ans = max(ans, score(r, C - 1, 3)) +for c in range(C): + ans = max(ans, score(0, c, 2)) + ans = max(ans, score(R - 1, c, 0)) +print(ans) diff --git a/17_2020.py b/17_2020.py new file mode 100644 index 0000000..fdd889a --- /dev/null +++ b/17_2020.py @@ -0,0 +1,38 @@ +import fileinput +import re +import itertools + + +def solve(p1): + ON = set() + L = list([l.strip() for l in fileinput.input()]) + for r, l in enumerate(L): + for c, ch in enumerate(l): + if ch == "#": + ON.add((r, c, 0, 0)) + + for _ in range(6): + NEW_ON = set() + CHECK = set() + for x, y, z, w in ON: + for dx, dy, dz, dw in itertools.product([-1, 0, 1], repeat=4): + if w + dw == 0 or (not p1): + CHECK.add((x + dx, y + dy, z + dz, w + dw)) + + for x, y, z, w in CHECK: + nbr = 0 + for dx, dy, dz, dw in itertools.product([-1, 0, 1], repeat=4): + if dx != 0 or dy != 0 or dz != 0 or dw != 0: + if (x + dx, y + dy, z + dz, w + dw) in ON: + nbr += 1 + if (x, y, z, w) not in ON and nbr == 3: + NEW_ON.add((x, y, z, w)) + if (x, y, z, w) in ON and nbr in [2, 3]: + NEW_ON.add((x, y, z, w)) + ON = NEW_ON + + return len(ON) + + +print(solve(True)) +print(solve(False)) diff --git a/17_2021.py b/17_2021.py new file mode 100644 index 0000000..dbb2a57 --- /dev/null +++ b/17_2021.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +import sys +import heapq +import itertools +from collections import defaultdict, Counter, deque + +# target area: x=96..125, y=-144..-98 + +# y(t) ~ -t^2 + DY*t + +p2 = 0 +ans = 0 +for DX in range(150): + for DY in range(-150, 1000): + ok = False + max_y = 0 + x = 0 + y = 0 + dx = DX + dy = DY + for t in range(1000): + x += dx + y += dy + max_y = max(max_y, y) + if dx > 0: + dx -= 1 + elif dx < 0: + dx += 1 + dy -= 1 + # if 20<=x<=30 and -10<=y<=-5: + if 96 <= x <= 125 and -144 <= y <= -98: + ok = True + if ok: + p2 += 1 + if max_y > ans: + ans = max_y + print(DX, DY, ans) +print(ans) +print(p2) diff --git a/17_2022.py b/17_2022.py new file mode 100644 index 0000000..2ce88cf --- /dev/null +++ b/17_2022.py @@ -0,0 +1,100 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/17_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def get_piece(t, y): + if t == 0: + return set([(2, y), (3, y), (4, y), (5, y)]) + elif t == 1: + return set([(3, y + 2), (2, y + 1), (3, y + 1), (4, y + 1), (3, y)]) + elif t == 2: + return set([(2, y), (3, y), (4, y), (4, y + 1), (4, y + 2)]) + elif t == 3: + return set([(2, y), (2, y + 1), (2, y + 2), (2, y + 3)]) + elif t == 4: + return set([(2, y + 1), (2, y), (3, y + 1), (3, y)]) + else: + assert False + + +def move_left(piece): + if any([x == 0 for (x, y) in piece]): + return piece + return set([(x - 1, y) for (x, y) in piece]) + + +def move_right(piece): + if any([x == 6 for (x, y) in piece]): + return piece + return set([(x + 1, y) for (x, y) in piece]) + + +def move_down(piece): + return set([(x, y - 1) for (x, y) in piece]) + + +def move_up(piece): + return set([(x, y + 1) for (x, y) in piece]) + + +def show(r): + max_y = max([y for (x, y) in r]) + for y in range(max_y, 0, -1): + row = "" + for x in range(7): + if (x, y) in r: + row += "#" + else: + row += " " + print(row) + + +r = set([(x, 0) for x in range(7)]) + + +def signature(r): + max_y = max([y for (x, y) in r]) + return frozenset([(x, max_y - y) for (x, y) in r if max_y - y <= 30]) + + +l = 1000000000000 +seen = {} +top = 0 +i = 0 +t = 0 +added = 0 +while t < l: + piece = get_piece(t % 5, top + 4) + while True: + if data[i] == "<": + piece = move_left(piece) + if piece & r: + piece = move_right(piece) + else: + piece = move_right(piece) + if piece & r: + piece = move_left(piece) + i = (i + 1) % len(data) + piece = move_down(piece) + if piece & r: + piece = move_up(piece) + r |= piece + top = max([y for (x, y) in r]) + sr = (i, t % 5, signature(r)) + if sr in seen and t >= 2022: + (old_t, old_y) = seen[sr] + dy = top - old_y + dt = t - old_t + amt = (l - t) // dt + added += amt * dy + t += amt * dt + assert t <= l + seen[sr] = (t, top) + break + t += 1 + if t == 2022: + print(top) +print(top + added) diff --git a/17_2023.py b/17_2023.py new file mode 100644 index 0000000..5ba5030 --- /dev/null +++ b/17_2023.py @@ -0,0 +1,49 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + + +def solve(part2): + Q = [(0, 0, 0, -1, -1)] + D = {} + while Q: + dist, r, c, dir_, indir = heapq.heappop(Q) + if (r, c, dir_, indir) in D: + continue + D[(r, c, dir_, indir)] = dist + for i, (dr, dc) in enumerate([[-1, 0], [0, 1], [1, 0], [0, -1]]): + rr = r + dr + cc = c + dc + new_dir = i + new_indir = 1 if new_dir != dir_ else indir + 1 + + isnt_reverse = (new_dir + 2) % 4 != dir_ + + isvalid_part1 = new_indir <= 3 + isvalid_part2 = new_indir <= 10 and ( + new_dir == dir_ or indir >= 4 or indir == -1 + ) + isvalid = isvalid_part2 if part2 else isvalid_part1 + + if 0 <= rr < R and 0 <= cc < C and isnt_reverse and isvalid: + cost = int(G[rr][cc]) + heapq.heappush(Q, (dist + cost, rr, cc, new_dir, new_indir)) + + ans = 1e9 + for (r, c, dir_, indir), v in D.items(): + if r == R - 1 and c == C - 1: + ans = min(ans, v) + return ans + + +print(solve(False)) +print(solve(True)) diff --git a/18_2020.py b/18_2020.py new file mode 100644 index 0000000..0a15aeb --- /dev/null +++ b/18_2020.py @@ -0,0 +1,98 @@ +import fileinput +import re + +# Term := LIT | \( EMul \) +# EAdd := Term (+ Term)* +# EMul := EAdd (\* EAdd)* + + +def Term(W, i): + if W[i] == "(": + v, i2 = EMul(W, i + 1) + assert W[i2] == ")", W[i2] + return (v, i2 + 1) + else: + return (int(W[i]), i + 1) + + +def EAdd(W, i): + t1, i2 = Term(W, i) + ans = t1 + + while True: + if i2 == len(W) or W[i2] == ")" or W[i2] == "*": + return ans, i2 + else: + assert W[i2] == "+" + t2, i3 = Term(W, i2 + 1) + ans = ans + t2 + i2 = i3 + + +def EMul(W, i): + t1, i2 = EAdd(W, i) + ans = t1 + while True: + if i2 == len(W) or W[i2] == ")": + return ans, i2 + else: + assert W[i2] == "*" + t2, i3 = EAdd(W, i2 + 1) + ans = ans * t2 + i2 = i3 + + +# TermP1 := LIT | \( EXPR \) +# Expr := TermP1 (OP TermP1)* + +# Each line can be parsed as an Expr + + +# Gives you back the value of the term and the *next* word to parse +def TermP1(W, i): + if W[i] == "(": + v, i2 = Expr(W, i + 1) + assert W[i2] == ")", W[i2] + return (v, i2 + 1) + else: + return (int(W[i]), i + 1) + + +def eval1(first, op, second): + if op == "+": + return first + second + else: + assert op == "*" + return first * second + + +# evaluate expression starting at W[i] until ')' or end +def Expr(W, i): + t1, i2 = TermP1(W, i) + ans = t1 + + while True: + if i2 == len(W) or W[i2] == ")": + return ans, i2 + else: + assert W[i2] in ["+", "*"], W[i2] + t2, i3 = TermP1(W, i2 + 1) + ans = eval1(ans, W[i2], t2) + i2 = i3 + + +def solve(p1): + ans = 0 + L = list([l.strip() for l in fileinput.input()]) + for l in L: + l = l.replace("(", "( ") + l = l.replace(")", " )") + words = l.split() + v, idx = (Expr if p1 else EMul)(words, 0) + ans += v + assert idx == len(words) + return ans + + +print(solve(True)) +print(solve(False)) diff --git a/18_2021.py b/18_2021.py new file mode 100644 index 0000000..e6f761f --- /dev/null +++ b/18_2021.py @@ -0,0 +1,102 @@ +import sys + +inf = sys.argv[1] if len(sys.argv) > 1 else "day18data.txt" + +ll = [x for x in open(inf).read().strip().split("\n")] + + +def split(x): + if x % 2 == 0: + return [[x // 2], [x // 2]] + return [[x // 2], [x // 2 + 1]] + + +def descendr(x): + while len(x) == 2: + x = x[1] + return x + + +def descendl(x): + while len(x) == 2: + x = x[0] + return x + + +def reduce_snailfish_a(x, depth, toleft, toright): + if len(x) == 1: + return (x, False) + if depth >= 4: + if toleft: + toleft[0] += x[0][0] + if toright: + toright[0] += x[1][0] + return ([0], True) + n, ok = reduce_snailfish_a(x[0], depth + 1, toleft, descendl(x[1])) + if ok: + x[0] = n + return (x, ok) + n, ok = reduce_snailfish_a(x[1], depth + 1, descendr(x[0]), toright) + if ok: + x[1] = n + return (x, ok) + return (x, False) + + +def reduce_snailfish_b(x, depth, toleft, toright): + if len(x) == 1: + if x[0] >= 10: + return (split(x[0]), True) + return (x, False) + n, ok = reduce_snailfish_b(x[0], depth + 1, toleft, descendl(x[1])) + if ok: + x[0] = n + return (x, ok) + n, ok = reduce_snailfish_b(x[1], depth + 1, descendr(x[0]), toright) + if ok: + x[1] = n + return (x, ok) + return (x, False) + + +def reduce_snailfish(x, depth, toleft, toright): + n, ok = reduce_snailfish_a(x, depth, toleft, toright) + if ok: + return n, ok + return reduce_snailfish_b(x, depth, toleft, toright) + + +def conv(arr): + if type(arr) == type([]): + arr[0] = conv(arr[0]) + arr[1] = conv(arr[1]) + return arr + return [arr] + + +def mag(x): + if len(x) == 1: + return x[0] + else: + return 3 * mag(x[0]) + 2 * mag(x[1]) + + +xx = conv(eval(ll[0])) +for line in ll[1:]: + l = eval(line) + l = conv(l) + xx = [xx, l] + xx, ok = reduce_snailfish(xx, 0, [], []) + while ok: + xx, ok = reduce_snailfish(xx, 0, [], []) +print(mag(xx)) + +m = [] +for a in ll: + for b in ll: + xx = [conv(eval(a)), conv(eval(b))] + xx, ok = reduce_snailfish(xx, 0, [], []) + while ok: + xx, ok = reduce_snailfish(xx, 0, [], []) + m.append(mag(xx)) +print(max(m)) diff --git a/18_2022.py b/18_2022.py new file mode 100644 index 0000000..9ded6f7 --- /dev/null +++ b/18_2022.py @@ -0,0 +1,67 @@ +import sys +from collections import deque + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/18_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +P = set() +out = set() +in_ = set() +for l in lines: + x, y, z = l.split(",") + x, y, z = int(x), int(y), int(z) + P.add((x, y, z)) + + +def reaches_outside(x, y, z, part): + if (x, y, z) in out: + return True + if (x, y, z) in in_: + return False + seen = set() + q = deque([(x, y, z)]) + while q: + x, y, z = q.popleft() + if (x, y, z) in P: + continue + if (x, y, z) in seen: + continue + seen.add((x, y, z)) + if len(seen) > (5000 if part == 2 else 0): + for p in seen: + out.add(p) + return True + q.append((x + 1, y, z)) + q.append((x - 1, y, z)) + q.append((x, y + 1, z)) + q.append((x, y - 1, z)) + q.append((x, y, z + 1)) + q.append((x, y, z - 1)) + for p in seen: + in_.add(p) + return False + + +def solve(part): + out.clear() + in_.clear() + ans = 0 + for x, y, z in P: + if reaches_outside(x + 1, y, z, part): + ans += 1 + if reaches_outside(x - 1, y, z, part): + ans += 1 + if reaches_outside(x, y + 1, z, part): + ans += 1 + if reaches_outside(x, y - 1, z, part): + ans += 1 + if reaches_outside(x, y, z + 1, part): + ans += 1 + if reaches_outside(x, y, z - 1, part): + ans += 1 + return ans + + +print(solve(1)) +print(solve(2)) diff --git a/18_2023.py b/18_2023.py new file mode 100644 index 0000000..f51dc62 --- /dev/null +++ b/18_2023.py @@ -0,0 +1,101 @@ +import sys +from typing import List +from dataclasses import dataclass +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq + + +""" +square. we start on the square centred at (0, 0). each square corresponds to the +grid point in its centre. we are tracing out some shape following the +instructions; instead of cutting out whole squares, imagine drawing a line +through the corresponding grid points + +pick's theorem: suppose we have a polygon with the integer coordinates with area +A, B integer points along its boundary, and I integer points strictly within. +then A = I + (B / 2) - 1 + +the solution to the problem is just I + B, the number of grid points / squares +in the same, plus the number of squares / points on the inside of the same. +rearranging, pick's theorem tells us I = A (B / 2) + 1. so I + B = A + (B / 2) ++ 1. B is just the perimeter minus the sum of N across all commands. (note, each +command actually covers N + 1 squares, but the ending square of each command is +also covered by the starting square of the next command. so summing N gets the +correct number of squares in the path). we can compute the area A in two +different ways: +- the shoelace formula: A = (sum X[i] * Y[i + 1] - X[i + 1] * Y[i]) // 2 +- green's theorem: A = sum y * dx = sum x * dy +""" + + +@dataclass +class Instruction: + d: str + n: int + + +def parse_input(input_: str, part2: bool) -> List[Instruction]: + ans = [] + for line in input_.split("\n"): + d, n, hex_ = line.split() + if not part2: + ans.append(Instruction(d, int(n))) + else: + hex_ = hex_[1:-1] + d = {0: "R", 1: "D", 2: "L", 3: "U"}[int(hex_[-1])] + n = int(hex_[1:-1], 16) + ans.append(Instruction(d, n)) + return ans + + +def area_shoelace(cmds: List[Instruction]) -> int: + V = [] + pos = (0, 0) + for cmd in cmds: + d, n = cmd.d, cmd.n + if d == "R": + pos = (pos[0] + n, pos[1]) + elif d == "D": + pos = (pos[0], pos[1] - n) + elif d == "L": + pos = (pos[0] - n, pos[1]) + elif d == "U": + pos = (pos[0], pos[1] + n) + V.append(pos) + area = 0 + for i in range(len(V)): + area -= V[i][0] * V[(i + 1) % len(V)][1] + area += V[i][1] * V[(i + 1) % len(V)][0] + area //= 2 + return area + + +def area_green(cmds: List[Instruction]) -> int: + area = 0 + y = 0 + for cmd in cmds: + if cmd.d == "R": + area += y * cmd.n + elif cmd.d == "L": + area -= y * cmd.n + elif cmd.d == "U": + y += cmd.n + elif cmd.d == "D": + y -= cmd.n + return area + + +D = open(sys.argv[1]).read().strip() +for part2 in [False, True]: + cmds = parse_input(D, part2) + perimeter = 0 + for cmd in cmds: + perimeter += cmd.n + area1 = area_shoelace(cmds) + area2 = area_green(cmds) + assert area1 == area2, f"shoelace={area1} green={area2}" + ans = area1 + (perimeter // 2) + 1 + print(ans) diff --git a/19_2020.py b/19_2020.py new file mode 100644 index 0000000..0e73985 --- /dev/null +++ b/19_2020.py @@ -0,0 +1,76 @@ +import fileinput +import re + +L = list([l.strip() for l in fileinput.input()]) +R = {} +C = {} + + +def match_list(line, st, ed, rules): + key = (st, ed, tuple(rules)) + + if st == ed and not rules: + return True + if st == ed: + return False + if not rules: + return False + + ret = False + for i in range(st + 1, ed + 1): + if i == ed and len(rules) > 1: # have to leave something for the other rules + continue + if match(line, st, i, rules[0]) and match_list(line, i, ed, rules[1:]): + return True + + return False + + +DP = {} + + +def match(line, st, ed, rule): + key = (st, ed, rule) + if key in DP: + return DP[key] + + ret = False + if rule in C: + ret = line[st:ed] == C[rule] + else: + for option in R[rule]: + if match_list(line, st, ed, option): + ret = True + DP[key] = True + return True + + DP[key] = ret + return ret + + +def solve(p2): + ans = 0 + for line in L: + if ":" in line: + words = line.split() + name = words[0][:-1] + if name == "8" and p2: + rest = "42 | 42 8" + elif name == "11" and p2: + rest = "42 31 | 42 11 31" + else: + rest = " ".join(words[1:]) + if '"' in rest: + C[name] = rest[1:-1] + else: + options = rest.split(" | ") + R[name] = [x.split(" ") for x in options] + elif line: + DP.clear() + if match(line, 0, len(line), "0"): + ans += 1 + return ans + + +print(solve(False)) +print(solve(True)) diff --git a/19_2021.py b/19_2021.py new file mode 100644 index 0000000..a970fc7 --- /dev/null +++ b/19_2021.py @@ -0,0 +1,98 @@ +import sys + +inf = sys.argv[1] if len(sys.argv) > 1 else "day19data.txt" + +ll = [x for x in open(inf).read().strip().split("\n\n")] + +ll = [[eval("[" + x + "]") for x in l.split("\n")[1:]] for l in ll] + +coord_remaps = [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)] +coord_negations = [ + (1, 1, 1), + (1, 1, -1), + (1, -1, 1), + (1, -1, -1), + (-1, 1, 1), + (-1, 1, -1), + (-1, -1, 1), + (-1, -1, -1), +] + + +def apply(remap, negat, scan): + ret = [] + for item in scan: + ret.append( + [ + negat[0] * item[remap[0]], + negat[1] * item[remap[1]], + negat[2] * item[remap[2]], + ] + ) + return ret + + +distances_from_scan_0 = [(0, 0, 0)] + + +def find_alignment(scan_a, scan_b): + in_a = set([tuple(x) for x in scan_a]) + for remap in coord_remaps: + for negat in coord_negations: + a = scan_a + b = apply(remap, negat, scan_b) + for a_pos in a: + for b_pos in b: + remap_by = [ + b_pos[0] - a_pos[0], + b_pos[1] - a_pos[1], + b_pos[2] - a_pos[2], + ] + matches = 0 + all_remapped = [] + for other_b in b: + remapped_to_a = ( + other_b[0] - remap_by[0], + other_b[1] - remap_by[1], + other_b[2] - remap_by[2], + ) + if remapped_to_a in in_a: + matches += 1 + all_remapped.append(list(remapped_to_a)) + if matches >= 12: + print("match", remap_by) + distances_from_scan_0.append(tuple(remap_by)) + return (True, all_remapped) + return (False, None) + + +good = ll[0] +aligned_indices = set() +aligned_indices.add(0) +aligned = {} +aligned[0] = ll[0] +all_aligned = [] +all_aligned += [tuple(x) for x in ll[0]] +noalign = set() +while len(aligned_indices) < len(ll): + for i in range(len(ll)): + if i in aligned_indices: + continue + for j in aligned_indices: + print("Checking", i, "against", j) + if (i, j) in noalign: + continue + ok, remap = find_alignment(aligned[j], ll[i]) + if ok: + aligned_indices.add(i) + aligned[i] = remap + all_aligned += [tuple(x) for x in remap] + break + noalign.add((i, j)) +print(len(set(all_aligned))) + +dists = [] +for a in distances_from_scan_0: + for b in distances_from_scan_0: + dists.append(sum([abs(a[0] - b[0]), abs(a[1] - b[1]), abs(a[2] - b[2])])) +print(max(dists)) diff --git a/19_2022.py b/19_2022.py new file mode 100644 index 0000000..5f0fd9f --- /dev/null +++ b/19_2022.py @@ -0,0 +1,85 @@ +import sys +from collections import deque + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/19_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def solve(Co, Cc, Co1, Co2, Cg1, Cg2, T): + best = 0 + S = (0, 0, 0, 0, 1, 0, 0, 0, T) + Q = deque([S]) + SEEN = set() + while Q: + state = Q.popleft() + o, c, ob, g, r1, r2, r3, r4, t = state + best = max(best, g) + if t == 0: + continue + Core = max([Co, Cc, Co1, Cg1]) + if r1 >= Core: + r1 = Core + if r2 >= Co2: + r2 = Co2 + if r3 >= Cg2: + r3 = Cg2 + if o >= t * Core - r1 * (t - 1): + o = t * Core - r1 * (t - 1) + if c >= t * Co2 - r2 * (t - 1): + c = t * Co2 - r2 * (t - 1) + if ob >= t * Cg2 - r3 * (t - 1): + ob = t * Cg2 - r3 * (t - 1) + state = (o, c, ob, g, r1, r2, r3, r4, t) + if state in SEEN: + continue + SEEN.add(state) + assert o >= 0 and c >= 0 and ob >= 0 and g >= 0, state + Q.append((o + r1, c + r2, ob + r3, g + r4, r1, r2, r3, r4, t - 1)) + if o >= Co: + Q.append((o - Co + r1, c + r2, ob + r3, g + r4, r1 + 1, r2, r3, r4, t - 1)) + if o >= Cc: + Q.append((o - Cc + r1, c + r2, ob + r3, g + r4, r1, r2 + 1, r3, r4, t - 1)) + if o >= Co1 and c >= Co2: + Q.append( + (o - Co1 + r1, c - Co2 + r2, ob + r3, g + r4, r1, r2, r3 + 1, r4, t - 1) + ) + if o >= Cg1 and ob >= Cg2: + Q.append( + (o - Cg1 + r1, c + r2, ob - Cg2 + r3, g + r4, r1, r2, r3, r4 + 1, t - 1) + ) + return best + + +p1 = 0 +p2 = 1 +for i, line in enumerate(lines): + words = line.split() + id_ = int(words[1][:-1]) + ore_cost = int(words[6]) + clay_cost = int(words[12]) + obsidian_cost_ore, obsidian_cost_clay = int(words[18]), int(words[21]) + geode_cost_ore, geode_cost_clay = int(words[27]), int(words[30]) + s1 = solve( + ore_cost, + clay_cost, + obsidian_cost_ore, + obsidian_cost_clay, + geode_cost_ore, + geode_cost_clay, + 24, + ) + p1 += id_ * s1 + if i < 3: + s2 = solve( + ore_cost, + clay_cost, + obsidian_cost_ore, + obsidian_cost_clay, + geode_cost_ore, + geode_cost_clay, + 32, + ) + p2 *= s2 +print(p1) +print(p2) diff --git a/19_2023.py b/19_2023.py new file mode 100644 index 0000000..55b7755 --- /dev/null +++ b/19_2023.py @@ -0,0 +1,111 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +rules, parts = D.split("\n\n") +R = {} +for rule in rules.split("\n"): + name, rest = rule.split("{") + R[name] = rest[:-1] + + +def accepted(part): + state = "in" + while True: + rule = R[state] + for cmd in rule.split(","): + applies = True + res = cmd + if ":" in cmd: + cond, res = cmd.split(":") + var = cond[0] + op = cond[1] + n = int(cond[2:]) + if op == ">": + applies = part[var] > n + else: + applies = part[var] < n + if applies: + if res == "A": + return True + if res == "R": + return False + state = res + break + + +ans = 0 +for part in parts.split("\n"): + part = part[1:-1] + part = {x.split("=")[0]: int(x.split("=")[1]) for x in part.split(",")} + if accepted(part): + ans += part["x"] + part["m"] + part["a"] + part["s"] +print(ans) + + +def new_range(op, n, lo, hi): + if op == ">": + lo = max(lo, n + 1) + elif op == "<": + hi = min(hi, n - 1) + elif op == ">=": + lo = max(lo, n) + elif op == "<=": + hi = min(hi, n) + else: + assert False + return (lo, hi) + + +def new_ranges(var, op, n, xl, xh, ml, mh, al, ah, sl, sh): + if var == "x": + xl, xh = new_range(op, n, xl, xh) + elif var == "m": + ml, mh = new_range(op, n, ml, mh) + elif var == "a": + al, ah = new_range(op, n, al, ah) + elif var == "s": + sl, sh = new_range(op, n, sl, sh) + return (xl, xh, ml, mh, al, ah, sl, sh) + + +# x m a s +ans = 0 +Q = deque([("in", 1, 4000, 1, 4000, 1, 4000, 1, 4000)]) +while Q: + state, xl, xh, ml, mh, al, ah, sl, sh = Q.pop() + if xl > xh or ml > mh or al > ah or sl > sh: + continue + if state == "A": + score = (xh - xl + 1) * (mh - ml + 1) * (ah - al + 1) * (sh - sl + 1) + ans += score + continue + elif state == "R": + continue + else: + rule = R[state] + for cmd in rule.split(","): + applies = True + res = cmd + if ":" in cmd: + cond, res = cmd.split(":") + var = cond[0] + op = cond[1] + n = int(cond[2:]) + Q.append((res, *new_ranges(var, op, n, xl, xh, ml, mh, al, ah, sl, sh))) + xl, xh, ml, mh, al, ah, sl, sh = new_ranges( + var, "<=" if op == ">" else ">=", n, xl, xh, ml, mh, al, ah, sl, sh + ) + else: + Q.append((res, xl, xh, ml, mh, al, ah, sl, sh)) + break +print(ans) diff --git a/1_2020.py b/1_2020.py new file mode 100644 index 0000000..6d80f0a --- /dev/null +++ b/1_2020.py @@ -0,0 +1,12 @@ +import sys +import fileinput + +X = [int(line) for line in fileinput.input()] +n = len(X) +for i in range(n): + for j in range(i + 1, n): + if X[i] + X[j] == 2020: + print("Part 1:", X[i] * X[j]) + for k in range(j + 1, n): + if X[i] + X[j] + X[k] == 2020: + print("Part 2:", X[i] * X[j] * X[k]) diff --git a/1_2021.py b/1_2021.py new file mode 100644 index 0000000..8c2965d --- /dev/null +++ b/1_2021.py @@ -0,0 +1,11 @@ +p1 = 0 +p2 = 0 +XS = [int(x) for x in open("day1data.txt")] +for i in range(len(XS)): + if i >= 1 and XS[i] > XS[i - 1]: + p1 += 1 + if i >= 3 and XS[i] + XS[i - 1] + XS[i - 2] > XS[i - 1] + XS[i - 2] + XS[i - 3]: + p2 += 1 + +print(p1) +print(p2) diff --git a/1_2022.py b/1_2022.py new file mode 100644 index 0000000..019936e --- /dev/null +++ b/1_2022.py @@ -0,0 +1,10 @@ +i = [l.strip() for l in open("day1data.txt")] +j = [] +for elf in ("\n".join(i)).split("\n\n"): + k = 0 + for x in elf.split("\n"): + k += int(x) + j.append(k) +j = sorted(j) +print(j[-1]) +print(j[-1] + j[-2] + j[-3]) diff --git a/1_2023.py b/1_2023.py new file mode 100644 index 0000000..f54fd84 --- /dev/null +++ b/1_2023.py @@ -0,0 +1,21 @@ +import sys + +D = open(sys.argv[1]).read().strip() +p1 = 0 +p2 = 0 +for line in D.split("\n"): + p1_digits = [] + p2_digits = [] + for i, c in enumerate(line): + if c.isdigit(): + p1_digits.append(c) + p2_digits.append(c) + for d, val in enumerate( + ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] + ): + if line[i:].startswith(val): + p2_digits.append(str(d + 1)) + p1 += int(p1_digits[0] + p1_digits[-1]) + p2 += int(p2_digits[0] + p2_digits[-1]) +print(p1) +print(p2) diff --git a/20_2020.py b/20_2020.py new file mode 100644 index 0000000..ff8291d --- /dev/null +++ b/20_2020.py @@ -0,0 +1,231 @@ +import fileinput +import re +from copy import deepcopy +from collections import defaultdict +import math + +R = 10 +C = 10 + + +def rotate(T): + TR = len(T) + TC = len(T[0]) + # takes (r,c) to (c, R-1-r) + RET = [["?" for _ in range(TR)] for _ in range(TC)] + for r in range(TR): + for c in range(TC): + RET[c][TR - 1 - r] = T[r][c] + return RET + + +def flip(T): + return list(reversed(T)) + + +def flip2(T): + return [list(reversed(row)) for row in T] + + +def poss(T): + ans = set() + flips = [deepcopy(T), flip(T)] # , flip2(T), flip(flip2(T))] + for _ in range(4): + for i in range(len(flips)): + ans.add(tuple([tuple(row) for row in flips[i]])) + flips[i] = rotate(flips[i]) + return ans + + +L = list([l.strip() for l in fileinput.input()]) +L.append("") +G = {} +name = None +piece = [] +for l in L: + if "Tile" in l: + name = int(l.split()[1][:-1]) + elif l: + piece.append(list(l)) + else: + G[name] = piece + piece = [] + +# for k,T in G.items(): +# print(k) +# for row in T: +# print(''.join(row)) + +EDGE = {} +for k, T in G.items(): + left = [] + right = [] + top = [] + bottom = [] + for r in range(R): + left.append(T[r][0]) + right.append(T[r][R - 1]) + for c in range(C): + top.append(T[0][c]) + bottom.append(T[R - 1][c]) + edges = [tuple(x) for x in [left, right, top, bottom]] + EDGE[k] = set([x for x in edges] + [tuple(reversed(x)) for x in edges]) + + +E = defaultdict(set) + +# Assumes if two pieces have identical boundaries they will actually be adjacent in the final puzzle +start = None +ans = 1 +for k1, ET in EDGE.items(): + nbrs = 0 + for k2, EU in EDGE.items(): + if k1 != k2: + if ET & EU: + E[k1].add(k2) + if len(E[k1]) == 2: + start = k1 + ans *= k1 +print(ans) + +GR = int(math.sqrt(len(EDGE))) +GC = int(math.sqrt(len(EDGE))) +USED = set() +assert len(EDGE) == GR * GC +PLACE = [[None for _ in range(GR)] for _ in range(GC)] +PLACE[0][0] = start +PLACE[0][1], PLACE[1][0] = E[start] +USED.add(PLACE[0][0]) +USED.add(PLACE[0][1]) +USED.add(PLACE[1][1]) + +D = [(-1, 0), (0, 1), (1, 0), (0, -1)] + +##### +#### +### +## +# + +while True: + if len(USED) == GR * GC: + break + for r in range(GR): + for c in range(GC): + if PLACE[r][c] is not None: + continue + opts = set([k for k in E.keys() if k not in USED]) + for dr, dc in D: + rr, cc = r + dr, c + dc + if 0 <= rr < GR and 0 <= cc < GC and PLACE[rr][cc]: + opts = opts & E[PLACE[rr][cc]] + if len(opts) == 1: + chosen = list(opts)[0] + PLACE[r][c] = chosen + assert chosen not in USED + USED.add(chosen) + + +# Does the boundary of p1 match p2, assuming p2 is in the direction (dr,dc)? +def matches(p1, p2, dr, dc): + if dr == -1: # up, so top of p1 should match bottom of p2 + for c in range(C): + if p1[0][c] != p2[R - 1][c]: + return False + return True + elif dc == 1: # right, so right of p1 should match left of p2 + for r in range(R): + if p1[r][C - 1] != p2[r][0]: + return False + return True + elif dr == 1: + for c in range(C): + if p1[R - 1][c] != p2[0][c]: + return False + return True + elif dc == -1: + for r in range(R): + if p1[r][0] != p2[r][C - 1]: + return False + return True + else: + assert False + + +PIECES = [[None for _ in range(GR)] for _ in range(GC)] +for r in range(GR): + for c in range(GC): + opts = poss(G[PLACE[r][c]]) + for dr, dc in D: + rr, cc = r + dr, c + dc + if 0 <= rr < GR and 0 <= cc < GC: + ok_nbr = set() + opts_nbr = poss(G[PLACE[rr][cc]]) + for o1 in opts: + for o2 in opts_nbr: + if matches(o1, o2, dr, dc): + ok_nbr.add(o1) + opts = opts & ok_nbr + # Assumes that every piece has only one orientation that can match its neighbors + assert len(opts) == 1 + PIECES[r][c] = list(opts)[0] + +for r in range(GR): + for c in range(GC): + for dr, dc in D: + rr, cc = r + dr, c + dc + if 0 <= rr < GR and 0 <= cc < GC: + p1 = PIECES[r][c] + p2 = PIECES[rr][cc] + assert matches(p1, p2, dr, dc) + +IMAGE = [["?" for _ in range(GC * (C - 2))] for _ in range(GR * (R - 2))] +for r in range(GR): + for c in range(GC): + T = PIECES[r][c] + assert T in poss(G[PLACE[r][c]]) + for rr in range(1, len(T) - 1): + for cc in range(1, len(T[rr]) - 1): + IMAGE[r * (R - 2) + (rr - 1)][c * (C - 2) + (cc - 1)] = T[rr][cc] + +M = [" # ", "# ## ## ###", " # # # # # # "] +MR = len(M) +MC = len(M[0]) +for row in M: + assert len(row) == MC + +IR = len(IMAGE) +IC = len(IMAGE[0]) +assert len(IMAGE) == IR +for row in IMAGE: + assert len(row) == IC + +for IM in poss(IMAGE): + assert len(IM) == IR + assert len(IM[0]) == IC + IS_M = [[False for _ in range(len(IM[0]))] for _ in range(len(IM))] + has_monster = False + for r in range(IR): + for c in range(IC): + is_monster = True + for mr in range(MR): + for mc in range(MC): + if not (0 <= r + mr < IR and 0 <= c + mc < IC): + is_monster = False + else: + if M[mr][mc] == "#" and IM[r + mr][c + mc] != "#": + is_monster = False + if is_monster: + has_monster = True + for mr in range(MR): + for mc in range(MC): + if M[mr][mc] == "#": + IS_M[r + mr][c + mc] = True + # Assumes only one orientation has sea monsters + if has_monster: + ans = 0 + for r in range(IR): + for c in range(IC): + if IM[r][c] == "#" and not IS_M[r][c]: + ans += 1 + print(ans) diff --git a/20_2021.py b/20_2021.py new file mode 100644 index 0000000..8a6a9df --- /dev/null +++ b/20_2021.py @@ -0,0 +1,56 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "day20data.txt" +data = open(infile).read().strip() +rule, start = data.split("\n\n") +rule = rule.strip() +assert len(rule) == 512 + +G = set() +for r, line in enumerate(start.strip().split("\n")): + for c, x in enumerate(line.strip()): + if x == "#": + G.add((r, c)) + + +def step(G, on): + G2 = set() + rlo = min([r for r, c in G]) + rhi = max([r for r, c in G]) + clo = min([c for r, c in G]) + chi = max([c for r, c in G]) + for r in range(rlo - 5, rhi + 10): + for c in range(clo - 5, chi + 10): + rc_str = 0 + bit = 8 + for dr in [-1, 0, 1]: + for dc in [-1, 0, 1]: + if ((r + dr, c + dc) in G) == on: + rc_str += 2**bit + bit -= 1 + assert 0 <= rc_str < 512 + if (rule[rc_str] == "#") != on: + G2.add((r, c)) + return G2 + + +def show(G): + rlo = min([r for r, c in G]) + rhi = max([r for r, c in G]) + clo = min([c for r, c in G]) + chi = max([c for r, c in G]) + for r in range(rlo - 5, rhi + 5): + row = "" + for c in range(clo - 5, chi + 5): + if (r, c) in G: + row += "#" + else: + row += " " + print(row) + + +for t in range(50): + if t == 2: + print(len(G)) + G = step(G, t % 2 == 0) +print(len(G)) diff --git a/20_2022.py b/20_2022.py new file mode 100644 index 0000000..130f2f7 --- /dev/null +++ b/20_2022.py @@ -0,0 +1,39 @@ +import sys +from collections import deque + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/20_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def solve(part): + X = [int(x) for x in lines] + if part == 2: + X = [x * 811589153 for x in X] + X = deque(list(enumerate(X))) + for t in range(10 if part == 2 else 1): + for i in range(len(X)): + for j in range(len(X)): + if X[j][0] == i: + break + while X[0][0] != i: + X.append(X.popleft()) + val = X.popleft() + to_pop = val[1] + to_pop %= len(X) + assert 0 <= to_pop < len(X) + for _ in range(to_pop): + X.append(X.popleft()) + X.append(val) + for j in range(len(X)): + if X[j][1] == 0: + break + return ( + X[(j + 1000) % len(X)][1] + + X[(j + 2000) % len(X)][1] + + X[(j + 3000) % len(X)][1] + ) + + +print(solve(1)) +print(solve(2)) diff --git a/20_2023.py b/20_2023.py new file mode 100644 index 0000000..6bb4596 --- /dev/null +++ b/20_2023.py @@ -0,0 +1,104 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq +import math + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) +TYP = {} +R = {} +FROM = {} +INV = defaultdict(list) +lo = 0 +hi = 0 +Q = deque() +ON = set() +PREV = {} +COUNT = defaultdict(int) +TO_LCM = [] + + +def lcm(xs): + ans = 1 + for x in xs: + ans = (ans * x) // math.gcd(x, ans) + return ans + + +for line in L: + src, dest = line.split("->") + src = src.strip() + dest = dest.strip() + dest = dest.split(", ") + R[src] = dest + TYP[src[1:]] = src[0] + + +def adjust(y): + if y in TYP: + return TYP[y] + y + else: + return y + + +for x, ys in R.items(): + R[x] = [adjust(y) for y in ys] + for y in R[x]: + if y[0] == "&": + if y not in FROM: + FROM[y] = {} + FROM[y][x] = "lo" + INV[y].append(x) +assert len(INV["rx"]) == 1 +assert INV["rx"][0][0] == "&" +WATCH = INV[INV["rx"][0]] +for t in range(1, 10**8): + Q.append(("broadcaster", "button", "lo")) + while Q: + x, from_, typ = Q.popleft() + if typ == "lo": + if x in PREV and COUNT[x] == 2 and x in WATCH: + TO_LCM.append(t - PREV[x]) + PREV[x] = t + COUNT[x] += 1 + if len(TO_LCM) == len(WATCH): + print(lcm(TO_LCM)) + sys.exit(0) + if x == "rx" and typ == "lo": + print(t + 1) + if typ == "lo": + lo += 1 + else: + hi += 1 + if x not in R: + continue + if x == "broadcaster": + for y in R[x]: + Q.append((y, x, typ)) + elif x[0] == "%": + if typ == "hi": + continue + else: + if x not in ON: + ON.add(x) + new_typ = "hi" + else: + ON.discard(x) + new_typ = "lo" + for y in R[x]: + Q.append((y, x, new_typ)) + elif x[0] == "&": + FROM[x][from_] = typ + new_typ = "lo" if all(y == "hi" for y in FROM[x].values()) else "hi" + for y in R[x]: + Q.append((y, x, new_typ)) + else: + assert False, x + if t == 1000: + print(lo * hi) diff --git a/21_2020.py b/21_2020.py new file mode 100644 index 0000000..0cd31c5 --- /dev/null +++ b/21_2020.py @@ -0,0 +1,50 @@ +import fileinput +import re +from collections import defaultdict + +L = list([l.strip() for l in fileinput.input()]) +FOODS = [] +for l in L: + first, rest = l.split("(contains ") + I = set(first.split()) + A = set(rest[:-1].split(", ")) + FOODS.append((I, A)) + +all_I = set() +all_A = set() +for I, A in FOODS: + all_A |= A + all_I |= I + +# in allergens -> corresponding ingredient in list + +COULD_BE = {i: set(all_A) for i in all_I} +C = defaultdict(int) +for I, A in FOODS: + for i in I: + C[i] += 1 + + # for each allergen, all the missing ingredients are definitely not it + # this is the only thing you can deduce! + for a in A: + for i in all_I: + if i not in I: + COULD_BE[i].discard(a) + +MAPPING = {} +USED = set() + +p1 = 0 +for i in all_I: + if not COULD_BE[i]: + p1 += C[i] +print(p1) + +while len(MAPPING) < len(all_A): + for i in all_I: + poss = [a for a in COULD_BE[i] if a not in USED] + if len(poss) == 1: + MAPPING[i] = poss[0] + USED.add(poss[0]) +sorted_i = ",".join([k for k, v in sorted(MAPPING.items(), key=lambda kv: kv[1])]) +print(sorted_i) diff --git a/21_2021.py b/21_2021.py new file mode 100644 index 0000000..82eaba8 --- /dev/null +++ b/21_2021.py @@ -0,0 +1,46 @@ +import sys +from collections import Counter, defaultdict + +inf = sys.argv[1] if len(sys.argv) > 1 else "day21data.txt" + +ll = [int(x.split(": ")[1]) for x in open(inf).read().strip().split("\n")] + +dice = 1 +score = [0, 0] +done = False +while not done: + for player in range(2): + newpos = (ll[player] + dice + dice + 1 + dice + 2 - 1) % 10 + 1 + dice += 3 + score[player] += newpos + ll[player] = newpos + if score[player] >= 1000: + print(score[1 - player] * (dice - 1)) + done = True + break + +ll = [int(x.split(": ")[1]) for x in open(inf).read().strip().split("\n")] + +dice = list( + Counter(i + j + k for i in (1, 2, 3) for j in (1, 2, 3) for k in (1, 2, 3)).items() +) + +universes = {((0, ll[0]), (0, ll[1]), 0): 1} +wins = [0, 0] +while universes: + cpy = list(universes.items()) + universes = defaultdict(int) + for state, cnt in cpy: + turn = state[2] + score, pos = state[turn] + state = list(state) + state[2] = 1 - turn + for roll, dcount in dice: + newpos = (pos + roll - 1) % 10 + 1 + newscore = score + newpos + if newscore >= 21: + wins[turn] += cnt * dcount + continue + state[turn] = (newscore, newpos) + universes[tuple(state)] += cnt * dcount +print(max(wins)) diff --git a/21_2022.py b/21_2022.py new file mode 100644 index 0000000..8896250 --- /dev/null +++ b/21_2022.py @@ -0,0 +1,2193 @@ +jqtv: sgqw + ldhr +zzvc: rrwv * gggt +fnsb: lmjw * rszr +gwzg: lshd / jsgr +hsbm: 18 +hwln: 2 +jjfp: nzwt + zjcj +slmj: qswf * jjnw +wcwv: 5 +bcwl: 1 +rncw: 4 +zzlb: wbww * vrwh +rcqs: jcpb * swcp +sbvf: nfms + sztj +wsww: 6 +sdjz: vztc * crnw +spzr: wndq * lbgp +nfcv: htdd + zjll +lwqd: qvhw / vthg +nrcf: scjn + zfzg +vjsn: 1 +wndn: 2 +vhrc: jwfn + mspt +cfbn: 4 +sdhj: 2 +gmph: 5 +fsrm: vmlj * tgfq +rjgw: hngl + jcrj +bwcd: bhdz * mbsw +nprt: 4 +tcsz: hccw * pbwr +gpgc: jdmm + sjls +npmg: jcnz + ldlc +qfww: gwsn * trwp +lcqh: 3 +qcrh: vsng * tsbh +whcv: dbth + wnwm +btwg: qnrg + twfd +qbzh: mvqb * vzvd +sgns: 2 +gpvb: 2 +llsw: bmhg + wcwv +dvpp: snqf - hqjl +rchb: vhvl + sqcq +wlcg: cdbl * lvlj +fsdl: 7 +pwpr: 4 +jplc: 5 +zbwj: 2 +vwzq: 2 +shmr: 2 +ldlp: 2 +fmpb: 7 +cjmm: hdzq * vjwn +jfmq: lvgg * gpdw +qzqt: sljt + mcdz +bzbq: 4 +swcp: 3 +drjj: cfbn * nnld +rntn: wqdg * czrg +gzfw: 2 +jvct: 2 +hbqf: ptrt / dlcr +gqtn: 2 +rbvj: jfmp * lblh +mzmb: 5 +jcmd: qdsp + chng +mpvh: 5 +vjwn: 5 +jnss: 2 +hrbh: cqmw - fpjc +cgmw: hvlt * jdlm +ndcv: rssv * smdz +hjjj: 2 +jlgh: 3 +snbq: 5 +zvsp: ghzw + qjbs +jdmz: rjgw + llrp +tsbw: 6 +lthg: 5 +qmcq: glzc * fmrv +cgtz: 2 +rndp: 2 +tghl: 9 +zhcg: 4 +bstc: sppm * pprt +lljb: nwds - tcpl +rrrh: sjcz + jlrq +gzss: qrjt - pwpr +gqrd: 1 +cddp: 17 +vdlv: gfqv * chrw +hczn: 5 +psct: ghns + rsjs +zsbf: mwrm + tndn +nbgd: 13 +vfjv: 2 +vzbg: 6 +dtfb: zgvb + gzgl +vcbv: bnbc + hfff +rsjs: lzds * fvbf +wtlw: 2 +qzgp: gmqp / djdr +rscv: dfjm + fwfc +chhp: hvqw * cjff +fmfs: gvrq * hpsd +vmlj: 3 +zqdm: 3 +fhzp: 1 +gzdc: 5 +mhpv: qhvm * wlcg +rnnw: 3 +hslq: 3 +qfjs: tnbs * nprt +gfvj: 3 +bzgr: 5 +cmld: gpfj + scbn +cldz: tmzj - jplj +tfhz: twlq / pcpw +qmdh: 2 +mttp: 4 +dcrw: qrhl + twgz +sgps: 2 +wwrn: dgvn * qmwv +pwch: 2 +qwvl: 9 +hqbb: 17 +qrcj: 4 +bhfz: 3 +vhcq: hsbm + ffzz +jqln: 6 +pmnj: rcfb - jmtn +znnc: cbqz * pphv +jjdg: 5 +nszd: 4 +dhbt: 14 +mwpl: 2 +vgmc: tlqj + fhbv +bnwl: rlmq + tvbw +gmqp: wbld - psgb +ptqp: bjzz / phjb +qmrq: gtrr + zppb +cvzt: 2 +vgrw: 2 +gplp: 17 +frdl: 3 +zfnf: 1 +nssj: 4 +lngs: dfcl * mzgg +pzsm: 9 +lszv: fdpq * dqwj +qnrg: 13 +nlmb: 2 +vznr: rvhv + hgtn +fcps: fqmz * mqzm +gljv: fnsb / gfst +wncs: chhp / fcrh +ltzb: lwqd + rtww +mhsc: mhsn / gscj +mgbf: hcdj - gfsl +nczs: bfdn / mvmh +dnnm: bfcg + cbqn +mrhq: zthf / vfjv +hpjc: llsw * tfnb +ftsw: fqlh * lqbt +dlrm: 2 +dcqg: psrd * wbsl +fztl: wfzs * fmvz +bnlz: tjsc * thlh +pcjc: gshw * wmvl +ctfg: 3 +qqtb: gtmd + cdtm +zmcs: 2 +zjbr: jmqm + jtfz +jprp: zdwc * zmdt +bjwv: mqrs * nrrc +zbnc: hpcp + tfdc +sscn: gbqm - npfh +gmcd: czfr + twvb +lrcl: 3 +vpcj: snqv * bfqb +szws: 3 +wtvw: 3 +rpmw: 2 +gtsb: 3 +ftpv: mllt * ltzb +smdg: 2 +hpsh: 4 +gplr: 2 +zffg: rtzz + vplq +qfzd: 2 +hvct: 7 +psvj: rljf / wjcr +dwbn: qbjp / hvct +lgdz: 1 +cwtl: 18 +mhnm: 3 +pzzf: rchf + dwlf +rvfw: hwpw + pvpt +qmwv: 2 +cjhc: ftfv * dwwq +mjhf: 2 +hngl: 8 +chwr: 2 +gchg: 13 +httv: phvs * nvdj +qwqz: wjsd + msdj +cwds: 2 +fcrh: 2 +tlzz: vnwn + dldr +dmgj: 12 +bhhq: qpdj + czzr +pcrj: twhz + cshd +tbcl: hbwn + mrsb +lglt: djsv / vjbm +ndng: lthg * srfq +lpvp: pcdj - qglm +lqbt: 3 +vndr: cprd + whhg +qfhb: 5 +vssr: tvvs + gtqb +frlz: 3 +dhsw: hslj + zqrl +jmzt: pnbb / lggf +mbmm: tpgt * gqtn +zmmg: tgmc * fscm +lpvq: 2 +pprt: 3 +qrzg: 4 +njqg: tfpl + lrpt +fnvh: jnts * clhp +ddvd: tjtg * vptb +nzng: 2 +qdcc: nzcs / zrtp +stqr: zlwb * qgjb +rszr: qcrh + lngs +vwhs: 18 +wzhd: 2 +wddc: 7 +jtfz: rnnw + lmvd +slrp: twqq + qstf +wlwv: hngp * slrp +pqws: 18 +mhnw: 9 +fdjw: 11 +vqll: 5 +lhbr: nqjv + vhrc +gnbp: 12 +fmgt: 4 +gccf: 5 +jrfz: 4 +mvqb: qdcc + bslg +htgh: drzs + bwcd +tcpl: zzjj * sgwc +trwh: dnfp + zfnt +cnbc: gbvv + hmdd +vmth: wsrp * bqgv +lfrw: 2 +dflz: rdrs * lfqs +qcrb: mrcv * bggh +wjwg: 2 +gzbb: 2 +dvbp: ndtw + gtsc +gvrq: pbfq + tzfn +sbnf: 2 +dlwp: jmpq / pmht +csgc: 3 +bdvm: 3 +zbhg: rchb + qjpm +vbbr: tbfv * ztmc +vllh: zgwd * cpvl +gtzl: 1 +ntvh: 7 +vzvr: lqwm + tzwn +bhnj: lzvw * tpgw +tbtw: 2 +ftpw: 3 +dswt: 3 +ssgq: 2 +cpqt: rqsc + rwjv +zhvd: 3 +fbbz: jjvr * ljst +ptrt: fjvb * cvzt +vjnr: 11 +hjph: 3 +pcdj: dnnm * rjqg +fmtd: mpwl * fjrr +bdpd: ngjl * tbhf +gczj: bzvc + hzgn +qvhw: 20 +sgmt: pjgb * pznf +qvvl: 5 +jjwt: 15 +qrvs: lrcl * dwcz +vrvg: qszv + drzr +dmwm: 2 +chmb: gfzs + tfsg +mrqf: fjqv * shzc +vtfd: 13 +pwgc: 2 +zbzs: 2 +flzr: 10 +cmqn: 5 +btvm: 2 +dhll: vgmb + jmpr +drng: pgnj / zjwz +hfft: lvgb * pwgc +wjwt: 2 +ljth: 2 +srsl: 5 +fcng: 2 +cbvf: bvzs * qrzg +fcmn: jmvq * mhdt +llcl: 5 +bgbl: ndcq * zqsd +smdm: zvwh + rgnn +lrhz: 2 +jfsh: 4 +svjq: mclr - zltp +tdfj: 2 +lggf: 2 +zhlc: 3 +btgg: 2 +zzjj: gghd + jhdv +cpjg: qwvm * sbvf +sgdz: 12 +glbm: dpjz * psct +tnnl: 2 +fsvh: lgnr + vtjv +pzrp: nlll * wgbc +psft: 3 +gfwt: 4 +jfbd: nncb + bnlc +rwzl: jpzv * vztw +grbp: dtfb + tnws +cqzs: qpdz * bfmn +btnm: 1 +mdqb: 2 +gbpl: 5 +sjls: rsmg * bwpc +gghd: smdg * chzq +hlmj: 10 +vrwh: 5 +hslj: 3 +dpqj: 7 +sspc: 4 +fsbf: fgmm + pplm +dnqh: tcdv * hczn +gjlc: 3 +cdmj: 19 +cnqz: btdt - nhzd +wclp: smbs + ddlh +scjn: 2 +qwvm: 11 +vtfz: 5 +mwtn: qzqt - dtpw +mwtv: 4 +nvrh: 2 +tpgt: 3 +npnf: wbtm + bqmp +zznq: lttm * qjjt +rngc: 3 +cbqn: jhbz * qjbg +ghzw: wwrn * vhqg +qtjz: rgrc + swrs +mpcd: lqdp + rnns +jgnc: 4 +mtlp: 2 +qqbc: bhnm + gwvv +pznb: 3 +trhv: bzpl * nthd +hzqw: 5 +wqdf: 4 +blsp: bjtz * wcmn +qmmc: vdlv / ccsm +vsmw: lnth / jhwf +jjfl: 3 +lnhh: bgbb - nmtv +mpwr: lfrw * qstn +psrd: cgjz / clrs +zzdc: jwgp * wcmf +lsjh: 3 +mrnp: cjmm * dmwm +zfhp: zcgr - ccnh +qvwq: 11 +bcdz: 2 +dmzc: 2 +tcdn: dnrm - stvs +hwbs: 6 +pnwf: wgpr + sztp +sztp: 6 +gbbl: 4 +wwgj: bqpt * slhp +hnqr: sdjz + tnwl +ttfn: hrnh + fffg +humn: 922 +rbrp: cfmr + dtct +wlgf: ddvd + vzvr +sgwc: 7 +bmtn: lnsp - snvl +qjbs: dlgl + htrq +dzrn: 7 +vgdz: 5 +fqfb: gfhv * mtcc +wwqs: 3 +mbsw: qrtl * rvmw +pjzl: zhsc * fqjs +ncfp: 3 +lqjr: mtjc + tbcl +qgnt: 4 +cpvp: hsgd * snbq +ddlh: 4 +wggd: 2 +lfsn: 4 +vbln: zzwp + thrv +vbtf: 2 +tnws: ftgn + flsh +pcpw: 2 +prmm: hqwr * fsmg +swnb: hdsv + mpsz +gtqb: wzcg + fqfr +dfjm: 6 +rtst: jqln * dhll +fpjn: pvnr * nszj +pfvq: 4 +pwhq: 3 +wfqg: 19 +ccdb: qhmh / jjfl +qpjd: qmdh + tjfl +cgvd: rvjf + lgdm +dldh: 3 +lngq: 2 +mfmd: lrhz * fcsg +zfzg: 4 +shzc: sgns * pjtr +sltq: zjsq * wrwp +zzht: 5 +dqqh: 8 +ndzm: 4 +wwwr: rntn / jcmj +pvpt: pwzl * zzst +cvhh: 2 +wqdg: dhmw + cgpq +wbjr: 2 +scdg: gndg + cpqn +ccnh: 3 +gnzf: 3 +smbs: 3 +zhct: 3 +zgtg: 4 +bqpq: bjwv + hvsg +ncpd: ptmn + mzst +zltw: vndr / mpvh +sdlh: rdjc * rwjz +fpvf: 2 +dtds: 7 +jcnz: slmj + fttg +crqh: 9 +pgtg: mjqt * rnqn +cpcz: pbjs * hbqf +mqrs: lwqz + rhbf +sqgp: jshp * sfvf +chzq: pttz / vlpn +btwt: 2 +npfh: ntmd * fmtd +crgv: 18 +ncnm: lsqd * vglv +clns: 10 +scsn: spzr - hhvl +pnpn: hgsg * tfdt +nvzg: 6 +nzfs: cswv * cnqz +znsm: 2 +ncnf: 3 +flnm: tsmz + hslq +wgmt: mnrf - hrpz +tgvl: sprc * gbwz +cbdq: rhvv / cntw +nsnh: 3 +gtwf: 3 +jshp: 3 +lsws: 2 +twvb: 9 +gcvs: vcbv * npff +gshw: 2 +mzqc: dqqh - mjfb +fsjd: 6 +gnqz: 2 +zwwn: 14 +fgdz: hcfl * pzzz +zslr: 3 +mvvh: 2 +dbtg: vgbd + rwrn +tqrh: 5 +zqfs: btgg * lfgw +bwcf: 2 +nbdb: 4 +btct: 2 +zdnt: chmb * ggwm +vnhd: 3 +trvb: dhbt / lgwt +thqf: tzrw * mdqb +rslg: 2 +bfws: qfgl * nldb +jbrb: hltl + llhv +bhlj: 1 +jqpp: 5 +wwnz: hnhg + vqht +gsbv: 4 +llpl: ljfm * jsfz +fsrs: 3 +rvvh: ptqv * mqhj +jlqc: 14 +gdps: 2 +hdzp: dncl + bvqh +bjdn: 3 +mmdh: 2 +wbsl: llpl + fntf +fhdw: 18 +dswp: 3 +ffdm: tqgs * vhds +cmpm: 3 +ffcz: lmcr * npnf +wcmf: lgbz * zpzs +gnww: vgvl - rbbc +wwgb: rgnt / jbhb +vhgl: 8 +hcws: 5 +mljb: 3 +hdzq: 13 +fdpr: 9 +wssl: ggfl * ctnl +lvmc: mdff / lrzr +gvfg: zzdc + mgvm +mzln: 2 +rljf: bpdl + ppfl +djhz: bscq - tdth +vhsg: 4 +bsrd: 3 +wlfb: 14 +vpjh: 20 +tjsc: 6 +mngp: 13 +lzpw: 3 +fttg: nszd * ltbg +wrcb: 2 +mfzc: 1 +bcdr: 4 +vglv: 3 +bmhg: 2 +sdrb: 1 +mwvf: hhsc + cbpp +zsrq: 3 +hmdd: pcwr * nfvn +bgbb: lzrv * ncpd +mwjq: 13 +dwcz: ljth * dswp +pffb: 2 +dgdm: 16 +chzf: mbmr * vjnr +cgjz: wzqd * htms +mlgq: qzdp * hhdg +vglz: wdjv - llgl +vwfq: ctcr * cfwl +gnrj: 2 +hzdm: dhrb / dgcb +ncps: ptqp * wgbt +crft: znnb / ssgq +dmtb: gppw + gczj +vlnv: 3 +sdww: zwlb * zgnh +lddn: qqbc + wlgf +tqbt: 3 +ppfl: chzf + gbcl +jlfd: tmlw - hjjj +lsqw: thqf * wtsj +cddz: hwqz / tzrv +lfjc: rvgv * gdps +gswj: vvlv * vmjb +tbvn: fztl / jnfn +ccqj: 9 +hnmz: 3 +rnpp: fmwn + vmps +jgpj: 2 +cvqw: sjnv + ttvf +dpjz: 2 +bsht: hqld + dmtg +swrs: 14 +cprd: fpvf * nnmc +bbrh: gmcd * gtcg +lqzm: 5 +wrwp: 11 +zgvb: rdjr * lcpl +qfjz: 2 +bhvr: 7 +qqtm: 4 +fgfs: 2 +sjvp: llvn - jwwj +trqf: 2 +vjhf: hngj + plnd +nhzd: 5 +srgg: 4 +qgsv: vssr + fccc +dcjj: 3 +hrnh: 2 +sqsb: 2 +ppth: jbbt * tmrj +hqld: 1 +hhdg: 2 +vdzd: 5 +tmrj: dlbw + njjn +rjdg: rbct * pdnj +wfnn: rchh + zlqp +rvcl: vvst * whnl +wjnf: bzbq + lzdq +qrff: cdnw + dnpq +qhvm: gqjf * mtlp +llrp: vzwm * sbhb +qljr: 6 +tfdc: ttfn + cccc +fnlh: zdnt * qfrg +dfqv: zltw - bgwj +dgcb: 4 +hbrr: 7 +hhhl: gplp + sqbz +szwj: frjm / htdh +prgc: 3 +rmff: 4 +nsvs: ptzm * rmzt +lglv: 2 +vmpw: 1 +qnsd: 2 +mvjj: ldlp * lvmg +rbvs: 2 +tzfn: gbbj * dbgm +trpz: gtzl + fvgz +mjnr: 2 +bcrn: zqff + scht +cndc: 13 +qtfr: 6 +wmpt: lbzh + ptmb +mcbt: 2 +vffr: 7 +qsnj: 6 +gldv: 2 +qfqr: 5 +qwvh: wbpf * mblb +mtnf: 4 +qrhl: 3 +jhbz: qlmb + jbgp +rtww: pggz * ftpw +rgwr: jppv * wpmr +wbpf: zptz + zjwf +vdzr: 2 +gnqn: jwhg * bzgr +fjrr: 5 +nlld: 12 +zmdt: 2 +rchh: 2 +fsdb: hhrh * rmff +ltgw: 4 +bwhc: 2 +rzhf: bwcf * hqbb +pwqj: 4 +zlwb: 7 +jpvb: 2 +mhgv: 10 +wnwm: 3 +drlb: lcsq / mmdh +gzbm: ndwg * rngc +lcpl: rfbr * qwds +ffzb: jnss * dlrs +dbmt: zmcs * nbgd +bmtb: 3 +jmpv: 18 +jtvq: wbjr * lrph +pjtr: 3 +dpgf: 6 +vsng: zjfp * bsrd +lvqd: qdwv / zwmg +tnwl: zzlb + gnsl +brrn: 8 +vvhl: dwgq * gpzj +njjn: 1 +jmss: pnpn / wtlw +twvv: 2 +jbph: 13 +rhvv: sdhj * brmc +pnjc: 2 +fpjc: 2 +pwbw: hlwh + zbvn +tsbh: 3 +ltbg: 16 +vjcm: vffg * fsdl +rsrv: qcrb + npmg +zvtn: 2 +sgtm: nvdg + llct +tfpl: stpw + gmtj +pqtf: 4 +zsfh: zlpj * lhzr +bqjb: svbh + crgv +dvdc: hwth + jgnc +vgsw: trvb + zpnd +fctq: 9 +jdsl: whcw / zcsl +jlpd: mjwq * jzfv +pmwt: lddh / mslg +jjds: 2 +rdrs: zfhp * npvr +sjbf: 3 +bzvv: 3 +gvsv: dbhc * dcgz +lmcr: 2 +zhsc: 7 +qdbc: jpvb * twwt +lnqt: 3 +qnmd: tfhz - vwch +ltdz: 19 +twqq: 1 +vnwn: lpvp * shqp +cdvw: 2 +dqvn: rnqq + pcjf +vdpj: 4 +mvmh: 2 +wwgg: 3 +fqtb: 2 +mtcc: 3 +lwqz: dglw * mqmf +wjcr: 3 +rlnp: 7 +zqts: nbdb * srgg +snqf: sgdz + tpmb +cbwd: 20 +mzpj: chwr + jjwt +qfrg: rhzf * vssn +mzqn: 8 +nfgq: wgsz * pnns +rprr: 4 +nvdg: jzrl * rbht +sglt: 5 +pdzb: bzjc * lpcs +llms: dhnw * zrzs +lhzr: 3 +bzqr: ftsb / tnnl +hzvh: gfjn + nfld +qbfc: 2 +qqpq: 7 +dbth: tdfj * bfws +hssv: 2 +zfnt: 1 +cnsl: ppns / rgpp +jtst: 4 +gjlq: 3 +rchf: 4 +lnrd: gtdp * zbzs +shsr: lmhh * pmhn +gtdp: 4 +fcsg: 14 +jppv: lwsv * gmph +plnd: phqn * ttfd +hhvl: mcjs / wrcb +fnhv: 2 +jfmp: zgrs / rpqj +mgjb: 6 +qtws: ndzm * qtjz +ngft: rwzq * bqds +jzsc: 2 +mcdz: mljb * qwbz +dnfp: 6 +zzst: rnbv + tmwd +nwds: gfzf * gsbw +rnbv: mjsf * cqzm +gphq: 1 +gcwb: 5 +hgjt: bttf * dnqh +dhms: 5 +ldhr: 11 +stpw: vjsn + zqfs +qrjt: fdjw * mjrh +jcrj: trpz * pwhq +hmpd: 3 +rmzt: 2 +vmgh: 6 +rfbr: 2 +ptzm: 15 +qpdj: ddql * ctdd +rhdb: vbsf + bstc +cdll: 2 +tqfj: 2 +dtpw: fqfb * mdrg +bhsh: 5 +qwvt: 11 +mcsj: qvvl * vdzd +nwzt: 3 +nthd: 7 +bwsg: 6 +fhlv: gvsv + tbvn +gtmd: mzws * cgdj +sqlj: cpvp * ndcv +jqhq: 20 +vwcp: jlrc + btnm +wbgd: gjgd * vdpw +qhmh: sqlj + scsn +fgrc: tqvg + qwbr +fvgz: 16 +lzfz: httv / tswd +bcfp: wspr * snzq +mjwq: 3 +qzdp: sglt + vgcd +ghcs: cmqn * srsl +pwzl: 7 +gtnq: vzsn / qlwg +fwgc: sltq + jlpd +sqcq: ffzb + pbcl +drcj: 1 +qfhh: 2 +nfnr: cbsn * gbbl +qstn: 5 +trpc: 1 +gbgp: 2 +sstl: wwgb * mcbt +jrns: phtz + sbtg +zpmc: bbff + mfzc +mqzm: 5 +fgqf: rppb * frnn +pwgl: blhh + gnww +grqw: nvbj + tvhc +jmdp: gbfg * lqzm +qshd: 8 +tpqw: 2 +cfmr: 2 +wqgd: slsg - qssb +twwt: htmf - mlfj +gvlv: 2 +rgrc: zfnf + nqbp +zjwz: 4 +ctdd: 2 +vwch: wjvs * cnbc +vvlv: 7 +hbmb: qtws + cpcz +lgnr: tfcr * mztl +bhgm: lvmc * jfsh +ntsd: ldmc * vnhd +qglm: dhng * pfms +qgzw: 2 +zcsl: fgsh + pqbn +tmpj: vsmp / dbdz +pbbn: cnsl + mrvp +rpcr: 4 +vbns: cddp * bvfh +tvvs: 1 +clrs: 3 +vdgb: bhvr * grqw +bqpn: 2 +hngp: 5 +bhzz: 5 +fdpq: cjmj * bhzz +tcvt: dmtb / mzqc +zwlc: srjt + nsqp +zpvc: 11 +cbqz: 2 +wqrh: ghrg + mmcr +cspn: mzpq - cbnb +lqlj: plcf + fdfr +dglw: 7 +rjqg: tdgt * wmnw +jhdv: wfnn + hlln +hgml: nqpq * bhgv +jvnd: 3 +rnvf: 13 +qlzb: bjpv + brrn +slzr: hbms - wrsm +nnsg: sznz * lprw +qpnr: llms + zqrt +hsfw: mwtv * dmzc +zcsw: 2 +dhmw: 3 +pmmd: 5 +mdff: qnzn * bcbq +root: pdzb + bhlw +dtqm: vsmw + qzbc +chzd: 11 +ttgc: 2 +mhsn: gbwt - lszv +vzwm: 2 +cnmf: 4 +gfzs: dlvl * hcws +rtzz: cdll * smrp +lmgv: 3 +lnth: czvw + dtfc +mqhj: 4 +wjsd: 2 +hhrh: 12 +tsqj: jmwh + mhfr +cccc: prdm - vvpd +zczl: svmr * zjnd +czfr: 4 +dgtr: 7 +mpvl: zprp * gwtn +wdjv: vjhf / clns +lntt: fhhv * mngp +mghq: wttc * frdl +gblp: mwvf * mdzg +tzwd: 7 +mpcj: 3 +prfj: 4 +tfbb: pbfh - qcvl +pnns: vznr + tcps +zjwf: jprp * cnfc +tjwq: 6 +bpdl: nfnt * cwnt +bqpt: hhhl * pljn +pbmg: 5 +whvf: 5 +mpzb: nqlv + svln +lnpg: rbhf + cdmj +jbbt: 2 +mhqj: 5 +mclr: 19 +jbbn: cqzs - zvlj +mstw: 3 +rdml: wrfr * gbgp +gbqm: gldv * qhjn +dtqg: 16 +hpqj: 3 +zcrc: chzd + lwlq +lzvw: 2 +jmpr: dntm / mjhf +mgdn: wzdv + rvnn +lhph: 14 +tgfq: 3 +pltd: rsvr + ggcg +rhhw: trwh * dddd +cvbl: lbpl / pvnd +hwcz: gpnb + wlrl +phzm: 2 +hfqb: sdww + qrtd +cjbf: 2 +jglj: 5 +glff: 2 +pbfh: zmhz * mclp +sznz: 3 +mrcv: cpqt - qbhq +vdwc: vznb + ntsd +rsnz: 2 +pjwt: gjsr * tncm +zmhz: 5 +lttm: vgfq - ffdm +svln: prfj * dpgf +pmhn: 5 +npff: qzfd * wjnt +ztbj: 9 +slhp: 2 +rnzs: 7 +crnw: grzh * gfdb +fcjl: 16 +bdcz: pmrf + vdgb +rwjz: 4 +cqts: 4 +bfhm: pjpz * lwdf +dtct: 5 +jsfj: 2 +pnbb: bgrp * rfwd +wzlq: pndc * tshv +gpdw: grhm / zvtn +cmvw: 1 +twhl: 17 +gwvv: ggvw + svgf +pbfq: 2 +prdm: mmjj + qpjd +smrp: dvbp - nffr +bhlw: bldz * mdbz +drwc: mznh + wlbd +jjlv: 9 +bfvb: pcrj + tctv +htdd: jdqs * pqgv +vztc: jczn + trpc +jjms: nfrh * mfwg +tqqg: 17 +mjnj: dgmm + qlzb +nslg: ptrn * pffb +jwwj: fznv * lfjc +rwrn: rblr / hclf +fphv: pbbn + fnqm +tctv: cvhh * wpss +svjw: jjlv * dswq +ljst: 3 +tmlw: 10 +jghj: nsjz * wsbp +bvqh: hrpj * drlb +fvbf: tcsz / zcsw +qzmv: tgvl / ttgc +pndc: 3 +hlvv: dbhp * gcwb +lmmp: nwgh + bmbg +vhqg: 5 +bttf: wnmj * zqdg +pzdn: 11 +nltw: 6 +ghhz: 3 +hfff: 5 +bzvc: dctv * bqpn +dbgm: 3 +jmtn: 1 +vjht: 3 +cdbl: 2 +mqmf: zslr + vmgh +zjsq: 5 +gwwv: 2 +zdzc: scdg / lfns +qcvl: rhnq + ptzb +gscj: 3 +bwdm: 2 +znnb: sdlh + gnbp +rbhf: 18 +vznb: mfmd + vcqd +bmbg: clqr * csgc +fscm: 11 +jbcd: 2 +jwfn: zzvc * vjbf +jnts: 7 +gpnb: 3 +fvmf: jcmd * ncnm +nfrh: bpfw + gthr +wmvl: 7 +qdwv: lqjr * vrml +ldlw: 16 +pbcl: 1 +mznv: 2 +qmzz: tdvq - dznn +fhhv: 2 +vffg: 3 +nwzn: 3 +clqr: 3 +qwdt: vmdv * mzln +hvsg: jpzl * gpvb +wrvg: 7 +rvmw: bfqg + zzjw +tvbw: 2 +bjpv: 15 +ghtw: 2 +lsqd: 2 +flsh: tzwd * ngfj +pqjp: zsbf * qtfr +wbld: zgtg * dfqv +dcgz: 3 +svbh: pbmg * bmlf +ggwm: bgtq * jlgh +dlmj: 5 +nqsr: 1 +hhzl: dljm * cjpq +dbhc: szws + sgnm +hhcc: ftpv - zcbs +jzfv: jphs * tsqj +mgvz: mpcd * gsbv +frjm: sbrq * qfjz +zlqp: 4 +gfzf: fszm * pfgd +njnq: 6 +ndcq: rtst + rrrh +wfwl: 5 +qstq: cgmw + lwtl +rwjv: frrl + jbtj +gdqb: ngcl + qdbc +rjjs: ncls * hbqs +mlfl: jjms * vdlz +pjqw: 3 +qbjp: lrsw * twhl +sztj: 3 +fdfr: lqvp * qbbp +twfd: zhlc + vrvg +ccsm: 2 +cpnv: 5 +hqwr: 2 +dlhs: nsvs + ldfw +rbnz: 2 +gscl: zqts + dzrn +nrdj: zmnl + rzhf +vrct: mcmq + fght +hctw: 2 +dlvl: 4 +nldb: vjcm - ngnc +tlfd: tcdn + mrqf +qvtt: bdvm * mpcj +vhcg: 3 +tqgs: qjvm * hdwn +nbzn: 6 +qswf: cgcg / frwb +gwsn: qshd - dwlw +rgfs: vllh + vwzq +bnww: 3 +wrsm: 1 +vvbj: vtsl * jtvq +mjrh: 3 +frwb: 4 +bfqb: sqzj - bwgg +vdpw: 4 +rblr: vglz + djhz +lmfb: 4 +cmwv: hjpp * fdbz +csms: 7 +dswq: lnqt * cjbf +zrdm: 2 +rgnn: 14 +lwdf: fctq + jnfq +tdrf: 6 +whss: gtqg + rjjs +czvw: vbns + gswj +qdjj: 3 +crdr: nfgq / fcng +sjcz: hgdw * pnjc +vgbd: fzrl * gljv +wlbd: rbgw * gjlq +gbfg: 3 +gjdt: 2 +lcwm: wlfb * wsww +ghns: hhcc + lmsj +fzpq: 3 +hccw: 2 +zgjz: 7 +qwds: 8 +ztjv: jthz * tqrh +dwlf: 2 +gpzj: 11 +hqjl: chgw * ncfp +dldr: rslg * hrdc +ztmc: 5 +dplc: mswh * qfjs +cvpc: drwc + bnlz +zwrm: 5 +vdfv: 3 +wfqv: jglj * mbmm +brst: 5 +rqsc: jjnc + dvsm +cdtm: gzss * tsqd +ljfm: 3 +pfms: lhgm * zrdh +tcdv: 5 +mgvm: plgv * nplj +lvgb: hwns + cbbd +fmwn: 3 +dzqr: jjfp * hctw +smbq: 5 +cbgn: nwzn * zwvc +hmzq: qbtn * hsbs +drtb: 3 +nmtv: flzr + gphq +vzww: rlbb * qrvs +tnbs: dtqg + hnqz +ngwc: jplc + cgvd +qgrp: 7 +mrtq: 1 +fsdj: dzdh + shsr +vplq: 11 +dlrs: 5 +bzrm: gdqb / spvz +tndn: 3 +lwlq: ltgw * dqvr +gmtj: hqsm * swnl +fpzw: hnhz * hwln +tsmz: 4 +rrzb: 5 +gtcg: 2 +wsrp: hvlv + flgs +mclp: dtqm - fmbv +hvqw: 2 +djsv: jqtv * sbsb +jbhb: 8 +jdlm: 5 +nffr: 17 +qdhg: 3 +zzjw: vgsw * shqf +fvlr: pgjp + dbnq +ptmn: gzfw * jlqc +vjbf: 4 +zcbs: qbzm - hpcw +vflv: 16 +ttvf: 5 +zzdz: 4 +svsj: phhg * cvpc +wgbt: 2 +nqbp: ncmp * vpnv +mzrt: 11 +ddnf: 2 +jmvq: 3 +jjnw: 4 +rcfb: tncr - tshh +gfqv: bfhm + vstq +lqdm: tjwq * cnqp +bzpl: 7 +mltt: 4 +zdwc: ctfg + jqhq +jdht: 2 +wvgl: 4 +zrzs: 5 +mnhr: 2 +wjnt: wncs + pzsm +nbhs: 6 +fmrv: 2 +vmdv: 10 +pwgd: cmpm * bwdm +vfzl: 5 +fwfc: 16 +tfnb: 2 +gfdb: vhdl * dztc +cpwh: 5 +gwtn: zbnc / ttvg +ptrn: 4 +vgpc: 4 +nqlv: 19 +sppm: bnww + qpnr +bzgt: 2 +pdnj: 2 +pgjp: mfrf * wpcw +plbv: pmmd * nztc +lblh: 2 +hctd: mhnm * gtsb +hctr: 5 +bfcg: tffr + tmhp +plgv: fgqf + rhdb +mzst: gnqn + fbpv +dfvq: 3 +fqlh: 5 +rtjh: pjrw * ncps +tvhc: wvsn * wwdd +wzdv: bwsg * phcm +lgbz: wcch + jnls +spmn: 2 +tshh: 3 +jbgp: 15 +srfq: 6 +pbjs: 2 +fszm: rpmw * jrfz +snqv: mhnw * sbvd +jjnc: 16 +hsfc: fsvh / ddnf +pdcm: 3 +hnhz: gfwt + shhp +zpff: 3 +jwgp: fnlh + qbzh +bnlc: wlvh * cnpp +fzqz: 5 +pvdl: hpqj * jqpp +gpfj: 3 +zpnd: 16 +bcbq: 2 +lbcg: pcjc / mggr +htms: lgdz + mlfl +pjgb: vtjj + nssj +glzc: wwgg * lprd +jhrp: 3 +dhnw: 5 +mmjw: 2 +nztc: bcfn + glcz +nszj: lztl * mwtn +hdlr: 3 +twgz: 10 +cgpq: 8 +gppw: qmzz * lfgs +ttfd: tlcl - dflz +mhdt: 3 +hddr: 15 +rdrg: 4 +mggr: 2 +pfgd: pzrp / qhvz +dvsm: 1 +rbct: vpcj + thfm +czzr: dszq * cvbl +wghn: 11 +dvtv: 2 +hdwn: fdpr + vgrw +qfgl: 3 +fwrq: tqrq * dghg +glcz: ncnw + vtfd +bnrh: 2 +bvtv: 14 +cgdj: rdvt * zzht +ngjl: 5 +trcb: 18 +lfns: 2 +tbhf: 5 +qssb: 3 +sbvd: 2 +pbwr: cslj + whss +zgnh: gccf * vgdz +fjqm: 5 +rlmq: 20 +jdsh: 5 +szdw: 9 +pplm: nbzn + vwfq +rlht: brvs * gnrj +mtjc: jmdp + tbhg +cpcw: vszp * crdr +ftfv: 4 +svvv: vvhl + fgdz +lgwt: 2 +gfhv: 3 +cswv: 10 +pvnr: 2 +lmvd: 5 +wcch: 1 +zgng: 3 +zpmp: 2 +zqff: 4 +rpsg: 3 +qqnl: jnms + fmff +wpmr: 5 +zcfm: 2 +ljnr: wwnz + wmpt +qszg: 2 +cntw: 2 +fght: zppw * vzbg +jltc: 3 +hjht: 5 +fjqr: vmth - tzrb +hwpw: gcvs + lhlf +wmnw: 5 +cgcg: dlhs * mmzc +wjmm: sqgp + cbdq +zqrl: 4 +grhm: cpsz * rsnz +mnrf: ghhz * fbmn +lmsj: rgfs + dplc +wnqq: gzbm + jmzz +mjfb: 1 +hlln: 3 +qnzn: drcj + pqjp +vggf: 2 +rvtw: frlz * rmrb +cmng: 3 +gtrr: sznt * lpvq +jczr: qwrp * hvfc +trwp: 4 +qbsj: rjph + vpjh +mdjs: vmsr + hwcz +btdt: fpzw + nslg +rmrb: 2 +hhqc: zggz + wwwr +svnz: tsbw * qbcn +sjdz: 17 +hjpp: 10 +qlwg: 3 +crhl: 2 +fqjs: 12 +tncr: zgbd * mzmb +tcgv: jlqz * csrh +tnfh: 4 +mmvq: 17 +pqbn: 2 +bwgg: nwrc + hzqw +wfmd: vhsg * mttp +nznz: hddr + qszg +qjbg: 2 +mztl: spzz + hmzq +mcmq: mrnp - bbrh +bslg: pwbw + jchr +ncnw: jbrb * dfwq +pppw: 3 +mvzn: 3 +ldfw: pfvq * pvdh +cpqn: 12 +wvsn: btvm * csms +dzlw: 2 +wcmn: ngwc + grbp +csrh: jczr / wjwt +jptp: mpzb * cldn +rppb: brjg / trqf +hwqz: scfh * vwjd +lrft: qmrq * zvsp +lgdm: 2 +fmql: zzsn * tmpj +rwzq: tqqg * sgps +vhvl: vzhr + fqtb +hnqz: hzdm * ncnf +cwlv: 2 +pttz: cpfz * cjfh +dgvn: 3 +nwrr: cjww * gvlv +lhgm: 3 +jcmj: 6 +bqmp: 3 +qtwp: 3 +phqn: 2 +mswh: 4 +qjpn: 2 +zzhv: rndp * drng +qjjt: 2 +thfm: jdmz * mzpj +rrwv: 5 +vfqw: 5 +lrph: 3 +ngcl: nlmb * dbnf +wgsz: 2 +mlfj: 4 +ftsb: lcwm - csrl +gwml: gnzf * cgtz +qstf: hrbh * crhl +vlpn: 3 +wndq: rvfw * tcvw +jjqj: 1 +dfwq: 5 +ldlc: cmwv + nfcv +mfrf: 17 +pjgq: 2 +wbww: lqvb + zrpw +gngd: gjrc + lljb +gthr: 5 +fnqm: 3 +fwsp: 15 +qdsp: bqpq / jjds +gfst: 5 +tsqd: 2 +ggfl: ncjc + dtds +jthz: 5 +dntm: zbzd + prgc +zsmw: 3 +qjvm: 3 +jsjl: 10 +sbtg: fzqz + jvzh +sqbz: rbrp * pjgq +wgzd: 7 +gnsl: jmpv * nfnr +ngfj: 3 +dmsj: pltd * jvfs +fmff: 12 +lqwm: rwzl + cqtz +mjzl: jsfj * lddn +nnld: 2 +bjzz: dvjg + smbq +cjff: sbnf * rbfg +prcg: 4 +hwzw: 2 +srpp: 2 +vtjj: 5 +tfsg: rghm * pjtz +smdz: rprr + hthm +ngvv: fsct - qvwq +ngqr: 4 +dznn: jdsh * fnpt +dgdf: zmmg + dwbn +wfzs: 4 +fmbv: mpwr + bdpd +nsjz: 3 +fnqj: 2 +cjmg: 5 +jnms: wznq * qgrp +dnrm: ljnr - mdjs +gsrm: mpnb + tmwl +tqsn: 6 +tdth: jvct * wvqj +srjt: hscj * btwt +zjcj: 7 +jdqs: gjlc + ldlw +vhfn: 2 +wnmj: 6 +psnf: mgjb * nznz +jhjm: 4 +nhgg: 2 +cbpp: fsrm + twzf +dlbw: 10 +ghrg: gpmv + hnmz +wpcw: 2 +cjww: 3 +jnls: 5 +scfh: 2 +htrq: vfqw * zqdm +cfwl: svjw - wjnf +vptb: qqtm + brzt +dljm: 3 +cnpp: 3 +trnz: bzqr * fphv +qbtn: 6 +wmsl: cwlv * wbgd +phtz: mstw * crqh +jczn: pwch * fsrs +pcwr: 7 +pjpz: 2 +zptz: 17 +hwnn: njnq + wjmm +dlcr: 2 +nsqp: bmfs - lbrw +bltp: mvjj - lqdm +fqmz: 3 +vmps: 3 +scbn: pznb * fmpb +cqzm: zppc * wvgl +rzwq: 2 +cpvl: 5 +rvnn: qfhh * jfbd +rnqn: 7 +dzjh: hctd + fwln +ldmc: 8 +jmzz: qvtt + dmsj +hgtn: gbpl * vffr +twzf: zpvc * nzng +zrtp: 2 +dmtg: fcmn * ghtw +vcch: qwqz + pvdl +tldh: pqtf * dhmt +vtsl: 2 +tmwd: vdwc + qwdt +brjg: vzww / gzbb +tqrq: 3 +dbnq: thft * gvrt +fdcm: vbbr * pdcm +lvmg: ngmw + whcv +dhlj: 17 +lgsf: 2 +zcjm: pmvq * tqbz +lnsp: rdml * mmjw +jmqm: 15 +lfqs: 5 +chng: 9 +bvsl: 2 +mspt: dlwp * dzlw +mfvt: 9 +sjlw: nvzg + zgpl +jphs: 2 +cvqp: 1 +llgl: lglt * lsqw +wzqd: 3 +rsfq: vgmc * fgcg +dqwj: 5 +mlvs: 3 +pznf: bcfp / jzsc +qlmb: fqwz * prfv +twhz: 15 +pcjf: 5 +gnjr: 3 +pjrw: 4 +vcqd: 17 +vjqp: 2 +llvt: jrns * fslr +nwgh: pzzf * cgfq +zwmg: 2 +cvgd: 2 +dwgq: mvzn + tnjm +jcpg: qsnj + zphz +sbsb: hfvp * lgjq +rpqj: 3 +chrw: vhcg * qrcj +bvfh: 6 +fhsd: fcjl + vmpw +hcdj: bnwl + zjfd +ssvf: 7 +czrg: vjqp * lmgv +nqjv: fjqr * bzgt +qbbp: pgvh + rpsg +qdfh: 3 +lqvp: 4 +vpzp: 5 +brvs: fwsp - sgpn +cpfz: jvnf - mzrt +rbgw: fnvh + ncld +fngq: ztbj + bcdr +djdr: 5 +vzvd: 4 +lqjw: zjbr * dcjj +wsbp: nvln + vwjh +zppc: rscv / jbcd +rssv: 2 +nvbj: 1 +dwwq: 2 +mdls: zwlc + bsvn +pggz: njvg - jhjm +wlvh: 12 +spzz: nltw + nczs +nfnt: rvvh + jtvh +hgdw: qrnq * vrct +vthg: 2 +dlgl: 2 +nlll: 6 +dbhp: 4 +dfcl: 2 +svgf: 5 +lwcm: 18 +qrtd: fpjn + bzth +tfcr: qtwp + jtst +jsgr: 2 +mqlh: 5 +cslj: hsfc * zhct +qrnq: 2 +mbfr: bssz + gqrl +cbsn: 2 +zggz: 18 +jnfn: 3 +tbfv: vwcp + dbmt +zmnl: jltc * qjvs +zrpw: qzmv + mcsj +bpfw: 1 +bfmn: fnhv + wgzd +wzcg: 1 +wspr: 2 +dzdh: 3 +jsfz: 3 +lbzh: 4 +rljt: 11 +fgmm: 15 +zqdg: 2 +dgmm: 1 +fgcg: lggb + cbwd +dddd: hwnn - cjhc +vqht: sgtm + hdqs +hqqb: dgtr * zwrm +bnqs: 8 +dmvg: bhgm * qzfj +mzws: 5 +mbmr: pmwt - mpvl +dhsr: 3 +dhng: 12 +rdjc: 10 +stvs: mflc + blsf +phjb: 4 +jcpb: 7 +shhp: zhvd * cmng +vnjf: nsbp * cddz +tshv: 4 +rttz: 5 +flgs: pgtg * llch +gjrc: qbsj * dcrw +bzjc: ccdb + pnnj +wvch: 2 +gqjf: 4 +zwlb: 2 +vstq: 1 +lgwh: zpff * dprq +fqwz: 4 +cqtm: 1 +cmzf: jbzm + wwdw +fslr: 2 +mjqt: jptp / vlnv +tdvq: lhbr / btct +mdrg: 3 +vzhr: crsn + ssvf +shqf: 3 +nzwt: hbrq * qwvl +lwsv: 5 +tmzj: srpp * wfwl +pljn: 2 +mmzc: 2 +jbtj: 4 +pmht: 7 +vsmp: hdlr * lmmp +vsdq: lgwh + jgjg +bcfn: bngb / qnsd +smlt: bcrn + vflv +tdcq: 2 +thlh: 5 +cgfq: 2 +fwjl: 2 +zjfp: 9 +jqtj: dmvg + zznq +qjvs: dgdm + fcps +wnhq: pjwt + fsjd +tjtg: 4 +rvjf: 4 +vgvl: bzvv * dqvn +zqsd: 13 +jlrc: bnrh * ntvh +vpnv: 8 +ncjc: lwcm / hjph +vvst: 2 +fhbv: zgws + dhlj +svmr: 2 +smvj: tqjw + hctr +nnmc: psvj - hnqr +mrvp: jlfd + hpsh +rhnq: zffg + fsdj +tffr: cbvf * dzqr +jgfs: rgwr * cdvw +thft: 5 +qwzw: 4 +lhzh: tcvt - qwvh +cjpq: 3 +tmwl: zbwj * tldh +bhgv: vdzr * nwzt +nssq: dbzt - nnsg +wpss: wrvg + dvdc +bsgb: mhqj * mlgq +nqfl: dfvq * ztjv +mflc: pjqw * lngq +ddql: hqqb + wcvd +qhjn: vbcs * vnjf +rnns: zsmw * vgpc +gbwt: vbln * glff +mrsb: fwnm + rcqs +gscw: 9 +nrzt: vjht * gfvj +lvgg: 2 +pvdh: 4 +bjtz: 3 +vgcd: 2 +zphz: lmfb * zsfh +bzth: zdjv * lnhh +cbsv: grqg * rqrm +sftq: 4 +chgw: 2 +jmwh: 18 +mhfr: 5 +pjtz: 9 +lqdp: 4 +ttqz: 3 +gpmv: 3 +csrl: sqsb * wghn +tcps: 12 +qbhq: mvvh + rdtt +zbbj: cpjg * wwqc +bhdz: 2 +lpcs: 3 +fbmn: 3 +bvzs: 2 +ptmc: 8 +tpvb: 19 +rhzb: 4 +vjbm: lsjh * znsm +zcgr: jsjl * fmgt +wwdd: 2 +dbdz: 7 +mjsf: 7 +dncl: htgh * bgbl +spph: cvqw * tbhm +dvjg: vsdq - pqws +fmvz: ttqz * bmgh +nsbp: 2 +mzpq: bvmn + jmzt +dhrb: mjnr + crft +bgrp: 2 +zpzs: pmnj - nvrh +fccc: 2 +lggb: 17 +hlwh: svsj + mdls +tlcl: gngd / gdqm +shqp: pzdn * smvj +mftb: 4 +whnl: cwtl + qstq +ndwg: mnhr + lnrd +vwjd: hcbq + smtz +fntf: 2 +dvtm: 5 +dbnf: humn - trnz +rhbf: zzhv + jghj +mpsz: 4 +vwjh: 3 +wgvl: 16 +bjzh: 1 +jvnf: pwgd * hsfw +jlqz: 4 +whcw: qtnp * btgb +pvjj: jhrp * rnpp +mhpf: 3 +zvlj: mjzl + llvt +hbwn: vqll + tdrf +npvr: 3 +hdqs: llcl * whvf +hrpz: 2 +jnfq: 2 +bldz: zsrq * hdzp +tmhp: qgsv + jgfs +hwth: 18 +jngb: 3 +sgqw: 6 +tpmb: bjdn + drjj +cbnb: 6 +jvqm: psnf - mwjq +mdbz: jmss * bfvb +frrl: 6 +gtsc: cnmf * psjv +bngb: twvv * svvv +tcvw: 5 +gtqg: bltp + lvqd +hdsv: wqcz * vvbj +svwp: 6 +tpgw: 11 +dqdj: 19 +qwrp: 4 +gfjn: lzfz * bwhc +frnn: fnqj * qwvt +dtfc: wlwv + jcpg +hscj: rzwq * bhhq +tqvg: vggf * fjqm +wtsj: 2 +qzbc: rncw * tpvb +ggvw: 15 +cgtp: 2 +rfwd: gchg * bmtb +wttc: bcwl + trcb +lrsw: mtnf + pppw +ncld: ctsf * mpdv +zgws: 6 +jchr: hhzl * cbgn +jlrq: mfvt * ccqj +rpzc: 3 +zwvc: wzlq + cbsv +jpzv: 3 +njvg: dlmj * vdfv +cshd: wqgd + cjmg +ncmp: 2 +wgbc: 20 +lfgw: 3 +wlrl: ghcs + rzbm +vgmb: 1 +bsvn: sgjs * sscn +scwh: 13 +cbcv: cmvw + hgml +qtwr: smdm + zbhg +fgsh: 4 +cbbd: 9 +hltl: qfhb * mhgv +zgwd: 7 +gqdd: 10 +fsld: 2 +wcvd: lntt * fbps +hsbs: 3 +qzfj: 5 +vztw: jjqj + sbdc +ngnc: 4 +hpsd: bjcw + wwqs +fdbz: pmwb / vhgl +ftgn: mzqn * wbzb +ncls: fhsd * qslv +rjph: ngvv - lbcg +pgvh: 4 +qwbz: wnhq / gnqz +ptmb: hpjc * wndn +bjcw: 8 +gqrl: rpcr * fgfs +gdqm: 2 +hwns: 14 +vbcs: 2 +vhdl: 2 +lbmf: 2 +gjgd: vdpj + pwqj +lqnw: sstl / hssv +hpcp: rnvf * ptmc +nvdj: 2 +wgpr: qwzw + njqg +rbht: 10 +mwrm: 4 +dprq: rpzc + tnfh +lhlf: qtgd + fsmz +ggcg: 2 +fhnv: qnmd * gnjr +zzsn: zpmc + qrff +bhnm: mzjn + hcfd +zjnd: 7 +pvnd: nbtd + wqdf +bfqg: gjdt * dgdf +cqtz: 2 +lmjw: 5 +sfvf: 2 +fznv: dswt * btvj +sljt: mgdn / lbmf +rzbm: nwrr + snsv +cdnw: hpmh * dpqj +hrpj: zbbj + fmql +psgb: scwh * lnpg +qhvz: 8 +fwln: 10 +jgbm: 3 +zprp: 9 +vpmg: 2 +fzrl: 2 +zphg: 17 +rgpp: 2 +hvlt: cqvp + sftq +ttvg: 2 +cldn: 3 +ctsf: 5 +rlbb: 8 +fffg: tghl * qfqr +wrfr: 13 +blsf: 13 +ppns: qwrh / tpqw +bvmb: rzql / zpmp +mblb: 3 +hnhg: tcgv + wmsl +hmvh: zcrc + pjzl +tzrw: csll * zcfm +jgjg: hwbs * nrcf +nwrc: jvnd * lgsf +grzh: 2 +hthm: 3 +gndg: 10 +wwhp: 2 +ftlt: 2 +rvhv: rbvs * drtb +hsgd: vfzl * rbnz +fbpv: 9 +nplj: rjdg + plbv +gzgl: mgvz + smlt +prsn: 2 +hzgn: sdrb + fbbz +pnnj: tlfd * vbtf +vzsn: tfbb * qdfh +jpmg: wcqt * gplr +dwlw: 1 +fsmz: sjvp - fpwf +tzrv: 2 +ntmd: 3 +jftp: 3 +mdzg: 2 +cjfh: 3 +zlpj: 3 +phhg: 4 +lshd: flnm * gwml +gbbj: 3 +slsg: fwjl * wclp +hcfd: 1 +pmrf: cndc * wggd +vbsf: hlvv + mjtn +bscq: jpnm + ngft +vtjv: jfmq + lqnw +pqgv: 2 +phvs: gscl * nhgg +wjvs: rqpj + wtvw +rsmg: 3 +wwqc: zhcg * jgbm +fpwf: znnc + jpmg +hvlv: jbbn / wzhd +mznh: 7 +cnqp: crfb * fsld +fccj: ndng + dcqg +nbtd: 3 +ntqr: 7 +drzs: rsrv * rdrg +sjnv: vwhs + ftsw +wznq: 5 +vmsr: zdzc * wspm +clhp: svwp + cpwh +llch: 3 +qslv: nrzt + hwzw +tmsh: 4 +zgbd: 3 +sqzj: tdrv - tmsh +bggh: 4 +lddh: sgmt + mhsc +zppb: vpzp * hbrr +lprw: 12 +dfdn: pvjj + bhlj +fqfr: cqtm + bnqs +pmwb: pcht + nssq +qgjb: 7 +nqpq: 2 +vgfq: fwrq * dbtg +qtnp: 9 +nfms: cpnv + zdnq +dqvr: nwrn * cfqv +rbfg: 11 +lqvb: 4 +snzq: brst + wssl +lwtl: 6 +vmjb: 5 +jbzm: 7 +jwhg: 2 +zrdh: glbm / tbtw +hclf: 4 +mfwg: 2 +psjv: 3 +qwbr: rnzs * wqrh +gggt: 2 +zdjv: 5 +lcsq: hmvh * qmcq +rqrm: 5 +dghg: nbhs + nqsr +dfvl: 5 +lvlj: 3 +zvwh: hbmb / bcdz +cfqv: 2 +fsct: fvlr - fhdw +tzwn: wgvl + cvqp +hfvp: 3 +pmvq: 2 +wbtm: 4 +lgjq: 2 +jplj: 3 +zzwp: jqtj / rhzb +qbcn: 6 +sprc: 4 +qzfd: wwgj / jfld +gbwz: 6 +fjqv: 19 +sgpn: 4 +jjvr: 11 +mmcr: 1 +cnfc: 2 +tcss: 4 +bssz: 11 +cqmw: 13 +rsvr: 9 +gzrq: dmgj * rdms +btgb: sspc * shmr +zjll: 3 +hpcw: tqfj * svjq +pzzz: dvpp * wvch +vhds: 4 +tlqj: mwpl * zslm +llhv: 3 +brzt: qfzd * hlmj +rbbc: 1 +cwnt: zczl + mjnj +llvn: dhms * hfqb +bgwj: jssp * qqpq +btvj: 7 +smtz: 2 +rdjr: 4 +nrrc: 2 +vdlz: 3 +thrv: mgbf + pwgl +tnjm: 4 +fsmg: 13 +brmc: fwhb + prcg +sbhb: jgpj + cbcv +vrml: lfsn * dqdj +hngj: fwgc + lqjw +crsn: cvgd * wgmt +cjmj: bhsh + nlld +fnpt: pnwf * bhfz +twlq: fvmf + jzcs +bmlf: 5 +grqg: ffcz + dvtm +nfvn: 11 +tdrv: hmpd * dzjh +ndtw: qljr * ntqr +gfsl: 9 +sbrq: bqjb - cwds +hhsc: hzvh - fngq +phcm: prsn * mlvs +sgjs: tcss * gtwf +zgpl: lqlj + wfqv +ngmw: rbvj * gwwv +rqpj: 4 +rdtt: cqts + qbfc +lrzr: 2 +vssn: 5 +qjpm: zphg * ngqr +jpnm: rhhw + hgjt +bmfs: zcjm / vhfn +mpdv: phzm + rljt +bbff: gsrm + dfdn +jtvh: 3 +mzgg: bdcz - prmm +bgtq: 3 +dqmp: lcqh * dhsr +zqrt: mghq / qdjj +jzcs: lhzh * mznv +csll: 4 +zjfd: 17 +spvz: dhsw - bjzh +hcfl: 3 +jshb: 3 +mzjn: dlrm * dfvl +fnsf: 5 +rnqq: 2 +tqjw: 8 +ptzb: trhv * cgtp +tjfl: 4 +hcbq: fzpq * gscw +hbqs: rlnp * jftp +jdmm: 14 +qtgd: svnz * vcch +lbgp: tlzz * qdhg +zgrs: jbph * ftqr +lbrw: rlht * dldh +gsbw: bzrm + jvqm +bvmn: 4 +zslm: 3 +wqcz: 4 +nzcs: fsbf * swnb +nncb: zwwn - gqrd +qwrh: dvtv * bhnj +dhmt: 4 +gbcl: fnsf * cpcw +rdvt: 7 +rzql: cspn * gqdd +lprd: jngb * tzlm +hbms: ltdz - vpmg +tgmc: 4 +wvqj: bvmb / gzdc +mllt: hfft - gfhs +prfv: 4 +scht: 3 +htdh: 2 +bfdn: qqtb * bvsl +wbzb: 5 +zthf: bvtv * wfmd +jpzl: 3 +hpmh: 5 +rghm: 3 +crfb: 3 +bmgh: 11 +hvfc: 3 +tswd: 4 +ctnl: 2 +htmf: cmzf + fsdb +tncm: 4 +hgsg: lrft + gzrq +nwrn: zmjp / zrdm +sbdc: sjbf * qgzw +rgnt: nrdj + fmfs +lzds: 2 +lmhh: 2 +vvpd: 4 +snvl: lglv * mqlh +dctv: wnqq + rtjh +cqvp: szdw + mltt +blhh: gwzg + jdsl +cpsz: mmvq + bmtn +zmjp: wjwg * sjlw +lfgs: 2 +pqwp: 2 +bnbc: mftb + pqwp +dnpq: fccg + fhzp +vszp: 2 +lzdq: 9 +bqds: rvtw * zgng +lrpt: 18 +jzrl: 2 +jvzh: dqmp * psft +nvln: 4 +mcjs: fhnv + nzfs +fwhb: 15 +fjvb: qfww + nqfl +gvrt: 5 +tdgt: rvcl + qtwr +tbhg: 14 +fwnm: 8 +lztl: 2 +plcf: 3 +rdms: gpgc + zzdz +wcqt: gblp / qjpn +tfdt: 2 +zbzd: cmld + sjdz +zltp: mhpf * spmn +ffzz: slzr * jjdg +zbvn: stqr * szwj +lzrv: 2 +gbvv: frtm * tqsn +dbzt: hhqc * rttz +zppw: ftlt + glbv +drzr: jdht * jshb +jssp: 16 +zdnq: 3 +nfld: vhcq + bsht +sznt: 4 +mslg: 2 +fccg: 5 +hrdc: gvfg * zgjz +swnl: 3 +dszq: 3 +tzrb: fhlv + fccj +hbrq: 4 +rvgv: 8 +tqbz: rsfq - spph +fbps: 6 +bqgv: 2 +jvfs: 2 +gthb: tdcq * lzpw +sgnm: 4 +whhg: gtnq + bsgb +ftqr: 3 +qszv: 1 +wwdw: btwg - mrtq +frtm: 9 +pgnj: pzwt * ppth +glbv: lsws + hjht +tbhm: 2 +gfhs: 5 +mjtn: 8 +mpwl: 5 +hqsm: 8 +lbpl: wfqg * cldz +ctcr: 2 +snsv: 1 +ptqv: 4 +jfld: 4 +mpnb: 2 +bwpc: 5 +pzwt: 2 +qrtl: 3 +jhwf: 3 +jmpq: qqnl * wddc +pphv: mbfr + mrhq +llct: qgnt * wwhp +dztc: qmmc / gthb +wspm: 2 +qpdz: qzgp + blsp +gjsr: 2 +rhzf: lhph + tqbt +tzlm: 3 +mmjj: mhpv + rrzb +pcht: fdcm / vtfz +qbzm: fgrc * nsnh +msdj: 4 diff --git a/21_2023.py b/21_2023.py new file mode 100644 index 0000000..698b2a7 --- /dev/null +++ b/21_2023.py @@ -0,0 +1,128 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq +import math + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +for r in range(R): + for c in range(C): + if G[r][c] == "S": + sr, sc = r, c + + +def findD(r, c): + D = {} + Q = deque([(0, 0, sr, sc, 0)]) + while Q: + tr, tc, r, c, d = Q.popleft() + if r < 0: + tr -= 1 + r += R + if r >= R: + tr += 1 + r -= R + if c < 0: + tc -= 1 + c += C + if c >= C: + tc += 1 + c -= C + if not (0 <= r < R and 0 <= c < C and G[r][c] != "#"): + continue + if (tr, tc, r, c) in D: + continue + if abs(tr) > 4 or abs(tc) > 4: + continue + D[(tr, tc, r, c)] = d + for dr, dc in [[-1, 0], [0, 1], [1, 0], [0, -1]]: + Q.append((tr, tc, r + dr, c + dc, d + 1)) + return D + + +D = findD(sr, sc) + +SOLVE = {} + + +def solve(d, v, L): + amt = (L - d) // R + if (d, v, L) in SOLVE: + return SOLVE[(d, v, L)] + ret = 0 + for x in range(1, amt + 1): + if d + R * x <= L and (d + R * x) % 2 == (L % 2): + ret += (x + 1) if v == 2 else 1 + SOLVE[(d, v, L)] = ret + return ret + + +def solve21(part1): + L = 64 if part1 else 26501365 + ans = 0 + for r in range(R): + for c in range(C): + if (0, 0, r, c) in D: + + def fast(tr, tc): + ans = 0 + B = 3 + if tr > B: + ans += R * (abs(tr) - B) + tr = B + if tr < -B: + ans += R * (abs(tr) - B) + tr = -B + if tc > B: + ans += C * (abs(tc) - B) + tc = B + if tc < -B: + ans += C * (abs(tc) - B) + tc = -B + ans += D[(tr, tc, r, c)] + return ans + + # for tr in range(-8,8): + # msg = [] + # for tc in range(-8,8): + # msg.append(str(D[(tr,tc,r,c)])) + # #print(' '.join(msg)) + # for tr in range(-8,8): + # for tc in range(-8,8): + # assert D[(tr,tc,r,c)]==fast(tr,tc), f'{tr} {tc} {D[(tr,tc,r,c)]} {fast(tr,tc)}' + + # How many ways are there to get a copy of (r,c) in L steps? + # interior point: just check that point + # edge: represents everything in that direction. can add arbitrarily many R to distance + # corner: represents everything in that quadrant. can add arbitrarily many R or C to that distance + + # CEEEC + # E...E + # E...E + # E...E + # CEEEC + assert R == C + OPT = [-3, -2, -1, 0, 1, 2, 3] + for tr in OPT: + for tc in OPT: + if part1 and (tr != 0 or tc != 0): + continue + d = D[(tr, tc, r, c)] + if d % 2 == L % 2 and d <= L: + ans += 1 + if tr in [min(OPT), max(OPT)] and tc in [min(OPT), max(OPT)]: + ans += solve(d, 2, L) + elif tr in [min(OPT), max(OPT)] or tc in [min(OPT), max(OPT)]: + ans += solve(d, 1, L) + return ans + + +print(solve21(True)) +print(solve21(False)) diff --git a/22_2020.py b/22_2020.py new file mode 100644 index 0000000..b127679 --- /dev/null +++ b/22_2020.py @@ -0,0 +1,55 @@ +import fileinput +import re +from collections import deque +from copy import deepcopy + +D1 = deque() +D2 = deque() +active_deck = D1 + +L = list([l.strip() for l in fileinput.input()]) +for l in L: + if "Player" in l: + if "2" in l: + active_deck = D2 + elif l: + active_deck.append(int(l)) + +t = 0 + + +def play_game(D1, D2, is_p2): + SEEN = set() + while D1 and D2: + global t + t += 1 + my_key = (tuple(D1), tuple(D2)) + if my_key in SEEN and is_p2: + return True, D1 + SEEN.add(my_key) + c1, c2 = D1.popleft(), D2.popleft() + if len(D1) >= c1 and len(D2) >= c2 and is_p2: + NEW_D1 = deque([D1[x] for x in range(c1)]) + NEW_D2 = deque([D2[x] for x in range(c2)]) + p1_wins, _ = play_game(NEW_D1, NEW_D2, is_p2) + else: + p1_wins = c1 > c2 + + if p1_wins: + D1.append(c1) + D1.append(c2) + else: + D2.append(c2) + D2.append(c1) + if D1: + return True, D1 + else: + return False, D2 + + +for p2 in [False, True]: + p1, winner_deck = play_game(deepcopy(D1), deepcopy(D2), p2) + score = 0 + for i, c in enumerate(winner_deck): + score += (len(winner_deck) - i) * c + print(score) diff --git a/22_2021.py b/22_2021.py new file mode 100644 index 0000000..8336a38 --- /dev/null +++ b/22_2021.py @@ -0,0 +1,95 @@ +data = open("day22data.txt").read().splitlines() +dims = {"x": 0, "y": 1, "z": 2} + + +class Cubes: + def __init__(self, limits, state): + self.state = state + self.limits = limits + self.corners = set() + for x in limits["x"]: + for y in limits["y"]: + for z in limits["z"]: + self.corners.add((x, y, z)) + self.removed = [] + + def inside(self, point): + for dim in self.limits: + if ( + self.limits[dim][0] > point[dims[dim]] + or self.limits[dim][1] < point[dims[dim]] + ): + return False + return True + + def combineWith(self, other): + overlapLimits = self.overlap(other) + if overlapLimits: + self.removeCube(Cubes(overlapLimits, "off")) + return True + else: + return False + + def removeCube(self, other): + for rem in self.removed: + rem.combineWith(other) + self.removed.append(other) + + def overlap(self, other): + overlapLimits = {} + for dim in self.limits: + thisMin = self.limits[dim][0] + thisMax = self.limits[dim][1] + otherMin = other.limits[dim][0] + otherMax = other.limits[dim][1] + overlapMin = max(thisMin, otherMin) + overlapMax = min(thisMax, otherMax) + if overlapMin <= overlapMax: + overlapLimits[dim] = [overlapMin, overlapMax] + else: + return None + return overlapLimits + + def volume(self): + vol = 1 + for dim in self.limits: + vol *= self.limits[dim][1] - self.limits[dim][0] + 1 + removedVol = 0 + for rem in self.removed: + removedVol += rem.volume() + return vol - removedVol + + +cubes = {} +cubesA = {} +cubeA = Cubes({"x": [-50, 50], "y": [-50, 50], "z": [-50, 50]}, "A") +id = 0 +idA = 0 +for rule in data: + state, poses = rule.split() + poses = [x.split("=") for x in poses.split(",")] + vals = {} + for pos in poses: + vals[pos[0]] = [int(x) for x in pos[1].split("..")] + newCube = Cubes(vals, state) + overlapA = cubeA.overlap(newCube) + if overlapA: + newCubeA = Cubes(overlapA, state) + for j in range(idA): + cubesA[j].combineWith(newCubeA) + if state == "on": + cubesA[idA] = newCubeA + idA += 1 + for i in range(id): + cubes[i].combineWith(newCube) + if state == "on": + cubes[id] = newCube + id += 1 +totVolA = 0 +for c in cubesA: + totVolA += cubesA[c].volume() +totVol = 0 +for c in cubes: + totVol += cubes[c].volume() +print(totVolA) +print(totVol) diff --git a/22_2022.py b/22_2022.py new file mode 100644 index 0000000..16659c7 --- /dev/null +++ b/22_2022.py @@ -0,0 +1,143 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/22_2022.txt" +data = open(infile).read() +lines = [x for x in data.split("\n")] +G, instr = data.split("\n\n") +G = G.split("\n") +instr = instr.strip() +D = [(-1, 0), (0, 1), (1, 0), (0, -1)] +R = len(G) +C = len(G[0]) +for r in range(R): + while len(G[r]) < C: + G[r] += " " + assert len(G[r]) == C +CUBE = C // 3 +assert CUBE == R // 4 +REGION = [(0, 1), (0, 2), (1, 1), (2, 1), (2, 0), (3, 0)] + + +def regionToGlobal(r, c, region): + rr, cc = REGION[region - 1] + return (rr * CUBE + r, cc * CUBE + c) + + +def getRegion(r, c): + for i, (rr, cc) in enumerate(REGION): + if rr * CUBE <= r < (rr + 1) * CUBE and cc * CUBE <= c < (cc + 1) * CUBE: + return (i + 1, r - rr * CUBE, c - cc * CUBE) + assert False, (r, c) + + +def newCoords(r, c, d, nd): + if d == 0: + assert r == 0 + x = c + if d == 1: + assert c == CUBE - 1 + x = r + if d == 2: + assert r == CUBE - 1 + x = CUBE - 1 - c + if d == 3: + assert c == 0 + x = CUBE - 1 - r + + if nd == 0: + return (CUBE - 1, x) + if nd == 1: + return (x, 0) + if nd == 2: + return (0, CUBE - 1 - x) + if nd == 3: + return (CUBE - 1 - x, CUBE - 1) + + +def getDest(r, c, d, part): + if part == 1: + r = (r + D[d][0]) % R + c = (c + D[d][1]) % C + while G[r][c] == " ": + r = (r + D[d][0]) % R + c = (c + D[d][1]) % C + return (r, c, d) + + region, rr, rc = getRegion(r, c) + newRegion, nd = { + (4, 0): (3, 0), + (4, 1): (2, 3), + (4, 2): (6, 3), + (4, 3): (5, 3), + (1, 0): (6, 1), + (1, 1): (2, 1), + (1, 2): (3, 2), + (1, 3): (5, 1), + (3, 0): (1, 0), + (3, 1): (2, 0), + (3, 2): (4, 2), + (3, 3): (5, 2), + (6, 0): (5, 0), + (6, 1): (4, 0), + (6, 2): (2, 2), + (6, 3): (1, 2), + (2, 0): (6, 0), + (2, 1): (4, 3), + (2, 2): (3, 3), + (2, 3): (1, 3), + (5, 0): (3, 1), + (5, 1): (4, 1), + (5, 2): (6, 2), + (5, 3): (1, 1), + }[(region, d)] + + nr, nc = newCoords(rr, rc, d, nd) + assert 0 <= nr < CUBE and 0 <= nc < CUBE + nr, nc = regionToGlobal(nr, nc, newRegion) + assert G[nr][nc] in [".", "#"], f"{G[nr][nc]}" + return (nr, nc, nd) + + +def solve(part): + r = 0 + c = 0 + d = 1 + while G[r][c] != ".": + c += 1 + i = 0 + while i < len(instr): + n = 0 + while i < len(instr) and instr[i].isdigit(): + n = n * 10 + int(instr[i]) + i += 1 + for _ in range(n): + assert G[r][c] == ".", (r, c) + rr = (r + D[d][0]) % R + cc = (c + D[d][1]) % C + if G[rr][cc] == " ": + (nr, nc, nd) = getDest(r, c, d, part) + if G[nr][nc] == "#": + break + (r, c, d) = (nr, nc, nd) + continue + elif G[rr][cc] == "#": + break + else: + r = rr + c = cc + if i == len(instr): + break + turn = instr[i] + if turn == "L": + d = (d + 3) % 4 + elif turn == "R": + d = (d + 1) % 4 + else: + assert False, (i, instr[i:], instr[i]) + i += 1 + DV = {0: 3, 1: 0, 2: 1, 3: 2} + return (r + 1) * 1000 + (c + 1) * 4 + DV[d] + + +print(solve(1)) +print(solve(2)) diff --git a/22_2023.py b/22_2023.py new file mode 100644 index 0000000..389f62f --- /dev/null +++ b/22_2023.py @@ -0,0 +1,102 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq +import math + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +BS = [] +for line in L: + st, ed = line.split("~") + sx, sy, sz = [int(x) for x in st.split(",")] + ex, ey, ez = [int(x) for x in ed.split(",")] + B = [] + if sx == ex and sy == ey: + assert sz <= ez + for z in range(sz, ez + 1): + B.append((sx, sy, z)) + elif sx == ex and sz == ez: + assert sy <= ey + for y in range(sy, ey + 1): + B.append((sx, y, sz)) + elif sy == ey and sz == ez: + assert sx <= ex + for x in range(sx, ex + 1): + B.append((x, sy, sz)) + else: + assert False + assert len(B) >= 1 + BS.append(B) + +SEEN = set() +for B in BS: + for x, y, z in B: + SEEN.add((x, y, z)) + +while True: + any_ = False + for i, B in enumerate(BS): + ok = True + for x, y, z in B: + if z == 1: + ok = False + if (x, y, z - 1) in SEEN and (x, y, z - 1) not in B: + ok = False + if ok: + any_ = True + for x, y, z in B: + assert (x, y, z) in SEEN + SEEN.discard((x, y, z)) + SEEN.add((x, y, z - 1)) + BS[i] = [(x, y, z - 1) for (x, y, z) in B] + if not any_: + break +OLD_SEEN = deepcopy(SEEN) +OLD_B = deepcopy(BS) + +p1 = 0 +p2 = 0 +for i, B in enumerate(BS): + SEEN = deepcopy(OLD_SEEN) + BS = deepcopy(OLD_B) + for C in BS: + for x, y, z in C: + assert (x, y, z) in SEEN + + for x, y, z in B: + SEEN.discard((x, y, z)) + + FALL = set() + while True: + any_ = False + for j, C in enumerate(BS): + if j == i: + continue + ok = True + for x, y, z in C: + if z == 1: + ok = False + if (x, y, z - 1) in SEEN and (x, y, z - 1) not in C: + ok = False + if ok: + FALL.add(j) + for x, y, z in C: + assert (x, y, z) in SEEN + SEEN.discard((x, y, z)) + SEEN.add((x, y, z - 1)) + BS[j] = [(x, y, z - 1) for (x, y, z) in C] + any_ = True + if not any_: + break + if len(FALL) == 0: + p1 += 1 + p2 += len(FALL) +print(p1) +print(p2) diff --git a/23_2020.py b/23_2020.py new file mode 100644 index 0000000..a4c1727 --- /dev/null +++ b/23_2020.py @@ -0,0 +1,49 @@ +import fileinput +import re +import sys + +# start = '389125467' +start = "496138527" + + +def solve(is_p2): + n = len(start) if (not is_p2) else int(1e6) + N = [None for i in range(n + 1)] + X = [int(x) for x in start] + for i in range(len(X)): + N[X[i]] = X[(i + 1) % len(X)] + if is_p2: + N[X[-1]] = len(X) + 1 + for i in range(len(X) + 1, n + 1): + N[i] = i + 1 + N[-1] = X[0] + + t = 0 + current = X[0] + nmoves = int(1e7) if is_p2 else 100 + for _ in range(nmoves): + t += 1 + pickup = N[current] + N[current] = N[N[N[pickup]]] + + dest = n if current == 1 else current - 1 + while dest in [pickup, N[pickup], N[N[pickup]]]: + dest = n if dest == 1 else dest - 1 + + N[N[N[pickup]]] = N[dest] + N[dest] = pickup + current = N[current] + + if is_p2: + return N[1] * N[N[1]] + else: + ans = [] + x = N[1] + while x != 1: + ans.append(x) + x = N[x] + return "".join([str(x) for x in ans]) + + +print(solve(False)) +print(solve(True)) diff --git a/23_2021.py b/23_2021.py new file mode 100644 index 0000000..46eed5c --- /dev/null +++ b/23_2021.py @@ -0,0 +1,130 @@ +import re +import functools + + +def run(filename): + inp = re.findall(r"[A-Z]+", open(filename).read()) + + def solve(part2=False): + A = [inp[0], inp[4]] if not part2 else [inp[0], "D", "D", inp[4]] + B = [inp[1], inp[5]] if not part2 else [inp[1], "C", "B", inp[5]] + C = [inp[2], inp[6]] if not part2 else [inp[2], "B", "A", inp[6]] + D = [inp[3], inp[7]] if not part2 else [inp[3], "A", "C", inp[7]] + well_len = 3 if not part2 else 5 + b = tuple([*A, "A", *B, "B", *C, "C", *D, "D"]) + t = tuple(["E" for i in range(11)]) + cost = {"A": 1, "B": 10, "C": 100, "D": 1000} + botTop = {"A": 2, "B": 4, "C": 6, "D": 8} + + @functools.lru_cache(None) + def moveTop(top, i, j): + return all(top[k] == "E" for k in range(min(i, j), max(i, j) + 1) if k != i) + + def frontBot(bot): + for c, i, j in [ + ("A", 0, well_len - 1), + ("B", well_len, well_len * 2 - 1), + ("C", well_len * 2, well_len * 3 - 1), + ("D", well_len * 3, well_len * 4 - 1), + ]: + for k in range(i, j): + if bot[k] != "E": + if not safeBot(bot, c): + yield (botTop[c], k) + break + + def safeBot(bot, char): + return all( + k == char or k == "E" + for k in bot[ + well_len * botTop[char] // 2 + - well_len : well_len * botTop[char] // 2 + ] + ) + + @functools.lru_cache(None) + def brute(bot, top): + if part2 and bot == ( + "A", + "A", + "A", + "A", + "A", + "B", + "B", + "B", + "B", + "B", + "C", + "C", + "C", + "C", + "C", + "D", + "D", + "D", + "D", + "D", + ): + return 0 + if not part2 and bot == ( + "A", + "A", + "A", + "B", + "B", + "B", + "C", + "C", + "C", + "D", + "D", + "D", + ): + return 0 + for i in range(len(top)): + char = top[i] + if char == "E": + continue + j = botTop[char] + if j and moveTop(top, i, j) and safeBot(bot, char): + idx = ( + well_len * botTop[char] // 2 + - well_len + + bot[ + well_len * botTop[char] // 2 + - well_len : well_len * botTop[char] // 2 + ].index(char) + - 1 + ) + return cost[char] * (abs(j - i) + (idx % well_len) + 1) + brute( + bot[:idx] + tuple(top[i]) + bot[idx + 1 :], + top[:i] + tuple("E") + top[i + 1 :], + ) + ans = float("inf") + moves = 0 + for c, i in frontBot(bot): + for j in range(len(top)): + if j in [2, 4, 6, 8] or top[j] != "E" or not moveTop(top, c, j): + continue + moves += 1 + ans = min( + ans, + cost[bot[i]] * (i % well_len + 1 + abs(c - j)) + + brute( + bot[:i] + tuple("E") + bot[i + 1 :], + top[:j] + tuple(bot[i]) + top[j + 1 :], + ), + ) + if moves == 0: + return float("inf") + else: + return ans + + print(brute(b, t)) + + solve(part2=False) + solve(part2=True) + + +run("day23data.txt") diff --git a/23_2022.py b/23_2022.py new file mode 100644 index 0000000..d5625ba --- /dev/null +++ b/23_2022.py @@ -0,0 +1,97 @@ +import sys +from collections import defaultdict + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/23_2022.txt" +data = open(infile).read() +lines = [x for x in data.split("\n")] +dir_list = ["N", "S", "W", "E"] +E = set() +G = lines +for r, row in enumerate(G): + for c, ch in enumerate(row): + if ch == "#": + E.add((r, c)) + + +def show(E): + r1 = min(r for (r, c) in E) + r2 = max(r for (r, c) in E) + c1 = min(c for (r, c) in E) + c2 = max(c for (r, c) in E) + for r in range(r1, r2 + 1): + row = "" + for c in range(c1, c2 + 1): + row += "#" if (r, c) in E else "." + print(row) + print("=" * 80) + + +for t in range(10000): + any_moved = False + P = defaultdict(list) + for r, c in E: + has_nbr = False + for dr in [-1, 0, 1]: + for dc in [-1, 0, 1]: + if (dr != 0 or dc != 0) and (r + dr, c + dc) in E: + has_nbr = True + if not has_nbr: + continue + moved = False + for dir_ in dir_list: + if ( + dir_ == "N" + and (not moved) + and (r - 1, c) not in E + and (r - 1, c - 1) not in E + and (r - 1, c + 1) not in E + ): + P[(r - 1, c)].append((r, c)) + moved = True + elif ( + dir_ == "S" + and (not moved) + and (r + 1, c) not in E + and (r + 1, c - 1) not in E + and (r + 1, c + 1) not in E + ): + P[(r + 1, c)].append((r, c)) + moved = True + elif ( + dir_ == "W" + and (not moved) + and (r, c - 1) not in E + and (r - 1, c - 1) not in E + and (r + 1, c - 1) not in E + ): + P[(r, c - 1)].append((r, c)) + moved = True + elif ( + dir_ == "E" + and (not moved) + and (r, c + 1) not in E + and (r - 1, c + 1) not in E + and (r + 1, c + 1) not in E + ): + P[(r, c + 1)].append((r, c)) + moved = True + dir_list = dir_list[1:] + [dir_list[0]] + for k, vs in P.items(): + if len(vs) == 1: + any_moved = True + E.discard(vs[0]) + E.add(k) + if not any_moved: + print(t + 1) + break + if t == 9: + r1 = min(r for (r, c) in E) + r2 = max(r for (r, c) in E) + c1 = min(c for (r, c) in E) + c2 = max(c for (r, c) in E) + ans = 0 + for r in range(r1, r2 + 1): + for c in range(c1, c2 + 1): + if (r, c) not in E: + ans += 1 + print(ans) diff --git a/23_2023.py b/23_2023.py new file mode 100644 index 0000000..8607554 --- /dev/null +++ b/23_2023.py @@ -0,0 +1,80 @@ +import sys +import re +from copy import deepcopy +from math import gcd +from collections import defaultdict, Counter, deque +import heapq +import math + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +sys.setrecursionlimit(10**6) + + +def solve(part1): + V = set() + for r in range(R): + for c in range(C): + nbr = 0 + for ch, dr, dc in [["^", -1, 0], ["v", 1, 0], ["<", 0, -1], [">", 0, 1]]: + if 0 <= r + dr < R and 0 <= c + dc < C and G[r + dr][c + dc] != "#": + nbr += 1 + if nbr > 2 and G[r][c] != "#": + V.add((r, c)) + + for c in range(C): + if G[0][c] == ".": + V.add((0, c)) + start = (0, c) + if G[R - 1][c] == ".": + V.add((R - 1, c)) + end = (R - 1, c) + + E = {} + for rv, cv in V: + E[(rv, cv)] = [] + Q = deque([(rv, cv, 0)]) + SEEN = set() + while Q: + r, c, d = Q.popleft() + if (r, c) in SEEN: + continue + SEEN.add((r, c)) + if (r, c) in V and (r, c) != (rv, cv): + E[(rv, cv)].append(((r, c), d)) + continue + for ch, dr, dc in [["^", -1, 0], ["v", 1, 0], ["<", 0, -1], [">", 0, 1]]: + if 0 <= r + dr < R and 0 <= c + dc < C and G[r + dr][c + dc] != "#": + if part1 and G[r][c] in ["<", ">", "^", "v"] and G[r][c] != ch: + continue + Q.append((r + dr, c + dc, d + 1)) + + count = 0 + ans = 0 + SEEN = [[False for _ in range(C)] for _ in range(R)] + seen = set() + + def dfs(v, d): + nonlocal count + nonlocal ans + count += 1 + r, c = v + if SEEN[r][c]: + return + SEEN[r][c] = True + if r == R - 1: + ans = max(ans, d) + for y, yd in E[v]: + dfs(y, d + yd) + SEEN[r][c] = False + + dfs(start, 0) + return ans + + +print(solve(True)) +print(solve(False)) diff --git a/24_2020.py b/24_2020.py new file mode 100644 index 0000000..0fc3b25 --- /dev/null +++ b/24_2020.py @@ -0,0 +1,74 @@ +import re +import sys + +L = sys.stdin.read().strip().split("\n") +B = set() +for l in L: + x, y, z = 0, 0, 0 + i = 0 + while l: + if l.startswith("e"): + x += 1 + y -= 1 + l = l[1:] + elif l.startswith("se"): + y -= 1 + z += 1 + l = l[2:] + elif l.startswith("sw"): + x -= 1 + z += 1 + l = l[2:] + elif l.startswith("w"): + x -= 1 + y += 1 + l = l[1:] + elif l.startswith("nw"): + z -= 1 + y += 1 + l = l[2:] + elif l.startswith("ne"): + x += 1 + z -= 1 + l = l[2:] + else: + assert False + if (x, y, z) in B: + B.remove((x, y, z)) + else: + B.add((x, y, z)) +print(len(B)) + +for _ in range(100): + newB = set() + CHECK = set() + for x, y, z in B: + CHECK.add((x, y, z)) + for dx, dy, dz in [ + (1, -1, 0), + (0, -1, 1), + (-1, 0, 1), + (-1, 1, 0), + (0, 1, -1), + (1, 0, -1), + ]: + CHECK.add((x + dx, y + dy, z + dz)) + + for x, y, z in CHECK: + nbr = 0 + for dx, dy, dz in [ + (1, -1, 0), + (0, -1, 1), + (-1, 0, 1), + (-1, 1, 0), + (0, 1, -1), + (1, 0, -1), + ]: + if (x + dx, y + dy, z + dz) in B: + nbr += 1 + if (x, y, z) in B and (nbr == 1 or nbr == 2): + newB.add((x, y, z)) + if (x, y, z) not in B and nbr == 2: + newB.add((x, y, z)) + B = newB +print(len(B)) diff --git a/24_2021.py b/24_2021.py new file mode 100644 index 0000000..2322581 --- /dev/null +++ b/24_2021.py @@ -0,0 +1,25 @@ +with open("day24data.txt", "r") as file: + data = [ + x.strip("\n").strip().splitlines() for x in file.read().split("inp w\n")[1:] + ] + non_matching = [ + e + for e, x in enumerate(data[0]) + if not all(data[y][e] == x for y in range(len(data))) + ] + diffs = [ + [int(data[i][e].split()[-1]) for e in non_matching] for i in range(len(data)) + ] + q, mx, mn = [], [0] * 14, [0] * 14 + for a, x in enumerate(data): + if diffs[a][0] == 1: + q.append((a, diffs[a][2])) + else: + b, y = q.pop() + delta = y + diffs[a][1] + if not delta >= 0: + a, b, delta = b, a, -delta + mx[a], mx[b] = 9, 9 - delta + mn[b], mn[a] = 1, 1 + delta + print("".join([str(x) for x in mx])) + print("".join([str(x) for x in mn])) diff --git a/24_2022.py b/24_2022.py new file mode 100644 index 0000000..27c0c73 --- /dev/null +++ b/24_2022.py @@ -0,0 +1,67 @@ +import sys +from collections import deque + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/24_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +G = lines +R = len(G) +C = len(G[0]) +r = 0 +c = 0 +while G[r][c] == "#": + c += 1 + +BAD_CELLS = {} +for t in range((R - 2) * (C - 2) + 1): + BAD = set() + for rr in range(R): + for cc in range(C): + if G[rr][cc] == ">": + BAD.add((rr, 1 + ((cc - 1 + t) % (C - 2)))) + elif G[rr][cc] == "v": + BAD.add((1 + ((rr - 1 + t) % (R - 2)), cc)) + elif G[rr][cc] == "<": + BAD.add((rr, 1 + ((cc - 1 - t) % (C - 2)))) + elif G[rr][cc] == "^": + BAD.add((1 + ((rr - 1 - t) % (R - 2)), cc)) + assert 0 <= (rr - 1 - t) % (R - 2) < R - 2 + if cc == c: + assert G[rr][cc] != "^" and G[rr][cc] != "v" + if cc == C - 2: + assert G[rr][cc] != "^" and G[rr][cc] != "v" + BAD_CELLS[t] = BAD + +p1 = False +SEEN = set() +start = (r, c, 0, False, False) +Q = deque([start]) +while Q: + (r, c, t, got_end, got_start) = Q.popleft() + if not (0 <= r < R and 0 <= c < C and G[r][c] != "#"): + continue + if r == R - 1 and got_end and got_start: + print(t) + break + if r == R - 1 and (not p1): + print(t) + p1 = True + if r == R - 1: + got_end = True + if r == 0 and got_end: + got_start = True + if (r, c, t, got_start, got_end) in SEEN: + continue + SEEN.add((r, c, t, got_start, got_end)) + BAD = BAD_CELLS[t + 1] + if (r, c) not in BAD: + Q.append((r, c, t + 1, got_end, got_start)) + if (r + 1, c) not in BAD: + Q.append((r + 1, c, t + 1, got_end, got_start)) + if (r - 1, c) not in BAD: + Q.append((r - 1, c, t + 1, got_end, got_start)) + if (r, c + 1) not in BAD: + Q.append((r, c + 1, t + 1, got_end, got_start)) + if (r, c - 1) not in BAD: + Q.append((r, c - 1, t + 1, got_end, got_start)) diff --git a/24_2023.py b/24_2023.py new file mode 100644 index 0000000..b2d26d0 --- /dev/null +++ b/24_2023.py @@ -0,0 +1,66 @@ +import sys +import re +from copy import deepcopy +from collections import defaultdict, Counter, deque +import heapq +import math +from z3 import * + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) + +S = [] +for line in L: + pos, vel = line.split("@") + x, y, z = pos.split(", ") + vx, vy, vz = vel.split(", ") + x, y, z = int(x), int(y), int(z) + vx, vy, vz = int(vx), int(vy), int(vz) + S.append((x, y, z, vx, vy, vz)) + +n = len(S) +ans = 0 +for i in range(len(S)): + for j in range(i + 1, len(S)): + x1 = S[i][0] + x2 = S[i][0] + S[i][3] + x3 = S[j][0] + x4 = S[j][0] + S[j][3] + y1 = S[i][1] + y2 = S[i][1] + S[i][4] + y3 = S[j][1] + y4 = S[j][1] + S[j][4] + + den = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4) + if den != 0: + px = ((x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4)) / ( + (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4) + ) + py = ((x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4)) / ( + (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4) + ) + validA = (px > x1) == (x2 > x1) + validB = (px > x3) == (x4 > x3) + + if ( + 200000000000000 <= px <= 400000000000000 + and 200000000000000 <= py <= 400000000000000 + and validA + and validB + ): + ans += 1 +print(ans) + +x, y, z, vx, vy, vz = Int("x"), Int("y"), Int("z"), Int("vx"), Int("vy"), Int("vz") +T = [Int(f"T{i}") for i in range(n)] +SOLVE = Solver() +for i in range(n): + SOLVE.add(x + T[i] * vx - S[i][0] - T[i] * S[i][3] == 0) + SOLVE.add(y + T[i] * vy - S[i][1] - T[i] * S[i][4] == 0) + SOLVE.add(z + T[i] * vz - S[i][2] - T[i] * S[i][5] == 0) +res = SOLVE.check() +M = SOLVE.model() +print(M.eval(x + y + z)) diff --git a/25_2020.py b/25_2020.py new file mode 100644 index 0000000..6a20d11 --- /dev/null +++ b/25_2020.py @@ -0,0 +1,22 @@ +import re +import sys + + +def transform(x, sz): + return pow(x, sz, 20201227) + + +k1, k2 = [int(x) for x in sys.stdin.read().strip().split("\n")] +# k1,k2 = 5764801,17807724 + +l1 = 0 +while transform(7, l1) != k1: + l1 += 1 + +l2 = 0 +while transform(7, l2) != k2: + l2 += 1 + +encryption = transform(k1, l2) +assert encryption == transform(k2, l1) +print(encryption) diff --git a/25_2021.py b/25_2021.py new file mode 100644 index 0000000..ea33166 --- /dev/null +++ b/25_2021.py @@ -0,0 +1,21 @@ +import itertools + +with open("day25data.txt", "r") as f: + grid = [line.strip() for line in f] + +h, w = len(grid), len(grid[0]) +d = {(i, j): c for i, row in enumerate(grid) for j, c in enumerate(row) if c != "."} + +for t in itertools.count(1): + d1 = { + p if c == ">" and (p := (i, (j + 1) % w)) not in d else (i, j): c + for (i, j), c in d.items() + } + d1 = { + p if c == "v" and (p := ((i + 1) % h, j)) not in d1 else (i, j): c + for (i, j), c in d1.items() + } + if d1 == d: + print(t) + break + d = d1 diff --git a/25_2022.py b/25_2022.py new file mode 100644 index 0000000..1d71c0f --- /dev/null +++ b/25_2022.py @@ -0,0 +1,45 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/25_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def to_base10(s): + ans = 0 + base = 1 + for ( + i, + d, + ) in enumerate(reversed(s)): + vd = {"2": 2, "1": 1, "0": 0, "-": -1, "=": -2}[d] + ans += vd * base + base *= 5 + return ans + + +def max_value(p5): + if p5 == 1: + return 2 + return p5 * 2 + max_value(p5 // 5) + + +def to_snafu(n, p5): + D = {2: "2", 1: "1", 0: "0", -1: "-", -2: "="} + if -2 <= n <= 2: + return D[n] + assert abs(n) <= max_value(p5) + for d in [-2, -1, 0, 1, 2]: + nn = n - p5 * d + if abs(nn) <= max_value(p5 // 5): + return D[d] + to_snafu(n - p5 * d, p5 // 5) + assert False, (n, p5, n // p5) + + +ans = 0 +for l in lines: + ans += to_base10(l) +p5 = 1 +while abs(ans) > max_value(p5): + p5 *= 5 +print(to_snafu(ans, p5)) diff --git a/25_2023.py b/25_2023.py new file mode 100644 index 0000000..0b44a86 --- /dev/null +++ b/25_2023.py @@ -0,0 +1,31 @@ +import sys +import re +from copy import deepcopy +import math +from collections import defaultdict, Counter, deque +import networkx as nx +import heapq + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +G = [[c for c in row] for row in L] +R = len(G) +C = len(G[0]) +E = defaultdict(set) +for line in L: + s, e = line.split(":") + for y in e.split(): + E[s].add(y) + E[y].add(s) +n = len(E) +G = nx.DiGraph() +for k, vs in E.items(): + for v in vs: + G.add_edge(k, v, capacity=1.0) + G.add_edge(v, k, capacity=1.0) +for x in [list(E.keys())[0]]: + for y in E.keys(): + if x != y: + cut_val, (L, R) = nx.minimum_cut(G, x, y) + if cut_val == 3: + print(len(L) * len(R)) diff --git a/2_2020.py b/2_2020.py new file mode 100644 index 0000000..203d09d --- /dev/null +++ b/2_2020.py @@ -0,0 +1,21 @@ +import fileinput +from collections import defaultdict + +p1 = 0 +p2 = 0 +lines = list(fileinput.input()) +for line in lines: + # 5-6 s: zssmssbsms + words = line.strip().split() + lo, hi = [int(x) for x in words[0].split("-")] + ch_req = words[1][0] + password = words[2] + counts = defaultdict(int) + for ch in password: + counts[ch] += 1 + if lo <= counts[ch_req] <= hi: + p1 += 1 + if (password[lo - 1] == ch_req) ^ (password[hi - 1] == ch_req): + p2 += 1 +print(p1) +print(p2) diff --git a/2_2021.py b/2_2021.py new file mode 100644 index 0000000..1fcb2a8 --- /dev/null +++ b/2_2021.py @@ -0,0 +1,26 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "../day2data.txt" +fwd1 = 0 +depth1 = 0 +fwd2 = 0 +depth2 = 0 +aim = 0 + +for line in open(data): + cmd, amt = line.split() + amt = int(amt) + if cmd == "forward": + fwd1 += amt + fwd2 += amt + depth2 += amt * aim + elif cmd == "up": + depth1 -= amt + aim -= amt + else: + assert cmd == "down" + depth1 += amt + aim += amt + +print(fwd1 * depth1) +print(fwd2 * depth2) diff --git a/2_2022.py b/2_2022.py new file mode 100644 index 0000000..a62194d --- /dev/null +++ b/2_2022.py @@ -0,0 +1,33 @@ +i = [l.strip() for l in open("2_2022.txt")] +p1 = 0 +p2 = 0 +for x in i: + op, me = x.split() + p1 += {"X": 1, "Y": 2, "Z": 3}[me] + p1 += { + ("A", "X"): 3, + ("A", "Y"): 6, + ("A", "Z"): 0, + ("B", "X"): 0, + ("B", "Y"): 3, + ("B", "Z"): 6, + ("C", "X"): 6, + ("C", "Y"): 0, + ("C", "Z"): 3, + }[(op, me)] + + p2 += {"X": 0, "Y": 3, "Z": 6}[me] + p2 += { + ("A", "X"): 3, + ("A", "Y"): 1, + ("A", "Z"): 2, + ("B", "X"): 1, + ("B", "Y"): 2, + ("B", "Z"): 3, + ("C", "X"): 2, + ("C", "Y"): 3, + ("C", "Z"): 1, + }[(op, me)] + +print(p1) +print(p2) diff --git a/2_2023.py b/2_2023.py new file mode 100644 index 0000000..189d15a --- /dev/null +++ b/2_2023.py @@ -0,0 +1,25 @@ +import sys +from collections import defaultdict + +D = open(sys.argv[1]).read().strip() +p1 = 0 +p2 = 0 +for line in D.split("\n"): + ok = True + id_, line = line.split(":") + V = defaultdict(int) + for event in line.split(";"): + for balls in event.split(","): + n, colour = balls.split() + n = int(n) + V[colour] = max(V[colour], n) + if int(n) > {"red": 12, "green": 13, "blue": 14}.get(colour, 0): + ok = False + score = 1 + for v in V.values(): + score *= v + p2 += score + if ok: + p1 += int(id_.split()[-1]) +print(p1) +print(p2) diff --git a/3_2020.py b/3_2020.py new file mode 100644 index 0000000..36fea27 --- /dev/null +++ b/3_2020.py @@ -0,0 +1,22 @@ +import fileinput + +slopes = [(1, 1), (3, 1), (5, 1), (7, 1), (1, 2)] + +G = [] +for line in fileinput.input(): + G.append(list(line.strip())) + +ans = 1 +for dc, dr in slopes: + r = 0 + c = 0 + score = 0 + while r < len(G): + c += dc + r += dr + if r < len(G) and G[r][c % len(G[r])] == "#": + score += 1 + ans *= score + if dc == 3 and dr == 1: + print(score) +print(ans) diff --git a/3_2021.py b/3_2021.py new file mode 100644 index 0000000..025b892 --- /dev/null +++ b/3_2021.py @@ -0,0 +1,44 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "../day3data.txt" + +N = [] +for line in open(data): + line = line.strip() + N.append(line) +width = len(N[0]) +for x in N: + assert len(x) == width +V = [[0 for _ in range(width)] for _ in range(2)] +for x in N: + for i, c in enumerate(x): + V[1 if c == "1" else 0][i] += 1 +gamma = "" +epsilon = "" +for i in range(width): + if V[0][i] > V[1][i]: + gamma += "0" + epsilon += "1" + else: + gamma += "1" + epsilon += "0" +print(int(gamma, 2) * int(epsilon, 2)) + +A = list(N) +B = list(N) +for i in range(width): + if len(A) > 1: + a0 = len([x for x in A if x[i] == "0"]) + a1 = len([x for x in A if x[i] == "1"]) + if a1 >= a0: + A = [x for x in A if x[i] == "1"] + else: + A = [x for x in A if x[i] == "0"] + if len(B) > 1: + b0 = len([x for x in B if x[i] == "0"]) + b1 = len([x for x in B if x[i] == "1"]) + if b1 >= b0: + B = [x for x in B if x[i] == "0"] + else: + B = [x for x in B if x[i] == "1"] +print(int(A[0], 2) * int(B[0], 2)) diff --git a/3_2022.py b/3_2022.py new file mode 100644 index 0000000..1734756 --- /dev/null +++ b/3_2022.py @@ -0,0 +1,28 @@ +def score(c): + if "a" <= c <= "z": + return ord(c) - ord("a") + 1 + else: + return ord(c) - ord("A") + 27 + + +p1 = 0 +for line in open("3_2022.txt"): + x = line.strip() + assert len(x) % 2 == 0 + y, z = x[: len(x) // 2], x[len(x) // 2 :] + for c in y: + if c in z: + p1 += score(c) + break +print(p1) + +p2 = 0 +i = [line for line in open("3_2022.txt")] +j = 0 +while j < len(i): + for c in i[j]: + if c in i[j + 1] and c in i[j + 2]: + p2 += score(c) + break + j += 3 +print(p2) diff --git a/3_2023.py b/3_2023.py new file mode 100644 index 0000000..04208a2 --- /dev/null +++ b/3_2023.py @@ -0,0 +1,42 @@ +import sys +import re +from collections import defaultdict + +D = open(sys.argv[1]).read().strip() +lines = D.split("\n") +G = [[c for c in line] for line in lines] +R = len(G) +C = len(G[0]) + +p1 = 0 +nums = defaultdict(list) +for r in range(len(G)): + gears = set() # positions of '*' characters next to the current number + n = 0 + has_part = False + for c in range(len(G[r]) + 1): + if c < C and G[r][c].isdigit(): + n = n * 10 + int(G[r][c]) + for rr in [-1, 0, 1]: + for cc in [-1, 0, 1]: + if 0 <= r + rr < R and 0 <= c + cc < C: + ch = G[r + rr][c + cc] + if not ch.isdigit() and ch != ".": + has_part = True + if ch == "*": + gears.add((r + rr, c + cc)) + elif n > 0: + for gear in gears: + nums[gear].append(n) + if has_part: + p1 += n + n = 0 + has_part = False + gears = set() + +print(p1) +p2 = 0 +for k, v in nums.items(): + if len(v) == 2: + p2 += v[0] * v[1] +print(p2) diff --git a/4_2020.py b/4_2020.py new file mode 100644 index 0000000..c77a562 --- /dev/null +++ b/4_2020.py @@ -0,0 +1,63 @@ +import fileinput +import re + +p1 = 0 +p2 = 0 +passport = {} # current passport + + +def in_range(s, lo, hi): + return lo <= int(s) <= hi + + +lines = list(fileinput.input()) +lines.append("") +for line in lines: + line = line.strip() + if not line: + valid1 = all( + [f in passport for f in ["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"]] + ) + if valid1: + p1 += 1 + valid2 = True + + if not in_range(passport["byr"], 1920, 2002): + valid2 = False + if not in_range(passport["iyr"], 2010, 2020): + valid2 = False + if not in_range(passport["eyr"], 2020, 2030): + valid2 = False + + ht = passport["hgt"] + if ht.endswith("in"): + if not in_range(ht[:-2], 59, 76): + valid2 = False + elif ht.endswith("cm"): + if not in_range(ht[:-2], 150, 193): + valid2 = False + else: + valid2 = False + + hcl = passport["hcl"] + if hcl[0] != "#" or any([c not in "0123456789abcdef" for c in hcl[1:]]): + valid2 = False + + ecl = passport["ecl"] + if ecl not in ["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]: + valid2 = False + + pid = passport["pid"] + if len(pid) != 9 or any([c not in "0123456789" for c in pid]): + valid2 = False + + if valid2: + p2 += 1 + passport = {} + else: + words = line.split() + for word in words: + k, v = word.split(":") + passport[k] = v +print(p1) +print(p2) diff --git a/4_2021.py b/4_2021.py new file mode 100644 index 0000000..0f25ad0 --- /dev/null +++ b/4_2021.py @@ -0,0 +1,58 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "../day4data.txt" + +numbers = None +B = [] +F = [] +board = [] +for line in open(data): + line = line.strip() + if numbers is None: + numbers = [int(x) for x in line.split(",")] + else: + if line: + board.append([int(x) for x in line.split()]) + else: + if board: + B.append(board) + board = [] +B.append(board) + +for b in B: + assert len(b) == 5 and len(b[0]) == 5 + F.append([[False for _ in range(5)] for _ in range(5)]) + +WON = [False for _ in range(len(B))] +for num in numbers: + for i in range(len(B)): + for r in range(5): + for c in range(5): + if B[i][r][c] == num: + F[i][r][c] = True + + won = False + for r in range(5): + ok = True + for c in range(5): + if not F[i][r][c]: + ok = False + if ok: + won = True + for c in range(5): + ok = True + for r in range(5): + if not F[i][r][c]: + ok = False + if ok: + won = True + if won and not WON[i]: + WON[i] = True + nwin = len([j for j in range(len(B)) if WON[j]]) + if nwin == 1 or nwin == len(B): + unmarked = 0 + for r in range(5): + for c in range(5): + if not F[i][r][c]: + unmarked += B[i][r][c] + print(unmarked * num) diff --git a/4_2022.py b/4_2022.py new file mode 100644 index 0000000..0c5c781 --- /dev/null +++ b/4_2022.py @@ -0,0 +1,19 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "4_2022.txt" +data = open(infile).read().strip() +lines = [x.strip() for x in data.split("\n")] +p1 = 0 +p2 = 0 +for line in lines: + one, two = line.split(",") + s1, e1 = one.split("-") + s2, e2 = two.split("-") + s1, e1, s2, e2 = [int(x) for x in [s1, e1, s2, e2]] + if s1 <= s2 and e2 <= e1 or s2 <= s1 and e1 <= e2: + p1 += 1 + if not (e1 < s2 or s1 > e2): + p2 += 1 + +print(p1) +print(p2) diff --git a/4_2023.py b/4_2023.py new file mode 100644 index 0000000..f634cbc --- /dev/null +++ b/4_2023.py @@ -0,0 +1,21 @@ +import sys +import re +from collections import defaultdict + +D = open(sys.argv[1]).read().strip() +lines = D.split("\n") +p1 = 0 +N = defaultdict(int) +for i, line in enumerate(lines): + N[i] += 1 + first, rest = line.split("|") + id_, card = first.split(":") + card_nums = [int(x) for x in card.split()] + rest_nums = [int(x) for x in rest.split()] + val = len(set(card_nums) & set(rest_nums)) + if val > 0: + p1 += 2 ** (val - 1) + for j in range(val): + N[i + j + 1] += N[i] +print(p1) +print(sum(N.values())) diff --git a/5_2020.py b/5_2020.py new file mode 100644 index 0000000..fed1200 --- /dev/null +++ b/5_2020.py @@ -0,0 +1,50 @@ +import fileinput +import re + +p1 = None +p2 = None + +ids = set() +lines = list(fileinput.input()) +lines.append("") +for line in lines: + line = line.strip() + # FBFBBFFRLR + # Translate to binary: row=0101100 + # 32+8+4 = row 44 + # col=101 + # 4+1 = col 5 + + row = 0 + rp = 64 + + col = 0 + cp = 4 + + for c in line: + if c == "B": + row += rp + rp /= 2 + elif c == "F": + rp /= 2 + + if c == "R": + col += cp + cp /= 2 + elif c == "L": + cp /= 2 + + seat_id = row * 8 + col + ids.add(seat_id) + if p1: + p1 = max(p1, seat_id) + else: + p1 = seat_id + +for id_ in sorted(ids): + if id_ + 1 not in ids and id_ + 2 in ids: + assert p2 is None + p2 = id_ + 1 + +print(p1) +print(p2) diff --git a/5_2021.py b/5_2021.py new file mode 100644 index 0000000..1aa3f22 --- /dev/null +++ b/5_2021.py @@ -0,0 +1,26 @@ +import sys +from collections import defaultdict + +data = sys.argv[1] if len(sys.argv) > 1 else "../day5data.txt" +G1 = defaultdict(int) +G2 = defaultdict(int) +for line in open(data): + start, end = line.split("->") + x1, y1 = start.split(",") + x2, y2 = end.split(",") + x1 = int(x1.strip()) + y1 = int(y1.strip()) + x2 = int(x2.strip()) + y2 = int(y2.strip()) + dx = x2 - x1 + dy = y2 - y1 + + for i in range(1 + max(abs(dx), abs(dy))): + x = x1 + (1 if dx > 0 else (-1 if dx < 0 else 0)) * i + y = y1 + (1 if dy > 0 else (-1 if dy < 0 else 0)) * i + if dx == 0 or dy == 0: + G1[(x, y)] += 1 + G2[(x, y)] += 1 + +print(len([k for k in G1 if G1[k] > 1])) +print(len([k for k in G2 if G2[k] > 1])) diff --git a/5_2022.py b/5_2022.py new file mode 100644 index 0000000..4958c9a --- /dev/null +++ b/5_2022.py @@ -0,0 +1,39 @@ +import sys +from copy import deepcopy + +infile = sys.argv[1] if len(sys.argv) > 1 else "5_2022.txt" +data = open(infile).read() +lines = [x for x in data.split("\n")] + +i = [] +cmds = [] +for line in lines: + if line == "": + break + sz = (len(line) + 1) // 4 + while len(i) < sz: + i.append([]) + for j in range(len(i)): + ch = line[1 + 4 * j] + if ch != " " and "A" <= ch <= "Z": + i[j].append(ch) + +p1 = deepcopy(i) +p2 = deepcopy(i) +found = False +for cmd in lines: + if cmd == "": + found = True + continue + if not found: + continue + words = cmd.split() + qty = int(words[1]) + frm = int(words[3]) - 1 + too = int(words[5]) - 1 + for ST, do_rev in [(p1, True), (p2, False)]: + MOVE = ST[frm][:qty] + ST[frm] = ST[frm][qty:] + ST[too] = (list(reversed(MOVE)) if do_rev else MOVE) + ST[too] +print("".join([s[0] for s in p1 if len(s) > 0])) +print("".join([s[0] for s in p2 if len(s) > 0])) diff --git a/5_2023.py b/5_2023.py new file mode 100644 index 0000000..22e4031 --- /dev/null +++ b/5_2023.py @@ -0,0 +1,80 @@ +import sys +import re +from collections import defaultdict + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") + +parts = D.split("\n\n") +seed, *others = parts +seed = [int(x) for x in seed.split(":")[1].split()] + + +class Function: + def __init__(self, S): + lines = S.split("\n")[1:] # throw away name + # dst src sz + self.tuples: list[tuple[int, int, int]] = [ + [int(x) for x in line.split()] for line in lines + ] + + def apply_one(self, x: int) -> int: + for dst, src, sz in self.tuples: + if src <= x < src + sz: + return x + dst - src + return x + + # list of [start, end) ranges + def apply_range(self, R): + A = [] + for dest, src, sz in self.tuples: + src_end = src + sz + NR = [] + while R: + # [st ed) + # [src src_end] + # [BEFORE ][INTER ][AFTER ) + (st, ed) = R.pop() + # (src,sz) might cut (st,ed) + before = (st, min(ed, src)) + inter = (max(st, src), min(src_end, ed)) + after = (max(src_end, st), ed) + if before[1] > before[0]: + NR.append(before) + if inter[1] > inter[0]: + A.append((inter[0] - src + dest, inter[1] - src + dest)) + if after[1] > after[0]: + NR.append(after) + R = NR + return A + R + + +Fs = [Function(s) for s in others] + + +def f(R, o): + A = [] + for line in o: + dest, src, sz = [int(x) for x in line.split()] + src_end = src + sz + + +P1 = [] +for x in seed: + for f in Fs: + x = f.apply_one(x) + P1.append(x) +print(min(P1)) + +P2 = [] +pairs = list(zip(seed[::2], seed[1::2])) +for st, sz in pairs: + # inclusive on the left, exclusive on the right + # e.g. [1,3) = [1,2] + # length of [a,b) = b-a + # [a,b) + [b,c) = [a,c) + R = [(st, st + sz)] + for f in Fs: + R = f.apply_range(R) + P2.append(min(R)[0]) +print(min(P2)) diff --git a/6_2020.py b/6_2020.py new file mode 100644 index 0000000..5575631 --- /dev/null +++ b/6_2020.py @@ -0,0 +1,38 @@ +import fileinput +import re +import string + +# p1 = sum_group len(union(answers)) +# p2 = sum_group len(intersection(answers)) +p1 = 0 +p2 = 0 + +lines = list(fileinput.input()) +lines.append("") + +# We could also start any_yes and all_yes with the identity for their operations. +# For any_yes the operation is union (|), whose identity is set() +# For all_yes the operation is intersection (&), whose identity is set(string.ascii_lowercase) +any_yes = None +all_yes = None + +for line in lines: + line = line.strip() + if not line: + p1 += len(any_yes) + p2 += len(all_yes) + any_yes = None + all_yes = None + else: + if any_yes is None: + any_yes = set(line) + else: + any_yes = any_yes | set(line) + + if all_yes is None: + all_yes = set(line) + else: + all_yes = all_yes & set(line) + +print(p1) +print(p2) diff --git a/6_2021.py b/6_2021.py new file mode 100644 index 0000000..b8e0304 --- /dev/null +++ b/6_2021.py @@ -0,0 +1,23 @@ +import sys +from collections import defaultdict, Counter + +data = sys.argv[1] if len(sys.argv) > 1 else "../day6data.txt" +X = Counter([int(x) for x in open(data).read().strip().split(",")]) + + +def solve(S, n): + X = S + for day in range(n): + Y = defaultdict(int) + for x, cnt in X.items(): + if x == 0: + Y[6] += cnt + Y[8] += cnt + else: + Y[x - 1] += cnt + X = Y + return sum(X.values()) + + +print(solve(X, 80)) +print(solve(X, 256)) diff --git a/6_2022.py b/6_2022.py new file mode 100644 index 0000000..0362b1f --- /dev/null +++ b/6_2022.py @@ -0,0 +1,15 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "6_2022.txt" +data = open(infile).read() +lines = [x for x in data.split("\n")] + +p1 = False +p2 = False +for i in range(len(data)): + if (not p1) and i - 3 >= 0 and len(set([data[i - j] for j in range(4)])) == 4: + print(i + 1) + p1 = True + if (not p2) and i - 13 >= 0 and len(set([data[i - j] for j in range(14)])) == 14: + print(i + 1) + p2 = True diff --git a/6_2023.py b/6_2023.py new file mode 100644 index 0000000..cb8b279 --- /dev/null +++ b/6_2023.py @@ -0,0 +1,59 @@ +import sys +import re +from collections import defaultdict + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") +ans = 0 + +t, d = L +times = [int(x) for x in t.split(":")[1].split()] +dist = [int(x) for x in d.split(":")[1].split()] + +T = "" +for t in times: + T += str(t) +T = int(T) +D = "" +for d in dist: + D += str(d) +D = int(D) + + +def f(t, d): + # runs in O(log(t)) + # let g(x) = x*(t-x) is maximized at t//2 + # we want to know: what is the lowest value s.t. g(x) >= d + # we want to know: what is the highest value s.t. g(x) >= d + def g(x): + return x * (t - x) + + lo = 0 + hi = t // 2 + if hi * (t - hi) < d: + return 0 + assert g(lo) < d and g(hi) >= d + while lo + 1 < hi: + m = (lo + hi) // 2 + if g(m) >= d: + hi = m + else: + lo = m + assert lo + 1 == hi + assert g(lo) < d and g(hi) >= d + first = hi + assert g(first) >= d and g(first - 1) < d + + # g(x) == g(t-x), so there's symmetry about the midpoint t/2 + last = int((t / 2) + (t / 2 - first)) + assert ( + g(last) >= d and g(last + 1) < d + ), f"last={last} g(last)={g(last)} {g(last+1)} d={d}" + return last - first + 1 + + +ans = 1 +for i in range(len(times)): + ans *= f(times[i], dist[i]) +print(ans) +print(f(T, D)) diff --git a/7_2020.py b/7_2020.py new file mode 100644 index 0000000..ede07f3 --- /dev/null +++ b/7_2020.py @@ -0,0 +1,65 @@ +import fileinput +import re +from collections import deque, defaultdict + +# For part1, we need to keep track of which bags have other bags as containers +# For part2, we need to keep track of which bags (and how many!) each bag contains +# We can think of both of these as graphs where the vertices are the bags and the edges +# are which bags might contain us (part1) and which bags and how many of each we contain (part2) + +PARENTS = defaultdict(list) # PARENTS[x] are the bags that contain x +CONTENTS = defaultdict( + list +) # CONTENTS[x] are which bags x contains and how many of each + +target = "shinygoldbag" + +lines = list(fileinput.input()) +lines.append("") +for line in lines: + line = line.strip() + if line: + words = line.split() + container = words[0] + words[1] + words[2] + container = container[:-1] # remove trailing 's' in 'bags' + if words[-3] == "no": # doesn't contain any other bags + continue + else: + idx = 4 + while idx < len(words): + bag = words[idx] + words[idx + 1] + words[idx + 2] + words[idx + 3] + if bag.endswith("."): + bag = bag[:-1] + if bag.endswith(","): + bag = bag[:-1] + if bag.endswith("s"): + bag = bag[:-1] + n = int(bag[0]) + assert bag[1] not in "0123456789" + while any([bag.startswith(d) for d in "0123456789"]): + bag = bag[1:] + + PARENTS[bag].append(container) + CONTENTS[container].append((n, bag)) + idx += 4 + +SEEN = set() +Q = deque([target]) +while Q: + x = Q.popleft() + if x in SEEN: + continue + SEEN.add(x) + for y in PARENTS[x]: + Q.append(y) +print(len(SEEN) - 1) + + +def size(bag): + ans = 1 + for n, y in CONTENTS[bag]: + ans += n * size(y) + return ans + + +print(size(target) - 1) diff --git a/7_2021.py b/7_2021.py new file mode 100644 index 0000000..9c38a76 --- /dev/null +++ b/7_2021.py @@ -0,0 +1,23 @@ +import sys + +data = sys.argv[1] if len(sys.argv) > 1 else "../day7data.txt" +X = [int(x) for x in open(data).read().strip().split(",")] + +X.sort() +T = X[len(X) // 2] +ans = 0 + + +def C2(d): + return d * (d + 1) / 2 + + +best = 1e9 +for med in range(2000): + score = 0 + for x in X: + d = abs(x - med) + score += C2(d) + if score < best: + best = score +print(best) diff --git a/7_2022.py b/7_2022.py new file mode 100644 index 0000000..16dfc2a --- /dev/null +++ b/7_2022.py @@ -0,0 +1,38 @@ +import sys +from collections import defaultdict + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/7_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +sz = defaultdict(int) +path = [] +for line in lines: + words = line.strip().split() + if words[1] == "cd": + if words[2] == "..": + path.pop() + else: + path.append(words[2]) + elif words[1] == "ls": + continue + elif words[0] == "dir": + continue + else: + j = int(words[0]) + for i in range(1, len(path) + 1): + sz["/".join(path[:i])] += j + +max_used = 70000000 - 30000000 +total_used = sz["/"] +need_free = total_used - max_used + +p1 = 0 +p2 = 1e9 +for k, v in sz.items(): + if v <= 100000: + p1 += v + if v >= need_free: + p2 = min(p2, v) +print(p1) +print(p2) diff --git a/7_2023.py b/7_2023.py new file mode 100644 index 0000000..bd881c7 --- /dev/null +++ b/7_2023.py @@ -0,0 +1,56 @@ +import sys +import re +from collections import defaultdict, Counter + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") + + +def strength(hand, part2): + hand = hand.replace("T", chr(ord("9") + 1)) + hand = hand.replace("J", chr(ord("2") - 1) if part2 else chr(ord("9") + 2)) + hand = hand.replace("Q", chr(ord("9") + 3)) + hand = hand.replace("K", chr(ord("9") + 4)) + hand = hand.replace("A", chr(ord("9") + 5)) + + C = Counter(hand) + if part2: + target = list(C.keys())[0] + for k in C: + if k != "1": + if C[k] > C[target] or target == "1": + target = k + assert target != "1" or list(C.keys()) == ["1"] + if "1" in C and target != "1": + C[target] += C["1"] + del C["1"] + assert "1" not in C or list(C.keys()) == ["1"], f"{C} {hand}" + + if sorted(C.values()) == [5]: + return (10, hand) + elif sorted(C.values()) == [1, 4]: + return (9, hand) + elif sorted(C.values()) == [2, 3]: + return (8, hand) + elif sorted(C.values()) == [1, 1, 3]: + return (7, hand) + elif sorted(C.values()) == [1, 2, 2]: + return (6, hand) + elif sorted(C.values()) == [1, 1, 1, 2]: + return (5, hand) + elif sorted(C.values()) == [1, 1, 1, 1, 1]: + return (4, hand) + else: + assert False, f"{C} {hand} {sorted(C.values())}" + + +for part2 in [False, True]: + H = [] + for line in L: + hand, bid = line.split() + H.append((hand, bid)) + H = sorted(H, key=lambda hb: strength(hb[0], part2)) + ans = 0 + for i, (h, b) in enumerate(H): + ans += (i + 1) * int(b) + print(ans) diff --git a/8_2020.py b/8_2020.py new file mode 100644 index 0000000..37855fc --- /dev/null +++ b/8_2020.py @@ -0,0 +1,55 @@ +import fileinput +import re +from copy import deepcopy +from collections import namedtuple + + +class Instr(object): + def __init__(self, op, arg): + self.op = op + self.arg = int(arg) + + def __repr__(self): + return "{} {}".format(self.op, self.arg) + + +def run(P, ip, acc): + cmd = P[ip] + if cmd.op == "acc": + acc += cmd.arg + ip += 1 + elif cmd.op == "nop": + ip += 1 + elif cmd.op == "jmp": + ip += cmd.arg + return (ip, acc) + + +P = list([Instr(*l.split()) for l in fileinput.input()]) +ip = 0 +acc = 0 +seen = set() +while True: + if ip in seen: + print(acc) + break + seen.add(ip) + ip, acc = run(P, ip, acc) + +for change in range(len(P)): + Pmod = deepcopy(P) + if Pmod[change].op == "nop": + Pmod[change].op = "jmp" + elif Pmod[change].op == "jmp": + Pmod[change].op = "nop" + else: + continue + t = 0 + ip = 0 + acc = 0 + while 0 <= ip < len(Pmod) and t < 1000: + t += 1 + ip, acc = run(Pmod, ip, acc) + if ip == len(Pmod): + print(acc) + break diff --git a/8_2021.py b/8_2021.py new file mode 100644 index 0000000..e823b76 --- /dev/null +++ b/8_2021.py @@ -0,0 +1,112 @@ +import sys +import itertools +from collections import defaultdict, Counter + +digits = { + 0: "abcefg", + 1: "cf", + 2: "acdeg", + 3: "acdfg", + 4: "bcdf", + 5: "abdfg", + 6: "abdefg", + 7: "acf", + 8: "abcdefg", + 9: "abcdfg", +} + + +def findPermSlow(before): + for perm in itertools.permutations(list(range(8))): + ok = True + D = {} + for i in range(8): + D[chr(ord("a") + i)] = chr(ord("a") + perm[i]) + for w in before: + wPerm = "" + for c in w: + wPerm += D[c] + wPerm = "".join(sorted(wPerm)) + if wPerm not in digits.values(): + ok = False + if ok: + return D + + +def findPerm(before): + A = {} + for w in before: + if len(w) == 2: + cf = w + assert len(cf) == 2, cf + for w in before: + if len(w) == 6 and (cf[0] in w) != (cf[1] in w): + if cf[0] in w: + A[cf[0]] = "f" + A[cf[1]] = "c" + else: + A[cf[1]] = "f" + A[cf[0]] = "c" + assert len(A) == 2, f"A = {A} cf = {cf} {before}" + for w in before: + if len(w) == 3: + for c in w: + if c not in cf: + A[c] = "a" + assert len(A) == 3, A + for w in before: + if len(w) == 4: + bd = "" + for c in w: + if c not in cf: + bd += c + assert len(bd) == 2, bd + for w in before: + if len(w) == 6 and (bd[0] in w) != (bd[1] in w): + if bd[0] in w: + A[bd[0]] = "b" + A[bd[1]] = "d" + else: + A[bd[1]] = "b" + A[bd[0]] = "d" + assert len(A) == 5, A + eg = "" + for c in ["a", "b", "c", "d", "e", "f", "g"]: + if c not in A: + eg += c + assert len(eg) == 2, eg + for w in before: + if len(w) == 6 and (eg[0] in w) != (eg[1] in w): + if eg[0] in w: + A[eg[0]] = "g" + A[eg[1]] = "e" + else: + A[eg[1]] = "g" + A[eg[0]] = "e" + assert len(A) == 7, A + return A + + +p1 = 0 +ans = 0 +data = sys.argv[1] if len(sys.argv) > 1 else "../day8data.txt" +for line in open(data): + before, after = line.split("|") + before = before.split() + after = after.split() + D = findPerm(before) + ret = "" + for w in after: + wPerm = "" + for c in w: + wPerm += D[c] + wPerm = "".join(sorted(wPerm)) + d = [k for k, v in digits.items() if v == wPerm] + assert len(d) == 1 + if d[0] in [1, 4, 7, 8]: + p1 += 1 + ret += str(d[0]) + ans += int(ret) + +print(p1) +print(ans) diff --git a/8_2022.py b/8_2022.py new file mode 100644 index 0000000..07caa72 --- /dev/null +++ b/8_2022.py @@ -0,0 +1,56 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/8_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + +g = [] +for line in lines: + row = line + g.append(row) + +dir = [(-1, 0), (0, 1), (1, 0), (0, -1)] +r = len(g) +c = len(g[0]) +p1 = 0 +p2 = 0 + +for i in range(r): + for j in range(c): + vis = False + for dr, dc in dir: + rr = i + cc = j + ok = True + while True: + rr += dr + cc += dc + if not (0 <= rr < r and 0 <= cc < c): + break + if g[rr][cc] >= g[i][j]: + ok = False + if ok: + vis = True + if vis: + p1 += 1 + +for i in range(r): + for j in range(c): + score = 1 + for dr, dc in dir: + dist = 1 + rr = i + dr + cc = j + dc + while True: + if not (0 <= rr < r and 0 <= cc < c): + dist -= 1 + break + if g[rr][cc] >= g[i][j]: + break + dist += 1 + rr += dr + cc += dc + score *= dist + p2 = max(p2, score) +print(p1) +print(p2) diff --git a/8_2023.py b/8_2023.py new file mode 100644 index 0000000..a036365 --- /dev/null +++ b/8_2023.py @@ -0,0 +1,54 @@ +import sys +import re +from math import gcd +from collections import defaultdict, Counter + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") + + +def lcm(xs): + ans = 1 + for x in xs: + ans = (x * ans) // gcd(x, ans) + return ans + + +GO = {"L": {}, "R": {}} +steps, rule = D.split("\n\n") +for line in rule.split("\n"): + st, lr = line.split("=") + st = st.strip() + left, right = lr.split(",") + left = left.strip()[1:].strip() + right = right[:-1].strip() + GO["L"][st] = left + GO["R"][st] = right + + +def solve(part2): + POS = [] + for s in GO["L"]: + if s.endswith("A" if part2 else "AAA"): + POS.append(s) + T = {} + t = 0 + while True: + NP = [] + for i, p in enumerate(POS): + p = GO[steps[t % len(steps)]][p] + if p.endswith("Z"): + T[i] = t + 1 + # we need to solve t % A[i] == 0 for 6 different values of A[i] + # in general, you could have to sole t % A[i] = B[i]. + # you can do this with the chinese remainder theorem. + if len(T) == len(POS): + return lcm(T.values()) + NP.append(p) + POS = NP + t += 1 + assert False + + +print(solve(False)) +print(solve(True)) diff --git a/9_2020.py b/9_2020.py new file mode 100644 index 0000000..4e3239d --- /dev/null +++ b/9_2020.py @@ -0,0 +1,24 @@ +import fileinput +import re +import itertools + +PRE = 25 +xs = list([int(x) for x in fileinput.input()]) + +p1 = None +for i in range(PRE, len(xs)): + prev = xs[i - PRE : i] + if p1 is None and ( + not any([x + y == xs[i] for x, y in itertools.combinations(prev, 2)]) + ): + p1 = xs[i] + +p2 = None +for i in range(len(xs)): + for j in range(i + 2, len(xs)): + ys = xs[i:j] + if sum(ys) == p1: + assert p2 is None + p2 = min(ys) + max(ys) +print(p1) +print(p2) diff --git a/9_2021.py b/9_2021.py new file mode 100644 index 0000000..e433776 --- /dev/null +++ b/9_2021.py @@ -0,0 +1,47 @@ +import sys +from collections import defaultdict, Counter, deque + +data = sys.argv[1] if len(sys.argv) > 1 else "day9data.txt" +G = [] +for line in open(data): + G.append([int(x) for x in list(line.strip())]) +R = len(G) +C = len(G[0]) +DR = [-1, 0, 1, 0] +DC = [0, 1, 0, -1] +ans = 0 +for r in range(R): + assert len(G[r]) == C + for c in range(C): + ok = True + for d in range(4): + rr = r + DR[d] + cc = c + DC[d] + if 0 <= rr < R and 0 <= cc < C and G[rr][cc] <= G[r][c]: + ok = False + if ok: + ans += G[r][c] + 1 +print(ans) + +S = [] +SEEN = set() +for r in range(R): + for c in range(C): + if (r, c) not in SEEN and G[r][c] != 9: + size = 0 + Q = deque() + Q.append((r, c)) + while Q: + (r, c) = Q.popleft() + if (r, c) in SEEN: + continue + SEEN.add((r, c)) + size += 1 + for d in range(4): + rr = r + DR[d] + cc = c + DC[d] + if 0 <= rr < R and 0 <= cc < C and G[rr][cc] != 9: + Q.append((rr, cc)) + S.append(size) +S.sort() +print(S[-1] * S[-2] * S[-3]) diff --git a/9_2022.py b/9_2022.py new file mode 100644 index 0000000..c833e4f --- /dev/null +++ b/9_2022.py @@ -0,0 +1,43 @@ +import sys + +infile = sys.argv[1] if len(sys.argv) > 1 else "data/9_2022.txt" +data = open(infile).read().strip() +lines = [x for x in data.split("\n")] + + +def adjust(h, t): + dr = h[0] - t[0] + dc = h[1] - t[1] + if abs(dr) <= 1 and abs(dc) <= 1: + pass + elif abs(dr) >= 2 and abs(dc) >= 2: + t = ( + h[0] - 1 if t[0] < h[0] else h[0] + 1, + h[1] - 1 if t[1] < h[1] else h[1] + 1, + ) + elif abs(dr) >= 2: + t = (h[0] - 1 if t[0] < h[0] else h[0] + 1, h[1]) + elif abs(dc) >= 2: + t = (h[0], h[1] - 1 if t[1] < h[1] else h[1] + 1) + return t + + +h = (0, 0) +t = [(0, 0) for _ in range(9)] +dr = {"L": 0, "U": -1, "R": 0, "D": 1} +dc = {"L": -1, "U": 0, "R": 1, "D": 0} +p1 = set([t[0]]) +p2 = set([t[8]]) +for l in lines: + d, amt = l.split() + amt = int(amt) + for _ in range(amt): + h = (h[0] + dr[d], h[1] + dc[d]) + t[0] = adjust(h, t[0]) + for i in range(1, 9): + t[i] = adjust(t[i - 1], t[i]) + p1.add(t[0]) + p2.add(t[8]) + +print(len(p1)) +print(len(p2)) diff --git a/9_2023.py b/9_2023.py new file mode 100644 index 0000000..c390971 --- /dev/null +++ b/9_2023.py @@ -0,0 +1,24 @@ +import sys +import re +from math import gcd +from collections import defaultdict, Counter + +D = open(sys.argv[1]).read().strip() +L = D.split("\n") + + +def f(xs, part2): + if all(x == 0 for x in xs): + return 0 + D = [] + for i in range(len(xs) - 1): + D.append(xs[i + 1] - xs[i]) + return xs[0 if part2 else -1] + (-1 if part2 else 1) * f(D, part2) + + +for part2 in [False, True]: + ans = 0 + for line in L: + xs = [int(x) for x in line.split()] + ans += f(xs, part2) + print(ans) @@ -0,0 +1,19 @@ +#!/bin/python3 +import time +import subprocess +from pathlib import Path + +# [firefox] +# from https://adventofcode.com/2022/day/12/input or any input page +# right click > inspect accessibility properties > network > reload +# under "file", click "input" request > cookies > copy 'session' id +id = "53616c7465645f5f0aeeefb39c77e9a10d29c3d1b6cc63e4f846aa1c0f8fffa5034ab3c12ac0522e1f540dc394e379ad5a6a5a91874f0bbaca4eb7699a00b3c6" +year = time.strftime("%Y") +hour = time.strftime("%H") +day = int(time.strftime("%d")) +cmd = f'curl https://adventofcode.com/{year}/day/{day}/input --cookie "session={id}"' +output = subprocess.check_output(cmd, shell=True) +output = output.decode("utf-8") +with open(f"data/{day}_{year}.txt", "w") as f: + f.write(output) +Path(f"{day}_{year}.py").touch() diff --git a/data/10_2020.txt b/data/10_2020.txt new file mode 100644 index 0000000..5b21a23 --- /dev/null +++ b/data/10_2020.txt @@ -0,0 +1,114 @@ +74 +153 +60 +163 +112 +151 +22 +67 +43 +160 +193 +6 +2 +16 +122 +126 +32 +181 +180 +139 +20 +111 +66 +81 +12 +56 +63 +95 +90 +161 +33 +134 +31 +119 +53 +148 +104 +91 +140 +36 +144 +23 +130 +178 +146 +38 +133 +192 +131 +3 +73 +11 +62 +50 +89 +98 +103 +110 +164 +48 +80 +179 +92 +194 +86 +40 +13 +123 +68 +115 +19 +46 +77 +152 +138 +69 +49 +59 +30 +132 +9 +185 +1 +188 +171 +72 +116 +101 +61 +141 +107 +21 +47 +147 +182 +170 +39 +37 +127 +26 +102 +137 +191 +162 +172 +29 +10 +154 +157 +83 +82 +175 +145 +167 diff --git a/data/10_2021.txt b/data/10_2021.txt new file mode 100644 index 0000000..9f2006d --- /dev/null +++ b/data/10_2021.txt @@ -0,0 +1,106 @@ +<<{(({<{[<[{<<<><>>{[]()}>[[{}<>]{[]{}}]}<<<{}<>>[(){})>[[<>{}]]>]>]<{((((<>{})([]{}))[[<> +[({[(<[{<(({({[]<>}){({})<{}[]>}}{[{[]<>}{()[]}]((<>[]))})[({{{}()}([]{})}[[[][]]{{}<>}]){[({}<>)<[][]>]{[[ +{<<[<<<<[[<[<<()><[]{}>>([<><>])][<[[]()]({})>{<<><>><<>()>}]>]<<{{<[]<>><<>>>(<{}[]>[[]<>])}{<(()<>)<{}()> +[({{{[((<[[{<(()<>){<>()}>}[[({}{})<(){}>]<([]{})>]]]((<((<>())<[]{}>)<<<>>[[][]]>>{[[<>{}][( +[{<([{[([<[{[<()[]>{[]{}}](<{}<>>(()[]))}({(<>())[()()]}{[{}<>]{<><>}})]({(([]{}){{}<>})})>[{([{[ +<({[[[({[[[{({{}[]}<[]{}>){{{}[]}[[]()]}}<(<{}[]>[{}<>])(<()<>>[[]{}])>]{(<{{}<>}[<><>]>((<>())({}[])))<<<() +<((<([{([{<<<[()()]<{}[]>><([]<>)([]<>)>>(({[]()}<{}[]>)(<()[]>(()())))><[<[<>{}](<>[])>(<{}<>>{[]{}})]>} +(<(({{[<<[[((<{}[]>(<>{}))(<<>()>({}<>)))[<([]{})<{}[]>><{[]<>}>]](<<([]<>)[[]]>({()[]}[<>])>{([ +<<((<<{[[(<{{[<>[]}([]{})}({[]<>}[()[]])}{[({}{}){[]<>}]<<()<>>{<><>}>}>{({{{}()}<[]<>>}<(<>[]){ +({([(([({[((((()<>){[]<>>))[<{[]{}}[[][]]>[(<>{})<{}<>>]])([{[{}<>]}<(()<>){[]{}}>]<[{[]<>}<[]>]<{( +([{{({(([[[<{[()()]{{}()}}{{()<>}<{}()>}><((<><>)<()[]>)<[<><>][[]<>]>>]<{<([][])({}<>)><{<>[]}{<>}>}{(<{}{ +{{([{[(<[[<{<{[][]}(())>([(){}]{[]<>})}[([[]{}]{[]{}}){(<>())<[]{}>}]>{{<[()[]]{{}{}}>}[(([]<>)<[]<>})]}] +[({{<([([[{([{<>[]}]<<()[]>>){[<(){}>[[]<>]][{{}<>}<<><>>]}}]<[[<[<>{}](<>{})>{{<>{}}<<>()>}]] +<(<<((<<{[{((({}[])[<>{}])[{()()}{[]<>}])}]}>[{{<[<[()()][[]{}]>[([]())<<>[]>]]{([[][]][{}()])(([]<>)( +<<[({{([([({[{()[]}[<><>]]{[<><>]({}<>)}})([<(<>())><{{}()}>][{<<>><[]()>}<({}{})({}<>)>])] +[[<((<[<{<<<(<{}()>{[][]}){<[]<>>({}{})}><<[(){}]{{}{}}>>>>}([{{{{()()}}}<([<>[]]<<>>]<{(){}}> +{<[[[(<<([{{[[{}[]>]}}])[[{<<<()<>>({}{})>(<{}{}><<>()>)>}]{[([(()[])[[][]]]<<<>{}><[]<>>>)<<{(){}}< +([[<<((<[(([<{()<>}<{}[]>><(()[])>]([<(){}><{}{}>](<<>[]><[][]>)))<{<(()[])>({<>{}})}{((()[]){[]{} +{<[([(<({(<(({{}[]}([]<>})(([]<>)[{}{}]))<(<<>[]><{}<>>)<({}{}){<><>}>>>)(<({((){})[{}{}]}<<<>()>[[] +{<[({(<{[[[[[<()<>>[[][]]]{[{}<>]{[]<>}}][([()[]]<()[]>)[<[][]>]]]](<({(()())[<><>]}<{<>}({}<>) +(<([[[[[(((<[{{}{}}{(){}})>))(({<<(){}>[{}()]>}<[(<>{})]([{}{}]<[]>)>)([{[{}()]<{}<>>}][<{<>{}}(<>{ +{((<[(([{{[<<<[]{}>{()<>}>>({[{}<>]<{}<>>}(<<>[]><[]<>>))][[[[[][]]{{}()}][<[][]>]]]}<(<<{ +<{[<{<<{<(((((<>[]][[][]]){[<><>]})(<([][])>)))([([{<>}(()[])]{(()<>)(()<>)}){{[{}{}]}}])>}>{[<< +<{((<<<[({[{[(()<>)((){})]}[{[<>{}]{{}{}}}(<{}()>(()<>))]]}(<{[[<>[]]](<()()><<>()>)})({<<[][]>[[] +(<[(<{(<[({[(<(){}>([][]))<(()())[<>{}]>]{<{()<>}<(){}>><{{}{}}({})>)}<<{{{}[]}(())}[({}())< +[{{[[{{<<([[([[][]](<><>))<{<>[]}<()[]>>]][<[[<>[]](<><>)]{[[]()]<{}()>}>[<([]{}}<{}()>>{(()()){<>()}}]] +[(<(<{{{[([(<{{}{}}<{}{}>>[[<>[]][(){}]])<(({}())[{}{}]>((()[])([]()))>])[(<{<{}{}>}>{{([][])([][] +[(<<{<(<(<(<<[()()]({}{}}>{([]{})[()<>]}>)>)><{({{(<<>[]>){(()[])({}())}}((<{}[]>{<>[]})([()<>][< +{{<<[(<{<{{([((){})[[]<>]]{([]{})([]()}})<[<{}<>>([]())]{<[]()>{{}[]}}>}{<{<[]{}>{()[]}}(<{}[]>[[]{}])> +<{[[{[({<[(({(<>{})[()[]]}{[()[]]<[]()>}))(([(<>[])<()()>])({<()[]>(()[])}))]<[[{{[]}(<>{})}[[()[]){[]< +(((([<{(({<<[{{}()}][{{}{}}<<><>>]>>((([<><>]<<>{}>)[(()())[<>[]]]))}{[<({()[]}[()[]])<([]())<{ +(<<{[({[<((<[([]<>){(){}}]{<()()>[(){}]}>(<[{}[]][()<>]>{([][]){[][]}})){{{<()[]><<>()>}(({}<>)<[]{}> +<{[[[{[<({[{((()<>)(<>[]})<{()[]}{()<>}>}[{<<>()>[{}[]]}<[()()][[][]]>]]}{<[<{<>()}<[]<>>><[()[ +([[{<{[{{{{(<<<>()>>[(())<[]>]){[[{})]<({}()){<>[]}>}}((<[<>]<{}()>>{[()()]<()()>}))}{[[{{{}<> +[(<({<{{<[{<[[<>{}]({}())]]}]{({{[<><>](()())}([{}])}[[<<>()>({}<>)]<[<>][[]()]>])[{[[()[]][<>]]}[ +{([{<[<[{[(<<{<><>}[<>()]>(((){})(()()))>[<<{}()>[<>{})>]){<<<[]<>>[[]<>]>{{<>{}}{(){}}}>([[()()][{}[]]](< +{{(([<{[{<({<({})[[]<>]>([[]]<{}{}>)}([[()()]<{}{}>])){{{{[]<>}<[]<>>}<(<>())<<>()>>}}>}]} +(<[{{<({{(<([[[]<>]]{{{}()}([]<>)})<(([][]))>>{[{{(){}}<[][]>}[[()]<()()>]](({[]{}}(<>())))})( +({{[{{[{({[(<(<>{})<(){}>><<[]{}>[[][]]>)[((()[])(()<>))]]<([[(){}]{[]<>}]<<()[]>([]<>)>)>}[{[{[()<>]}<< +(<[<<<([{{{[<([][])<(){}>>{<<><>>(<><>)}]{((()<>)<{}{}>)[{<><>}<[]<>>]}}}(([<{{}{}}{<><>}>]{{[{}() +({[[((([[<<([{(){}}(<><>)](<{}{}>{[]{}}))(<<[]()>([])>([[]{}]({}{})))><{{[[][]]{[][]}}({()[]})}{(([]<> +({<<({<[[[[[{<()<>>}({<>()}[<>[]])]]]<{{[[{}()](()())]}({([]())})}>]<({<<{(){}}<{}{})>((()[ +((<{[<{<{<[[[<[][]>{{}()}]][({<><>}{()[]})<<[]()>(()<>)>]][[(<{}{}>({}))(({}<>){[]()})][[{()[]}(()[])]{(<> +<<<[(<{<{<(<<[<><>](()[])>([[]<>]<[]{}>)>)((<{<>{}}[{}<>]>[{{}()}(()<>)])[{(<>{}){()()}}])><({{{< +<<<{[([[(({<<{<>{}}>[<<><>>(<><>)]><([[]()][{}<>])<[{}{}]>>})<<<[[{}<>](<>())><(()[]){<>()}>>([( +[{{[(<<({[{{(([]{}))[[{}()]<[]{}>]})(([{[]{}}<{}[]>]<<()[]>>)<({(){}}[[]()])<{<>()}[[]<>]>>)]} +(<[[[<[<{[[[{{()<>}[{}<>]}[(<><>)<<>{}>]]]<<[(()<>)<[]{}>]{{{}<>}(()())}><<{[]<>}[[]{}]><{<>{}}{<>{}}>>>][ +(((({<(<[{<{<(<>{})(<><>)>{(<>[])[()[]>}}[[(<>[])({})](<{}[]><{}()>)]>(<<[[]<>]({}())>(({}{})<{}{}>)> +{(([<[[<({<[{({}())<<>()>}{[{}()]<()[]>}]>(([{(){}}{()[]}])(<[[]{}][{}()]>[({}{})<{}{}>])}}(<([{()[] +[{<{{({({{<({<<>[]>[()()]>[{[]{}}([]{})])([(<>())[[][]]]([{}()](()<>)))>(<({<>[]}{<>{}})>([(()[])]))}} +{{({({[{([[{[[()[]][[]{}]][{[]<>}(<>{})]}{{[()()][[]()]}[<<>[]>((){})]}]])}]}<{[[{[((<{}{}>[(){}] +[{[({[[(<<{{[(()<>){{}()}]}<([{}])({{}{}}{<>()})>}<[[[{}[]]<<>{}>][[{}[]]([]())]]>>((<({(){}}<[]>){<{}()> +[([[<<[{[(([[{<>{}}]]}){(([{<>[]}])[([(){}]{<>[]})({{}{}}[(){}])])}]}]({<[{<{[(){}]<()()>}([< +{[[[({[[{<({{({}[]]}<(()<>)>}[([[][]])({{}{}}[[]()])])><([{<<>[]><{}<>>}(({}<>))][({<>}({}<>))])(<{([][])[()[ +([{<{{<(<[{<[(()[]){{}()}]{(()())[<><>]}>}(<<<()<>>{<><>}>[(()[]){()<>}]>[{{()()}<[][]>}])]>)(<<[ +[<(<({[[[{({([<>[]]<()<>>)[{[]()}]})<[[[[]<>]<{}<>>]([()[]){[]()})]{([{}<>][<>[]])[{()()}([ +([<[{[(<[{[(([<>[]]<<>[]>))][({(<>())({}<>)}<<()()>[{}()]>][[([][]){<>()}]({[]{}}<{}[]>)]]} +[(((<[{<{{([[[{}]<()<>>]<{()<>}([][])>]){(<{{}()}{{}{}}>(<<>{}>{{}<>})){{([][]}{{}<>}}[[[][]][[]<>]]}}} +[<[{([(<(<<{<(<>{})<{}<>>>{(<>)({}[])}}><([(<>()}[<>{}]][<{}{}>[<>[]]])[{([][])<[][]>}[({}<>)({}())] +[[<<([[{[{[<((<><>){{}<>})>(<({}<>)[()()]>[{(){}}])][[((<>{})<[]()>)(({}())({}<>))]<{<{}{} +({<(({<[([{(({()<>}[[]<>])<(<><>)>)}[{[<<>()>]<({}<>)[[]{}>>}(<<{}{}>[()()]>)]])(<({({{}<>})([[]<>](<>[] +<{{{({{{{{[([([]{})({}[])]{{[]()}<(){}>})]}[[<<{[]()}<[]<>>><<{}()>((){})>>](<{{{}[]}<<>>}< +((([<{<<(<<({[<><>]{{}{}}}[{()()}{[]}])(({()()}[{}<>])[({}())<()[]>])>([<<[]{}>{{}[]}>{[<>[]](()) +((<(<[(<[[[({(<><>)[{}()]}{<(){}><{}()>})<<<[][]>{<>{}}><{{}[]}<()[]>>>]<[[[{}][[]{}]][({}{})((){})]] +[<<{[<<[{{[{<[()<>]>(<{}{}>(<><>))}<<((){})<(){}>>>]}[{(<[{}[]][{}[]]>((()<>)([]()))){{<(){}> +<{[<[{<{<{({<[{}()][[][]]>[{()<>}{[][]}]}<[([]<>)]>>}>[([{{<[]()><()[]>}{[<>{}]{[][]}}}(<[[]<>] +{<[<[(([<<({[({}())([]{})][{{}}{[]{}}]}[[<[][]>[{}[]]][[<>()]]])[[[<(){}>{()<>}]((<>{}){()[]})]]>>]{[{ +{{[{<[[{([({[[<>[]]{[]()}][[<>()](()[])]}[[(<><>)[()<>]]<([]<>)<{}>>])]<(<{{[]<>}}>[{[{}{}]< +[{{{(({(<[{(<{<>[]}<[]<>>>)}([<[<>()]<<>[]>>{<()<>>(<>{})}]<<(<><>){(){}}]{[[]<>]{<><>}}>)]>)<{[ +[[[(({<{(<<{{<<>><<>{}>}[((){})<{}[]>]}{([[]{}]<<><>>)[(<>{})]}>>[<{<{{}{}}[{}[]]>{<[]>[() +((<(({<[<[[(((<><>){{}{}})[{()[]}[{}<>]])({([][])<{}()>}<{{}()}({}[])>)]][{<({()()}{<><>})>([({}[])<<> +{{<{[([<({<[((()())<[]()>)<({}[])({}{}}>]<{({}{})<<>>}(([]{})[{}{}])>>[<[<()<>>]>((<<>{}>{() +<[{[[[<{[[<{[{<>()}][<(){}>[{}{}]]}((<[]{}>({}[])){(<>{})})>]]}>(((([<({()<>}<()>)[{{}()}<{ +[(<{[[(({({<<[(){}]{[][]}><{[]{}}([][])>>({<{}()>{<>{}}}({{}<>}<{}<>>))})<{<<({}[])>{([]())[{}{}]}>[{ +[<<{{<<<[(<[(([][])[<>[]])][<[()[]]<[][]>>]>)]{[<[{{[][])({}[])}<<<>()>(<>[])>](((<>{})<<>{}>)((<>[]) +<<{<[{((<[([{<{}()><{}{}>}{[{}{}]({}())}]{{{<>[]}<{}[]>}<<<>[]>{[]<>}>})][{[{{()[]}{()()}}({<>{}}<{} +[(<{{[{[<{<[[{()<>}(())][{{}[]}{[]<>}]][((<><>)(<>()))(<(){}>)]>(<({[]<>}(<>()))((()<>)<[]>)>{<[{ +<[(((([[{{[[({()()}((){}))]<<([]<>)[<>{}]>([{}{}]<<>{}>)>][{<[{}[]][[][]]>[<{}>[[]{}]]}{([ +{{(({[[({[<([{<><>}[[][]]]{[<>{}](<>())})>({(<{}()>(<><>))((()())[{}[]])}<<<()><{}()>>>)]}<<(([[<>{}]{[]< +({([[<[{<{[[{{[]<>}({}{})}{<[]()>{()<>}}]]}([{<[[]()]{[]{}}>{[()<>]<(){}>}}])>}[(<[{<[<><>)><[{}{ +[<[(<({<[<{[<[(){}](<>())>]([<[]<>><[][]>]<[[]<>]{{}{}}>)}>(((((()[])<{}{}>))([<(){}>[[][]]] +<({(<{[(<{([([[]()]{<>()})[({}[])(<><>)]]<({[][]}{[]()})({[][]}(<>{}))>)}>([([<(<><>)<[]()>>{[{}<>]{<> +(<<<[((<{[(({({}())<{}()>}{{{}[]}<<>{}>})<((()())[[]()]){[<>{}]}>)[{([{}()]{{}{}})[([]())[(){}]]}]] +[[<<<[(<[{((<[{}<>]{[]{}}><(<><>)([]<>)>)[<({}[])<[]()>>(<<>[]><{}[]>)]}[<<[[]{}][{}[]]>(([][ +{<[[((({[[[(<[()[]][[][]]>(<[]()>({}())))]<{{[{}<>]<<>{}>}{(()<>){()}}}{(({}[]){<>[]}){({}{})<()[]>}}>}][[ +{<{{{{<([([<{{<>()}<(){}>}[{{}}([]<>)]>[{({}())(()[])}]]<{<(<>())[{}[]]}{((){}){[]{}}}}(((<>)<[]()>)< +{<{{{{{({{({([[]<>])[<()<>>>})<({[[]()][{}[]]}({[]<>}[{}()]))[<<{}()><<><>>>{[()<>]{()}}]>}})}<[({<(<{[]()}{ +(<{[[{{<[[<(({[]()}<[]>)<[{}()]([]{})>)(<([][])(()<>)>[[()()][()()]])>][[{{(())([]<>)}<{[]()}(()<>)>>]( +[[<[{((<{[[(({[]<>}([]())))]{<{<<><>>[{}<>]){{[]()}<<>()>}><{<()()>{[]()}}<{[][]}[[][]]>>}]{<<([< +[[[<(<([(([{((()[])[[]<>]){{<>}{<><>}}}]))])>)>][(({([<([<(<()[]>{<>()})<{[]()}<(){}>>>[<{[]<>}>{{<>{}}<<> +[<(({{(<(<[<{[<>()]([][])}{{{}[]}{{}{})}>[([()<>]([]()))[{[][]}<<>()>]]](({[()<>]{{}<>}}<({}) +(<<<<([{{[{{<{{}()}[<>[]]><{()()}[<><>]>}<[[{}()]{[]<>}]{({}[])({}[])}>}]({<({(){}}{<>()})([{}()][ +({([{(<<[(({((<>())([]<>))[[[]()]<<>[])]}))]{<{{{{{}()}{[]<>}}}(<({}{})[{}[]]>)}>}>[{((<{((){}) +((<[<{<(<[((((<>[])([]{}))[{{}{}}[<>[]]]}{[[[]<>]([]{})]{(<>[])[()()]}})<{{<{}()>[[]<>]}}>]>([{[[<<>{ +<<(<{{<<<({[[([]()){[]}]{<<><>><()()>}][[[(){}]<<><>>]]}[{<[()[]]>{([]<>)}}{({()[]})}])(([{(()[] +<{[(<{[<((<[<([]())<()[]>>[({}<>)[[]{}]]]<(<{}{}>(<>{}))<({}{}){{}()}>>>[({([]())<{}()]})<<[()[]]{ +{<[<[{<{[[{<<<()[]>{()}>{<{}<>>{<>}}>}{[[([]())]{([])]][(<()[]>(()())){[{}{}](()[])}]}]]}>( +{(((<[<<{{[[(<<>{}>(()<>))][({[]{}}<{}<>>)<[<>](<>[])>]]<{([[]]{(){}})((<><>)[{}])}[{({}<>}<{}[]>}{(<>())< +[[[[[<({(<{([{[]<>}[{}[]]][{[]{}}<{}{}>])[([{}[]]<[]()>)<<<>{}>>]}>)})<(({({(([]{}))}(<[<>() +[<{<(([(<<{<(([]<>)[<><>]){<()()>[<>{}]}>}({{({}[])([]<>)}})>><([(<[()()][[]()]><[[]<>]{[][]}>)( +[<(<(<{([<(<{<<><>>{<>()}}((<><>)[{}])>)((({()<>}({}())){([]{})([]{})})(<(<>{})([]())>))><<((<( +[<<[[{[{{<([({(){}}({}()))[[[][]]]])([([[]]({}())){({}())({}{})}]<[[<><>]<<>()>]{[<>{}]{()[]}}>)><({[[()()](( +{([{(([(({({{[(){}]([])}({<>()})}{<[(){}]<<>[]>><{[]<>}[[]()]>})}))<{{[[{[()[]]<<><>>}([[]()]([]()))]]{{<[[ +{((([<[<[{{(((<>()>))[[<()()>]{([][])[{}()]}]}(([{()[]}<<><>>][<[]()>])(({{}{}}((){}))({<>() +{<(<<(<{([{{[[<>()]{{}<>}]<<<>[]>[[]{}]>}{([[][]][<>{}]){[{}()][(){}]}}}]}<{{{[<<>[]>(<>{})][[<><>]]}{ +[<<([{<({([[({{}<>}<<>{}>)((()())<{}()>)]<{(<>{})}([()()]<[][]>)>])}{[[(<<[]{}>(()<>)>{[(){}]([][])})[(( diff --git a/data/10_2022.txt b/data/10_2022.txt new file mode 100644 index 0000000..8af17c6 --- /dev/null +++ b/data/10_2022.txt @@ -0,0 +1,140 @@ +noop +addx 5 +noop +noop +noop +addx 1 +addx 2 +addx 5 +addx 2 +addx 5 +noop +noop +noop +noop +noop +addx -12 +addx 18 +addx -1 +noop +addx 3 +addx 5 +addx -5 +addx 7 +noop +addx -36 +addx 18 +addx -16 +noop +noop +noop +addx 5 +addx 2 +addx 5 +addx 2 +addx 13 +addx -6 +addx -4 +addx 5 +addx 2 +addx 4 +addx -3 +addx 2 +noop +addx 3 +addx 2 +addx 5 +addx -40 +addx 25 +addx -22 +addx 25 +addx -21 +addx 5 +addx 3 +noop +addx 2 +addx 19 +addx -10 +addx -4 +noop +addx -4 +addx 7 +noop +addx 3 +addx 2 +addx 5 +addx 2 +addx -26 +addx 27 +addx -36 +noop +noop +noop +noop +addx 4 +addx 6 +noop +addx 12 +addx -11 +addx 2 +noop +noop +noop +addx 5 +addx 5 +addx 2 +noop +noop +addx 1 +addx 2 +addx 5 +addx 2 +addx 1 +noop +noop +addx -38 +noop +addx 9 +addx -4 +noop +noop +addx 7 +addx 10 +addx -9 +addx 2 +noop +addx -9 +addx 14 +addx 5 +addx 2 +addx -24 +addx 25 +addx 2 +addx 5 +addx 2 +addx -30 +addx 31 +addx -38 +addx 7 +noop +noop +noop +addx 1 +addx 21 +addx -16 +addx 8 +addx -4 +addx 2 +addx 3 +noop +noop +addx 5 +addx -2 +addx 5 +addx 3 +addx -1 +addx -1 +addx 4 +addx 5 +addx -38 +noop diff --git a/data/10_2023.txt b/data/10_2023.txt new file mode 100644 index 0000000..0a9aceb --- /dev/null +++ b/data/10_2023.txt @@ -0,0 +1,140 @@ +7-L7|F--F7F-|-FF--|FFL|7.FFL7|FL-F|-LL77FFJFL-7.FF-J.F77.7.F7F777-77.FF-LF7F.JJ.F7|-|.FFJF7..77F7|-7-FF7.|-F77L-|-|-77.F77FLJ7.F-LL--F7FL7.J +|7F|-7.FJLLJL7LL-JLJ7JFF.JL|7.7LFF.||||F7-J7.LL--J7L7JL7.|.LFF-7-7.|7--.||FF7-LFJF-.||-7FJ.FL|-F|L-J--7J7FF-7-L7L-7-|JF7-7-|FFFJ|.L7F|JL-77. +7FL|-7.L-|L7.|J|J-|J|LLF.|7|LL7J.-LJ-7FFJ|LF|.F|.|J-7.|.|F7.7F7-F7-L||..FLFL|J7..|J.FL-JJJF-7LJ.FL7F7|JF-.--F7LF-LJ---|JJ.-J7||F-..JJL-7|.F7 +||7L-|-J-F-|-|-JJ7L.7-7JLJFL|.J7|LJJ.F|L7--LJL|J-|FFJ-|FLJJ7||J|||JFJFFJ7F|F|-LL-7-J7|.L||L.77.J7.L7-FF|-7JL||.J7|J.J|.LLJ|..L-J7J.FL.LF-..- +FJ-FJ|.|J.F-7JJJLLJ7L7F..L|7F7--7F|7F---JJFL...-J|L7J7-|JL-7-|L-JJ7JL-L.L|-7|F.L777FLF.LFJL7LLL-|-JJL-.L-|J.F77JF77F|-L7J.F7.L7.JL-FJ..FJF-J +L|J|LJ.|F-7-|7-F7J-LL---FF--J|F7LJLL-L-7|J7J.F7FF|J|7-JL7J|LFJ.|.||.-|.FJLL|-7.F7LJ-7|F.|JFJ.L7-L7J-7L-JLL7FF7|F7L-J.F.F-7|.FJL7LFJ|FL-J7J.| +.|F|F|F-||JF7J.FL|FJ.F|-LJF7.L7---FJJ|L7|F7-L|--7JLJJ7.-|.F|J..F7-F-..FL--.J.LF-|-J.F7.FJ|L--FJFL-7JF.L-FLJ.|F7-77-|..F-..FJJJ||.||LL|L|J.7| +LF-FLL7||77JL.7.L|J-F.|7|-LJJ..FJ.J|LLF-L-|7-|F-J7.|.LFLL-|JLL|-|7L|-7||7JF7FLLJ|.|F|LJ77F7-LL-J.L|7|..F|J.77LLL--F-L-F|.FFJ-77L7J|.||FFJ.F| +L--F-|LJJ.|7|F|FF77.77F7-J.|.F-J-JF7JLFJ.L|7-L|7.|7L7-L|.FF7F.|7.L.L|.JJFF--F-L7LF--77|LF-J7-LLLL-77J-7-7LF|L7.FL77-|7|L-LJ||L|JJF-LF-L7|FFJ +||LJF|FL7F|7FF7J.LJ-F||L7..FJJ7.77|JJLF77LJ.|F||-L--|7.LF7|FJ.L7F|7.|7.F7JJ7F7.7-L7FJ-JFL-||7LJ-L7LJ..|.L7-7||.-7LJ|F7F7|.L|JJFJJ|J.|7L|F||7 +FJJ|7L-7J7LF-|||7.L||.FJ7-F-.JJFFFF---J||J|FF7-LJ.||.FFJ|.|JF.LJLF7F||FJ||JF||..LFJ|J.F|77LF-77LJJF|LJ-7JJF|-L7L|J|7.FF77F.|.L|..|7.|7FFLJ-7 +L|.--J|LF77LJ|LLJ7|LL7|-LF7LF|7LF7L---7L7-FFJ|7|77F7-F7FL7.FF7J7.|L7F7L7L7F7|L-7FL7|7.FF77F|FJJFL----|-JLF-7-.7.LJ.LL-L7F--|77L-----J7||L..L +FJ7.L-77LLL.--J.|.7|.F7JFJ|7F7JLF7JF7FJFJ7|L7L7FF7|L7F7JLFFFJL-7-L7||L7|FJ||L7FJF7||7F7||F7||JL77F|-|F7J.-..L-F7JFF.FLLL7-||-F7-|7.L.L7FL7-J +.FJFLL-7.L-F|---7-|FFFF7L7L-J|LF|L-J|L7|F7F7|FJFJ|L7LJ|L7-FL-7FJFFJ||FJ||L|L7|L-J|||FJ||LJLJL-7-F-7.F||-L.F--J||-7.F7-|L|LFJJ|7LFL-FFLJ7L|LL +7J.7JLFF||.|L-7|.F||-FJL7L7F-J.L|F-7L7||||||||FJFJFJF-JF7-F7J||F7L7||L7||FJFJL-7FJ|||FJL7F----J-|FJFFJL7J.F|7FJL7F7||F7-F-7JF||F-JF|L|FJ-7|7 +LL7L-FJJLF..F|F77FF7JL7FJFJL-7-LLJFJFJ|||LJLJLJFJ||FJJF-7FJL-J||L7|LJFJ||L7||F-J|FJ|||F-J|F--7F-JL7FJF-J-F7F7L7FJ|LJLJ|F-7.FJ|-JJLFL-F7L-J-| +FJF7--J...F-JL-7FF||LL|L7L7F-J.F-7L7L7||L-7F7F7|F-JL-7|FJL---7||FJ|F-JFJL7|L7L-7||FJ||L-7||F-JL-7FJ|FJ7F7|LJ|-|L7L-7F-J|FJ7|JL.LF-7.|L7..F-7 +77|L-7FFJ-7LFF-F-7||F7L7|F|L--7L7|7L7LJL7FJ|||LJL-7F-J||F7-F7|||L7||F7L-7||FJF-J|||FJL7F||||F7F7||FJL7FJ|L7FJFJFJF7||F7||FF77-7FF-7J-7L-JJF| +L|J.|L|-7-L7|J7L7LJLJL-J|FJF--JL||F7L-7FJL7|LJF-77|||FJ||L7|LJLJFJ|LJL7FJLJL7L-7||||F-JFJ||LJLJLJ|L7FJL7SFJL7L7|FJLJLJLJL7|L-7F-7.||.LJ7---7 +||L7LJ|F-7F-JLJ-L------7LJFJF7F-JLJ|F7|L7FJL77L7|FJL7L7||FJL-7F7L7L7F-J|F7F-JF7|||LJL77L7||F---7FJ7||F7|||F-JFJLJF-7F7F7FJL-7|L7L77.|JL|7J-F +F-|-J-L-FJJ.--J-LF-7F7FL-7L7||L---7LJ|L7|L-7L7FJ|L-7|J|||L--7LJL7|FJ|F7LJ|L-7|||||F--JF-J||L--7LJF7||||||||F7L7F-JLLJLJLJF7FJL-JFJJ7LL-LJFF- +|F|..F|-77L77LF-7L7|||F7FL7LJ|F7F7L-7L7||F7L7||FJF-J|FJ||F--JF7.||L7||L7FJF-J|||LJL7F7L-7LJF--JF7|||||||||LJL7|L7F7F7F7F7||L7F--J|7F7J.L-L|. +|7|.|-|L|JFL|7L7|FJ||||L7FJF-J|LJL7.L7LJLJL-J||L7L-7|L7|||F-7|L-JL-JLJFJL7|F-J|L7F-J|L-7L-7L-7FJ|||||||||L7F-J|FJ|||||||||L7||7F-7--JL|.|-|7 +|.F.7||7|J-JLJ.||L7LJ|L7||FJF7L--7|F7L-7F----JL7|F7|L7|||LJFJL-------7L-7|||F-JFJ|F7L-7L-7|F-JL7LJLJ||LJL7||F7|L7||||||||L7LJL7L7|7-LFJFFFJJ +|7JL.|L-J|LF-.FJL7L-7L-JLJL7|L7.FJ||L-7|L--7F--J||||FJ|LJF-JF7F-7F7F7L-7|||||F-JFJ|L7FJF7LJL-77L--7FJ|F--J|||||FJ||||||||FJF-7L-J|7JFLL-JLL| +LJ7LFJ|L|7L7--L-7L--JF--7F7|L7L7L7|L-7||F--JL--7|||||-L-7L-7|LJFJ||||F-J||||LJF-JFJFJL-JL7F--JF-7FJ|FJL-7FJLJ||L-J||LJLJLJFJ7|F-7|7-7-J|7JJL +L7FF-7F.|.FL-JLFJF---JF7LJ|L7L7L7||F7||||F7|F--JLJ||L7F7|F-JL7FJFJ||||F7LJ|L-7L-7|FJ|F---JL7F7L7|L7|L7F-J|F--JL7F-J|F-----JF7LJ-||JF|J-LJF-7 +FLL7|LF---LJ7JLL7|F---JL--JFJFJFJ|||LJ||||L7L7F--7|L7||||L--7|L-JFJ||LJL-7L7FJF-J||F7L----7||L7|L-J|FJL--JL--7FJ|F-JL------JL--7LJFJLL7.LFJ| +L7LFJL|LJ-F|77.|LJL-------7L7L7|FJ|L7FJ||L7L7LJF7||FJ||LJF--JL--7|J|L-7F7|FJL7L--J||L7F-7FJ||FJL--7|L7F------JL7||F-----7F-----J-F7-7F7J||.J +LJL-7LL|--F7|F7F---------7L7L-JLJFJ|||7||FJFJF-J|||L7|L-7|F7F7F-JL7L7FJ||||F7L7F--J|FJL7|L7LJL7F7FJ|.|L------7F|||L----7|L7F-7|F7||F7-77FF-7 +|LFJL.F77L|L-J|L--------7|FJF---7|F7||FJ|L7L7L-7||L7||F-J||LJ|L--7L7||FJ||LJ|7||F7FJL--J|7|F-7|||L7|FJF-7F---JFJLJF7F7FJL-J|FJFJLJLJ|FJF-JL| +F|JLFL7J7|L--7|7F7LF--7.||L7|F-7|||LJ|L7L7L7L7F||L7|||L-7||F-JF7FJFJ||L7LJF-JFJLJ|L7F---JFJL7LJ||FJ||FJJLJF7LFJF7FJLJLJF--7||L|F7F7FJJ-JJF.F +|-F-7-J--JL|-|L7|L7L-7|FJL7||L7LJ|L-7|FJFJ-|FJFJL-J|||F7|LJL-7||L7L-JL7L-7L7FJF--JF||F7-FJF7|F7||L7LJL-7F7|L-JFJLJ7F7F7|F-J|L-J|LJ||J|-LL|JJ +JLJ.||.-7J|F7L7|L7|F7|LJF7|LJLL-7L7FJLJFJF7|L7L---7||||LJF---J|L7L---7L7FJFJL7L7F-7||||FJFJLJ|||L7L-7F-J|||F--JF7F7|LJLJL--JF7FJF7LJ7-77||L| +|7LL|7-J-F-JL-JL7|||||F-J|L-7F-7L7|L--7|7|||FJF7F7||||L7FJF7F7L7|F7F7|FJL7|F7|FJ|FJ||||L7|F7L|||FJF7||F7|||L--7|||||F--7F7F-J|L-JL7JL-7-L|F7 +|-F-||7LJL-7F7F7LJLJLJ|F7L7FJ|FJ7||F7FJL7|||L7|||LJLJL7||FJLJ|FJ||||||L7FJLJ|||FJ|FJ|||FJ|||FJ||L7|||||LJ||F--J|LJLJL-7LJ|L-7L7F7FJ.|7J7LJ77 +-7L.L.J7F|FLJLJL7F7F-7||L-JL-JL7FJLJ|L7FJ|LJFJ||L---7FJ||L-7FLJ|||||||FJL-7FJ|||FJ|-|||L7||||FJ|FJ|||||F7LJL---JF----7|F7L--J|LJLJFFF7-J--JJ +|F.FJFL7FFJ|F---J|LJJLJL--7F--7|L--7L-JL7|F7L-J|F-7FJL7||F7L7F--J|LJ||L7F7||FJLJ|FJFJ||FJ||LJ|FJL7||||||L--7F7F7L---7LJ|L-----7.LF-7||JJF|J7 +L77|JL-J-JLF|F7F7|F7F----7LJF-JL7F7L--7FJLJL7F-J|L||F7|||||FJL--7L-7||JLJLJ||F--JL7L7|LJFJ|F7LJF7LJ||LJL-7LLJLJL---7L-7|F-----JF7L7LJ|JFL|J| +|LFL7L7.|7|.LJLJ|||LJF7F7L7|L7F7LJ|F--J|F7F-JL-7|FJLJ||||||L-7F-JF7|||F----J|L-7F-JFJL-7L7LJL7FJL--JL7JF7L7F-7F---7L7FJ|L--7F-7|L7|F-JF7JJL7 +L7J---7-F77FJ7|LLJL--JLJL7L-7LJL-7|L--7|||L-7F-J|L7F-JLJLJ|F-JL7FJLJLJL7F7F7L-7|L7JL7F7L7L7F-JL7F7F7FJFJL-JL7LJF-7L7LJFJF--J|FJL7||||F77.|F| +LJLFFLJLLL|7FF-7F--7F77F7L-7|LF--JL---JLJ|F-JL-7|FJL--7F-7|L7F-JL-7F---J||||F7|L7|F-J||FJFJL--7||||||.L----7|F-J|L-JF7|FJ|F-J|F7|LJL7|||FFJ. +|L7-LJJ||.L7-L7|L-7LJL-JL--JL-JF7F-----7FJL---7|||F7F7|L7LJFJL--7FJ|F7F7|||||LJJLJ|F7|LJ|L7F--JLJ||||F-----J|L7F77F-J|||F7|F-J|||F-7LJL-7|L- +|-7..L7----J77|L--JF7F--------7|||F----J|F--7FJLJ||||||FJF-JJ|F-JL7||LJLJ||LJF7F--J||L---7||F---7LJLJL-----7|FJ|L-JF-J|||LJL--JLJL7L7F--JJL| +77.|--J|F--7JFJF-7FJLJF------7||LJL--7F7LJF7|L--7||||LJ|FJF-7FJF7FJLJF7F-JL--J|L--7|L7F7FJ||L-7FJF7FF7F77F7LJL-JF--JFFJLJF7F-7F-7FJFLJF|7|.L +||F|7JF77J.|FL-JJLJ||FJF7F--7LJ|F----J|L-7||L-7FJLJLJF-JL-JFJL7||L-7FJ|L-7F-7FJ7F-J|7||||-||7FJL-JL-JLJL-JL7F---J.F7FJF7FJLJ-|L7|L---77|-|JJ +F|F|777L--|7F7.F7F-7FJFJLJF7L7FJL-----JF-J|L-7LJF-7F7L-7F-7L7JLJ|F7|L7L--J|FJ|7FJF7|FJ||L7LJFJF7F----7F7F-7|L-----JLJFJ|L---7|FJ|F-7FJJ|-JJ. +-7|LJL-7.FF7|L7|||FJL-JF7FJ||LJF-------JF-JF7L77|FJ|L7FJ|FJFJF--J||||L-7F7|L7L7|FJ|||FJL7|F7L7|||F---J|LJFJ|F7F7F-7F7||L-7F7||||LJ-LJJL-77J. +L.|-|-LF-7||L7LJLJL-7F-JLJFJF-7|F7F7F7F7|F-JL7L-JL-JFJL-JL7|LL7F-J||F--J||L7L7|LJJ||||F-JLJ|7||LJL--7FJF-JFLJ||LJ7LJLJF7JLJLJLJF--7F|.-JJL77 +|-F-|.FL7LJL-JF----7|L---7L7L7|LJLJLJLJLJL--7|F7F7F7L7F--7||F-JL-7LJL7F7||FJFJL7F-J||||F7F7L7LJF7LF7||7L-7F7F|L-------JL--7F---JF7L7-L7.FL77 +JF----F-JF-7F7|.F--JL7-F7L7L7|L7F7FF-7F7F---JLJ||||L-J|F-JLJL-7F7|LF-J|||LJFL7FJL-7|||||||L7|F-JL-J|||F-7LJL7L--------7F7FJL7F--JL-J7-7-7FJ7 +LF|JLLL7FJ|||||FJF--7|FJL7|FJ|FJ||FJFLJLJF----7LJ|L7F-J|F7.F--J||L7L--J|L---7||F--J|||||||JLJL7F7F7LJ|L7L---JF7F7F7F7|LJLJ7FJL--7F--7F7.|J-J +F|.|.LLLJF-J|LJ|FJ|FJLJF7LJL7|L7||L------JF---JF7L-J|F7LJL7L-7FJ|FJF---JF7F-J||L7F7|||||||F---J||||F7|-L-7F--JLJLJLJL7F7F7FJF7F-JL7FJ||7J..| +JLFFJ.FLFJF7L7-LJF-JF--JL7F7|L7LJL-----7F7L----JL---J|L7F-JF-J|FJL7L-7F7||L7JLJFJ|||||||||L-7F7|LJLJLJF--J|F7F--7F7F7LJLJLJFJLJJ-FJL7|L7.F7| +|-J..F7LL7|L7L7F7L-7|F--7LJ|L-JF7F----7LJL------7F-7FJL|L77L-7||F7L-7||||L7L--7L7|LJ||||||F-J|||FF----JF--J|LJF7LJLJL------JLF-7FL7FJ|FJ7F77 +|JJF7.F-FLJFJFJ|L--J||F7L--JF7FJ||F--7L--------7|L7|L-7L7L-7FJ|||L-7|LJ||FJF7FJFJ|F-J||||||F7|LJFJF7F7FJ7F7L-7|L---7.F----7F7L7L7FJL7|L77||7 +|L-JJLF-L7-L-J-L----JLJL---7|LJFLJL7LL-------7FJ|FJ|F-JFJF7||FJ||F-JL7JLJ|FJ|L7L7|L--J||LJLJLJF-JFJLJ||F-JL-7LJF7F7L7|F---J||FJFJ|F-JL7L-JL7 +-F-F7|.LLF7JF-7F7F-7F7F7F--JL7F--7JL-7F-----7LJJLJFJL-7|FJLJ||FLJ|F7FJFF-JL7|FJ|LJLF7.LJLF7F-7|F7L7F-J|L--7LL7FJ||L7LJ|FF-7|LJFJL|L7F7|F--7| +FJ7|F7.77LF7L7|||L7LJLJ|L--7FJL-7L---J|F----JF7-F7L---JLJFF-J|F7-LJ||JLL7F7|LJJ7F--J|F--7|||FJLJL-JL--JF--JF7|L7|L7|F7L-JFJ|F7L--JFJ|LJL-7|| +7LL|7FF77.|L7|||L-JF7F7L-7JLJJF7L-----JL----7||FJL--7F7F-7L-7LJ|7JFJL7JFJ||L-7|FL--7|L-7||LJL7|F7FF7F7FJF--J||FJL-JLJL--7L7||L7F-7L-JF---JLJ +F7LJL-JF--L7LJLJF--JLJL-7L---7||LF7F7F7F----J||L7F--J|LJFJLLL7FJ.FL7FJFJFJL--JF----JL-7||L-7FJFJ|FJLJLJFJF--JLJF-------7L7LJL7|L7|F-7L--7F-7 +7JJ..F|77.LL7F--JLF7F7F7|F--7LJL-JLJLJLJ.F---JL-J|F77|F-JJ|LLLJJ.F-J|FL-JJJJ-|L7F--7F7||L7FJL7L7||F--7FJLL-7|F-JF-7F7F7L7L7F7||FJ|||L7F-J|FJ +L7.|-7J.7J-FJL7F--JLJLJLJ|F-JF---7F7JF7F-JF-----7LJL-J|J|LF.FLJ-L|F7L7JL7.|J|F7LJF7LJ|||FJL-7L-J|LJF7LJF--7L7|F-JFLJLJL-JLLJLJ|L7LJF-JL--J|J +|LFF.FJF|LFL--JL-7F-7F---JL--J|F7LJL-J||F-JF---7L7F---JF7JLL7-J-.LJL-JJ.FJ---JFF-JL--J|||F-7L7F7L7FJ|F7L-7L-J|L-7F7F7-F-----7LL7L-7L7F7F7FJ- +JLFJLJFJJJFF-7F--JL7LJF7F7F---7||F---7||L--JF--JFJL--7||L-7L|77|.|JJLJ-|77L-77FL7F---7||||FJLLJL7|L7LJ|F7L---JF-J||||FJF7F--JFF|F7L7LJ||LJ77 +|-L7.FFFF-F|FJL----JFFJLJ|L--7|||L--7|LJF--7L-7-L7F-7L-JF7|FJ-77-L|-|JL|LLFJFF-7LJ|F-JLJLJL-77F7||FJF7LJ|F--7FJF7|LJLJFJ|L7F-7FJ|L7L-7|L--77 +|..LFFF|JLFJL--7F7F7FJF-7L---JLJL---JL7FJF7L-7L77LJJL---JLJ7LFJ|L-7FJ|||7FF77L7|F7FJF7F-7F--JFJ|||L-JL-7LJF7|L-JLJF---J.L7LJFJL7|7|F7|L7F-J7 +FFF7LJJLJLL---7LJ||LJFJFJF7F7F7F7F---7|L-J|F7L-JF-7.F7F77|-FF7.JJFL.L7----|L7FJLJ|L7|LJFJL7F7L7|||F7LF7L--J|L7F7F7L---7F7L--JLFJ|FJ|||LLJ|.7 +-J-J|.FLFF---7L-7LJF7|7L7|LJLJLJ||F--JL--7LJL7F7|FJFJLJL777FJL7|7|J-L.L|JFL7|L7F-JJLJJFJF7LJ|.|||||L7||F7F7L7|||||F7F-J|||F-7LL7|L7|LJ|LLJFJ +|.|777|.|L-7FJF7L--J||F-J|F----7LJL---7F7L---J|LJL-JF---JF7|F-JFFJ--F77J.FFJL-JL---7F7L-JL-7L-J|||L7LJLJLJL-JLJLJLJLJF7|L7|FJFLLJFLJ.FLF-F|. +|FF-J7|FF7FJL7||LF77LJL--JL---7|F7LF--J|L--7F-JF-7F7L7|F7|||L-7F|L-JLJ|F-|L7F-7F7F7LJL----7L--7LJL7L---------7F7F7F--J||FJ||F7J-|JJ-|-7|-LJ7 +|FL-LFF7||L-7||L-J|F7F7F-7F7F-JLJ|FJF7FJF--J|F-J7LJL7|FJLJLJF7L-7J.|.LL--L7LJFJ|LJL--7F--7L---JF-7L---7F-----J|||||F--J||FJLJL7F7J7.|.--FJ.J +LL.F|F|LJ|F7||L--7LJ|||L7LJ|L---7|L-JLJFJF--JL7F7F-7LJL--7F-JL--JF-.-L777||L|L-JF7-F7LJF-JF7F7FJL|F7F7LJF--7F7|||LJ|F--JLJF7F7LJL-7-77JLJJ7| +F7-LF-|F7LJLJL--7L-7||L7L-7L----JL-----JL|F-7FJ|||FJLF-7FJL---7.LFF7F|.L-F7-F--7||FJL7JL7FJ||LJF-J|||L7FJF-J|||LJF7LJF----JLJ|F7F-JFJ7LF|.F- +LL7-L-LJL---7F-7L-7||L7|F-JF--7F-7F------JL7LJFJ||L-7|FJ|F--7FJ7F7J|FL-JJL7FL-7|||L7FJF7||FJL-7L7FJ||FJ|FJF7|LJF7||F7L------7LJLJF|J||F-FJ77 +|LJ7J-|FF---J|FJF7LJL-JLJF7|F-J|.||F----7F7L7F|FJ|F-J||FJL-7LJJJF.|-L7F|.LFF--JLJL-J|FJLJ||F-7|FJ||LJL-JL-JLJF7|||||L--7F7F-JF7F7FF-J.||..JJ +LFJF.F7-L---7|L7|L7F7F7F7||||F7|FJ|L---7LJL7L-JL-JL7FJLJF--JF7FF|FJ7FL---FJL-7F7F7F7LJF-7||L7LJ|FJF---------7|LJLJ|L--7||LJF7|LJ|7L|7.-L-7.| +|LFFFJL-----J|FJ||LJLJ||LJ||||LJL-JF7F7L--7|F7F--7FJ|F-7L---JL---7J|7.FJJL|J.LJ|||||F7L7|||FJF-J||L--------7|L---7L7F-JLJF7|||F-JJFJL7|J.J7F +|F|.L-------7||FJF----JL-7LJLJF77F7|LJL7F7|||||F-JL-JL7|F--------J7L|7|L77||-FLLJLJ||L7|||||JL--JF7F7F7F---JL7F7FJFJL--7FJLJLJL-7F7J.F7L|-|| +L--.LF------J|LJFJF-7F7F-JF7-FJL-JLJ-F7LJLJ|||||F-7F7FJ|L-----7F77LF7777L-L-7-.|JF-J|FJ|||||F--7||LJ|||L--7F7LJLJ|L----J|F---7F-JF7F-JL-7.LF +LLJ..L-7F-7F7L7.L-JFJ|||F-J|FJF7F7F--JL7LF7||LJ||L||LJFJF7F-7FJ|L7F||F77F||.|JFJJL--JL-JLJLJL-7L7L-7||L---J|L--7F7F7F7F7|L7F7LJF7||L7F--J7|J +F|FJJJ-LJ7||L-J7F-7L-JLJ|F7LJFJ||LJF--7L-J||L-7|L7|L-7L-J||JLJ||FJ-||||F7-7.LFJ|7FF-7F7F7F-7F7L7|-FJ|L-----JF--J|||LJ|||L7LJL-7|||L-JL-7-LL7 +F--7-F.F--JL--7-L7L-----J||F-J7LJF-JF7|F7FJ|F7|L7|L7FJF7FJL-7F7||F7|LJLJL-77F-77F7L7|||||L7LJ|FJL7L7L------7L---J||F-J||FJF---J|LJF--7FJ7J|F +|FLL-JFL7F7F7FJF7L7F-7F-7|||F----JF7||LJ|L7LJLJFJ|FJL-J|L--7||||||||F-----JFL7|FJL-J||LJ|JL-7||F7L7L-----7JL--7F7LJL-7||L7|F7F7|F-JF7LJ-F.FJ +F7|.LFJLLJ||LJFJL7LJFJL7||||L-----JLJL-7L7L7FF7L-JL----JF-7|||LJLJLJ|JF-7F7F7||L--7FJL-7|F7FJ|LJL7|F7F--7L---7LJL7F--J||F|LJLJLJL--JL---77J7 +FL-77|.77.|L7LL-7|F7L7FJLJLJF7F-7F7F7F7L7L7L-JL7F---7F-7L7|LJL----7FJFJFJ|||||||F7||F--J|||L7L---JLJ||F7L---7L--7|L-7J||FJF---7F7F------JJ|F +||L-|J.FF7L-JFF7|LJL7||F--7FJLJFJ|||LJL-J|L----JL7F-JL7L-JL7F--7F-JL7L7|FJ|||||FJ|||L-7FJ||LL----7F7LJ||F--7|F--JL-7L-JLJFJLF7LJLJF7F--7LF-7 +-7|7|.F-JL-7LFJ|L7F-JLJL-7LJF-7|FJ|L-------------JL-7FL--7FJ|F-JL--7L7|||FJ|LJ|L7LJL7FJ|FJ|F-----J|L--JLJF-JLJ-F7F7L--7F7L--JL---7|LJF7|7--J +.L-L..L---7|-|FJFJL7F7F-7L--JFJ|L7|F---7F7F7F7F7F7F7L7F-7|L-JL7F--7L7||||L7L-7|-L-7FJL7||FJ|F7F--7|F-----JF---7|LJL--7|||F7F7F7F-J|F-J|L7LFJ +.FJL77F||7||FJL7L7FJ||L7|F--7L7L-JLJF-7||LJLJLJLJLJL7|L7||F---JL-7|FJLJ|L7L7FJ|F7FJL7J|||L7LJLJF7LJL------JF-7LJF--7FJ||||LJ|||L--JL77L-J7J7 +F-7F7F77F-J||F-JFJ|FJL-JLJF7L7|F-7F-JFJLJ-F7F----7F7LJFJLJL7JF7F7|||F--JFJFJL7|||L-7L7|LJFJ-F--JL---7F--7F-JFJF-JF7LJLLJ||F-J||F-7F7L----7.- +LLF|||L7L-7|||F7|FJL--7F--JL7LJL7||F-JF7F7||L7F--J||-FJF7F7L7|LJLJLJL7F7L7|F7||||F7L7||F-JF7L------7LJF7LJF7L-JF-JL7F7F7||L-7|LJFJ||F7F--J77 +LF-JLJFJF7|||||LJL--7FJL---7L---JLJ|F7|LJLJL-JL-7FJL-JFJ||L-JL-7F7F-7|||FJ||||||LJL-JLJL-7||F----7FL--JL--JL7F7|F--J||||LJF7|L7|L-J|||L--77| +|L-7F7|FJLJ|||L--7F-JL7F---JJF-----J|LJF7F7F----JL----JFJL7F7F7LJLJFJLJ|L7LJ|||L--7F----7LJ|L-7F7L7FF------7LJLJL---JLJL--J|L7L7F77LJ|F7FJ7| +|FLLJ||L--7LJ|FF-JL--7LJF-7|FJF7F7F-JF-JLJLJF7F7F7F--7JL-7LJ|||F-7FJF--JJL7FJ||F--JL---7L--JF7LJL7L7L----7.L7F7F-7F---7F7F7|LL7LJL--7LJ||-J7 +F|JLFJ|FF7L-7L7L-7F--JF7L7|FJFJLJLJF7L-7F-7FJLJLJLJF-JF7FJF-J||L7||FJF77FFJ|FJ|L--7F7F-JF--7||F-7|FJF----JF7LJ|L7|L--7|||||L7FJF7F--J.LLJL|| +LJFFL7|FJL--JFJF-JL7JFJ|FJLJFJJF---JL--J|FJL--7F-7FJF7||L7L--J|.|||L7|L7FJFJL7L7F7LJ|L-7L7FJ||L7|||-L7F7F7|L-7|FJ|F--JLJLJL7||FJ|L-7-|J||--7 +F77F-JLJF-7F7L-JF-7L7|FJL---JF7L-7F-7F7FJL7F7-|L7LJ||LJ|.L7F--JFJLJFJ|FJL7|F7|FJ||LFJF7L7|L7||FJLJL7FJ|||||F-J||FJ|F7JF7F7JLJ||J|F7L--77|.LF +FLL|F7F7L7LJL7F7|FL7LJ|F7F7LFJL7FLJFJ|||F-J|L7L7L7F7L-7|F7|L-7FL7F-JFJL7-||||||FJ|FJFJL-JL7||||F-7FJL-JLJLJL7|LJL7LJL-JLJL--7|L7||L-7FJ7F7L| +|7LLJ||L7|F-7||||F-JF7LJLJL-JF-JF7LL-J|||F7L7L7|FJ|L7FJLJLJF-JF7|L-7L-7|FJLJLJ|L7|L7|FF7-L|LJ|LJFJL7F-7F7F-7L7|F7L-7F7F----7||FJLJ7-LJL7JLFJ +|FFF-J|FLJL7LJ|LJL--JL------7||FJL----J|LJ|FJFJ|L-JFJL--7F7L7FJLJF-J|FJLJF--7FJFJL-JL-JL7FJF-JF-JF-JL7LJ|L7L7L-JL7L|||L---7LJ|L7J-7J.||..FL| +.|JL-7|F---JF7L7F-7F-7F--7.FJL-JF7F--7FJF-JL7|FJF--JLF-7LJ|FJL--7L--7L-7FJF7LJJL--7F7F7FJL7|F7L-7|F-7|F7L-J.L----JFJ||F---JF7L-JL7JF7.FJFF-J +FLFL-||L-7F-JL-JL7LJFJL-7|FJF-7FJ||F-JL7|.F7||L7|F7F7|FJF7||-F7||F7FJF7||FJL7-F7F7LJ||LJ|7||||FFJ|L7|LJL-7F------7L-J|L----JL---7JJ|FF||LJ|J +--LL-LJF7LJF---7FL-7L---JLJFJ-||-LJL7F7||FJ||L7|LJ||||L7||||FJ|FJ|LJFJLJLJF-JFJ|||F7|L7F7FJ||L7L7|FJL7F-7LJF7F-7FJF77|F7F--7F---J|.|F-LJJF-. +|.7JLLFJL7.L--7L---JF7F7F-7L-7|L7F--J||||L7||FJL-7||||FJ||||L7|L7|F7L--7F-JF7L7||||||FJ||L7|L7|.||L-7||FJF-J||F|L-JL7|||L-7|L----777.|-L7F|7 +|-J.|LL-7L7F7FJF7F7FJLJ|L7L7FJ|FJL7F7|||L7||||F7FJLJ|||FJ||L7|L-JLJ|F--JL7FJ|FJ||LJ||L7||FJ|FJL7|L7FJ||L7L-7|L7L----J|||F-J|F7F-7L-7FFF7|.-7 +|7FF77||L7LJLJFJLJ|L7F7|FJFJL7||F-J|||LJFJ||||||L7F-J|||J||FJL-7F7FJL7F-7|L7||FJL77||FJ||L7|L-7||||L7|L7L--JL7L-----7|||L-7|||L7L--J7-J7L7-| +F-||.FF-LL-7F7|F--JFJ|LJL7|F7|LJL-7||L7FL7|LJLJL-JL7FJ|L7||L7F7LJ|L-7|L7LJFJLJ|F7L7LJL-JL7|L--JLJFJFJL7L-7F-7|F7F---J||L--JLJL7L--7J-JF7-7.| +-.LJ7F.LLF7LJ||L7F7L7L7F7|||LJF---J||FJF-J|F7.F----JL7|FJ||FJ||F7L7J|L7L7FJF--J||FJLF----JL7F7LF-JFJF-JF7LJFJLJ|L--7FJL---77|LL---J-|F-J-L7J +LFL-|L7-FJL-7LJFJ||FJFJ|||LJF-JF7F-J|L7L-7LJL7|F-7F7FJ|L7||L7|||L7L7|FJFJL7L-7FJ|L-7|F-7F7FJ|L-JF7L7|F7|L7FJF7FJF--JL7F-7FJ-JJ.||7.FL|7|.FJJ +.|7F|-7JL--7L--JFJ|L7|FJLJF7L--J||F-JFJF-JF--J||FJ||L7L-JLJFJ||L7L-JLJFJF-JF7LJJL7FJLJFJ||L7L--7||FJLJ|L7|L-J|L7L---7||LLJJ7JFFJ|L.F-L|-LJL. +..--7.J|F--JF-7FJFJFJ||F--J|F---J|L7FJ7L-7L-7|LJL7|L7L---7FJFJL7L----7L7L--JL--7J||F7FJFJ|FJF--J|LJF-7|FJ|F--JFL7F--J|L--7J||L7.|JFL7.LJ.FF- +77.J.L|7L7F7|-LJ|L7|-LJL--7LJF7F-JFJ|JF--JF7L7LF-J|-L7F--JL7|F7L-7F7FJJL7F-7F-7|FJLJ|L7|FJL7L7F7L--JFJ|L7|L-7.F7|L--7|F--JJL--|-|FF-F|J.F|J7 +F7.|7.F--J|||-L7F7LJF-----JF7||L7-L7|FJF-7|L7|FJF7L-7|L--7J|LJ|F-J|LJF-7LJFJL7LJL7F7|LLJL7FJFJ||F7F-J.L7||F7L-J|L7F-J|L7L|.LJ-7.F|J-|J|7FJ7| +LJ.FF-L--7|LJ..FJL--JF7F7F7||||FJF-J|L7L7||.||L7||F-J|F-7|FJF-JL-7L-7L7L--JF7L--7|||L7-F-J|.L7||||L7F7FJ|LJ|F-7L7|L7-L7L-7-|.F|-JJFFJF-L--J- +FFF|.FJJJLJ.|7FL-7F7FJ||||||LJ|L7L--J-|FJ|L7||.||||F-JL7||L7|.F7-|F7L7L--7FJ|F-7|LJ|FJFJF7L-7|||||FJ||L7L7-|L7L7|L7L-7|F-J||7-L.J-L|.|.L|-|7 +F|LJ.L.LFL7-JJ|||LJ|L7||LJLJF-JFJF----JL7L-J|L7||LJ|F7FJLJFJL-J|FJ|L7L7F-JL7|L7|L-7||JL7||F7||||||L-J|-L7L7|FJ-LJFJF-JLJJJ|LJ-L7JF.L7-.FJFF- +..7L-7F7LLF-|FFL7J.L7|||F--7L7FJ7L7F7F-7L7F-JFJLJF-J||L-7FJF--7|L7|LL7|L--7|L7|L-7|||F-J|LJ||LJ||L7F7L-7L-JLJF7F7L7L---7J.|F|7.7.LF-JJFLF7J. +L-F7F7-|---J.F.LJ.F.LJLJL-7L-J|F-7LJ|L7|FJL7FJ|F7L-7|L7FJ|FJF-J|FJL-7||F--J|FJL77LJLJ|F7L-7LJF-JL7|||F7L-----J||L-JF--7L--7JLFLL7J.F|..L--J. +LLLL|J-J-7L--J-L--L-LJLF--JF7FJL7|F7|FJ||F7|L-7||F-J|-|L7|L7L--J|F7FJLJL7F7||F7L7F---J|L-7L7JL7F-J||||L---7F7FJ|F-7L-7|F--J7L|L-F--J---7LJ.| +F-JL|L7LJJ..J..F..|J|JLL---J||F-JLJLJ|FJLJ||F-J|LJF7L7L7|L7L---7|||L--7FJ|||||L7|L-7F-JF7L7L-7|L7FJ||L---7LJLJL|L7|F7|LJ7FL7.-|.7FJJJ.|77|LJ +|.|.J-F7|LF7.FFJ7FJ|.F-F7F--J|L7F-7F7|L7F7||L7JL-7||FJLLJ.|F7F7|LJ|F-7|L-J|||L7||F-JL-7|L-JF-JL-JL7||F-7FJF7LF7|FJ||LJ|L77LL7.LJJLF77-L7-7LF +7F777LF-7--7L-|7|7|-FF7||L7F7L7|L7|||L7|||||FJF--J||L----7|||||L7FJL7LJ|F-J||FJ||L7F7FJL7F7L-----7|||L7||7|L-J|||7LJJF-FJFF.|-LL7-7JFJ|.F||J +|J|L7FLL77-|L||L7LL--F7||.|||FJL7|||L7|||||||FJF--J|F--7FJ|||||FJ|F7L--7|F7|||FJ|FJ||L7J|||F-7F7FJ||L7||L-JF7FJ|L-77|F|LLFJ-F.LL.F77|.LF7L7. +|F-.7J-LL|LJ7F|-J7|7L|LJL-J|LJF-J||L7LJ||||||L7L7F-JL7FJL7||LJLJFJ||F7FJLJ||LJL7||FJ|FJFJ||L7||LJJ||-LJ|F7FJ||7L-7|---L--L77.F.LF7L7JL-F7-|7 +J7-7|LF.JJ7F7-L7L77-FJF7F-7L-7|F7||FJF-J|||||JL-JL-7FJL--J|L---7L-J|||L7J.LJF--J||L7LJLL7||FJ|L-7FLJ.F-J||L7|L-7LLJ|LF7|L-JF-|.||J|L7.|L7FL| +LF7|J.|7JLF|J.||7|J7L7|||F|F-JLJLJ|L7L-7|LJLJ|LF---JL--7F-JF7F7L-7FJ|L7L7JJLL-7FJ|FJF---J||L7|F7L-7F-JF7|L7||F7|-JLFLJ-J7.FL-|-JJ-7-|.L|FJ7| +F7J7-LF7L-F|FF-J-F.-L|||L7LJJJ.|JLL7|F-JL7JLL-FL---7F--J|F7|||L7FJ|FJL|FJJJLJFJ|L||JL7F-7||FJ|||F-JL-7|LJFJ|||||7||.LL.||.FFLJJ|F-----JJ|-7J +-L---JF7|.LJ--JL|..LL||L-JJJ...|-|FLJ|F7FJ.|L-F7F--JL--7||||LJ-||LLJ|.LJJJ-F-L7|FJ|-L||FJ|LJL|||L-7-LLJJLL7|LJLJ7FLJ7|F-J77J7|.LL7|7L|.|LL|| +|FFL-7|.F--7L-J7.F7.LLJ-LJ|F|F7|F-F--J|||7L-FFJLJF7F-7FJ||LJJ|JLJ-|-L.||-F.|J7|||FJ-FLJ|FJF--J||F-J-|J||LFJL7J|-77JL|FF7JJL7F|-.|-J7JL7L-777 +L|J|7|FJ7.F|F7FJF7J|.L|.LF7|||||JFL-7FJLJJJ-FL7F7|||FJL7|L7JJLFL|L7J.FJ.7LFL7-LJLJ.|.|LLJ|L7F7||L77FL-|-.L-7|-7|L-7-|7L7L-|-L7|7F.FL7L7FJ|-7 +.JJ|FL7LL7-J7JJ.L-.|77F7FLFF-LLJ.F||LJJ.|-F7JJ||||LJL7FJL-JJ.-FLF-L-JJ|7L7L7L.|.LJFJ7LFJ-FJLJ|||FJ-7-F|JF||LJ-.F|J|LF|F|7-L7.L-L7.|.L-JJ.|J| +F|7LLJJJL|FL|.|-7FF||||LJ7JF-L--7FJL7LLF|7LFJFLJ|L--7||JJ||.7.FJLLJ|.--JFJ.JF-J-7FL7|FL--F-7L||||J.|.F7LFLLJJ7-7|7|7LLJ.---|-7J.L7F|7F|.L7.J +-L-|.FF7.-JJ|7.FFJ-LL7J|.F-JJL--F7JFJJ7|.|F|F7JF|F7FJLJF-LJ.7-J7FJ.7J-JF7JF-J||LFLJLL7L|7J.L-LJ||--JJ7--LL7||F--|J7J7.L-7|7LF7.F.F.JF|J7LJF| +L-77.F7-JJ.LL---F77JLJF7-|.|LFJ.||-FJJ|JF|-7||LFJ|||7.|--|F7L-J-|FLJ|FF||FLL-FJ.|JJ|L7-777FL7|.LJ7.|7.|-LLFFJ|.||FLJFF7|7L--|.|L-|7FJJFJF-L7 +L-LJF||-JF77-|JJ.LJL-JLJ.FJJ7|-|L|FF--F-FJLLF-.L-JLJJ.FJ.|JL7F-7FJF-|7F.J-L|||F7JF77FJ-LF7|JF7.|JL--7.F7-F|JJL--|7.F|LLJ-J.||FL-|.J-J|L.|FF| +LFL||LLJL7|||J.|FL-F-FJ|-|-|-J-L7.-7.FL7L--777FJ|JLJ.FL---J7.L.FF--7L7L|.LL--||-F-JJ7FLLF-|.FL-|.7..|FFJF7J.|L|-77F-|L7F7LF-7J|.J77JF7|7.L7J +FF-L|-J7..FFJ77F|J|L7LFLJLLF-77.F|JJFL|JFJ.J|FJ7|.|LFJJ77F7-J-7JL--|7|J|F-.|7L|L-7|L-77FJ-|F||.L-.--LLJ-.J.F|.--LFJ.|J|J|..-J7F7JF7--.FL7-|. +FL77J|J|FFL7|J7J|.-LJ7.L77L|L|F-7.|JF-|7L77|||L7|F|JL7JLJ7.7FF.F7J.F-JF7|.F-LJL7JJL--77L---7LF-|..|.J.L|77.|J7F77JFJ|.|F7.|-L|FJ7L7FLFJ.L.-J +FJLJ--JLL|-|JJL-LJL-JL7-LLJLFL.F-7LFJ.FJLF7-J--JJJJ.L-F-JL-|JJ-FJ-L7J-|L--LJJLLL-JJL-L--L|JJLL--F-JJL7J|--|7-J-L7LF-L7JL7-F-FJLJ-LJJJLL7--JJ diff --git a/data/11_2020.txt b/data/11_2020.txt new file mode 100644 index 0000000..9a41582 --- /dev/null +++ b/data/11_2020.txt @@ -0,0 +1,95 @@ +.LLLL.L.LLLL.LL.LLL.L.LLLLLLL.LLLLL.LLLLLLLLLLLLL.LLLL.LLL.LLLLL.LLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLL..LLLL.LLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLLLLLLL.LL.LLLLL.LLLL.L.LLLL.LLLLLL.L.LLL.LL..LLL.LLLLLLLLLLLLLLLLLL.L.LLL.LLLLLLL.LLLLL +LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLL.L.LLL +LL.LLLL.LLLLLLL.L.LLL.LLLLLL.L.LL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LL.LL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLLL.LLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL.LLLL.L.LLLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LL.L.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLL. +LLLLLLLLLLLLLLL.LLLLLLLLLLL..LLLL.LLLLLLLL.LLLLLL.LL.L.LLLLL.LLL.LLLLLLLLLLLLL.LLLLLLL.L.LLLL +....L..L.....L......LL...L.LL.......L...L.L......L.L.LLL....L..L....L.LL..LLL....LL..L..L...L +LLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLLL.LLLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLL.LLL.LLLLL.LLLLLLLLLLLL. +LLLLLLL.LLLLLLL.LLLLLLLLLL.L.LLLL.LLLLL.LL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLLL.LL.LL.LLLLLLLL.LLLLLLLLLLLLLLLLLL..LLLL.LLLLLLLLLLLLL +LLLL.LL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLL.L.LLL +LLLLLLL..LLLLLL.LLLLL..LLLLL.LLLL.LLLLLLLLLLL.LLL.LLL..LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL..LLLL +...L...L..LL....L.......L...L.......LL........LL.....LL....L.....LL............L..LL....L.... +LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLL..LLLLLLLL.LLLLLLLL.LLL.L.LLLLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.L.LLLLLLLLLLL.LLLLL.LLLLLLL..LLLLLL.LLLLLL.LLLLLLLLLLLLL.L.LLLLL +LLLLLLL.LLLLLLLLLL.L..LLLLLLLLLLL.L.L.LLLLLLLLLLL.LLLL.LLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLLLLLL.L.LLLL.LLLLLLLLL.LLLLLLLL..LLLL.LLLLLLLLLLLLL +LLLLLLLLLLLL.LL.LLLLL.LLLLLL.LLLLLLLLLLLLL..LLLLL.LLLL.LLLLL.LLL.LLLLLLLL.LL.LLLLLLLLLL...LLL +LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.L.LL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LL.LLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLL.L.LLLLL +...........LL.....L.LL....L....L..LL..LL.L.LLLL........LL.L.LL..L......L...LL...LL..L.L...... +LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLL.LL.LLLLLL.LLLL.LLL.LLLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLL +LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLL.L.LLLLLLLLLLLLL.LLLLL +LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLL..LLLLL.LLLLLLLLLLLLL +LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLL.L..LLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLL..LLLLLLL.LLLLL.LLLLLL.LLLL.LLLL.LLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLL.LLLLL +LL.LL...L....LLL.L.L....LL.L.....L...LLL..LL.......L.......L.......L..L......LLL..L.LL..LL..L +LLLL.LL.LLLLL.L.LLLLLLLLLLLL.LLLL..LLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LL.LLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLLLLLL.LLLLLLLL.LLLL +LLLLL.L.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLL..LLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLL +L.LLLLLLLLLLLLL..LLLLLLLLLLL..LLL.LLLLLLLL.LLLLL...LLL.LLLLLLLLL.LLLLLLLLLLL.LL.LLLLLLLLLLLLL +.L......LL...L.L....L...L...........L.LL...L.LLLLL.....LL....L......L.LL..L..L.....L...L.L.LL +LLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLL.LLLL.LLL.LLLLLL.LLL..LLLLLLLLL.LLLLLLLLLLLLLL..LLLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLL.LLLLLLLLLL.LLLLL.LLLLLLLL.LLLLL.LLLLL.L.LLLLL +LLLLLLLLLLLLLLL.LLLLL.LLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLL.LL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL +LLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLL.L.LLLLL.LLL.LLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL +LL.L.LLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLL +LLLL.LLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.L.LLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLL.LLLLLL.LL.LL.LLLLLLLLLLLLL +..L....L.L.LL.L.........L...LL.L....LL......LL..LL.L.L.....L..L..L..L..LL.L...L..L....L...... +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLL..LLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLLLLL.LL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.L.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLL.L.LLLL.L.LLLLLLLLLLL..LLLLLLLLLL.LL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLL.LL.LLLLLLLL..L.LL.LLLLLLLLLLLLL +.L......L....L.L.L...LLLL......LL...LL...L...L......L..L...........L......L.......L....L.L... +LL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LL.LLLLL.LLLLLLLLLLL.LLL.LLLLL.LLLLLLLL.LLLLL.LL.LLLL.LLLLL +L.LLLLL.LLLLLLL.LLLLL.LLLLLL.LL.LLLLLLLLLL.L.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLL.LLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLL.LLLLL +.LLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.L.LLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLLLLLLL.L.LLLL.LLLLLLLLLLL.LLL.LLLL.LLL.LLLLL.LLL.LLLLLLLLLL.LLLLLLL..LLLL +.L.....L...L....L.LL............LL..L.LL.....LLL..L.............L...........L...L.L.L........ +LLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLL.LLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL..LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLL +LL.LLLLLLLLLLLL.LLLLL.LLL.LL.LLL..LLLLLLLL.L.LLLL.LLLLLLLLLLLLLL.LLLLLL.L.LLLLLLLLLLLL.L.LLLL +LLL.LLL.LLLLLLLLLLLL..LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLL.L.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLL.LL.L.LLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLL +LLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLL..LLLL..LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLL.LL.LL +.LLLLLL.LL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLL.LLL.LLLLLLL.LLLLL +LL.L.L...L...L...LLL.......LLL..L.L...L.......L......L.LL.......L..LLL.L..L.L.LL..L..L.L.LLL. +LLLLLLL.LLLLLL..LLLLL.LLLLLL.LLLL.LLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLL +LLLLLLLLLLLLLLL.LL.LL.LLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LLLL.LLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLL +LLLLLLL.LL.LLLL..LLL.LLLLLLLL.L.L.LLLLLLLL.LLLLLL.L.LL.LLLLLL.LL.LLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLL.LL.LLLLLLLLL.LLL.LLLL. +L.LLLLLLLLLLLLLLLLLLL.LLLL.L.LLLL.L.LLLL.L.LLLLLL.LLLL.LLLLLL.L.LLLLLLLLLLLLLLLLLLLLLLL.LL.LL +.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLL.LLL.LLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLL.L.LLLLL +LL....L....L..L.L.....L.L...L...L.....L.....L....LLL..L.L..L..L.LL.L...L.LLL.......L....L.LL. +LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL.LLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLL.LLLLLLL.LLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.L..LLLLLLLLLL.LLLLL +LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.L.LLL.LLLLLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLL.LLLLLL.LLLL.LLLLLL.LLLLLLLLLLL.LLLLL.LLLLLLLLLLLLL +LLLL.LL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLL.L.LLLLLLLL.LLLLL.LLLLLLL.LLLLL +LLLLLLL.LLLLLL.LLLLLL.LLLLLLLLLL..LLLLLLLL.LLLLLL.LLLL.LLL.LLLLL.LLLLLLLLLLLLLL.LLL.LLL.LLLLL +LLLLLLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLL..LLL.LLLLLL.LL.L.LLL.LLLLLLLLL..LLL.LLLLL.LLLLLLL.LLLLL +..L..L..L.L.......L..LL...L.L..LL...L............L.L...L.....L...LL..LL......L.L...L.....L..L +LLLLL.LLLLLLLLLLLLLLL.LLLLLL.LLLL.LL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL +L.LLLLL.LLLLLLL.LLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.L.LLL.LL.LLL.LLLLLL +LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.L.L.LLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL.L.LLL.LLL.LL..LLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLL.LLLL.LLLL.LLLLLLLL.LLLLL.LLL..LL.LLLLL +LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL.LL +LLLLLL.LLLLLLLL.LLL...LLLLLL.LLLL.LLLLLLLL.LLLLLL.LLLLLLLLLL.L.L.LLLLLLLL.LLLLL.LLLLLLL.L.LL. +LL.LL.L.LLLLLLLLLLLLL.L.LLLLLLLLLLLLLLLLLL.LLLLLL..LLL.LLLLLLLLLLLLLLLLL..LLLLL.LLLLLLL.LLLLL +LLLLLLLLLLLLLLL.LLL.LL.LLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LL.L.LLLLLLLLLLLLL +LLLLLLL.LLLL.LL.LLLLL.LLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLLLL..LLLLLLLLL.LLLLLLLLLLLL.LLLLL +L.LLLLL.LLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLL.L.LLLLLLLLLLLLL..LLLL +LLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLLLLL..LL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLLL diff --git a/data/11_2021.txt b/data/11_2021.txt new file mode 100644 index 0000000..e1071b8 --- /dev/null +++ b/data/11_2021.txt @@ -0,0 +1,10 @@ +7147713556 +6167733555 +5183482118 +3885424521 +7533644611 +3877764863 +7636874333 +8687188533 +7467115265 +1626573134 diff --git a/data/11_2022.txt b/data/11_2022.txt new file mode 100644 index 0000000..41ef4ec --- /dev/null +++ b/data/11_2022.txt @@ -0,0 +1,55 @@ +Monkey 0: + Starting items: 98, 70, 75, 80, 84, 89, 55, 98 + Operation: new = old * 2 + Test: divisible by 11 + If true: throw to monkey 1 + If false: throw to monkey 4 + +Monkey 1: + Starting items: 59 + Operation: new = old * old + Test: divisible by 19 + If true: throw to monkey 7 + If false: throw to monkey 3 + +Monkey 2: + Starting items: 77, 95, 54, 65, 89 + Operation: new = old + 6 + Test: divisible by 7 + If true: throw to monkey 0 + If false: throw to monkey 5 + +Monkey 3: + Starting items: 71, 64, 75 + Operation: new = old + 2 + Test: divisible by 17 + If true: throw to monkey 6 + If false: throw to monkey 2 + +Monkey 4: + Starting items: 74, 55, 87, 98 + Operation: new = old * 11 + Test: divisible by 3 + If true: throw to monkey 1 + If false: throw to monkey 7 + +Monkey 5: + Starting items: 90, 98, 85, 52, 91, 60 + Operation: new = old + 7 + Test: divisible by 5 + If true: throw to monkey 0 + If false: throw to monkey 4 + +Monkey 6: + Starting items: 99, 51 + Operation: new = old + 1 + Test: divisible by 13 + If true: throw to monkey 5 + If false: throw to monkey 2 + +Monkey 7: + Starting items: 98, 94, 59, 76, 51, 65, 75 + Operation: new = old + 5 + Test: divisible by 2 + If true: throw to monkey 3 + If false: throw to monkey 6 diff --git a/data/11_2023.txt b/data/11_2023.txt new file mode 100644 index 0000000..51d65a3 --- /dev/null +++ b/data/11_2023.txt @@ -0,0 +1,140 @@ +....................#........#...............................#............................................................#................# +............#...................................#........................................#........#..................#...........#.......... +.#.......................#.................................................................................................................. +..........................................................#.................................................#............................... +...................................#..........................................#............................................................. +...........................................#......................#......................................................................... +......................#..................................................................................................................... +..................................................#.........#.........#.......................#............................#.......#......#. +......#.........#............#.............................................#................................................................ +.#................................#.....................#.......................#........................#.................................. +..........................................#................................................................................................. +.......................................................................................#......................#............................. +.....................................................................#..............................................#.....#................. +........#.................#................................................................................................................. +....................................#.................#........................................................................#............ +.............#...........................#.......................#................#..................#.................................#.... +#...........................................................................#............................................................... +......................#......#.............................................................................................................. +.................................................#........................................................#................................. +.....................................#...................................................#........................#......................... +........#................#................................#................................................................................. +...................#................................................................#........#...............#..............#............... +.......................................................................................................#..........................#......... +..................................#.......#.........................................................................#...................#... +.............#.................................#........................#................................................................... +.....................#..................................#......................................#................#........................... +...............................................................#.....................#..................................#................... +#.........#...................#................................................#........................#................................... +...................................#..................................#............................................................#........ +............................................#.........#...........................................#......................................... +...#.............................................#........................................................................#................. +........#..........#........#.................................................................................#.................#......#.... +..............................................................#..................#.......................................................... +.....................................................................#...................................................................... +.................................................................................................................#.......................... +...............#...............................#....................................................#....................................... +...........................#................................................................#........................................#...... +...........#.....................#..................#............#...........#.......#.....................#................................ +............................................................................................................................................ +...............................................................................................................................#.........#.. +.......................................................................................................................#.................... +........#................#.....#.....#.................#.........................................#.......................................... +..................................................#...................................#..................................................... +....#...........#.............................................................#..............#...............#...................#.......... +............................................#...............#.........................................................................#..... +....................#....................................................................................................................... +#......#..........................#..................#...............#.....#................................................................ +...........................................................................................#......................#........................# +...........#................................................................................................................................ +...............................................................................#...................#........................................ +.......................#..............#......#..............#...........................#..................................#................ +............................................................................................................................................ +...................#...........#.................................................................................................#.......... +.......................................................................................................#.....#.............................. +........................................................#...........................#................................#...................... +...............#...................................................#..........#...........#................................................. +...........................................#......................................................#......................................... +.........#.......................................#.......................................................................................... +..........................#...............................................................................#........#......................#. +...........................................................#...............#...........#......#..........................#.................. +.................#......................#.............................#........................................................#............ +.............................................................................................................#.............................. +...............................#...............................................#............................................................ +............................................#.........#.....................................................................#............... +...#......................#........#.............................................................#..................#.....................#. +................................................#..............#.......................#..............#..................................... +............................................................................................................................................ +#........................................................................................................................................... +......#..............#....................................#........#................................................................#....... +..............#.............#.........#..........................................#.......................................................... +..................................................................................................#............................#..........#. +...........................................#...................#.......................................#.....#.............................. +.................................#....................#................................#.................................................... +............................................................................................................................................ +........................................................................#...................................................#............... +..#..............................................#...........................................#...................#.....#.............#...... +......................#..................................................................................................................... +...............................#......#..........................................................#.......#.....................#............ +..........#.....#.................................................#.............#........................................................... +............................................................................................................................................ +............................#.................................#.........#................................................................... +.......................................................#................................#...........................#....................... +...........................................................................................................................#.........#...... +...................#..............................#..............................#...............#.........#................................ +..........#..............#.....................................................................................................#............ +............................................................................................................................................ +................#.........................................................#...............................................................#. +.................................#.....................................................................#.................................... +.....#................................................#.....................................#............................................... +.............................#...............................#................#..............................#.............................. +......................................................................................#...............................#........#............ +............................................................................................................................................ +...........#..........#..............................................#..............................................................#....... +................................................#..............#...................................................#........................ +......#...........#.........................................................#...............#............................................... +...............................#.....................................................#...............#...................................#.. +..............#.......................#.....................#............................................................................... +.........................#........................#...........................................................................#......#...... +.........................................................................................................#.................................. +............................................................................................................................................ +...#......................................................#................................................................................. +........................................#.................................................#........#..............#.....#................... +....................#................................#..........................#........................................................... +#.................................#..................................................#.........#.......#.............................#...... +...........#.........................................................#.......................................................#.............. +......#......................#.................#.............................#.............................................................. +........................................................#.........................................#............#.................#.......... +..................#....................#.....................................................#.............................................. +..........................#......................................................#......#................................#.................. +................................#............#.........................................................#.................................#.. +............................................................................................................................................ +...#........................................................#............................................................................... +..............#.....................................#................................................................................#...... +....................................................................................................................#...........#........... +...................#.........................................................................#.............................................. +.............................#........#..................................................................................................... +................................................................#................................................#.......................... +..#..........#...................................#..............................#........#................#................................. +..................................#........................................................................................#................ +.....................#....................................#....................................#.....#...................................... +........#.......#..............................................................................................#...................#........ +...........................#..............#..........#............#......................................................................#.. +.#.......................................................................................................................................... +............#....................................#.....................................................................#.................... +.............................................................#.............#.........#.....#........#....................................... +......#...........................#.......................................................................#................................. +........................................................#..................................................................#................ +#..........................#.............#.........................#..........#...................................#......................... +....................#....................................................................#.............#..........................#.....#... +............................................................................................................................................ +.....................................................#..................#................................................#.................. +...#....................#......#............................#.....................#.................#....................................... +............#...................................#........................................................................................... +............................................................................................#............................................... +...................#...................................................................#..................#.................#.........#..... +#.................................#........#..........#..........................................#.......................................... +.....#...................................................................................................................................... +.......................#................................................#........................................#.......................... +.................................................................#...........#............#..........#...................................#.. +..............#......................#.......#.........................................................................#.................... diff --git a/data/12_2020.txt b/data/12_2020.txt new file mode 100644 index 0000000..16cc747 --- /dev/null +++ b/data/12_2020.txt @@ -0,0 +1,760 @@ +S3 +R90 +E1 +S3 +E5 +S4 +E5 +N3 +W1 +N3 +F91 +W1 +F49 +W1 +F7 +R90 +F13 +S1 +F87 +L90 +N5 +R90 +E1 +F69 +N4 +F80 +E2 +F15 +N5 +F15 +N4 +E3 +N2 +R90 +E4 +N5 +F71 +W3 +S4 +R270 +F39 +N1 +F100 +R90 +F52 +S2 +W3 +L90 +S1 +F79 +E5 +R90 +F94 +E3 +F87 +N5 +R90 +F50 +W5 +N4 +W4 +S1 +W2 +R180 +W4 +F6 +W2 +N1 +W4 +F89 +L90 +E3 +R90 +F73 +W1 +N4 +F77 +E4 +F42 +N3 +E5 +R180 +F51 +E2 +F22 +N4 +F95 +L90 +E2 +F41 +L90 +F61 +L180 +E1 +R90 +N2 +F32 +E5 +L90 +L180 +E3 +F86 +S3 +L180 +E3 +F76 +W1 +F62 +S2 +F23 +R90 +F60 +E2 +F47 +L90 +S1 +L270 +N3 +N2 +W1 +S4 +S1 +E5 +F43 +S4 +R90 +S5 +N3 +F100 +W5 +R90 +S2 +F30 +E1 +R180 +R90 +F1 +R90 +F32 +N1 +W3 +R180 +F9 +N1 +L90 +E1 +R90 +W5 +L180 +N4 +F57 +F53 +N4 +E5 +R90 +E1 +F32 +R90 +E5 +L180 +E1 +L90 +W4 +S2 +F77 +N2 +R90 +S2 +F68 +S4 +R90 +E3 +F66 +R90 +F85 +S1 +F47 +F25 +R90 +N1 +F65 +R270 +L270 +F90 +S3 +F33 +W5 +N1 +F19 +E1 +L90 +F72 +L90 +F67 +E3 +R90 +E4 +R90 +F6 +S2 +W5 +F43 +W1 +F3 +L270 +N3 +L90 +E5 +N3 +F29 +E4 +R90 +E4 +L90 +F32 +E5 +F52 +N4 +L270 +N1 +W5 +R90 +W5 +N5 +E3 +N5 +W2 +L180 +N2 +E1 +S4 +N1 +W4 +F8 +N2 +W2 +F80 +N3 +F98 +L90 +W3 +L90 +S2 +L90 +F98 +L180 +F12 +E3 +N2 +F60 +N5 +W1 +F54 +W3 +F74 +E4 +S3 +R90 +F94 +L90 +S2 +L90 +N4 +E2 +F83 +R90 +N2 +E1 +F86 +E5 +N1 +R90 +E5 +R180 +F72 +L180 +W5 +L90 +E4 +L90 +E1 +F26 +W4 +F4 +L90 +W4 +L90 +E5 +F92 +R90 +N1 +L90 +N5 +F21 +L90 +L180 +W3 +F76 +L90 +F14 +L90 +E5 +F50 +S5 +F18 +W5 +F27 +S5 +F52 +L180 +N3 +L180 +W2 +N5 +W3 +S2 +F48 +W2 +F57 +R90 +E3 +R180 +E4 +F42 +W2 +F21 +E2 +S4 +E2 +N4 +W4 +S4 +E3 +F23 +S1 +W5 +F70 +S5 +F77 +W5 +S3 +L180 +E4 +L90 +W2 +L90 +E1 +F15 +S4 +F38 +N1 +L90 +F27 +N1 +F34 +L90 +E1 +S2 +E2 +L90 +N3 +F71 +W4 +S4 +F14 +R90 +F58 +R90 +F8 +R90 +E1 +L270 +F12 +E2 +L90 +F9 +R90 +S5 +F48 +S5 +L90 +E1 +F7 +W2 +F97 +S1 +R90 +N5 +E2 +N4 +F20 +R90 +N1 +R90 +F84 +R90 +E3 +S3 +F34 +S3 +F41 +R90 +F15 +L180 +N1 +F4 +L180 +W3 +F50 +S4 +W3 +F45 +W1 +S4 +E2 +L90 +E5 +R270 +S3 +L90 +S4 +F59 +W4 +R180 +F10 +E1 +R90 +S4 +W5 +L90 +F45 +S4 +F92 +R90 +E5 +F36 +S1 +L90 +W1 +S5 +F30 +W5 +F80 +N4 +E2 +R90 +F98 +F7 +S5 +W2 +F1 +N3 +L180 +N2 +F49 +E3 +S5 +S5 +W4 +E5 +E3 +S1 +W1 +F10 +L90 +F40 +E4 +N4 +F25 +R180 +W5 +N5 +W1 +S4 +L90 +F79 +L180 +S1 +F100 +S1 +F34 +S2 +E4 +L90 +N2 +F36 +E1 +N3 +L90 +F42 +R90 +W5 +L270 +F45 +E4 +F95 +N5 +F22 +L90 +F67 +R180 +S5 +E5 +R90 +N1 +R180 +W3 +F80 +E4 +F19 +W5 +N4 +R90 +N5 +F28 +F86 +R180 +R90 +S2 +E1 +N5 +W1 +S3 +W5 +S3 +F51 +W5 +S3 +R90 +R90 +F35 +W2 +F51 +N1 +R180 +S2 +F37 +R270 +W2 +S2 +L90 +L180 +E4 +N1 +L180 +E2 +S1 +F38 +R90 +N2 +W1 +R90 +L180 +E4 +S3 +R180 +E3 +S4 +F65 +E2 +R90 +N1 +E4 +L180 +E5 +R90 +W2 +F22 +W5 +N1 +R90 +E1 +F34 +S1 +R90 +N3 +F62 +F48 +E5 +F85 +E5 +S4 +R90 +E3 +R90 +E1 +F54 +S4 +W3 +W2 +R90 +N5 +W4 +N3 +R180 +E1 +F88 +W5 +F49 +E5 +N4 +W3 +F81 +R90 +F58 +N4 +L90 +F88 +N3 +F87 +E2 +N4 +L90 +N5 +N1 +F87 +E1 +L90 +N3 +W1 +F13 +F3 +N4 +L90 +E3 +S1 +F35 +S4 +F1 +L90 +E1 +N4 +R90 +F60 +N2 +W1 +N1 +R180 +L180 +S3 +R90 +E4 +R180 +W3 +N1 +W1 +F3 +L90 +F8 +W1 +R90 +S1 +F84 +L90 +S3 +F63 +F11 +E1 +F38 +R90 +S3 +R270 +F50 +R90 +F15 +L270 +E1 +S1 +E5 +L180 +N4 +L90 +F37 +N3 +E5 +F13 +L180 +E5 +F88 +E2 +F9 +W3 +F6 +N5 +F75 +N5 +W5 +S5 +E3 +R90 +N5 +E4 +N3 +L180 +F1 +R90 +S3 +E1 +S4 +E5 +N3 +R270 +E3 +L90 +N3 +S2 +L90 +S5 +F90 +R90 +N1 +R90 +F50 +F33 +W3 +F23 +E3 +R90 +F81 +E1 +N3 +R180 +F16 +S2 +F35 +R90 +W5 +F31 +R90 +S2 +L180 +E5 +R180 +F89 +N1 +L90 +F68 +W3 +R90 +W3 +N1 +L90 +N4 +L180 +S5 +R180 +N4 +R90 +W5 +N5 +L180 +N2 +E4 +N1 +W4 +F98 +S5 +F70 +W5 +F76 diff --git a/data/12_2021.txt b/data/12_2021.txt new file mode 100644 index 0000000..52cfe6a --- /dev/null +++ b/data/12_2021.txt @@ -0,0 +1,24 @@ +EG-bj +LN-end +bj-LN +yv-start +iw-ch +ch-LN +EG-bn +OF-iw +LN-yv +iw-TQ +iw-start +TQ-ch +EG-end +bj-OF +OF-end +TQ-start +TQ-bj +iw-LN +EG-ch +yv-iw +KW-bj +OF-ch +bj-ch +yv-TQ diff --git a/data/12_2022.txt b/data/12_2022.txt new file mode 100644 index 0000000..f8f3df1 --- /dev/null +++ b/data/12_2022.txt @@ -0,0 +1,41 @@ +abaaaaaccccccccaaaaaaaaaaccccaaaaaaaaaccccaacccccccccccccccccccccaaaaaaaaaaaccaaaaaaaaaccccccccccaaaaaaaacaaaaaaccccccccccccccccccccccccccccccccccccccccccaaaaa +abaaaaaaaccccccaaaaaaaaaacccccaaaaaacccccaaaacccccccccccccaacccccaaaaaaaaaaaacaaaaaaaaacccccccccaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccaaaa +abacaaaaaccccccccaaaaaacccccccaaaaaacccccaaaacccccccccccccaacccaaaaaaaaaaaaaacaaaaaaaaccccccccccaaaaaaaaaaaaaaaaccccccccccccccccccccccccccaaaccccccccccccccaaaa +abccaacccccccccccaaaaaaccccccaaaaaaacccccaaaacccaacccccaaaaaaaaaaaaaaaaaaaaacaaaaaaaccccccccccccacaaaaaccaaaaaaaccccccccccccccccccccccccccaaccccccccccccccaaaaa +abcaaccccccccaaaaaaaaaaccccccaaacaaaccccccccccccaaaaaccaaaaaaaaaaaaaaaaaaaaaccaccaaacccccccccccccccaaaacccaaaaaaccccccccccccccccccccccccccaaacccccccccccccaaaca +abcccccccccccaaaaaaaaaaaaacccccccccacccccccccccaaaaacccccaaaacaaaaaaaaaaaaccccaaaaaaccccccccaaacccccaaccccaacccccccccccccccccccccccaaaaccaaaccccccccccccccccccc +abccccccccccaaaaaaccccaaaacccccccccccccccccccccaaaaaaccccaaaaaaaaaaaaaacaaacccaaaaaaaacccccaaaaaacccccccccccccccccccccccccccccccccccaaaaaaaaacccccccccccccccccc +abacccccccccaaaaaacccccaaacaaacccccccccacccaaccccaaaacccaaacaaaaaaaaaaacccccccaaaaaaaacccccaaaaaaccccccccccccccccccccccccccccccccjjjjjjjaaaaaaaaaccccaacccccccc +abaccccccccccaaaaaccaaaaaaaaaaccaccccccaacaaacccaaccccccaacccaaaaaaaaaaacccccccaaaaaaacccccaaaaaccccccccccccccccccccccccccccccccijjjjjjjjjhhhhhhhhhcaaaaaaccccc +abaacccccccccaaaccccaaaaaaaaaaaaaccccccaaaaacccccccccccccccccccccaaaaaaacccccccaaaaaccccccccaaaaacccccccccccccccaaaaccccccccccciijjjjjjjjjhhhhhhhhhhcaaaaaccccc +abaaccccccccccccccccccaaaaaacaaaaaacccccaaaaaacccccccccccaaacccccaaaccccccccccaaaaaaccccccccaacaacccccccccccccccaaaaccccccccccciiioooooojjhhhhpphhhhhaaaaaccccc +abacccccccccccccccccccaaaaaaccaaaaacccaaaaaaaacccccccccccaaaaaaccaacccccccccccccccaaccccccccacccccccccccccccccccaaaaccccccccccciiioooooooooopppppphiiaaaaaacccc +abaccccccccccaaaaaccccaaaaaaaaaaaaccccaaaaaaaacccccccccaaaaaaaaccccccccccccaaaaccccccccccccaaacccccccccccccccccccaaccccccccccciiinnoouuooooopppppppiiaaaaaacccc +abcccccccccccaaaaaccccaaacaaaaccaacccccccaaccccccccccccaaaaaaaaccccccccccccaaaaccccccccaaacaaacccccccccccccccccccccccccccccccciiinnotuuuuoopuuuupppiiaaacaccccc +abccccccccccaaaaaaccccaccccccccccccccccccaaccccccccccccaaaaaaacccccccaaacccaaaaccccccccaaaaaaaaaacccaacccccccccccccccccccccccciiinntttuuuuuuuuuuuppiiiaaccccccc +abaaccccccccaaaaaaccccccccccccccccccaaaacccccccccccccccccaaaaaacccccaaaaccccaaccccccccccaaaaaaaaacccaaacaaacaaaccccccccccaaccciiinntttxxuuuuuuuuuppiiiccccccccc +abaacccccccccaaaaaccccccccccccccccccaaaaccccccccaccccccccaaaaaacccccaaaaccccccccccccccccccaaaaacccccaaaaaaacaaaacccccccccaaaaiiiinnttxxxxuuyyyuvvppiiiccccccccc +abaacccccccccaaaccccccccccccccccccccaaaaccaaacaaaacccccccaaccccccccccaaacccccccccccccccccaaaaaaccccccaaaaaacaaaacccccccccaaaaiiinnnttxxxxxxyyyvvppqiiiccccccccc +abaccccccccccccccccccccaaccccccccccccaacccaaaaaaaacccccccccccccccccccccccccccccccccccaacaaaaaaacccaaaaaaaaccaaaccccccccaaaaahhhinnntttxxxxxyyyvvqqqiiiccccccccc +abcccccccccccccccccccaaaaaaccccccccccccccccaaaaaaaaaccccccccccccccccccccccccccccccaaaaaaaaacaaacccaaaaaaaaaccccccccccccaaaaahhhnnnttttxxxxyyyvvvqqqiiiccccccccc +SbcccccccccccccccccccaaaaaaccccccccccccccccaaaaaaaaaccccccccccccccccccccccccccccccaaaaacccccccacccaaaaaaaaaacccccccccccccaahhhnnntttxxxEzzzyyyvvvqqqjjjcccccccc +abcccccccccccccccccccaaaaacccccccccccccaaaaaaaaaaaacccccccccccccccccccccccccccccccaaaaaaaccccccccccccaaacaaacccccccccccccahhhmmmtttxxxxxyyyyyyyvvvqqqjjjccccccc +abccccccccccccccccccccaaaaacccccccccaacaaaaaaaaaaaaccccaccaaaccccccccccccccccccccaaaaaaaaccccccccccccaaacccccccccccccaaccahhhmmmtttxxxyywyyyyyyvvvqqqjjjccccccc +abccccccccccccccccccccaaaaacccccccccaaaaaaaacaaacccccccaaaaaaccccaccaaaccccccccccaaaaaaaaccccccccccccaacccccccccccccaaaccchhhmmmsssxxwwwyyywyyvvvvqqqjjjccccccc +abccaacccccccccccccccccccccccccccccccaaaaaaccaaacccccccaaaaaaccccaacaaacccccccccccacaaacccccccccccccccccccccccccaaaaaaaccchhhmmmssssswwwwyywwvvvvvqqqjjjdcccccc +abccaaaccaaccccccccccccccccccccccccaaaaaaaaccaaccccccccaaaaaaacccaaaaaccccccccccccccaaacccccccccccccccccccccccccaaaaaaaaaahhhmmmmsssssswwywwwrvvqqqqqjjjdddcccc +abccaaaaaaacccccaaaccccccccccccccccaaaaacaacccccccccccaaaaaaaaccccaaaaaaccccccccaaaccccccccccccccccccccccccccccccaaaaaaaaahhhgmmmmmsssswwwwwrrrrrqqqjjjjdddcccc +abcccaaaaaacccccaaacacccccccccccccccccaaaccaacccccccccaaaaaaaaccaaaaaaaacaaccccaaaacccccccccccccccccccccccccccccccaaaaaaaccggggmmmmmmssswwwwrrrrrkjjjjjddddcccc +abaaaaaaaaccccaacaaaaaccccaaacccccccccaaaccaaccccccccccccaaaccccaaaaacaaaaaccccaaaacccccccccccaacccccccccccaaccccaaaaaacccccgggggmmmllssswwrrrkkkkkjjjddddacccc +abaaaaaaaaacccaaaaaaaaccccaaaacccccccccaaaaaaccccccccccccaaacccccccaacccaaacaaacaaaccccccccccaaaacccccccaaaaaacccaaaaaaacccccgggggglllsssrrrrrkkkkkkdddddaacccc +abaaaaaaaaaacccaaaaaccccccaaaaccccccccccaaaaaaaccccccaaccccccccccccaaaaaaaaaaaaccccccccccccccaaaacccccccaaaaaccccaaccaaacccccccggggglllsrrrrrkkkeeedddddaaccccc +abaacaaaaaaaccccaaaaacccccaaaccccccccccccaaaaaaccccaaaaccccccccccccccaaaaaaaaacccccccccccccccaaaacccccccaaaaaaacccccccaacccccccccgggglllrrrrkkkeeeeeddaaaaccccc +abaaaaaacccccccaaacaacccccccccccccccccccaaaaaccccccaaaaaaccccccccaaacccaaaaacccccccccccccccccccccccccccaaaaaaaacccccccccccccccccccggfllllllkkkeeeeeccaaaaaacccc +abaaaaacccccccccaacccccccccccccccccccccaaaaaacccccccaaaacccccacccaaccccaaaaaaccccccccccccccccccccccccccaaaaaaaacccccccccccaacccccccffflllllkkkeeeccccaaaaaacccc +abaaaaacccccccccccccccccccccccccccaacccccccaaccccccaaaaacccccaaaaaaaccaaaaaaaaaaccccccccccccccccccccccccacaaacccccccccaaccaaccccccccfffllllkeeeecccccaacccccccc +abaaaacccccccccccccccccccccccccccaaacccccccccccccccaacaacccccaaaaaaccaaaaacaaaaaccccccccccccccccccccccccccaaacccccccccaaaaaaccccccccffffffffeeeeccccccccccccccc +abaaaccccccccccccccccccccccccccccaaaaacacccccccccccccccccccccaaaaaaaaaaaaccaaaaaaaaccccccaaccccccccccaaaaacccccccccccccaaaaaaacccccccfffffffeeaaccccccccccccaaa +abaacccccaacaacccccccccccccaacaaaaaaaaaacccccccaaccccccccccccaaaaaaaaaaacccaaaaaaaacccccaaacaacccccccaaaaaccccccccccaaccaaaaaaccccccccafffffeaacccccccccccccaaa +abaaaccccaaaaacccccccccccccaacaaaaaaaaaaccccccaaaccccccccccccaaaaaaaaaaaccccaaaaaccccccccaaaaaccccccaaaaaacccccccaacaaaaaaaaccccccccccaaacccccccccccccccccccaaa +abccccccccaaaaacccccccccaaaaaaaaaaaaaacccccaaaaacaaccccccaaaaaaaaaaaaaaaaaaaaaaaaacccccaaaaaacccccccaaaaaacccccccaaaaaaaacaaccccccccccaaaccccccccccccccccaaaaaa +abcccccccaaaaaacccccccccaaaaaaaaaaaaaacccccaaaaaaaaccccccaaaaacaaaaaaaaaaaaaaaaaaacccccaaaaaaaacccccaaaaaaccccccaaaaaaaaccaacccccccccccccccccccccccccccccaaaaaa diff --git a/data/12_2023.txt b/data/12_2023.txt new file mode 100644 index 0000000..e46ce2b --- /dev/null +++ b/data/12_2023.txt @@ -0,0 +1,1000 @@ +????.??.??. 1,1 +????#???..?.?? 5,1,1 +????????#????#?.# 1,2,3,2,1 +?#???#?#?????.?# 11,2 +?????.?#??.? 1,1,2 +?.???#????????? 1,8,2 +?###?.?????????? 5,2,1,1,1 +??.???#????????? 2,1,1,7 +??#???.????.?# 5,4,1 +.?#?.??.????.#??? 2,1,3,3 +??#???????##???#.##? 4,1,6,3 +?.?#?????#???????? 10,4 +.?.??.???.???? 2,3 +?#?.?????.???#???? 1,3,3,3 +??##????.??#??#. 2,3,1,1,2 +?????.????.# 4,1,1 +???.??##?????.????? 1,4,1,1,1,1 +.??.??.?#?##?#? 1,1,6 +???..????.#?#? 2,1,4 +#???#?#?#?#?????#.?# 1,2,7,1,1,1 +?????...?.???#???? 3,1,6 +?????###?.#??#? 1,1,4,2,1 +??#??.#??#?.#.#??##? 2,1,1,1,6 +.?...#.??. 1,1,1 +??..??????????. 1,9 +????????#.?#???. 1,3,1,2,2 +?#?.???.??????????# 3,1,3,4 +?????##?.?#?? 2,2,2,1 +???..#?#????? 1,3 +.???#???##???##??#?# 10,2,3 +??.?.?#??? 1,1,4 +##??#??#????????#?.# 10,1,2,1,1 +#???#????????#???? 1,1,10 +.#?..?????. 2,2,1 +?#?#.??#?????? 3,2,3 +?????#??#?.#??? 1,7,4 +#??.???.?#?????..? 1,7 +##?#.?#.?? 2,1,1 +.??..??.?????#?? 2,1,8 +??##??.??##???#??... 2,8 +?#???#.?.????#??? 3,1,1,4,1 +???#.?????.??? 1,1,2,2 +.??????????? 5,1 +????.?#?#????.???. 3,6,3 +????????##???? 1,1,7,1 +???.??.???? 1,2,2 +??#?#..??#?#??.? 4,5,1 +.???#?.?????????? 4,7 +????????#???#???### 3,1,8 +????###?#?? 3,1,1 +?.?..#?????##??##?#. 1,2,11 +???.????????###???# 1,1,1,12 +?.#?#???#...###? 7,3 +???.?#??#? 1,5 +??#????#.?.#? 5,1,1 +..###.??#? 3,1 +??.#?????????? 1,2,4 +?.???????????.#.?? 7,1,1,1 +#??##??.?? 5,1 +??#?#????#??? 4,2,1,1 +?#??##???#.???#.#? 6,3,3,2 +??.?.???#? 1,1,1 +?.??.???????. 2,2,1,1 +??#????#.# 4,1,1 +??.??????#.???#????. 1,1,3,2,2,1 +#???.??.###? 1,2,1,4 +.?????#?#?? 4,3 +.?#?????#.?##??? 2,4,3,1 +#???#???#????#. 2,7,1 +##??#???#?????.??#?# 9,1,2,1 +#?#?.?#.????#???? 1,1,1,2,4 +??????#?.?????#?#? 2,1,2,2,5 +??#..????#.?? 1,1,1,2 +??..#?????#?#??.# 2,1,6,1,1 +#?????????# 3,1,3 +###??????#???.????? 5,1,4,1,1 +?##.??#??.? 2,5,1 +.#??#???????.??# 2,4,2,3 +.#??????#?????. 2,6,2 +??.?###.?#?????.?? 1,4,2,3,1 +?????##???? 1,2,1 +????????#??##? 1,2,2,2 +????????.??? 1,1,3 +?????.?????#????##?? 1,1,2,8 +.?????.????# 2,4 +??##??#?..#..?#?. 6,1,3 +???.???.#?#?..#?.# 1,3,1,1,1,1 +.?.#####.?.??? 5,1 +??##??#.????#?.# 1,3,1,4,1 +?#?##???.??. 7,1 +.????#?#??????.? 1,7,2,1 +.#??#?????? 4,1 +?#???????.?##?? 4,1,5 +?#???????#?.??##???? 11,4 +??#..#...??##? 1,1,1,3 +?.?????.?#?.??#?#.? 1,1,1,2,5,1 +?????#??????? 6,1,1,1 +.??#??????.?##?##?#. 4,8 +????.?#??????#??#. 1,1,1,5,2 +?#..?.##?? 1,3 +?##??????#???.#. 10,2,1 +?.#?.???#??.? 2,4 +??.??.???? 1,1,3 +#?#??#?###?.?.? 1,1,6,1 +??#?????#?.?. 3,1,2,1 +??????#?.???#.? 7,1,1,1 +.????.???? 2,1 +..#???.####????#??? 1,5,3,1 +?????#..???? 3,1,1,1 +.##?#??##? 2,2,2 +???????##?#????.?? 11,1 +?????#??#.?????? 1,6,1,1 +???.#.??#. 1,1,2 +#?#??#???####?.?? 13,1 +???????..#??#??.?. 1,1,2,5,1 +..?#???.??. 3,1,1 +??#?#???.? 2,1,2 +#?.???.??? 1,3,2 +?##...????.?#?. 2,4,2 +?.??????????? 1,1,6 +#??#????????. 4,3 +?.?##?.?#?#?.?.??.?? 1,3,4,1,1,1 +??#?????????? 1,1,3,4 +??.??.?.##. 1,2 +#?.???...??? 2,2,1,1 +????#?#???#?##??##?? 1,17 +?###???#?????.??.??. 13,1,1 +?.??#?#????.##??? 1,7,2,2 +..#???#?????#?#????. 6,6 +??.?#?.???#??? 1,1,4,1 +??#.???#?#?. 1,4 +??.???...?????##? 2,7 +??#??????.???.?.?? 1,3,1,1,1,1 +??#?#?????#??????# 6,3,5 +?#???????????? 2,6,1,1 +???#???#.??#?.??. 6,1,3,2 +??#?##.????.#.???.? 5,1,1,1,2,1 +.?#?.??#??.? 1,3 +???.????#? 2,2,1 +?#???#.#?#?.???#..?? 6,1,1,1,1,2 +.??#??.?#. 4,2 +?????????.??#???. 1,3,1,2,1 +#??.???.?#.?#..?. 3,2,1,1,1 +##.??????#??###????. 2,9 +?.??#??#?#??...??. 1,8,2 +?..???#????#????#? 5,4,3 +????#???##???#? 1,2,8 +????????#????#??.#? 6,1,1,1,1,2 +??#?###?.#?.?? 7,1,1 +??..?#?#?? 1,2,1 +????????#??#. 4,3,1 +.?#.???##..??#?? 2,5,3 +????.?.#?.?.?##??? 1,4 +????#???#?.?####. 7,4 +?.???????#??#? 3,5 +#??????.?#.??? 1,2,2,1 +???.??.?#. 1,1,1 +##?##??????????.? 5,1,1,1,1 +?????????##???.#??. 5,3,2 +????????#.#??.# 4,1,1,3,1 +??.??#??.??# 5,1 +?#.???.??.? 2,2,1 +?.#??????.#???# 1,4,2,2,1 +?##??#??.??..?.? 2,3,1,1,1 +????.#??.?#???#?.?. 1,1,2,2,4 +????.????#??.????# 2,2,3,1,1 +??.??.??.? 1,1 +.??.?##??...?#???. 3,3 +.?????????#?##..?. 3,1,5,1 +?.???#..????? 1,3,3 +?.#?.?#.#???? 2,1,2,1 +??#??#?#?.??.#.??? 1,7,1,1,2 +?#.??#?##?#.?##??#? 1,1,6,2,2 +?#????????.?????..?? 9,1,1,1 +.????#??#?? 2,5 +#?#?.????? 3,1 +.???.????? 1,3 +????#.???.?#????#??? 4,1,8 +???#??????? 1,5 +???..?.??.. 1,1,1 +.??.?#..??#?.???? 2,2,3,1,1 +????.?????? 2,1,1 +#.?...?????? 1,1,1,1 +##???.#.#?#.##..? 4,1,3,2,1 +???.#.#???#.#?? 1,1,5,1,1 +?????#?.??#?. 4,2 +???#??#.????#?.??..# 1,5,4,1,1 +????##????##? 3,8 +?##???####?#????..?? 12,1,1 +???.?????.. 1,4 +?#?????#????##?. 3,5,3 +???.?????#.?? 1,4,1 +??.#?.???#?.??.? 2,2,4,1,1 +?.???????#????##???. 1,1,7 +??????#?#???##?.? 8,3,1 +.??????#???.? 1,5,1 +?????#??...?#??? 5,1,4 +.?????.???? 4,2,1 +????.#??.???????? 3,3,1,1 +#????????##????? 1,8,1 +??.##???#? 3,2 +?#???..???????? 3,1,2,1,2 +?.???????? 1,2,2 +??#?.##??????#.?#??? 1,1,9,4 +?#?#?##?.#?. 6,1 +???#????????#?#?.?? 2,1,3,1,2,1 +??#??#?????#??? 4,4 +?#?.?##??#..?##? 1,6,3 +????##?..?.#? 6,1,2 +??##??.?#?.?. 1,4,2 +???##????????? 1,4,3 +##?#??.????#?###???. 2,2,3,4 +???##???#.??? 5,2 +?..?#?#?##?#????#??? 10,1 +??.???##?#??????? 1,7,1,1 +?..#????##?. 1,4 +?????.??#? 1,1,3 +?????.?#?#?##??.??#. 3,8,3 +.??#?????.##????##. 7,2,1,3 +.?????#?.?.??.? 1,2,1,1 +?#???????????.?#?#? 4,7,4 +??.????#?#.#??. 1,1,3,1,1 +???#????.?? 6,1 +?????.???? 2,2,3 +?.#????????.?.? 4,2 +??????#?#???##??#?? 1,16 +??#???????# 5,1,1 +?..#?.?#??#.??????? 1,2,1,3,3 +?.??#??#?.??##?? 1,1,5,5 +?..?????##??????#??? 1,1,8,1,1 +?.#?????##??#.?? 2,5,1,1 +.?#?#.?.##????#?? 4,1,5,1 +#???????#??#.?#??. 4,7,1,1 +#????.#???##.? 5,2,3 +?????????#?##??????? 2,1,11,2 +#?.#??????????#? 1,4,4,1 +??#?#?.#???.?##????? 5,4,4,2 +???????##??.? 2,4,1 +?.#????????..?? 1,1,1,2,1 +??..???#??#??#?#??. 1,8,5 +?#?#??.#?#?? 1,1,4 +?.?.#???.???. 1,2,3 +???..?.?????.? 1,5,1 +???#??##?#?? 8,1 +.???#?.?.? 4,1 +#.#???.??????#?# 1,3,3,4 +????????#.??? 1,7,1 +??#???##??? 1,5 +#????????#? 2,3 +.????.???#?.??#? 3,2,3 +?.?#.??#?.##???? 2,2,6 +??#???.???.????. 2,1,2,1,1 +.???.??.???####?? 2,2,1,7 +.?????#??#???? 2,3,5 +??????#??##? 2,1,2 +..?.##??.??#?.# 1,2,1,3,1 +.??#?.??.??#??. 2,1,4 +?.??????#?#???#?? 10,2 +??????#??????????#?# 1,1,15 +?????#?###??..?? 3,7,1 +???#??????#?.# 5,2,2,1 +??#??????##??#??.??# 6,7,3 +#????.???#.????# 1,3,2,2,1 +.#?.?.?.?. 2,1 +#?????#..??# 4,1,1,1 +?#??.???#?????#?# 1,1,10 +?.#???#?##? 2,6 +...?.#????#???# 1,1,2,1,3 +??.??????#???.?.? 1,1,1,6,1 +?#???#??.??? 3,4 +.?#..???#??? 2,3 +.?#??????.???##? 2,2,1,3 +?#?#..??????.#?#??? 4,1,2,1,4 +?.??.????. 1,1,3 +???.?.??????#?#??# 2,1,9,2 +??..??#..?#????##??. 1,2,9 +??#?..??.? 1,1 +???.???.??. 1,3,2 +.?###????? 5,1 +??##??#???# 7,2 +.?###??#?#?#?#?#?? 8,1,1,1,1 +???###???##?????#?. 12,2 +.?#??.???###?.? 3,6 +?..?#.???#???.. 1,7 +???.?????#?#?###? 2,12 +????????#??? 1,3,1,2 +????????##...?.?? 1,3,3,1 +..#??..#???? 2,4 +?.??#???????#? 1,3,4 +???????#??.?# 9,2 +????..????##??# 3,9 +????.??#??#?#??????? 2,15 +?????#??#??.## 1,2,1,2 +??????#.??#..?.# 1,3,1,1,1 +#??????.??#?#?? 5,1,1,4 +???##?????#?#?..?#? 9,1,1 +?####???????#? 4,1,3 +????#?#?.??##???? 8,1,5 +.????#?.?.? 4,1 +????##???.??#?.?. 6,3 +.?#??#?????......??? 10,2 +???.?#.#?##????.#?? 3,1,1,4,1,1 +?.?#??.??.??#? 4,1,1,1 +??##????#?? 4,4 +.??.?#?#???##?? 2,4,3 +??#??#?????# 7,3 +?#?#?.???????#.???# 4,1,1,1,1,4 +?.???????##??? 5,3,1 +#?.?##?.?. 1,2,1 +????????##???##????. 2,1,10 +#.#?###????????? 1,13 +???#??#??#???#.?.?.# 5,5,1,1,1,1 +????##.?#???#?????## 5,1,4,2 +#??????????#. 1,1,6,1 +#?#.??????????#? 3,1,2,5 +.?.?????.??.? 3,1 +###???.####???#??# 4,1,4,1,1 +?###????.?????.?#? 7,1,1,1,3 +?#.#??#??.?.?????? 2,5,1,3,1 +#??.????..?##?.? 1,4,4 +.??.????#. 1,1,1 +..?.#?#????#. 1,1,4,1 +..#??????#?????? 2,2 +?????.#???.???.#?#? 1,1,4,1,1,2 +?#??.#.????.#??????? 2,1,1,2,3,3 +?????.##?##???? 1,1,6,1 +???????#?#######??# 3,14 +#.#??#?##??##??#?? 1,12,1 +.?#???.??.????#.???? 5,1,1,2,1,1 +??.?#??#??? 1,5 +.??????#??#????? 1,10 +?#????????????? 4,9 +??##?????.?#? 6,1,2 +??..??#?#? 1,1,1 +?.?..#????. 1,3 +?.?.??????#??#?#???? 1,1,1,2,1,8 +?#.?.?.???#?#.#?? 2,1,1,5,1 +????#???#?#?.?? 11,1 +#???????????#????# 14,2 +?.??#?..#? 3,2 +#?.??##?????#???###. 2,4,3,4 +???.?#?.#??? 1,1,3 +??#.???#??##???#?#?? 1,13 +?#.?#????? 1,2,2 +?.??????????#?#?? 3,6 +?#?.??.???#..?????? 2,2,1,1,1,3 +?#?????.???? 1,2,1,1 +??#??.?.?##???? 1,7 +?###???#??? 5,1,1 +???#???#?.#???. 8,1 +??.?#..??#?#.?. 2,2,1,1 +??????????? 3,1 +.????#??##?????##? 7,4 +.???????##???????#? 1,7,8 +????.?#????.??. 1,1,1 +??#???#?.?.?.????# 7,5 +???.??#??. 3,3 +#??..?#.???????????? 3,2,6,2,1 +???#????????? 4,1,2,1 +???#???##????????.. 1,13,1 +?????????? 1,3 +?#?.??#???. 2,5 +??.???#??### 2,4,3 +.????#????#??#? 4,1,5 +?.?.???##???#?#?. 1,5,6 +.##??.?#??? 3,4 +????????#???.? 4,4,1 +?##??????.??. 4,1,1,1 +##????????###?#.. 2,12 +????#???????.?? 6,2,1 +.??####???#..???? 10,1 +?.#???#?#??#??#??.. 1,2,3,2,3 +????.??#?#??????? 1,12 +?#?#?????? 1,1,1 +?#?.?..#?.??#.? 1,1,1,2,1 +???????..?.? 1,1,2,1 +?#??????#?#.????..?. 1,7,3,1 +?#?????????.???? 1,6,1,1 +.???#????..#? 1,1,3,1 +???????????##????? 2,12,1 +????????#.? 5,1,1 +????#??#?.?#. 4,1,1 +.??#?#???.. 2,4 +.?????????#.??.?#? 4,1,1,1,1 +????#???#??.?#.?#? 9,2,2 +??##???????#???. 3,5,2 +????.??.?. 1,2 +??#???#?#???? 1,8,1 +.???##?????#.?.#? 5,3,1,1 +#??????##.??#?? 2,5,5 +#?##?????????.. 10,1 +???#?##??#???#?#??? 1,14 +???#?##????? 1,1,7 +#?#?#.????? 3,1,3 +??????.???????? 1,4,1,2 +?#????#?????#??? 8,3 +.?#?#?#??#? 1,6 +.??#?#.???#?????? 1,1,1,2,4 +.??#?.#??????##?? 3,1,1,3 +????.????.???.???.?? 3,4,1,1,2 +????#??????.? 1,5,1,1 +??#??#??????#?#???? 3,1,10 +.#???###?#???..? 1,5,1,1 +#???#???????#?# 2,2,5,1 +??????????? 1,2,1 +????##?#???.#????.#? 1,6,3,1,1 +?##??.#??. 2,1,3 +?.???##??#?#??#??.?. 10,1 +???#??????#?#??????? 2,1,8,1 +?#????#?#??????.?. 8,3 +??.????#???# 1,1,1,2 +.#?????.????..#? 6,1,1,1 +.#?????##?# 2,6 +?#?????????. 2,5 +??#??????????#.?#??? 5,2,1,2,2,1 +.??.#.###.#?. 2,1,3,2 +#?????????????#???? 1,7,1,1,1 +???#?#?#?#??????#??? 8,1,5 +???.?????.????????? 1,1,1,1,4,3 +???..?.???????#? 1,1,1,4 +??#???#?.? 2,2 +.?#?????#????? 1,1,4,2 +..????#???#? 1,1,3 +????#?##????#. 2,6,2 +?##??????##?.##? 3,6,3 +???.?????#?#???? 2,10 +??.???????? 1,4 +?.?????#?? 1,3,3 +#???#???#?? 1,7 +??##???##?.. 4,3 +??#??????#? 2,1,1 +?#.?#??#??.#??.??# 1,3,1,2,1,1 +?.###?.#?.??## 1,3,2,2 +????#?.?..???#? 1,1,1,2,1 +?#.???#??????#??#??? 1,1,5,1,3,1 +#..???##????? 1,5 +.???#??#?##????###?? 12,3 +.#???.?#?????#? 1,1,3,1,2 +#.??????#?.??#? 1,8,3 +???????.???.. 1,1,3 +??????????????#? 1,3,1,3 +??.?#??#?##?.?? 1,1,5,1 +##?###?#???? 2,7 +??????#..##??#.?# 3,5,1 +.?.#???#???#??#?#. 1,7,1,1,1 +.#??#???..?????# 1,5,4 +?.???.??##?#??#?#? 2,10 +???#?.??#???#???..? 4,9 +???##?#??#???#???. 2,9,1,2 +???.????.?.???##???? 3,1,7 +..???????. 3,1 +?????#?.?????. 6,4 +.?#???#???##??.#?... 11,2 +?.????##????? 5,3 +.#??.??#?#??#? 1,1,4,2 +??#?##????????????? 6,1,4 +?.?????#?? 1,2,4 +???.#.????#?#?? 1,1,6,1 +??.?#??????.????? 4,2 +?#??#??????#? 7,4 +????????#?? 1,1,3 +...??????..?#????. 5,5 +???..?#??. 1,2 +##..?..#.#???. 2,1,1,4 +??###????.? 8,1 +?..???#??.????..? 5,4,1 +???#??..#?# 1,2,3 +????#??#???.#.#?. 9,1,1 +##?#??#???#.??? 11,1 +???..????##.#..?#.?? 3,1,4,1,2,1 +????.??#?? 1,3 +???#?????? 5,3 +?#??#??????#?.??.#?? 1,4,3,1 +???##???..??? 6,1,1 +??#??#?????#?? 8,2 +???.#??.?# 1,1,1 +?#?.??.????. 3,2,1,1 +.???#??#??? 1,5 +?#????###??#?.# 3,7,1 +??#?#?#?.??????#? 7,1,2,2 +?###??#?#?? 3,3 +#?????#???.???? 1,5,1 +?#??.?#???? 1,4 +?#????#?..#? 6,1 +????#.??#?? 4,3 +#?????#?????.???.#. 2,8,1,1 +.??#??????#?#??? 3,7 +??##??#?.????# 1,6,2,1 +????#??????##??#?? 1,1,13 +.?.??????????#??..# 11,1 +????#???.??? 3,1 +#??#.?.?.? 1,1,1 +?.#???.???????#..? 4,5,2 +?#????#?..?#????#? 3,3,2,2,1 +?????.#?????#???# 4,7,3 +.#.????.??. 1,1,1 +????.##?.?? 1,2 +???????##?#?? 1,8 +???.?#???#??##????. 1,2,1,1,3,1 +.??????#???#?##?##?? 1,13 +.??????#??###?.????? 11,2 +??.???.???. 1,3,1 +???##??#..##? 5,1,2 +??#.##????#?##????? 1,1,3,6,1,1 +??##???#?.#??##??.?? 7,6 +?##??.???.??.???# 4,1,1,1,1 +???.???.?#?##???#.?# 1,1,8,2 +.?.??#?#?.#??. 1,5,1,1 +?#???????? 3,2 +?.?#?#???? 1,2 +??..#???#.?.?#? 1,2,1,1,2 +?.???#????...?#?? 4,3 +?#?#???.????? 4,4 +??#??#.???? 5,1 +.?#??#.?.? 1,2,1 +????????#??#???# 4,1,4,1 +#?#????#?#?. 3,3 +.?????.??#.?#? 5,1,1 +#?.??#??#?.?.???. 1,6,1,3 +?##??????# 5,1,1 +.?#??#???.????#.?# 7,1,1,1 +???#???????# 3,1,2,1 +???#?#?????#?#.?? 7,3 +???.??#??? 2,1 +#????????##?????? 1,2,10 +??#???.??. 6,1 +?#?#.??#???? 3,4,1 +???#?##???.??? 8,2 +?#???.#??????? 2,2,4 +?????#???. 1,4 +?#???????#???#.?. 1,5,3,1 +?#?.?#?#?????. 1,3,1 +?.??.?#?#??##???? 1,1,10 +???????????#? 1,4,1 +##?????#..??#?#?#.?? 2,3,1,7,1 +.#??.?#????? 2,1,3 +.????#?.?.##???.? 4,5 +?#.???#??#?#??#? 2,11 +????????.?#?????#??? 7,3,4 +?.??##????.??. 3,3,1 +?#???#?#?#????? 2,8,2 +???.#??.???#.?#. 3,1,2,1 +.???.#.?.?. 2,1,1 +?#???#???.??.. 5,1,2 +?##?????#?##????#?. 9,2,1,1 +?????#.?????. 2,2 +.???##??#????#?#?.?# 2,13,1 +??##.???.??.#.????? 4,2,1,1,1,1 +#?????.?#???#??????. 3,1,1,1,3,1 +???#?????.???? 4,1 +###?###????#?.?#?# 9,2,2,1 +????#??#????#.?? 11,1,1 +??#????#?? 1,1,1 +??.???#??.?????? 3,1 +???#?????.#?#??..?# 7,4,2 +?.##.??#?? 2,4 +#.?.#?#??????.#??. 1,4,1,1,1,1 +?##???#?#.?#?. 9,1 +?????????????? 1,7 +###?.##??#???? 4,8 +??.#?#???#?#??????? 2,7,2,1,1 +?????????? 1,1,2 +??#??#?#??##?? 6,3 +?#???#?.##?#??? 6,4,1 +???????#?.???? 9,1 +???##?????##?#.?.. 1,11 +#????#?.????.?#????? 1,3,2,1,2,2 +???.#???#????#??#?? 1,1,1,1,1,5 +??#????#??#. 1,3,3,1 +?#?##???#?. 1,3,1 +#??#??##?#???????? 12,3 +.???..??.##??? 2,1,4 +?#??##?#?? 1,2,2 +?????.?.#? 2,1,1 +?#???????.????## 1,1,3,6 +????#?#.???#?#?.?# 1,3,6,1 +.??#?.??#? 2,2 +?#??#?????.??? 1,4,1,1 +?.????#?????#???? 1,1,1,9 +??#?????.? 2,4,1 +??.???#?#????.##??? 1,7,4 +.?#?#????#?#???????. 4,11 +.???.??.#.###????? 1,1,1,6,1 +?#????????.???#????? 1,4,5 +..#???.???????# 4,3,2 +??????#????..#?.??. 4,2,2 +????#??#???? 2,1,2 +??..#??###?.?###???? 1,7,7 +??#???.?????? 2,1,1 +?.???.???..?. 2,2 +..##???.?????.. 3,1 +?.??.?.?????#???? 2,8 +??.#??###?#??????#?? 1,8,1,1,1,1 +?#####?#???????? 6,1,1,1 +?.?.?????#?????? 1,2,3,4 +?#??###?.?.? 3,4 +.????##??? 1,5,1 +?????#?.#?.#?#?? 4,1,1,2 +.????#???#??#?#?.?# 4,7,1 +????#?.???.?#? 1,1,1,3 +?????.??????## 1,1,1,3 +?.?##?????#????#?? 2,10 +.??#????#??.?????.? 1,6,1,3 +????#???.?.??#.. 2,3 +??#??#??.?????????? 6,1,7,1 +.#??#????????#??? 2,8,3 +???????####???.#???? 1,7,1,3,1 +????.?.?.#???#?? 2,1,1,2,3 +??.?#?#.##??.#???.? 4,2,4 +??##?????????? 2,3,3 +??????##?????#??..? 3,2,2,4 +????.??####?#???? 1,9 +#?#????###?#??.?? 5,3,2,1 +?#?#.??#??.?.#?. 3,3,1,1 +?????.##?. 1,2 +.????????.?#??#. 2,1,1,1,4 +???#??.?#????? 1,3,1,3 +????????.?#####???.? 3,8 +????#???.??#??##?#? 1,2,9 +.?#???#??.#? 6,2 +??#????#?? 1,7 +??#?..???.? 1,1 +#???.??#.?#???.# 1,1,3,2,1 +???..????#? 1,5 +?????#????? 2,1,1 +??.????#????? 2,2,1,1 +????#?##?#??#?.. 8,1,3 +.???????.#?..? 2,3,1,1 +?????#????#??#?.??? 6,5 +.????#?#?.? 1,5 +?..?#???#?????.???? 1,7,2,1,1 +??#???##?.?#?.???? 8,2,1 +?????..??##?.?.? 1,3 +#?????#?..??..?? 8,1 +?.???#?#??#??????? 1,7,1,3 +#??#.??#??? 4,4 +???.?.??..?#??????.? 2,1,7,1 +????.?#?#????##??.? 1,12 +??????###?.??.??# 3,6,1,2 +??.??##.???? 2,1,2,2 +??#?????????###??#? 3,6,3 +.#??.?#????? 3,1,1 +#??????????. 1,1,4 +??????.?#?? 5,2 +???#?.#?.? 1,2,1 +#??????#???????#?.? 1,12,2 +???????#??.? 2,1,2 +..?##..?.??.? 2,2 +..?.??#????#?????.#? 12,2 +?.#??#???.#.??# 2,1,1,1,2 +?#..???#???????. 2,9 +?#???#???????.#.. 1,8,1 +??.??#????? 3,2 +.??????#????#? 2,8 +?.????.?.#?#?#?#??.. 4,7 +.....??#???????## 7,3 +?.##???#.#????...?? 6,1,2,1 +??..?#???????.# 2,1,1,1,1 +.????????.???#?????? 1,2,1,9 +?.??.?#???????.#?## 1,1,3,1,1,4 +#?.??????#???????#?? 2,1,3,8 +.????.?.#? 3,1 +.??.?.??#?##?#????.? 1,11 +??#?#.?.????#??????? 3,1,1,5,2 +..##????.? 2,3 +????#??#???? 2,1,1,1 +?????.?##? 1,1,3 +???.#???.?#???# 1,2,3,1 +?##.?..?#??? 2,1,2 +??.?????#??#??.? 2,3,1,3,1 +#?##?#??##?.???.?? 1,9,1,2 +??.??????????#.?# 1,1,5,1,1 +..?####??.#?#?#??#?? 4,1,8 +?#?.??????##???? 1,4,3,1 +?.????##.???#?? 1,2,5 +???#????????#??# 2,4,1,1 +????#.??#.?? 5,2,1 +?.???#?#???#?.?#?#.. 1,1,1,6,4 +.?????#?.#?????????# 3,2,1,9 +????..?????...#?? 3,3,2 +.??.?.?#??. 1,2 +??.#???#?????#??#??? 1,7,1,1,1,1 +??..#??#?#?##???#?#? 2,2,1,1,9 +????#?????????.?.? 1,2,4,2,1 +???#???.#??#???#?## 1,1,1,6,4 +#??##??#??.#??????? 9,2,3 +??.##?##??#??####?.? 8,5 +???#?.#.#?????? 1,1,1,1,4 +????????????#????? 2,3,1,2,1,2 +??#.?##??#?#???? 3,5,2,2 +#?.??????#????????? 2,1,2,2,3,1 +??.??#?#??.?#.#. 2,2,3,2,1 +.??#?????? 3,1,1 +???.??.?#????#?? 1,2,2 +##???????#?#.??. 4,7 +????#.#?##?#????# 1,2,11 +???..???#..? 1,3 +???#????#?##? 2,7 +#??????#??# 1,2,4 +.???#?.???#?#? 1,1,1,4 +??????????#?##? 1,10 +..??????#.##? 1,1,1,2 +?#.??#?#.??#?#?##? 1,1,1,7 +.??#.?..?? 1,1 +???????????#??..#?## 8,1,1,4 +??#.????.? 2,1,1 +????#??????.???? 8,1,1 +.???#??.##? 1,1,2 +#????????#?? 1,1,1,4 +...#????????. 4,2,1 +.??????#?#?.? 4,4 +#.??#.?#?. 1,2,2 +.?????#?#????#?##? 1,5,5 +??..???#?????? 1,4,3 +.???????.?????#...?? 6,2,1,1 +???#??.???#??###?? 4,8 +??.??.#??????#????? 2,10,1 +?#????.##?.##???.?? 1,1,2,3,1,1 +##??###??##??#?.? 12,1,1 +???.?##?##???????#.? 1,7,3,1,1 +.????..#.. 2,1 +?#?#??#.#?#?????.?? 7,3,3,2 +..??#?#????.? 6,2 +?#?#??.##???.???? 2,2,5,1 +###.?#???? 3,1,1 +.?#?????????#.?.# 5,3,1 +?.?#####?##.??????? 9,3 +.????.#????#?.?. 3,7,1 +??.???.????#?? 1,3,6 +?????????. 1,1,3 +?#.?????.??# 1,3,1,1 +#?.????##??????#? 1,1,9 +??#????.?##??.?? 6,4,1 +.#???#.#??.#???. 5,1,1,1 +..#????##???#?? 2,9 +?.???.???#???#.???# 1,1,4,1,1,1 +#??#?###?#?. 1,7 +#.?#?.?#??#?#?? 1,1,1,4 +??#?#????.?????? 5,1 +.???#?????#??#? 1,3,5 +##?.#?#?#? 2,3,1 +.?#????.?????#? 2,1,1,4 +?#??##??#.????.? 2,3,1,1,1 +???#??.??# 5,2 +????#?????#??? 3,1,4 +.?????.?#?#?.???? 4,5,1 +.??#??.??????# 2,5 +???#?#??#??#?#??#?. 3,9 +.?##??.?.????##???.? 4,4 +?##?.#.???? 2,1,2 +???.?.?????#.#?.#? 1,1,1,3,1,1 +??.#?????#? 1,8 +#??.#??..??? 2,1,2 +#???????##????? 3,6,2 +##?.????## 2,1,4 +?.#.?.#??#?? 1,1,1,2 +????.?.??#?..? 4,1,3,1 +??.?#?#????#? 1,5,1 +#?????#.???#???#?? 1,1,1,1,1,7 +??#?.#??.?..??? 2,3,1,1 +???#????#?##???..? 3,7 +?????..?????? 4,4 +?##?.????????????# 3,2,1,1,2 +.????#?.#? 1,1,1 +#??????.?.####????? 1,1,3,4,1,2 +????.###?.? 3,4 +..?.#?#???????#???? 1,10,1 +???.?#.?????? 3,2,1,1 +???#?#???..?.#? 8,1 +.??.?????#?????#??? 1,1,10 +?????????#.?#???? 2,2,2,1,1 +??.???????#??????? 1,4 +?.#?.??#??# 1,4 +??????.??#????#?. 6,4,1 +?..?.?????#. 1,1,5 +?????##??#?.????..?? 7,2 +?..###.??#?#???##?#? 3,11 +?.#?????.?#??#?????? 1,6,7,2 +??#.?.????#??#??#?# 1,1,1,8,1,1 +?.??#????#??..#? 1,1,1,5,1 +???#??????#?.????.?? 1,3,6,1,1,1 +??#.#.#??#???#?? 2,1,9 +??#?????#?? 6,2 +#?#?##?#?#.#?#?????? 8,1,1,1,2 +???.????#??#?#?? 1,4,6 +.??????#???#??? 3,8 +??.??#?#?????? 1,1,6,1 +??.??#?.????.??. 1,3,1,1,1 +..????#??#??. 1,8 +?#?#....?# 3,1 +#??#??#???? 7,2 +?????????#???.??#?. 1,1,5,1,1,2 +#?.??#??##?#???? 2,7,1,2 +.?#.??#??#???? 1,9 +???#???#?#?#?#.????? 2,1,7,1,1,2 +???#???#??????#?.# 1,2,2,1,1,1 +??#???.???.?????? 3,2 +???#?#??????? 7,1 +#??????????? 5,2,1 +#???.#?#?#? 2,6 +??.?.?????#? 1,6 +????#????? 4,2 +#.?#????##???.???? 1,9,1,1,1 +.??????#??#??# 1,10 +.??#?....???? 2,2 +??#??#?????#????? 1,1,8,1,1 +???##.??#? 3,1 +?..???.##?##?###?..? 2,9 +#??#??????????.?? 1,6,4 +.??#???#??????????? 7,4 +???#????##?#?#??.#? 1,3,5,1,1,2 +#.??##??????##?#??? 1,5,6 +?#??#???.??#???##. 7,1,1,3 +????.??#?.? 3,2,1 +????????.#.# 7,1,1 +?#??###.?#??#? 6,4 +?#??#?#?#??????.? 1,6,2 +?????.???#?#.? 1,1,5 +???##?..?#. 4,2 +.???.??#???. 1,5 +.#??#.?????#. 4,2,1 +#????.#?.?#??????### 1,1,1,3,1,3 +????????#?#?. 4,1,1,2 +#.?.??.????? 1,1,1,1 +#????#??.????#??? 1,3,5 +?#?.??????? 1,3,1 +?.?????.?#???.?? 3,5,1 +???????#??...#.? 7,1 +?.#?#??.???.?? 1,3,2,1 +??#????????#???.? 2,8 +##???#???..?????.?#? 9,2,2 +?##.??????? 2,1,4 +???#??#??##.?? 1,2,2,1 +#??.#?.#..?.???#?? 1,1,1,1,3,1 +.?#?#??#?.?#??#????# 4,3,7,2 +????????#??????... 1,1,6,1,1 +.????#?#?##. 2,6 +???##???.????. 5,1,3 +.????????????? 1,3,2,1 +?#???.#?????????#. 2,1,1,2,2,1 +?#??????.????? 8,1,2 +.?##???????#?? 9,3 +.???????#?##??#??. 2,11 +???#.?????#?#?#??? 1,1,9,2 +#???..??.?????.?? 3,1,2,1,1 +.????.?#?????####? 4,11 +????.????.?????.. 3,2,1,1 +???#?#?#??#???#??#?. 1,5,9 +.??##???#?#?????. 9,1 +?#.???..#????#??? 2,1,1,3,1 +?.?.??#????##? 1,3,3 +.#.????????.?.#? 1,7,1 +??????#??????? 1,5,2 +?#??###???#? 1,4,2 +?.....?##.? 1,2 +.##.###??##?#????. 2,10,1 +???.???????##?? 2,1,1,3,1 +??.?????????.?#.??? 1,7,1,1,2 +?####.??.##????##. 5,2,3 +?.??#?????? 2,3 +?????.???##?#??.? 1,5 +??#?.?.???###. 3,1,3 +.?##?#?.???#???#?? 5,6 +?.?.#.#??#?????? 1,1,1,1,7 +#?????.????#?#??? 5,6 +???#.???#?#.? 3,4 +#???##.##????.??? 3,2,6,1 +?.??????..??????? 1,1,3,2,3 +?????????## 1,1,3 +????#????#.?##??#??? 5,1,2,6,1 +???????##?#?.?. 1,1,6 +??##?????.??? 6,1,1,1 +??#?.#????????#?. 1,1,1,2,3 +??.?#??#??????.? 1,4,5,1 +.?.#???????##?? 3,1,3 +?????#??.?.??#.??# 1,4,1,1,1,2 +?..?#?????#??#?#. 1,2,1,6 +..#.????#?????? 1,2,6 +????..?????# 3,6 +??#?????#??.? 9,1 +#.??.##??.##.? 1,1,3,2 +##?????.???? 3,1,1 +?.?????#?#??.???#?? 1,2,5,1,1 +??##?.???.??? 5,1,1 +?.????#???.? 1,3,2,1 +??#????.#?. 5,1,2 +????..??????.?#??? 1,1,4 +??#?.??#?.. 3,2 +?#?.????????? 1,5 +#??.?#??#?.?? 2,6,1 +??.?#??????? 1,3,1,1 +???#?#??#??#?????? 11,3 +.###???..???#??? 3,2,6 +??##????.. 3,1 +#..?????????#??###?? 1,1,1,2,1,4 +#.????#?##? 1,2,5 +????.##???????#??. 2,2,2,4 +?.?????##?. 1,4 +???..?..?..???# 2,1,1,1,1 +??..##??#?#??. 3,5 +?..#???#?.?????#? 1,6,1,1,2 +???.?.????##?#??#?#. 1,1,1,2,4,1 +??..#??.?##?? 2,1,1,3 +?.?.???...?.??#??? 3,4 +.??#???##? 2,3 +???.????#?? 1,3 +??#??..?#?..? 5,2,1 +???#.???.????..?## 1,1,1,4,2 +?.?.#.???#??##?????. 1,1,11 +#.??.#.????? 1,1,1,1 +????#?#?.??. 7,2 +#??????????#?.??? 4,4,1,1 +??.??#?.???#?.?.? 2,3,2,1,1 +.?.#??????#?. 1,3,2 +????????##??.???#? 1,8,3 +.????..?.???????? 1,5 +????#?##???? 2,4 +?##.#.???#..??#?.?# 2,1,2,1,3,2 +.??#.?????..#?? 1,1,3 +.?.?#??.#??? 1,1 +??##????????.?.??? 9,1,1 +??##..#..??? 3,1,2 +.???????????? 2,2,1,1 +.????#????#??#??#### 1,1,1,11 +#??##?.??.???.???#?# 1,4,1,2,3,1 +??#??????. 1,1 +.?#?.?.???????????? 3,1,4,5 +???#..#???.?# 3,3,1 +???????????? 3,1,1,1 +.#????.?###.?.?????? 1,2,4,3,1 +????#.###?#??? 4,3,1,1 +?????#?????#?..???? 1,1,2,1,3,4 +?...#??##?#?.? 1,4 +???????????????#??? 1,1,6,4,1 +.??????#??#??????. 3,8 +..???????? 1,1 +#?#??#.????.?? 4,1,1,2 +#.#.?????#?#??????? 1,1,1,9 +.?..#?#?#????.?? 1,9,1 +##?#??#??#??#.???? 11,1,1 +???.???#??#.##??#?? 1,7,3,2 +??..?#.??#?????#??? 2,1,4,2,1,1 +?#?.???.#??? 2,1,3 +????#?.?..#?.??#??? 1,2,2,5 +.?????.?#?? 1,3 +???.?.??##? 3,5 +?#?.?????.???? 3,1,1,3 +?.???#?.#??## 1,1,1,5 +????.?.??? 4,1,1 +????????.. 2,1 +???????##?.?.??. 3,1,2,1,1 +?#????#.????.#. 2,2,1,4,1 +??.#??#??#???#?#?? 1,1,5,5,1 +.????.?????#? 2,3 +???.??#?#????.?#??#? 1,4,1,1,6 +??.???#???#????.?. 1,2,1,2,1,1 +???????##???##? 3,2,5 +??.?#.???????. 1,7 +..??...#????.?? 2,4 +?#??##??.?#?? 5,3 +???..#???. 2,1 +?.?#?#?#?#??.???.#?# 1,9,1,1,1,1 +????#??#?#??? 3,6,1 +.???..????# 1,2,1 +????#??..??????? 1,1,1,1,7 +??????????#?# 1,2,3 +.???#??????#??????? 1,12,2 +??#?????#..#?? 2,1,2,3 +?.?#???#?##????#. 1,1,1,6,2 +??.?#??.??#.??##?? 1,4,3,2 +.??#?????????#? 9,2 +???????#??..#?..?. 5,2 +#??.??.?#?#??#?? 1,1,2,8 +?????.????#????# 2,9 +??????#??.. 2,3 +??????..?#??#? 1,5 +????????#??##??? 1,1,1,1,3 +???#???#???.?# 1,8,1 +??????.?#.??.?. 1,1,1,2,1 +??.###?#?????????.?? 1,5,3,2,1 +.?????#???#????? 11,1 +?###??##?#???#.??.? 12,1,1 +????#?#???#?#???? 4,8,1 +???.?#?#.?? 1,3,1 +#?#??#.??.?#.????? 1,1,1,1,2,4 +#?##?..#?## 5,4 +????#?#..???#???##. 4,4,3 +##?.?##???????? 3,2,5,1 +.??#?####.## 1,4,2 +???#?#??.??????? 1,3,2,1 +?#?#??????.? 2,1,1,2 +#?????#????#? 1,6,1 +??#?????##..??.#???. 9,1,1,1 +#??#?????????.?? 1,6,1,1,1 +??.???????#???? 1,1,1,2,1 +???#.??#??#?? 2,1,7 +??????????????#??#? 3,1,2,1,1,1 +???##??##???#??#?? 1,3,10 +??????#??#? 1,1,5 +?????.?#??.????.?. 3,4,1,1 diff --git a/data/13_2020.txt b/data/13_2020.txt new file mode 100644 index 0000000..592618c --- /dev/null +++ b/data/13_2020.txt @@ -0,0 +1,2 @@ +1000390 +13,x,x,41,x,x,x,x,x,x,x,x,x,997,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,x,x,x,19,x,x,x,x,x,x,x,x,x,29,x,619,x,x,x,x,x,37,x,x,x,x,x,x,x,x,x,x,17 diff --git a/data/13_2021.txt b/data/13_2021.txt new file mode 100644 index 0000000..4d2f146 --- /dev/null +++ b/data/13_2021.txt @@ -0,0 +1,900 @@ +23,123 +1116,117 +60,18 +954,323 +1235,226 +1123,599 +862,231 +808,11 +982,687 +574,248 +1041,449 +584,105 +408,575 +594,466 +1058,677 +23,33 +127,862 +1305,367 +87,220 +194,855 +706,455 +550,241 +750,493 +922,616 +88,861 +682,822 +487,359 +1208,555 +579,674 +1097,266 +1042,400 +1043,712 +567,151 +328,694 +494,47 +1,623 +716,779 +574,198 +599,890 +63,532 +818,728 +1148,239 +104,848 +1062,47 +1185,516 +428,849 +1134,519 +472,866 +1146,207 +785,541 +75,668 +636,306 +554,512 +644,362 +795,623 +263,810 +805,0 +223,409 +150,129 +858,857 +356,571 +895,488 +962,106 +761,151 +1121,507 +903,786 +1097,852 +295,726 +1118,330 +1016,115 +930,291 +808,435 +1123,847 +957,243 +977,371 +492,207 +654,229 +1285,401 +560,401 +94,65 +1110,110 +492,840 +922,242 +798,248 +252,257 +333,819 +410,855 +1218,800 +157,582 +176,519 +1001,390 +843,599 +572,185 +875,9 +383,697 +310,369 +731,220 +770,600 +638,861 +284,599 +950,779 +927,4 +949,729 +493,712 +105,66 +989,527 +68,65 +743,743 +862,103 +681,744 +855,32 +216,519 +1054,592 +551,854 +482,651 +1009,651 +408,319 +967,596 +276,23 +898,819 +654,205 +88,413 +353,722 +1263,407 +1140,553 +1228,864 +435,697 +763,505 +817,182 +301,620 +67,203 +448,663 +575,254 +736,78 +378,103 +154,427 +858,37 +852,628 +1228,870 +113,714 +929,523 +68,737 +212,250 +893,343 +438,71 +713,439 +636,361 +624,599 +31,714 +579,519 +346,533 +830,429 +718,142 +817,574 +1048,145 +430,71 +930,689 +161,320 +689,486 +346,197 +75,226 +1103,376 +114,294 +26,854 +912,302 +452,185 +870,327 +152,429 +1128,890 +711,645 +509,35 +170,553 +326,687 +1004,788 +92,773 +907,488 +94,493 +825,683 +823,298 +296,74 +565,343 +1225,837 +746,763 +566,497 +719,138 +674,140 +565,791 +1031,25 +756,382 +572,750 +970,312 +661,527 +478,631 +385,445 +940,599 +343,596 +490,217 +242,371 +266,779 +267,485 +437,259 +984,709 +957,401 +908,257 +1208,339 +472,25 +1148,207 +80,528 +602,155 +256,766 +300,822 +266,331 +703,745 +1196,824 +657,271 +105,599 +612,373 +594,690 +25,172 +750,829 +442,376 +1153,582 +741,389 +818,168 +120,103 +105,295 +497,312 +395,467 +274,801 +672,33 +497,582 +1200,179 +378,455 +855,862 +1197,714 +1059,889 +698,344 +472,28 +1016,779 +597,147 +899,304 +395,469 +306,340 +1310,431 +1146,640 +1074,315 +500,427 +108,166 +959,175 +1240,302 +1260,730 +1016,180 +1221,103 +846,70 +480,569 +161,350 +440,567 +199,338 +1160,71 +1098,518 +410,487 +922,278 +80,590 +1284,854 +518,182 +448,215 +818,743 +370,295 +657,719 +1020,84 +1193,703 +604,791 +55,249 +801,511 +1093,784 +813,771 +1089,887 +1052,487 +920,736 +176,263 +1246,525 +460,295 +226,493 +872,715 +820,239 +761,131 +739,182 +556,329 +1235,648 +437,612 +815,410 +160,847 +1292,82 +1235,668 +1178,599 +892,763 +343,148 +738,127 +1061,249 +935,645 +433,887 +1131,746 +925,893 +873,730 +194,151 +1136,17 +200,784 +744,145 +607,697 +1240,105 +686,329 +244,870 +700,586 +575,640 +1109,49 +1016,107 +518,614 +724,65 +800,138 +224,823 +952,341 +1230,366 +410,821 +455,191 +1168,218 +1016,787 +206,7 +922,204 +120,93 +70,275 +382,504 +247,152 +571,712 +1150,651 +1098,376 +92,121 +520,11 +766,295 +161,847 +731,648 +674,533 +1173,59 +1206,166 +75,815 +838,28 +547,284 +1059,375 +873,110 +865,639 +982,709 +213,852 +1044,375 +1149,126 +333,371 +1149,847 +790,235 +790,424 +1148,280 +430,451 +492,743 +798,218 +930,205 +706,791 +1039,4 +1230,360 +1066,463 +301,651 +1068,819 +594,39 +1066,487 +567,562 +202,37 +649,771 +147,298 +1001,607 +370,599 +1218,773 +654,431 +5,571 +32,474 +649,99 +596,877 +1156,427 +1305,323 +694,261 +1228,30 +634,19 +87,444 +360,740 +291,423 +1150,847 +5,435 +199,556 +1014,74 +300,166 +879,409 +18,809 +266,107 +796,848 +1228,278 +810,651 +1148,640 +689,802 +857,180 +251,599 +1151,87 +403,406 +1205,831 +358,341 +30,372 +795,271 +775,824 +1223,599 +279,25 +1255,249 +907,182 +1208,4 +1059,22 +251,630 +515,795 +817,798 +748,374 +80,78 +162,726 +402,257 +68,267 +1292,361 +142,676 +1248,528 +120,175 +190,376 +676,19 +470,646 +32,698 +1263,597 +502,667 +1149,544 +488,495 +1134,631 +1128,442 +1294,481 +102,339 +403,712 +756,512 +1205,105 +1034,455 +698,550 +878,196 +1059,630 +1253,455 +709,707 +328,872 +1146,616 +795,520 +498,161 +492,54 +1064,870 +388,876 +306,788 +83,182 +852,644 +1243,649 +962,340 +713,893 +631,439 +837,623 +314,312 +1094,519 +1120,518 +540,152 +957,722 +145,35 +1230,590 +353,493 +564,539 +1310,17 +1134,263 +1171,679 +801,859 +679,571 +390,736 +30,522 +1222,481 +346,362 +110,715 +556,565 +739,712 +932,775 +818,463 +813,562 +351,271 +760,512 +930,603 +1009,620 +875,197 +294,107 +800,756 +761,295 +754,117 +985,240 +843,123 +430,823 +1183,862 +596,46 +873,612 +1173,271 +49,42 +1190,175 +575,780 +1252,877 +493,126 +246,814 +370,792 +636,140 +888,513 +668,877 +1168,676 +1278,698 +1039,325 +515,495 +353,274 +736,304 +801,280 +67,691 +1173,835 +552,787 +417,343 +1208,611 +503,366 +1066,95 +1285,72 +1128,4 +547,616 +380,205 +62,116 +952,820 +656,431 +218,215 +716,428 +741,421 +1034,23 +125,516 +1248,401 +1261,852 +540,742 +422,381 +161,544 +395,427 +1044,204 +268,429 +900,407 +465,620 +989,819 +1298,358 +266,519 +1138,651 +607,197 +1158,883 +452,37 +110,599 +518,56 +713,455 +1033,614 +1160,765 +990,301 +982,648 +877,763 +251,648 +845,835 +638,481 +277,614 +525,353 +880,778 +385,595 +1247,810 +629,296 +351,207 +967,148 +1021,845 +1287,123 +1230,78 +1309,623 +378,775 +445,703 +85,841 +1015,714 +328,246 +1240,773 +838,4 +908,665 +686,388 +996,312 +843,151 +264,158 +714,46 +308,85 +412,819 +957,493 +1059,246 +377,311 +1026,102 +711,281 +1203,389 +925,445 +353,401 +893,327 +610,819 +52,801 +259,467 +388,564 +1197,628 +100,717 +950,714 +893,567 +266,375 +668,536 +127,639 +808,465 +744,397 +852,451 +55,4 +818,239 +892,131 +1009,274 +855,480 +518,824 +1223,295 +33,817 +822,495 +977,523 +1002,697 +748,520 +1290,467 +25,822 +251,246 +1041,893 +1059,488 +161,768 +816,847 +249,249 +880,823 +408,304 +388,690 +1248,569 +594,652 +16,481 +1305,459 +74,677 +136,166 +119,518 +623,180 +458,266 +251,519 +388,151 +708,801 +951,266 +1196,294 +177,336 +1158,459 +1160,317 +1191,471 +296,777 +1098,250 +1063,742 +703,597 +1101,221 +612,344 +1190,353 +679,439 +892,315 +1272,485 +850,295 +64,369 +872,519 +293,481 +535,423 +852,3 +838,866 +1036,291 +902,192 +1004,340 +656,229 +258,407 +201,845 +50,455 +1231,192 +714,848 +330,502 +60,428 +137,274 +381,355 +94,519 +838,476 +1178,71 +761,383 +584,789 +246,575 +982,694 +437,784 +489,488 +1235,465 +1228,37 +679,887 +1044,71 +895,854 +1103,518 +855,191 +718,752 +1212,677 +549,579 +162,239 +1279,180 +584,856 +1190,599 +1059,599 +544,715 +890,542 +1150,47 +862,64 +246,870 +1064,360 +586,737 +922,330 +1230,95 +673,831 +1000,77 +55,697 +731,519 +928,390 +624,372 +1087,409 +616,485 +1101,255 +189,620 +1019,526 +1174,182 +562,374 +549,131 +403,488 +403,441 +152,883 +169,582 +1223,220 +952,74 +607,297 +187,599 +251,872 +621,408 +433,7 +939,87 +85,837 +102,283 +689,856 +82,864 +801,35 +566,749 +410,521 +259,873 +1093,612 +344,677 +364,810 +85,57 +1088,205 +1247,362 +75,648 +705,42 +156,553 +139,99 +808,429 +247,332 +817,768 +902,543 +873,259 +684,771 +502,435 +850,487 +1235,815 +716,652 +64,525 +120,295 +1173,274 +574,534 +1140,789 +525,541 +1230,304 +92,374 +1285,722 +113,628 +277,280 +888,401 +688,628 +330,392 +12,877 +402,637 +216,375 +852,266 +903,376 +838,869 +1205,63 +1064,319 +817,350 +177,560 +877,7 +1280,295 +890,32 +510,866 +408,360 +433,763 +764,679 +75,79 +221,828 +410,463 +1174,630 +954,123 +28,571 +740,814 +587,691 +1206,868 +217,784 +621,861 +602,603 +1212,217 +120,541 +432,196 +382,390 +915,469 +67,649 +959,719 +82,687 +502,121 +1242,65 +514,848 +1160,711 +862,887 +653,271 +1218,374 +152,569 +681,296 +957,274 +810,427 +473,271 +411,590 +649,123 +294,180 +982,872 +221,66 +271,773 +550,512 +766,179 +546,215 +159,484 +432,56 +321,527 +689,408 +748,800 +348,106 +70,302 +478,183 +656,241 +458,331 +246,80 +276,455 +1026,743 +1250,18 +62,528 +964,197 +340,582 +266,115 +49,852 +575,562 +206,887 +223,485 +1278,180 +218,231 +107,697 +724,157 +989,371 +908,637 +1242,829 +32,180 +922,652 +738,750 +137,59 +751,245 +875,726 +82,633 +112,7 + +fold along x=655 +fold along y=447 +fold along x=327 +fold along y=223 +fold along x=163 +fold along y=111 +fold along x=81 +fold along y=55 +fold along x=40 +fold along y=27 +fold along y=13 +fold along y=6 diff --git a/data/13_2022.txt b/data/13_2022.txt new file mode 100644 index 0000000..e864928 --- /dev/null +++ b/data/13_2022.txt @@ -0,0 +1,449 @@ +[[0,[[],[],[10,6],0],[5],5,9],[[5],7]] +[[[[7,10,2,0]],[[5],[10,1,7],[],[],9],[[0,6,2]]],[]] + +[[5,[[9,3,4],[6,3,10],[5,9],8],[[6,6,1],5,10,1],8],[[[]],3,[[3,3,7],5,6],3,6],[],[8,[9,[7,10,2,3],9],10,[4,3,2,[7],7]],[5]] +[[[3],[[10,3,2,2],[0,1,1],[1,3],2],[7]],[[8,1,9],9],[2,[7,[10,7,6],8,0,[7,7,10,8,6]],[10,[],5]],[]] + +[[7,6,[[]]],[[[],8,5],[6,[1,4,7,9],[0,5,1,10],[6],10],[[8,2],9,10],[4,[2,9,3],1,[4,9,6],10]],[[7,[9],[4,6]],[[5,4],3,[7,10,0,0,1]],3]] +[[6,5],[0,1,[5,[]]]] + +[[9],[7,[0,[1,9,4],[4,0,9]]],[],[]] +[[6,[9,2,[],[9,7]],[[5,10],[],[6,0,1]],1],[[[10,1]]],[0],[8,[[],[2,2,2,4],[8,9,0],9],[4],7,0],[[],9]] + +[[4,[3,[9,9,7],[0,8,1,7,5],[2],[1,0,7,0]]],[[],8,[],[[9],9,3,9,1]],[],[]] +[[],[9,[],[[],[],[7,4,4,5]]],[],[[],1,6,[1,[3,4,10],2,[6,8,7,9,0]]],[[],[1,[1]],0,9]] + +[[[1],10],[[6],10],[[],[7],8,5,8],[[1,8,0,[7,0,8,4,6],8],[],[],[[9,1,9],7,[2,7,8,10],[9,1],[9,6,10]]],[2,7,[7,[9,4,3,2,7],3,8,[1,0,4]],4]] +[[[[],1],[7,7,[0,1,5,0]],2],[[6,6,[9,5,6,9],[],9],[1],5],[[],[[7,7],[7,4],[1,10,4,10],10,0]]] + +[[[],[9,[3,2]]],[0,[]]] +[[[3,[6,5],[],4],[[6],9],[1,9,4,[8,2,2,4,6]],9,[[10,7,8],[3,6,1,10,7],[],[3],[10,10,4,5,7]]],[[6,[10],[7,10],4,[10,0,6,9]],4,9,[3,1,[5,3,0,1],[4,6],2],[[10],[6],[8,3],2]],[[[9,6,7],[3,1,1,9],2,[]],[0,[9,5,9,5],0,5,[4]],[[7],3,4,1,[9]],4,[2,2]]] + +[[10,4,[[10]],9,[[6],5,6]]] +[[[[],1],3],[1,0,[[1,9]],7],[[2,8,8,9],[7],9,4],[[[9,0,4,1],[6,10,4]],[3,10,8],8]] + +[[[9,7,5,4,2]]] +[[2,10,[10,[4,10,0,8],8]],[10,[3]],[5,10,8,[[3],[],[5,0,6],[6,5],1]],[[[7,6,8],[10],[10,3,10]],[[10],[],9,6,0],7]] + +[[[],3,4],[2,4],[],[],[[[2,1,4,5,10],[2,9,6]],3,[]]] +[[],[[],9,[]]] + +[[0],[[[],8,2,10],[[],[7,8,9,4]]],[2,[[7,10,4,0],1,10],10]] +[[[[0,5,3,8],4],[5],[[0,2,2,8,0],8,7,[4,8,10]],1]] + +[[[[7,6,3,6,6],7,7,6,9],[4,[7]],7,[[6,7,6],10,[4,5,10,9]]]] +[[[4,[8]],5,[[],8,4],[9,[4,4,9,1,5],[9]],4],[[[6]]],[10]] + +[[6,0,[3,1]]] +[[[[3,3,7,10],[8,7,8,0,4],[6,6,1,0,10]],[4,[8,6,1]],10,5,[[],[3],[]]],[[0,1,8,4],[5],[0]],[],[]] + +[[[1]],[9,[7,1,5],[9,3,[1,4,5],5],7],[[],1],[[[2,4,4],[5,10,2,7],0,[3,2,3,0]],[[8,8],[4,5,0,7],[3,5,7,0,1]],[7,10,[],0,[]],6,10]] +[[[]],[5],[],[[6,1,[7,10,0]]],[[6,[9,10,4,9],7,[]],2,[6],[]]] + +[[9,9],[10,8],[9]] +[[[[0,6,0],2,[8,10],[5,8,0,5]],[[5,7],1,[],6,0]],[5,6,[[9,4],3,[9,5,0,9,6],1,6],6],[2,[],[[4,5,1,9,2],[],[9,5,7,1]],[3,[5,6,9,10,1]],[[0,7]]],[[]],[10]] + +[[0,[]],[],[[[1,9,1],7],[8],[[9]],[[10,9,10,1],[0,0,8,0,1],[10,4,5,6,9],[6,6,5],5]]] +[[[[8,7,8,9,10],[5,1,8,5]],[3,3]]] + +[[[[9,2,9],10,[10],[],8],[[7,10,7],8,[4,8],5],[[3,2,7,5,9]],10,[9,[1],5]],[],[2],[],[[],[[],4]]] +[[[7,[0,5,7]],6,[[4,6],2,[7,9],10]],[9,10],[[8,10,1],[],0,[[0,10,3,3],0,0,9],1],[[8],9]] + +[[[[2,7,1,2],5,6],[9],8,[]]] +[[[10],[2,3,[6,2]],2],[10],[]] + +[[[6,3]],[5],[],[[[0,3,6,1,3],5,7,2,6],3,[1,7,[6,2,7],[7,7]]]] +[[[10,[],4],4,[10,[0,5,1,0,10],10,5],[],10],[[],[2,[4,3],5],5,3],[3,[7],3,[[7]],8]] + +[[0,3,[[5,3,10,10]]],[[9,[8],[7,3,2],6]],[1],[[6],3,7]] +[[[[1,4,7,0],[],9,[5,2,4,3],[1,2,5,4,10]],8,0,[4],[]]] + +[[10,3,[5,2],[[4,8,4,10,6],[6,6,1,6],8,5,0]],[0,[[1,10],[],2],4,[[4,9,6]],10],[3]] +[[],[[[5,8],[2,10,2,2],[5,9,3,6,10],[8,6,8,4,7]],10],[9,7,[2],[2,9,[3,3,1,10,10],4,[]]]] + +[[[4,9],[10,[],[7,3,5,6,2]],2,[[8],0]],[[0,[1,2,5,7],[10,0,3,9,7],[8],7],9,[3,[2,2,3,3,0]],6],[[3,10,6,[7,4]],[2,0,1,5,10]]] +[[3,10,[4]],[8,[8,5]],[0,2,[1]],[[9,[4]],2]] + +[[0,1,[9],9,6]] +[[3],[],[],[[5,6,[2],1],0,[8,[3],1,[6]],3,[1,10,[6,9,0]]]] + +[[10]] +[[[0,10,[6,1]],7,5,[[8,2,7,3],[2,8,1]]],[0,[[8,1,6,2,0]],[5,[8,0,10,7],[6],2,1]],[7,1,3],[8,[[8,10,10],9],3,8,1]] + +[[6,0,10,2]] +[[1,[8,[]],[[8],[3,8,10,1],[10]],2,[1,7,3,[10,1,4],10]]] + +[[[6,7,10,[4,8,9,10,8]]]] +[[9,[[],[6,3,6],3,7,[0,3,9,6]],6]] + +[[],[[[2,5],[3,3],9]],[]] +[[6,10],[]] + +[[],[[3,[7,0,10,5,10],[2]],[8],[[10,9]],6,[]],[2,[[],9,2,10],2,8],[6,9,0]] +[[10,[],[],[[3,7,9,0],6]],[],[[4]],[[1,4,6,4,[10,1,0,2,2]],[[3,5,4]]]] + +[[[[10,4,0],[8]],[[5,0,2,9],9,[8,1,10,10,4],10,4]],[8,[7]]] +[[[[7,3],6,[0,7,7],[9,4],[4]],[[7,4,7]]]] + +[[[],[9],4],[[2]]] +[[9,[]],[2],[[8,9,5,7],[[],[10]],7,[[8,1,6,3,8],[1],[6,8,10],2,[8,5,7,4,6]],[]]] + +[[[[9,2],4],7,[[5,7],[0,2,4,10,7]],9,6],[],[[5],[5,0]],[7,8]] +[[],[10,[[],[],8,[],4],0,[],[]],[[1,[6,9,6,7,6],9,[]],3],[[4,[],[],5],1],[0,[],2,[[9,8,6,7]]]] + +[10,7,3,6,3] +[10,7,3,6] + +[[[[1],[2,9,3,7,1],[0,2,10]],[4,3,3,9],7]] +[[[[9]]],[5],[[[8,9,5,7,2],5,10],9]] + +[[[6],[[0,10,8,6,2],2,1,1,[3,7]],5],[[0,[8,3,4,6,7],[1,8,3,3,3],[5,4,8,9,4],5],2,2],[]] +[[],[1,[[4,8,6,6],[4,10,3]],[[],8,3,[2,4,4,1]],[[4,2],9,[]]],[[[9],[],[9],7],9,[[6,0],[8,1,7,4,0]],[10]],[[0],[9,6,5,[9,0,3],[1]],1,[4,[10,9,10],9],[10]]] + +[[0],[]] +[[[9,1,7,10,[6,6]]],[[[6,3,2,2]],[5,9],10,5],[[[0],3],[7,10,0],[6,[2]],[6],[2,[2,4,6],[5,6]]]] + +[[6,8],[],[[],9,2,10,[[7,8,8,6]]],[]] +[[3],[[[8,1,9,4,10],[1],[10]],6,10,[[4,6,2,7],0,1,[3,8,6,9,6]]],[],[[[],[5,9,3,9,3],[4,8,5,3],3],[8,8,2,6],[2,10,3]]] + +[[[0,[],[6,1,3,1],[]],4,[0]],[2],[6,6,6,[[1,0,2,9]]],[7,7],[[[7]]]] +[[[2,5,5,3,[5,0]],[[6,7],[3],1]],[[[8,10,7,5,1],6,[8,10]]],[6,0,6],[3,[[10]],4,4,9]] + +[[],[9,[[8,9,10,0,8],[5,6]],8],[[[8],[4,8,9],10],5,1]] +[[9,2,[[7,9,8,9,6],8]],[[[7,3,1,8],[10],7,[10]],6,[[],5,6,6,1],[0,7,[10,4,3]],7],[[0,9,[],9,[8,6,8]]]] + +[[3,4,7,7,0],[[10],5,[[4],[10,7],[8,5,5,7],[8]],[]],[[10,[1,0],0]]] +[[[7,2],[[10,6,8],[7,7,6,0],10,[10]],[10,9,9,4,[0,1,1,4,5]],8,[0,4]],[[],7],[[[7,1]],5],[8,0,2,[[7],[0,3,6,10]],[]],[7,1]] + +[[4,2,[10,2,10,7,0],[[7],1]],[6,[],[[3,0]],3,8]] +[[],[[[6,8,0,2,1],[]],[[8,4,6],2,[10,2,10,5,5]],[7,[],[10,6,0,10]],3,[1,4,[6]]],[8,[8,[10,4],10],[9,8,5,1,6]],[[[],4,0],1],[[6,[10]],[[2,5,8,0]],1,8,[[],3]]] + +[[[],[[0,7,7,1,10],9],[],[8,1]]] +[[],[[10,2,[2],9,[0,2,5,9,4]],8,10,[1,[7,9],[5],10,[3,7,0,7,8]]],[],[],[[[10,10,2],[],[2,6,6,9,5]],[3,[10,1,6],[9,5,4,3,5]],2,[2,3,3,[4,10,7,3,4]]]] + +[[5]] +[[7],[2,[6,[2,4,5,6],2,9,[4]],7,6],[[]],[7,[[10,10,3,7],9,[9],8],5,[],10],[]] + +[[4,4]] +[[5,0,9,5],[[],7,[[1,4,9],[10,2,3,9,1],[],[3,8,5,6],0]],[],[1],[[[7],[8,3,10]],1]] + +[[],[0],[]] +[[[5],3,[[],[3,10,7]],0],[6,7,4,3,6],[3,5,[[3,1,0,4]]],[[3,[7],[7,1,8,6,1],7,[]]]] + +[[[[3,1,0,3,5],3],9],[],[[],[],[[4,3],[6],4,[]]],[[],10],[10,[8]]] +[[9,[6,7,[7,10,4,8]],1],[9,2,[[6,1],[10],5,10,8],[[2,7],5,8,[1,7,1]]],[[],4,[]],[[[1],9,9],[],[8],[[]],3]] + +[[[[1,1,8,4],5,[],[7,8,7,5],[]]],[7,[[1,0,7,8,10],[0,5,7,3,6],4,1],9,3,[[4,8,8,1,7],7]],[9,1,[2],10,10],[[[7,7,7]],2]] +[[[]],[10,[3,[],[7,0],[]],5,[]],[0],[]] + +[[2,3],[8],[5]] +[[[[9,8,4],0,6,10,[2,0,5]],1,[8,[]]],[[5,6,1]]] + +[[6,4,10,1,4],[[[10,7,4,9,7],[7,0,5,7,5],6],7,6,[0]],[[[7,3,10,2],[9,4,1,3],[]],[[4,7,10],9,0,[5],7]],[[8],[[0,10],0,8],0,6]] +[[4,8]] + +[[9,[[9,1,2,5,4],0,[4,1,2,0],[]],[1,[3,6,9,9],1,[2,9],[9,5,8,1]],2,4],[8,10,[[3,0],[0,8,1,10],6]],[]] +[[[[3,3,8,8,7],[3,8,2,3],8,[3,1,5,9],[]],[[7,9,4,2,3],6,5]]] + +[[1,[2,[2,4,8,8],5,9]],[8],[[[10],[]],1]] +[[[[10],[0,5,1],[4,1,3,8],3,[0,8,5,10]],[[],[8],0,8],3,8],[[8,5,[7,2],[1,1,8,6,1],[0,5,8]],4,2,7],[[],[4,8,[2],6,3],6],[],[1,[[7,3,0,7,10],0,1,4,8]]] + +[[[],2,[3,[7,7,4,3],[9,5,3]]],[[[],2,6,[]],8,[3,7],[2],9]] +[[[[1,0],2],[2,3],[],[[6,1],0,[],[10,8,0],[3,0]],1]] + +[[[],5]] +[[[4,7,[10,10,5,9,2]],10],[0,[[1,4,1,4],[3,7,2,8,0],6,[],1],[[],[0,4,6]],[]],[[]],[2]] + +[[[[5,0,3],3,6]],[6,[0]],[[0,[7,7,7,1],[6,3,7,3],[9,8],3],9,[3,[9,10,7,6,8],[0,3,2,0],8,[5,4]],8,[[9,4],[1,5,4],[0,1,1,4,5],7]],[]] +[[3,0,3],[6,[[0,6,5,6],[3,2,2,4,10]],[[],[8],[9,8,7],2,2]],[[],7],[]] + +[[2,9]] +[[[3,[]],3,0],[],[[],[],[3,0,2],[[5,0],[7,8,1,10],[6,5],[2],3]],[[[9,8,2,8]]]] + +[[3],[10],[[[8,4,6,5,1],[0,2,4,0],[2,2,1,4,0],2],[5,[3,0,0,1,10],[6,8,3,7,6],7,2]],[[6]]] +[[10,4,[]],[[7,2],[9,[9],[6,3],[9,1,10],5],6,[[],10,[0],[7],[2,7,3]],2],[[1,[],6,[8,5,0,3,2],[8]],[[1,3,2,1,9],[0,10],[3,0],[10]]],[]] + +[[2,[],[[2,3],[5],[4]]],[1,[[1,7,9,5,4],1,[],3]],[],[8,0],[]] +[[[],[[6],9],[6,[4,0,6],7,9]]] + +[[5,[[],[1,1,9,3,9],[4],9,6],7],[6,[],[10,[9,7,5],[2,2,6,7,6],[0],4],[[]]],[[],9,10,[[],5,[1,5,0,4],9],1]] +[[0,[[],5,5,1,[7,5]],[],0,10],[[[1,5,5,6,7],0,[0,3],[6,4]],0,3,6],[[1,[6,4,2,10,9]],9,3,[8,7,[7,7,1],5,6]],[9,0]] + +[[[[7,4],5,[6,6,0]],[1,[8,1,6],9],3,[[0,10],[0,3,8],[7,3,5],9],[]],[9,9,[[1,7,10,0,0],[2,1,1,6,4],[7,1],[],[7,7,5,9,5]]]] +[] + +[[[7,6,[1,8,0,7,7],[3,7,8]],[[0,6,6,2,1],1,[5,2,5,2,8]],[[],[5,0],0,6,[9,1,2,0,0]],4,3],[[[10,9]],10,4,[1,[10,7,1,3]]],[2,6,4],[5,1,[[2,5,3,8,7],1,7,[7,2,6,7],1],[0]]] +[[],[3,10],[1,[[],[2]],5,9],[[[3]],8,0,[[0,7,10,9],9],2],[5,5,[[2,3],[7,7,9],9,[4,4,0],5]]] + +[[5,5,8,3]] +[[8,4,[[6,1,7,2],[9,9,9]],[[8],1,[],1,0],9],[[[],[9,10,9,2,5],3],6],[[],8],[[[3],[5,10,7]],[],[7,3,0,4],[6]]] + +[[]] +[[[2,[4,10],[4,5,5],1],8,0,8],[2,[]],[[[7,5,9,0]]],[[10,9,[3,0,0]],[],6,6,3]] + +[[10,8,0,[2],8]] +[[4,1],[[1,[8,6,10,1],[6,6,7,4,4],[],4],4,0]] + +[[],[6],[[[2]],7,7],[[],[],[[],[5],[6,6,0,2,9]],4],[0,[],8,[],6]] +[[4],[[5,[2,2,7,10,0],[10,8,6,6,6]],[[],[5,3]],[2,[9,5,2]]]] + +[[8,[]],[[[6,2,8,3,3],7,7,0],[[8],3,10,0],6],[4],[[[4,2,2,0],[8],5,2]],[[10,1,6],[[4,2]],10]] +[[[],10,8],[0,9,8,[[7,5],[3,6,7,4]],4],[6,2],[2,[4,[10,8]],1,[3,[9,7,8,3],4]],[[4,[3],[10,7,2,9,10]],0,1,9]] + +[[3],[],[[10,10,[3,7,2,9,7],8],4,8,6],[4,[],6]] +[[0,5,[4,5,[],[9,2],[8,2]],[[4,4],3],[6]],[]] + +[[3,10,8],[[[1]],[2,[],1,4,[5,7,3]],[10,[7,6,8],3,4],[10,8]],[[],[[2,9],[]],0,8],[8,6,2],[]] +[[5,6,[10,5,[]],[5,5,0]],[[[],9,[8,1,10,4]]]] + +[[[[],4,3],[[1,6,1],0,4,3,[]],[[]],[[7,6,2,2,0],8,[0],10],[]],[[[0,1],[]],[[2,1,6]],[6,0],9],[[2,0,3,[10,10,10,3,0]],2,[0,[4,6,7,6],2]],[[[3,2,9],3,6],3,9],[6,[[3,3,6,8],0],8,[]]] +[[10,[4],10,0,1],[[2,[10,10,0],5,8],0,6,7],[1,8,[[10,9,10],9,2],3],[2,10,[0,8],[8,2,1]],[[],[10,6,0,5,[4,6,7,3]],[0,9,2],[2],0]] + +[[[5],[5,6]],[0],[9,[4,[5,10],[10,3,8,9],6],1],[0,8],[]] +[[[0,[0,9,9,1,1]],[],1,[10,[]],4],[[5,[],[1,4,6,5],[]],[]],[[3,[],0]],[4,[[],[1,7,8,1]]]] + +[[[[9],9,[6,6,7,4],0],7,[[4,1,7,2],0,[10,10]],[[8,4],8,7]],[[],[[4,9,0,6]]],[5,[[],8,[5],10],4,[7,7,[8,10,6,0],8]]] +[[[],4,1,[[6,1]]],[8,[[10,0,4],[5,3,7,2,0],4],9],[[6,[7,6]],5,[9,[4,1,6,10],[2,7,8],9]],[],[0,[[9]],6,[2,10]]] + +[[[],6,[],1]] +[[8]] + +[[[],[[10,3,5,1,1],[5,4,4,6,1],[],[0,0,7,10],7],[[4,7,2,8,1]],[2,[5,2,7,2,4],[7,0,7,9]],1],[[[1],0,[6]],[[7,0],10,[7,5,9]],[[3,0,2],[4,4],7,3],4,6],[[4,[6,0,3]],9],[4,[8,[8,0,9,8,6]]],[4,[[7,7,4],2,[],5,3],[8,9]]] +[[8,8,1],[[],[[1],[0,7,4]]],[8,[[5,6],7,[4,7,4],[1],3],1,[7],1],[3],[2]] + +[[8,[[2]],[[6,2],7]],[]] +[[2,9,2,0],[[3,5,3],5,9,[4,3,5]],[]] + +[[[7,[],3,8],[7]],[10]] +[[3,3,4,[[],9,[10,5,1,1,8],6,9]],[]] + +[[7,4,3],[[[6,2,5],[5,5,9,8,9],[9,7,6,9,3],[9,1,4,2],7],7],[[10,2,[7,2,3,7,3],[3,9,3,8]],8]] +[[[[7,0,3],3,[5,5,1,2,6],[2,6,5],[9,0,8,8,6]],2],[6,7,[[0],[5,2,0,5,0],6,[0,2,1],[1,7,6,1]]],[[[8,7],1],5]] + +[[],[0,10,[[9,3],6],[4,2,[10,4,1]]],[[],[],[4,[6,6,5],1,6,[3]],[2,3,6],[7,[]]]] +[[8],[[2,[5,7,5],7,[2],6],6],[10,[9,1]],[3,5,[[10,9,1,2],[4,4,8],2,8],7],[1]] + +[[[[4]]],[[],[7,[8,1,10],[],10]],[[1,6,[10,7,9],2,10],4,7,[[7,3,5,5,6],4,[3,10,5,6,5]]],[[[9,10,1,10],[10,6],[0,1,8,2,6],[],10],[[],7,[3,9,3],[]],[7,[1,0,5,3],[9,1,8,6]],0],[2]] +[[0,[[],8,10,[],8],[[3,9,4,8,8],5,[3,6,9],[4,4,1,6,8],[10,8,9]],[]],[10,[[2,2,4],4],[2,[9,0,9],[9,8,3]],9,[]]] + +[[[[3,3,2],2,1,2],[[7,8],[10,2,3,10],4,[]]],[]] +[[[[1,3],8,0],[[3]],[],[10,3],[[]]],[10,[[2,7,8,2,0],[5,7,3,4],[0,5,0]],10,7,4],[[],[10],4,[[9,0,0,3,1],1,0,4]],[[1,[6,7,5,1],9,[6,8],10]]] + +[[[5,[4,0],4,[8,2,1,7,3]],7],[5,10,4,9],[8,2,[[],[2,5,0,7],8,3],3,1],[[5,[0,10,10,2],[7,5,6],0,4]],[5,[[1,7,5,9,10],[],[4,4,3]]]] +[[[[8,5,9,6],3],[],[[7,0,2,4,1]],9,6],[4,0,8,3]] + +[[],[6,[7,[7,6,4,10,10],[],0,[]],[1],[[1,4,5,9,8],6,[6,4,2],[5,3,7],10]],[6,[2,3,10,[0,6,9,10]],[0],[[10,2],4]],[[[],1,0,[],7],[[0,4],5,[9,3,7,10,1],2],0,4,4]] +[[0,10,8],[[8,9,[1,10,9,3],2,1]]] + +[[5,4,4,10],[[]],[4,2,[3,6,10,10,[5,7,9]]],[0,4],[9,7,9,4]] +[[],[1,[[]],1,0,[10,[]]]] + +[8,8,4,6] +[8,8,4,6,10] + +[[[[6],1,6,4,3],9,[],[[6,3,7],3,[5,2],0,[10,1]]]] +[[7,5,5,7],[],[[8],3,9,8],[[[7,10],[3,1,4,0]],[7,8,[3,1,10],[4],[7]],[[]]]] + +[[[[5,4,1,10,8],9,[2,0,2]],[[7]],[[],2,[1,1,5,1,7],9,[5,9,10,1,4]]],[[9,6,3]],[5,[5,7,[],10,[8,1,0]],[[10,5,10],1,10,4,[4]],10],[1,3,9,[[0,7,7,2],9,[4]],[0,[0,2,7,5]]],[2]] +[[[[9,1,2],[8,0],10],10,[[],6]],[7,7,0,4],[[2,[4]],[],[],3,[[3,1,2]]],[[5]],[6,5]] + +[[[[1,7,5,3]],0,6,[[3,8,0,9,0],[],[6,7,10]]]] +[[],[],[9,[0,8]],[],[[[0,7,7],[],[2,10,2,7,6]],[[7,8,5],5,[3,1,9,0,8],8],[7,[8,10,6,3],0],[]]] + +[[6,4,3,[[7,6,10,3,8],[6,2],1],7],[[[4,5,3,0]],[3,[1,9,10],2,10],6,5],[],[[10],8,[9,7],2,[]]] +[[[[9],4],[3,[7,7,6]],[],7,[10,7]]] + +[[2],[[[3,4],2,[9],[5,8,8,0,2]]],[5],[1]] +[[[[2],7],[]]] + +[[],[[],1,[6,[9,1,2],[],[6,7],[0,7,4,3,8]],7],[[[1,7,8],9,1,[9,2]],[[5,2,10],[6],4]]] +[[10,[2,6,5,9],[[4,10,0,10,4],[8,3,3,9,7],[5,0],8,9],5,10]] + +[[[2,0,[2,1,0,0,5]],10,[],0,10]] +[[[3],5,[5,[4,2,2,8]],1,[6,[]]]] + +[[],[],[6],[[],[6,0,[3,8]],5],[6,2,1,6]] +[[5,[],6,9,9],[],[4,9],[2,[10,2],8,0,[8]],[[[5,2,10,8,10]],[6,10,[8,9,5],[],[6]],7]] + +[[5,[10,0]],[[7,6,[6,0],7,[4]],[],6,[5,[7,0,6,3]],[4,[],4,[1,1],9]]] +[[],[[[7,8],[2],[9,3,9],8,8],[]],[[[2,2,4],[2],1,1],[4],[6,2,1]],[[[5,1,0,2,0]],[[1,7,5,7],[]],[],4]] + +[[[[4,7,2,8]],[[9,3,0,7],5,5],1],[[[2,9,2]]],[[[4,8,8,10,7],4,[10,8,4,3,7]],3],[[[8,1],[10,8,2,7,8],5,[5,8,6,9],[0,9]],5,0],[4]] +[[[8],[[3,2,0,1],[]],[0,[],[7],[4,5,7]],10],[1]] + +[[[[10,4,9,6],[5,5,4,5,4],1,[1,1,5],8],[7],7,[0]],[[[2,8,5],[0,5,2]]],[]] +[[],[[[],8,[2,5,3,9]],[],[4],[10,7,8,8,[]],8],[[7,2,[0,0,0,5,1],[10,2,10,5]],6],[[[3,5,3,9],10,[],9],[]],[]] + +[[8],[[3,[0,2,8],8,[]],[[3,9,2,4],1,[9,10,6]],[[7,4,6],[3,7,4],[],2],8],[],[2,[2,6]]] +[[],[[[5,6,2,4],[1,9,10,1,10],[1,6,0,7,3]],[[10,1],[4,7,4,0,1],[3,4,4,8,7],[5,10,4,0,8]],9,[2,9]]] + +[[[7,8,6,8,[2,3,7,1]]],[9,[5,8]],[4,5],[[[]]],[[[0,4,8,10],3,5,7,2],6,[[],8,7,6],[],[8,1]]] +[[[[],8,[1],[6,3,8,0,3],10],[[],[]],[[7],2,[],6,[]],3],[[2,[],4],7,[[6,4,1,9],[4,4,1,5],[6,7,1,3],[10,1,0,8]]],[[1,0,[]],[[3,5],1],[6,7,4],[3]],[6,[],[10,[8,9,3],1,[5,3]],[[1,3,4,9,8]],[9,10,[5,1],1]]] + +[[0,[[7,2,1]],0,[9],9],[[],[]]] +[[6,10,5,9,[[],[0,9],7]]] + +[[7,[[4],4,[0,6],[]],[4,3,1,5,1],[6,[10,10,1]],0],[],[[[10,0,10],4,9],7,2,2,7],[[[6,10],[9,4,9],[1,9,10,7],[7],[4,3,3,7]]]] +[[0,9]] + +[[[[],5,[],[4,8,1],8]],[0,4,[10,[8,5,10],[7,8]],[[7,3,7],[2,6,6,6],[],[8,1]]],[4,[],[[9,1,2,1,5],[10,4,5,10,3],8]]] +[[10,[4,[6]]],[[2,[0,4,3,4,4],4],0,3]] + +[[[],[]],[[3,1,[3,4,10]],[1,[3,3,5,4,8]],10],[2,7,4,[[1,4,2,8],[5,10,0,7],2,[7,2],1]],[[],[]],[[[4,0],8,4],9,6,[[9,2,3,3]]]] +[[[6,5],5],[1,7,6,5],[[10,[0,7]],8,0,5],[[[4,1]],[[],[2,6,7,4,3],6,[9,7],[0,0]],[[6,9,9],[2,4,1,2],0,6],[3]]] + +[[1,[[7,10],5,10,5,[3,2,3,7]],[2,10,2,0],10],[[8,9,[4,8],8],[[5,7],[1,4,8,10],1,5,7]]] +[[[5],[9,[8,4,10,3,10],4],9,4],[[2],9],[[4,5,0,[7],[0,1]],[[0],[6,2,3,10]],9,5,[[2,7]]],[[0],[[]],[[]],9,1],[8,[0,[9],[],[2,4],[10,6]],2,7,4]] + +[[2,[1],2,2,4],[],[[9],10,[[4,7,10,2,2],[5]],2],[[0,[3,7,8,4],[],10],2,[[],[4,6,2,10,5],[7],5]]] +[[],[10,10]] + +[[[],9,[7,[1],2,[],[10,3,6]],2,10]] +[[1],[8,10,[[7,1,6],[6],[],[2]],[]],[]] + +[[[[2,6],10,10,[10,8,8],3],9,[[8,9],2,8,[0,2,2],5],4]] +[[2,8,0,0],[[[7,8,8,7,10],[0,0,2,5,0]]],[8,[[10,1],[],[7,0,1,6],5],[[],0],[6,4,0]],[4,[8,[3,2,0,4,5]],[]]] + +[[[]]] +[[0,[[5,3,4,4,2],[5,7,7,7,1],[3,1,10,3,5],4,0],[9,7,10,[4,3,4,0,3]],7],[],[[[1,10,9,0,9],8,[2,6,0,10,7],[7],0],5],[[]],[[[6,1,4,9]],6,[[10,8]],4,2]] + +[[10,[4,[5,3],4,1],[[0,5,1,1],4,10,[8,6,5,1]],0],[[5,2,[]],4,10,[[]],7]] +[[],[[5,0,0,7],4],[[[]],[1,[]],[6]]] + +[[],[[[4,7,7,6,10],5]],[],[5,10,[[3,0],[5,1,9,0,3],9],3]] +[[[],1,2,2,1],[[3,[0]],1]] + +[[2,4,[7,1,[2,1,10],10],7]] +[[],[[4,[1,8,10],[0,5],[4,7,6,3,9],1],[1,8,[4,10],8,[6,1,3,1]],[[2,7,5],[7,10,9,2],2],[8],[0]],[10],[[[0,5,5,4]],9,[[8,0,1,0,9],4],[[10],[4,1,2,0]]],[[[4,4,3,1,8],9,3,[5,3]]]] + +[[[],[[7,8,8,9],2],[3,9,6],[3,8]],[3,1],[3],[[0,0,2]]] +[[],[[6,8],[[]],[],9,[8,[],7,7,9]],[[7,0,0],[[],[]],[7],[[7,0,6,1,10],8,[1]]],[3,5,[],[[1,10,0],7,[9,7,3,10],2],8]] + +[[[0,[5]],4,5,1,[[3,4],1,[5,4,7,5,1],[1,8]]],[7,[1,8,8,[3,2,8],9],[],[9,7,5]],[[],1],[]] +[[[[1,2],[2,10]],9,5],[[[7,1,9,9],5,0,[],7],2,9],[],[2,[3,3,[3,8,0,8,1]]],[1,[[6]],[[7,10,5],6],[]]] + +[[6,7,6,[[],[0,4],6,2,[1,6,9]]],[5,[1,[7,5,10]],8]] +[[[3],9],[2,9]] + +[[],[8,[[9],7]]] +[[],[[8,10,7,9],8,[[4,6,4]],[[5,1,2],4,[9,3,5,1]],5],[[],5,[[7,5],[]],[3,0,[4,2,8,0]],5],[[4,2,7,6,5],[3,1,5,7,[6]],6],[[9,5],[2,[2,1],[0,9,1],3],[[10,6,1,1],[0,9,7,6,10]]]] + +[[],[[6],6,8],[8],[3,[1]]] +[[[6,[],[4,0,10,4]],[7,6,2,[4,1,2]]],[[[6,1,1,7]]],[[10,10,1],[10,4,1,10,[3,2,0,3]],5,[[],[0,10,9,2]]],[]] + +[[[],4,[5,[8,10,4],2,4,[7,8,3,4]],8]] +[[9,[5,[4,9],[8],4,[5,10,10,5]]],[5,[[0],[10,4,10,2],[]],5,0]] + +[[[0,10,7,1,[4,6,2]],[[9,9],5,[]]],[1,[[10,2,0,7,0]],5,7,[]],[3,[[],8,[],[7,3,4,10,1],[5,6,3]],2],[],[]] +[[1,5],[6,6,7],[],[[[9,9,7,2],7],[0,0],6]] + +[[],[[],6],[2],[2,9,0,9]] +[[3,[2,[6],10],[[],[3],8,5],10],[[],[[0,8,2,7,1],[6,5,1],8,[0]],[[8,4,2,8],0],[2],4],[],[10,[4,[4,2,2,1],2,0,2]]] + +[[],[],[[],[0,8]],[],[]] +[[[[5,7,7,2],7,5,2,[10,2,0,2,1]],2],[6,10,2,[]]] + +[[[1],[8,4],[[3,7,5,2,5],5,4,[0,4,7,0],[1,5]],7,[[9,5,3]]],[[9],[],[[5,1],5,1,6,1],[0,[10],6,8,[]],[[9,5],[8,0],[7]]],[[6,9],[[3],6,[2,1],[0,3]],9,[],4],[4,[7,[5,4]]]] +[[[]],[[1,8,[4,8,7]],7],[[]],[[2,[2,9,5],[2,6]],[[3],[0,10,7,9],[2,4,1,3,6]],9],[[9,9],2]] + +[[10,[[2],[7,8,7,7,9],3,[6,4,6],6],[[10,8,2,7],1,[8]]]] +[[[[4,7,4,0,1],6,[9,6,8,1,3]],[[],9,[]],3],[[9,[],5,[],3],[[1],6],3]] + +[[10],[],[4],[[],[1,5,[5,5,6,6]],[[1,3,7],[8,6,0,3],[2,9,1]],[]]] +[[2,1,[6,[8],2],[6,[9,2,0,7,3],[8,10],2,[]]]] + +[[[[1,5],10,[4],4],7],[[6,3,[4,1]]],[4,4,[],6]] +[[],[0,[[5,6,7,10],0,[6,10,2,4,7],4,[6,10,10]],[1,0,0,[3,7,3,6]],[3,1]],[[[9,3,9]]],[0,[7,8,9,[4,2,4]]],[0,[2,1]]] + +[[[1,1,[],10,[6,4]],4],[3,6,9,[[8,9,3,1,7],1,0,7,3]]] +[[[1,[8,8,4,5],[]],[[10,8,3],[3],[7,2,4,6,1],8,[6,10]],2],[0],[4,[2,[5,5,1,8,9],9,8,3],[7,7,9],7]] + +[[10,8,7,[8]],[[],[[8,8],3,9,[10,0],3],[8],0,[0,[9,3,3],8]],[[6],3,10,7,[5]],[10],[[],[]]] +[[[3,9],8],[[[3,3,2,8,8],10,9],6],[[[4,2,4],[3,1,5,4,2],4,1,1],3,4]] + +[[],[6],[4,[[1,2,0],[2,10],10],8]] +[[[7,2,7,0,2],[[4,4,0,1],6,[],[2,8,1]]],[[0]],[[6,[9,6,9,3]]],[[3,[1,5],[8,9,2,9],7],[[],[4],10],1,[[4,7],0,10,6],[]]] + +[[8,2,[[0,7,3,0,0],3,2],[[],[10],[],[1]],[8,[],[6,6,2,5,5],[6,9]]]] +[[[9,[7,0,1,8],[],2,[]],[5,2,[2,7,1,9,10],5,[0,7,8]]],[5,1,[[6,10,5,5],[0],4,0,[2,5]],0,6],[7,7,[3,2,1]],[[[9]],9,[[],[3,6,8,5,10]]]] + +[[[[9,1,5,10],9,5,[1]],[[8,2,3],[4],[8],[4,4,5,9,5]],8,5,9],[5,[3,[2,4,5],3,8,2],[[3,0],1,[9],[10,1]]],[],[2],[]] +[[[[2,1,5,9],5,[5,0,5,9,1],8,4],6,1,4]] + +[[[[0,5,0],0,1],[]],[[[6,6],8,[1,4],7,[7,4,2]],[],[[7],9,10,[0,10]],[4,4,[]]],[[[0,5,0],6],0],[10],[[4,[10,0],[7],3,[1,1,9,10]],6,[],3,[[0,8,8,2,5],[4,6],[],10,9]]] +[[[]],[[[0,3,7,5,8],6,6],10,[[],[7,8,10,3,9]],1,[]]] + +[[2,[],[5,[9],10]],[5,[[]],3,[5,3],2],[[[],0],[8,[5,10],8,1]]] +[[[1,7,[0,4,1,2],[10],9],[[3,9,2,10],0,[],[8,0,5,7,0]]]] + +[[5,[],[],8]] +[[5,[6,[]],[[3,0,4,4],[4,1],[1,3,2,5],10,2],[[]],[]],[],[2]] + +[[2,3,4,[[6,1,5],0],10]] +[[],[]] + +[[10,[],5,4,[[1,5],1,[5],0]]] +[[1,[[2],9,[]]],[[],3],[3,8,[6,1]],[[1],[10],7,8,3]] + +[[[5],[0,6,[5,7,9],6],[]]] +[[[],[4],10,[[]]],[2,[[10,9,1],[],[]],[[],7,10,[7]]],[[3]],[[[4,2,5],1,[3,6,0,1,3]],0,[[4,4],[5,8]]],[0,[[6,2,10],7,4,[],[]],[8],2,[10,6,[8,4,2]]]] + +[[7,[5,7,2,[8,0,2,0,3],[7,5]],[]],[],[[[],[5,6,3]],[[5,4,1]]]] +[[[2,[9,5,3]],1],[[[10,9,5,2],5,6,[],[]],8,5,9],[7,[[],5]]] + +[[[10,[3,10,0,8]]],[[[],8],1]] +[[4],[[]],[[[],1,[7,3,1,4,0]],[[8,1,7,3],[3,8,3,7,6],[7,0,1],[]],[10,10,4,[],[6]]]] + +[[7,[[1]]],[],[9,4,[],[[5,9],[5],[3,4,4,2,4],10,[7,0,6,1,6]]],[[],2]] +[[7],[6,[6,0,[5,8,5,2],10,[9,8,10,8]],0],[[7,[3],[0,4],[7,0,6,7]],[[8,6,2,9],4],7],[5,[[2,8,8,6,1]]]] + +[[],[10,[9,[],5,8,3],[[10,0],[2,2,9,8,10],[5,7],[2],2]],[[[3,10,6,1,4],[5,6],[],6,[6,8,6,0]]],[],[]] +[[8,10,[6,[],2,4,6],0,[[0,5,6,3],5]],[[8,1],2,[],[[6,10,7,4,4],[8],[8,5,10]],[3,5,9,6]],[[9,[6]],[[10,4,2],3,4]],[[3],3],[[],5]] + +[[[[0,4,0,1,5],[0,10,6,10],[10,4,10],[0,2,5],[0,10,6,8]],[5,7],[[7,7,10,10],[3,0,2],7,[]]],[3,[]]] +[[[],0],[0,[[8,10],3,0,10]],[5,[[5,3,5,7],1]]] + +[[2,[6],8,7,1],[[[10,9],[9,10,6],5,[8]],6,[9,[1,9],[1,9,4,8],6],[[9,0,8,4],[7,2,8]]],[3],[[[5,1,1]],[9,[0,1,3],1,[8,5]],7,8],[4,[[6,6],2,4,[9,1]]]] +[[9,[8],[],2,2],[0],[4,[2,1,[6],[],10],[[1,5,8,0,10],1,[1,8,10]],[10,1,[4],[8,5,8,5,5],4]],[10,[],0],[6]] + +[[[[1,1,10],8,1,[8]],[7,6,4,3],4],[[[3,2,4],7],[10],9,[[0,2,1,0,3],10,2],[[],[9,0,2,4,8],1,7,0]],[[[0,0,0],[],8,[7,7,7],9],[]]] +[[1,[[],[2,3,4,3],3,[5,0,4,3,7],1]],[0],[],[6],[[[8,6,0,3,9],9,8,[10,3,10,10,6]],[3,[6,3,5],[4,0,7]],8,0,[6,4,[6,6,4,8,4],[6,7,10,1,3],9]]] + +[[8],[],[[[3,7,7,7,7],4]],[2,[7,[],3,5]]] +[[[[],3,9,[10,3,8,10],[]],10,1,4],[3,[5,[0,9,8],[3,4,0,1]],[[1,6,1,7],1,[5,4],5],[]],[[4,[6,9],[3,10,9,0,5]],[[],5,[1,6,9,3],6,[5,10,6,10]],[3,[0],[6,8,6,0]]],[4,7],[[[2],[8,5,9,1,5],[2,8,3]],3,[0,[9,3,1,4,9],[6]],10]] + +[[8,[],[3],3,5],[6,1,2],[],[],[[[4,6,10,1,3],1,1,6],3,[],[[0,2],5,[],[5]],[[9,7,0,8]]]] +[[10,[]],[[[],5],[4,[6,2,10,8,9],[8,4,3,10],[8,3,8,0,5]],5,[[],[2,0,10,2,5]],7],[3,[],[5,6,4],9,0]] + +[[[[1,7,5,1,4],[5]],0,[[5,6,6,7],[5],[4,2,8,6,6]]]] +[[6,[[4],10],[]],[],[[3,5,[2,2,1,7],[1,8,5,1]],[0,6,[6,6,10]],0,9,5],[[]],[[[6,4,8],1,[7,7,7,0]]]] + +[[[],[],8,10,2],[]] +[[],[8,[[4,8,2,9,3],[4,0]]]] + +[[[[],0],[[],10,8,9]],[[6,5,3,[3,7,3]]],[[[5,0,2,3,9],9,8],[0,3,[3,2,5],9],2,3],[[2,8,0,[4,2],2],2,[[8,3,10,0],[3,0]],0]] +[[6,[[5,4,4]],3,7,0],[[[5,0,10,9],6,1,[10,9,5],[4,4]],[5,[1,6,9,10],[],0,[]],[],9],[1,[[5,10],10]],[3,[],[[2,10],[7,5]]],[[1,[0,7,8]],[[6,0,5]],8,8]] + +[[4,6]] +[[[[1],[5,0,2,7,4],[3,0,1,2]],0,[10,[10,2],9,[9,6,1,7],5],[[10,0,4,4],[4],3]],[6,2],[1,[5,9],9,9]] + +[[[2,[8,9,3],4,2],[5,4,[],[3,3]],2,8],[],[[[8,5,6,7],[10,0],[7,2,5,5,4],6,[3]]],[0,[0,[]],[[4,7,9],4,[3,3,8,2,8],8],[10,[],[4]],5],[[[7,10],7,[0,3,8],[4,4,8,7]],[[2,0,5,1,5],0,6,[4,1,8,4,5],7],3,[6],[8,[],2]]] +[[10,[1,[3,8,7,5],[2,3,3],[3,3,3]],[7,1,[],[5,8,7,9]]],[[4],[8,1,4,[2,3,9]],4,[8,8,[8,10],[9,7,6]]],[1,[10,1],5],[[],[[5],[]],[[10,10,5,4,10],[9,0,0,8,3],[],[0,4,0,4,9],3],3,[[],[5,0],10,[3,5]]],[[[9,5,1],[4,5],8,1]]] + +[[[]],[8,[[10,4,8,4],[1],[6,2],7,9],8],[7,2,[[2,3,0],[5,0]],8],[[2],0,4,6,7]] +[[1,4,[[5,10,6,5],8],1,10],[2],[[[6,9],[3,2,9,7,6],[7,10,3]],[3,[4,3,4]],10,4,2]] + +[[[],[3,[]]],[[[7,0,3,3,6]],[3,3]]] +[[0,9,8],[4,9,[3,[2,8,7,2]],4],[8,0],[4,0,7,[]],[]] + +[[8,[[2,4,0,2],[5,10,2],9,[3,5]],7,[5,[4,5,6,3],[4,7,10,0],7,1]],[3,7,[2]],[[[9],3,[10,8,0]]],[[4,[],[9,7,0],[5,4],8]],[[],[9,[0,10,1,3],[4,5,8],2,6],9,[1,0,7,[0,1]]]] +[[[[6,5],[7,7],[8,5],1,7]],[4,[0,10,9,4]],[[6,[5],0,7,[10,9,3,6,4]]],[[[0,3],[1,3,3,8,0],2,4],[9],[]],[[[8],0,[4,6,2,4,3],3,[]],[[6,4,10,7],2,1]]] + +[[9]] +[[[[8,9],[2],7,3,7]],[[],[[8],[],[3,4,4,2],2,5],2],[3,6,10]] + +[[[],2,1,3,[]],[10,[[],[8,1],3,8],[[],[],[4,7,1,6,10],[1,9,1,6]]],[[],9,[1,[1,0],[4],[],7],8],[],[4]] +[[[6,8,9,[10,1,2,2,2],[4,0,4,2]],[[5,8,3,2,7],9,0,1,[8,7,3,6]]],[]] + +[[1,[],4,10,[[6]]]] +[[9,[[9,6,10],8]],[6,[5,2,[4,9,2,7],[9,7],10]]] diff --git a/data/13_2023.txt b/data/13_2023.txt new file mode 100644 index 0000000..8b26ae2 --- /dev/null +++ b/data/13_2023.txt @@ -0,0 +1,1349 @@ +.##.##....##... +.....#.#.#..#.# +.....#.#.#..#.# +.##.##....##... +..###.#.##..#.# +#.###.#.####### +##..#..###.#### +##.#.#.######.# +..#.#....##..#. +..###..##...... +....#...#.#...# +....#...#.#...# +..###..##.#.... +..#.#....##..#. +##.#.#.######.# + +##..#...#.#..#. +##.###...###..# +...#.#####....# +..##.#####....# +##.###...###..# +##..#...#.#..#. +..#..###.#####. + +###......#.###. +#..#.##....##.# +##.#.##....##.# +###......#.###. +#..###.#..#.... +..#.....##....# +#..##..###.#..# +#..##..###.#..# +..#.....##....# +#..###.#..#.... +###......#.###. + +#####..#..##..#.. +##..#............ +.##.##..######..# +#..#.#.#..##..#.# +.#.#..##..##..##. +...#....##..##... +##.#..##.#..#.##. +.##..#.########.# +..#####.##..##.## +.###.#.#.#..#.#.# +.###.#.#.#..#.#.# +..#####.##..##.## +.##..#.########.# +##.#..##.#..#.##. +...#....##..##... +.#.#..##..##..##. +#.##.#.#..##..#.# + +#.#.####### +#...#.#.##. +##..#.#.##. +#.#.####### +##.#.##.##. +.##..#.#..# +#..#####..# +#.##.#.#### +.##.####..# + +......##...###. +.###.#.#..#.#.# +#.#....###.###. +..#..#.#####..# +#.#...#.#...##. +#.#...#.#...##. +..#..#.#####..# +#.#....###.###. +.###.#.#..#.#.# +......##...###. +.#..####...#### +.####.######... +.####.#######.. + +...####...#.#..## +###....#####..#.. +...####.....###.. +.##....##..##..## +..######..##..#.# +...####.....#.##. +....##.....#.##.. +##..##..###.##### +...#..#.....###.# +##.####.###.#.... +##..##..##.#.#### + +#..###...###... +#.##..#.#...##. +#.#...#.#.####. +###....##...##. +##.....#.###... +.#.....#.##...# +.#.....#.##...# +##.....#.###... +###....##...##. +#.#...#.#.####. +#.##..#.....##. +#..###...###... +.##.####.#####. +.####.##...##.# +.####.##...##.# + +..#.#####.... +..#.#####.... +#.#.#.###..#. +.#.#.....#.## +..#.###.....# +.##...##..... +#....#.....## +..####.#..... +.#.###..##.## +#..#####.#.## +#..#####.#.## +.#.###..##### +..####.#..... + +.#.##.###.. +#...##.#.## +..#.#...#.# +..#.#...#.# +#...##.#.## +.####.###.. +##..#.##.#. +.####.#...# +...###.#.## +.#.#...###. +.#.#...###. +...###.#.## +.####.#...# +##..#.##.#. +.####.###.. + +.#..#..#..##. +##..#..#..##. +####..#...### +.#..####....# +.###.#.#....# +.#.##..#..#.# +.....##...... +....##..#..#. +###.##.#..##. +#.#....###... +#.#....###... +###.##.#..##. +....##..#..#. +.....##...... +.#.##..#..#.# + +..##..# +####.#. +...#... +...##.. +####.#. +..##..# +..#.#.# + +.##.##.##....## +#..#..#..####.. +#..####..#.##.. +#.#.##.#.#..#.# +..######..##..# +###.##.######## +#.######.####.# + +#.##.##..##.# +..##..######. +...#.##.###.. +.#..##.#.#.#. +.#.#.#.##..## +.#.#.#.##..## +.#..##.#.#.## +...#.##.###.. +..##..######. +#.##.##..##.# +##..#...#..#. +.#.#..#..##.# +##..#####.#.. +##....##.#.## +##....##.#.## +##..#####.#.. +.#.#..#..##.# + +#.##.## +...##.. +##..##. +#...#.. +#...#.. +##..##. +#..##.. +#.##.## +##.#..# +##.#..# +#.##.## + +....##..... +##.####.### +##..##..### +.########.. +.#......#.. +.########.. +..######... +###.##.#### +..#.##.#... +....##..... +##.#..#.### +####..##### +##.####.### +..#....#... +##..##..### +##.####.### +.....#..... + +###..###...##.. +###..###..#.### +.######.####... +..####....##### +##.##.##..#.### +#......#.#..#.. +#.#..#.###..#.. +#..##..##.#.... +#.####.#.####.. +.#.##.#.##.#### +.######...###.. +##....##.#.###. +........#.##### +##....###..##.. +#########..##.. +.######..####.. +##.##.#####.### + +##...#.#.###..# +#.####..#.##.#. +.##.##..#.##.#. +###..#..#.##.#. +.#.##...##..##. +.#...#..######. +.###.#......... +.###.#####..### +.###.#####..### + +########.#.## +########.#.## +..#.#.#.###.# +#..#.###..#.# +..#..######.# +###....#.#.## +..#..#.#..### +..#..#####... +...###.#.#..# +##....#.#..#. +....#....##.. +.....#####... +###.###.#.... +..###..#...#. +##.#...##...# +###...##.##.. +##.#....#.#.# + +....######. +#..###..### +.....#..#.. +#####.##.## +.##...##... +....######. +....##..### +.##.#.##.#. +.##.######. +.##........ +....######. +.##..#..#.. +#..#.#..#.# +.##.#....#. +####..##..# +....######. +#..#..##..# + +##.#....####### +..###...##..##. +..###......###. +...#...#....##. +######.##.###.. +..###.......#.# +##.#.###..##.## +###.###.######. +##...###.#...#. +..##.##.#.###.. +..#.#..###..#.. +...#..#..###.## +..##.....#..#.. +..##.....#..#.. +...#..#..###.## +..#.#..###..#.. +..##.##.#..##.. + +.#..####.#. +.#..####.#. +..........# +.#..######. +.#...##.##. +#####.####. +#..#....### +#..#....### +#####.####. +.#...##.##. +.#..######. +#.........# +.#..####.#. + +####.#. +##..#.# +###..#. +..#.#.. +..#.#.. +###..#. +##..#.# +.###.#. +.###.#. +##..#.# +###..#. + +.#....##.#.###. +.....####.#..## +....##.####.##. +##...##..###.## +.#.#..#.###..## +####.#.#.##...# +.#.###.##.#..#. +.#.######..##.# +.#.######..##.# +.#.###.##.#..#. +####.#.#.##...# +.#.#..#.##...## +##...##..###.## +....##.####.##. +.....####.#..## +.#....##.#.###. +.#....##.#.###. + +###..######## +########..### +.##..##....## +##.##.##..##. +###..######## +.#....#.##.#. +.##..##....## +..#..#..##..# +.######....## +.##..##.##.## +##.##.######. +..#..#..##..# +.#.##.#....#. +#.####.####.# +.##..##....## +##.##.##..##. +..#..#...#..# + +##..#...# +.##.#.##. +......#.. +##.####.. +...###..# +###.##.#. +###.##.#. + +###..###.####.. +###..###.####.. +#.####.#..##... +........#....#. +##....##..##... +#.#..#######... +..####...#.##.# +..#..#....#.#.# +..####...####.. + +####.##..###..### +...##.###...###.. +..###.#.#####.#.. +##.#..#####.#.#.. +.#..#.#.#...#.### +...##..##...##.## +...#..#.###..#... +..###.##.#.#..... +#.##..##..#.#..## +.######...####... +.######...####... +#.##..##..#.#..## +..###..#.#.#..... + +..##.#### +.#....##. +.##..#..# +..#.#.### +.##..#..# +##.#.#..# +##.#.#..# + +..###..#..#....#. +...##..##.######. +...##..##.######. +..###..#..#....#. +..##.##.##.#..#.# +#...#.###..####.. +.##....#..##..##. +######...######## +######.#####..### +.#....#..#......# +##....#.#.######. +.##.###.#..####.# +#.#.#####..#..#.. +#####.#.##.#..#.# +#.#######........ + +..######### +...##.##.## +###........ +##..##..##. +..#........ +..##..##..# +###..####.. +...#.#..#.# +##..#....#. +..#...##... +...##....## +##.#.#..#.# +####...#..# +..##.####.# +...#..##..# + +...#.#### +..###..## +.###.#..# +###.##.## +.##...### +###.##... +###.##... +.##...### +###.##.## +.###.#..# +...##..## +...#.#### +.##....## +.##....## +...#.#### + +..#...##. +#.#.##..# +######..# +...#.#..# +#...#.... +.#...#### +.#...#### +##..#.... +...#.#..# + +..#..###.#. +..#.####.#. +.###....##. +##.#...###. +#..##..#..# +#..##..#..# +##.#...###. + +...########...# +#.#........#.#. +#....#..#....#. +...#......#...# +.#...#..#...#.# +#.#..#####.#.## +..#..####..#... +..###....###... +..#.#.##.#.#..# +..#...##...#..# +..#...##...#..# + +..#..###.##..##.# +..#..#.#.##..##.# +##....#.#.####.#. +#.#.###.......... +...#..##.#....#.# +...###..#.#..#.#. +...##...#.#..#.#. +#..#.##.###..###. +#..##.####....### +.#.#...#.##..##.# +#....##..##..##.. +#.#.....#.#..#.#. +##.#.###..#..#..# +.##.....#......#. +#..#....########. + +#####.. +..####. +..####. +###.#.. +..#.... +###...# +.#..##. +...#.## +...##.. +.#...#. +.#...#. +.###### +.###### +.#...#. +.#...#. +...##.. +...#.## + +.#.#### +.#.#..# +#...... +#..#### +###.... +.#.#### +###.... +###.... +##.#### +###.... +#..#### +#...... +.#.#..# + +...##.#.#..###..# +###.#...#...#..#. +.#.#.##.#.#..##.# +.#.####.#.#..##.# +###.#...#...#..#. +...##.#.#..###..# +#....#...##..#.## +#.#...#####....#. +#.#...#####....#. +#....#...##..#.## +...##.#.#..###..# +###.#...#...#..#. +.#.####.#.#..##.# + +..####.#... +..##.#..#.. +..##.#..#.. +..####.#... +..#..#.#.## +...##..##.# +..#.#.##.## +....#.#..## +#####..#..# +###.#.#.### +...#.####.# +.....##.... +#.#.....#.. +....##...#. +##....##... + +#####....###..### +#####..#.###..### +#####.####....#.. +.#..#....#.#.#.## +#....#......#..## +#..#.##.##..#.#.. +.###..##.#.#..... +..#..#.###..##### +..#....#..#.##... +#.#.###.#.#.#.... +..#.....###..#### +.##.###.##.##..## +#.#.##....##...## + +##..#.####.#..# +###.########.## +.#..#......#..# +######.##.##### +##..#......#..# +##..##....##..# +#.##.#.##.#.##. + +##.####..## +..#.#..##.. +...#.###### +.###.###### +###....##.. +##...###### +.###...##.. +..#.#..##.. +.##...#..#. +.##........ +#..#.###### +#...###..## +#....###### +.#......... +#.###..##.. +###....##.. +#.######### + +#.##...###..##..# +#.###.###...#.#.. +#.###.###...#.#.. +#.##...###..###.# +#...#....#...#.#. +#....##.##..##### +..##..#####.##..# +###.#####.#.###.# +#####..##.#####.. +.#..#.##.#.#...## +##.....#.#.#.###. +##.....#.#.#.###. +.#..#.##.#.#...## + +...####.###.###.. +###.#.#..###.#.## +...#######..#.... +...####..#..##... +......#.######### +....#.#..####.### +.....#....##..##. +....#..##..#.#.## +..#..#...#.##.#.. +...#..##.#.##..## +...#.#.#.#.#.##.. +###.#.##...#..### +..####..###..#... +..#..#.#.....#### +.....#.###..##.## + +..##### +#..#.#. +#..##.. +.....## +#.#..## +.#.#### +####.## +####... +..##... +.#..... +.#..... +..##... +####... +####.## +.#.#### + +.##.##.##.. +.##.##.##.. +###....###. +#.##..##.## +#...##...#. +.#.####...# +####..####. + +#..##.#.#..#....# +####.##.###..##.. +##....#.##..####. +#...#####.####### +#....####.####### +##....#.##..####. +####.##.###..##.. +#..##.#.#..#....# +#..####.###...... +##..#..##.####### +..#.#....#.#....# + +###.#..#. +.#.#...## +.###...## +###.#..#. +...#..### +###.##.## +.#.#.#..# +#.....#.# +.###.##.# +#.#.#...# +..#...... +#.#..###. +....##... +#.#....#. +.....#### +.....#### +#.#....#. + +..##.##.##....### +..##.##.##...#.#. +##..#..#..##..##. +.##......##.#..#. +.##......##.#..#. +##..#..#..##..##. +..##.##.##...#.## +..##.##.##....### +..#.#..#.#..#.##. +.##.####.##.##..# +##..####..####... +.###....###.####. +.#........#.#...# + +..#####..#..#.. +##......#.##.#. +####.##.##..##. +###..##.#....#. +##.##..##....## +##..#..#..##..# +#...#..##....## +..#..#......... +..###.#.#.##.#. +...#..#..#..#.. +.....##.######. + +####.#..#.##. +####.####.### +...#.#..#.#.. +##.#......#.# +...#.#..#.#.. +..####..####. +###.#.##.#.## + +..###..##.. +.#.#.#....# +.###.##..## +..#..#.##.# +.#.##.#.... +..##.##..## +#...###..## +#...###..## +..##.##..## + +..##.#.#.## +#.##..##### +#.......... +#....#..... +#.##..##### +..##.#.#.## +###.#..#..# +...##.##..# +#.####.##.# +...#..#.... +.#.##....## +.#.##....## +...#..#.... + +###..#. +...#..# +..#.### +###.### +...#..# +###..#. +...#### +...#### +..##.## +..#...# +...#.## +##..#.. +..#.... +..#..## +..#.### + +#....#.#.#... +#.###.###.### +.####..##.#.. +....#...##.## +.#####....... +.#####....... +....#..###.## + +..##..##..# +##...#.#### +#...##.#..# +##...###### +##.##..#### +#.....#.##. +#..#..#.##. + +.#..#...#...##. +.#..#...#.#.##. +###...####..##. +###...##.#..... +.#.#..#....#### +.#...####.#.##. +...#####...#### +##.##.#.###.##. +####..##...#..# + +.....#. +.....#. +###.... +######. +##..#.. +#.#...# +#...... +#...... +#.##..# + +########.##.# +######.##..## +#.##.###.##.# +.......###### +.#..#..###### +##..##..#..#. +.####.####### +..##....####. +#.##.######## +#.##.###..... +#....#..####. +##..##.#.##.# +#....#.#....# +.####........ +......#.####. + +.#.#.#..### +..#.#####.. +.#...#...## +###..#.#.## +.####..#... +.#.#.#...## +...##...... +#.....##.## +.##...#..## +#######.#.. +.######.#.. +.##...#..## +#.....##.## +...##...... +.#.#.#...## + +#####........#. +...#.##.##..#.# +..#.#.###.#.### +...###.####.... +##...#.#..#.... +##...#.#..#.... +...###.####.... +..#.#.###.#.### +...#.##.##..#.# +#####........#. +.#...##...#.##. +.#.####.##.#.#. +.#.####.##.#.## + +.#...#.##.. +##.##.#.### +##.#.....## +.........## +..##.#..### +.#.#.#.##.. +#.......### +#.......### +.#.#.#.##.. +..##.#..### +.........## +##.#.....## +##.####.### + +....#..#....#.... +##...##...##..##. +#.##.##.##.####.# +###.####.######## +###.#..#.######## +..###..###......# +.#.######.#....#. +..#.#..#.#......# +.#..####..#....#. +..#..##..#..##..# +##.#.##.#.##..##. +#..##..##..####.. +####.##.######### +#.#.#..#.#.####.# +...#.##.#........ + +##.##.##.#.#..#.# +#.####.########## +...##...#..####.. +..#..#..#.######. +.#....#.##..##..# +.#....#.#.##..##. +#..#...#......... +..#..#.....####.. +.#....#.###....## +..........##..##. +..#..#..######### +..........#.##.#. +.#....#.#........ +...##............ +..#..#..#.######. +.######.#...##... +###..###.###..### + +...#....##.## +###.####.###. +###.####.###. +...#....##.## +.#..####.##.# +..#...#....#. +#..#..#..##.. +###.##..#..#. +..#####.###.. +####......... +.####.##..##. +.#.#.###..##. +.#.#.###..##. +.####.##..##. +####......... +..#####.##... +###.##..#..#. + +.#.############ +#....#.####.#.. +#.#.#...##.#.#. +..##.##....##.# +....##.#..#.##. +..##..######..# +#####........## +.#.##...##...## +.############## +####.########.# +####.########.# +.############## +.#.##...##...## + +##..######### +##..#.##.#.## +..###...#.### +#####...##.#. +#####...##.#. +..###...#.### +##..#.##.#.#. +##..######### +#####.#.##.## +##....#...#.. +##.#.####.#.# +##.##.###.... +...#.#.#....# +##.#..###.### +...#.##....#. + +####.###. +.######.# +.##.##.## +#..#.##.# +....#.#.. +#..#..##. +....#.### +########. +########. + +....#...# +#####.... +#####.... +....#...# +#..#.#### +#..#..#.. +.##...#.# +.##...#.# +.#.....## +#..#..##. +########. + +.#..####...#.## +.#..#####..#.## +##.#.#..#.#.... +#.#.##.#.##.... +.#.##..##..#### +.#....##...##.. +#.###..#.#.#.## + +#.#...# +#...##. +.#..... +.#.###. +.#.###. +.#..... +#...##. +#.##..# +#.##..# +#...##. +.#..... + +######. +#...... +..####. +.###### +#...... +.#.##.# +.#.##.# +#...... +.###### +..####. +#...... + +..####### +#.##.##.# +#.####### +.######## +....#..#. +..#...... +#.#...... +.#.#....# +.##.####. +#........ +.#...##.. +.#...##.. +#.#...... + +##...##...# +##.#....#.# +.....##.... +####....### +..##....##. +.....##.... +##.##..#### +..#..##..#. +###..##..## +.....##.... +##.######.# + +#..##.#....#. +#....#..###.# +#....#..###.# +#..##.#....#. +.##.#.....##. +.#.######.##. +.###.##.####. +..##.##.####. +.#.######.##. +.##.#.....##. +#..##.#....#. + +.##.... +#..#..# +..##..# +####..# +.##.##. +#.#.... +.#..... +#.#.... +###.... + +##.#.......#...#. +##...#....##..### +.#..#.#...###.### +.###.#..###.#.#.. +######..........# +######..........# +.###.#..##..#.#.. +.#..#.#...###.### +##...#....##..### +##.#.......#...#. +#####..##.#####.# +#..#.##...##.#### +#..#.##...##.#### + +..#..#..###.. +.####.##...#. +.###..######. +.###...#####. +.####.##...#. +...#.#.##...# +#...#..#.##.# +.######.##..# +#.##.##.#.### +#.##.##.#.### +.######.##..# +#...#..#.##.# +...#.#.##...# +.####.##...#. +.###...#####. +.###..######. +.####.##...#. + +#.#........ +..#.##.#### +##...###### +..###...... +##.##.##..# +......##..# +.#.##..#### +##..#.#.... +..##.#.#### +.#.#....##. +#####.#.##. +.####.#.##. +.#.#....##. +..##.#.#### +##..#.#.... +.#.##..#### +......##..# + +#####.#..## +#..###.###. +.##..####.# +.##..####.. +#..###.###. +#####.#..## +.........#. +.##...#.### +.##.####..# +....###.### +#######.#.. + +#.###.#.#.#.#.# +.##..###..###.. +..#.##...####.# +..#.##...#.##.# +.##..###..###.. +#.###.#.#.#.#.# +.....#....##.#. +.........#####. +......#.......# +..###.#####.### +.###..###.#.### +.##.#..#####.## +.##.#..#####.## +.###..###.#.### +..###.#####.### +......#.......# +.........#####. + +.#.##..## +...#..#.. +###..#.## +##...#.## +##.####.. +.#..##.#. +.#..##.#. +##..###.. +##...#.## +##...#.## +##..###.. +.#..##.#. +.#..##.#. +##.####.. +##...#.## + +.#.###....###.# +######....##### +######....##### +.#.###....###.# +.####..##..#### +##..##....##..# +.##.###..###.## +....#.#..#.#... +##.#.######.#.# +#.###..##..###. +..##.######.##. +##.#.######.#.# +..#.#.####.#.#. +.#....####.#..# +#.#..#....#..#. + +##.#.#...#.## +#...#..##.#.. +#...#..##.#.. +##.#.#...#.## +....##.##.... +.#....####.## +...#...##..#. +###.#..#...#. +....##...#.## +.#..##...#.## +###.#..#...#. + +........#..#.#.## +#.#..#.######.#.. +.#....#..#.###### +..####...#...#... +#..##..#.##.##... +##.######.#.#..## +#......#..#..#.## + +###.##..#..##..## +##.#.##.##..####. +..#.#.##.#..#..#. +##...#..#...####. +###.##.....#.##.# +...#.....#.#....# +...####..##.#.... +##.##.##..#...... +###...#..#.#....# + +##..##..######. +###....######## +###.##.######## +#........#..#.# +.#.####.#.##.#. +...####...##... +##########..### +##.#..#.##..##. +.##....##....## +##..##..##..##. +....##......... +##......##..##. +.#.####.#.##.#. +.##....##.##.## +.#.####.#.##.#. +.#.####.#.##.#. +#.#....#.####.# + +####..###..## +.#......####. +#...######### +#....#....... +.#.##.#.####. +.....##...... +.....##...... +.#.##.#.####. +#....#....... +#...######### +.#......####. +####..###..## +###..##.#..#. +.#..#.#...... +##..#.##.##.. + +#.##.## +....#.. +#..##.. +....### +.##.### +....### +####.## + +##.#### +..###.. +..###.. +##.#### +##..### +.#..... +#..#.#. +.#####. +...#.## +..#.##. +.#..... +....### +#.##... +..#.##. +..#.#.. + +####.## +..###.# +##.###. +..#.#.# +##.#.## +##.#.## +..#.#.# +##.###. +..###.# +##.#.## +##.#.## +##..### +##..#.# +..##... +##.#..# + +#.#.### +#####.. +#.#.#.. +...##.. +..#.#.. +#..#### +.####.. +.##.#.. +###.... +###.### +##.#### +.#.#### +##..#.. +.#.#... +.#..### +#.#.#.. +#.###.. + +..####..####.##.# +###..###..####### +..####....###..## +...##...###..##.. +..........###..## +##.##.####...##.. +.#.......#....... +#......##.####### +.##..##.#.#.####. + +#####.### +..######. +####..### +####..### +##......# +###.##.## +..######. + +.#.#....# +#.......# +#..#.###. +...#.#... +...#.##.. +#..#.###. +#.......# +.#.#....# +##....##. +.##.###.# +.##.###.# + +.###.#### +.#.#..#.. +###..#... +#..#..#.. +#.#####.# +.####..## +.####..## +#.#####.# +#..#..#.. +###..#... +.#.#..#.. +.###.#### +......##. +...#..#.. +......#.. + +#.#..##..#. +#...#..#... +..###..###. +#..##..##.. +.....##.#.. +##........# +..##.##.##. +.##......## +.##......## + +..##.###### +#.##.###### +###..###### +##..####### +.#.#..####. +....#...... +.#.#....... +#.#.####### +##.##...... +.###.#.##.# +......#..#. +.##........ +###.#...... +#...##.##.# +#.#..##..## + +##..##...##.. +##..##...##.. +#.##.#.#.#.## +.#..#.###.#.. +#....###.#.#. +##..##.#.#### +##..##....### +#........##.# +#.##.##..##.# diff --git a/data/14_2020.txt b/data/14_2020.txt new file mode 100644 index 0000000..ba608b8 --- /dev/null +++ b/data/14_2020.txt @@ -0,0 +1,565 @@ +mask = 001X10110010XXX1011X10X0X010110011X0 +mem[7813] = 131 +mem[54447] = 69257 +mem[4649] = 764452 +mem[19188] = 31285 +mem[12729] = 12561 +mem[53924] = 61854625 +mem[30643] = 31622 +mask = X10X010101101011X011X0X1010XX0001101 +mem[65231] = 6306247 +mem[9606] = 842 +mem[35435] = 39105817 +mask = 00X010010XX01001011011111010010X10X0 +mem[15228] = 58105116 +mem[57434] = 3463765 +mem[65279] = 4039619 +mem[21972] = 185592 +mem[23182] = 637258 +mem[26506] = 21618105 +mem[59419] = 1185 +mask = 11100X1X1X1X100110X110011X1001X01100 +mem[41224] = 182354525 +mem[63664] = 11139 +mem[59848] = 465555194 +mem[7441] = 426 +mask = 0000X0XX100010X111101000100011010X00 +mem[32794] = 26498404 +mem[36528] = 4609841 +mem[52372] = 928374411 +mem[50746] = 13530768 +mask = X0X0011X01101XX1101X00X1110X00111011 +mem[23705] = 4702 +mem[53987] = 260925767 +mem[38759] = 107180723 +mem[4145] = 1388225 +mask = 01100X1X00111X0100XX10001X1X11X11011 +mem[21659] = 48254 +mem[47784] = 579 +mem[15339] = 3634 +mem[26981] = 17056 +mem[56944] = 7553 +mem[54362] = 25509 +mask = 11100011111X1X0X10010010X01X01X01100 +mem[36538] = 720281 +mem[40349] = 4553 +mem[38747] = 121580 +mem[47936] = 853 +mem[64464] = 14729 +mem[13543] = 7412 +mask = 0110X0X10X111001001010011001011XXXXX +mem[59367] = 1805959 +mem[35408] = 1062861636 +mem[2438] = 104177 +mem[45204] = 49297768 +mask = 11110111X1X110X11111000010110X101X01 +mem[43520] = 50829 +mem[52879] = 6973 +mem[34130] = 1858472 +mem[30580] = 116283566 +mem[59200] = 77309650 +mem[39793] = 19368 +mem[21462] = 484824 +mask = 0111X001100011X11X0000001X1010XX101X +mem[48944] = 713350 +mem[15050] = 125604 +mem[62553] = 4265286 +mem[32331] = 207 +mask = 00101X010X00X00110X0010X00000X010000 +mem[37193] = 24490589 +mem[47114] = 24972867 +mem[19137] = 85518698 +mem[28948] = 15755 +mem[63089] = 207050481 +mask = 0X001000XX10100X111010X011XX1000X100 +mem[21622] = 12726803 +mem[65486] = 259190646 +mem[9456] = 367 +mem[57461] = 22120 +mem[47219] = 461 +mem[42381] = 905567 +mask = 011XX001100011X110X0X00X001X010X0010 +mem[41554] = 246921 +mem[47818] = 12679687 +mem[48892] = 139693999 +mask = 00001X0XX01010XX11X010101100X00011XX +mem[15036] = 387380 +mem[4946] = 2220181 +mem[3330] = 3484229 +mem[60601] = 708273 +mem[30390] = 22847 +mask = X11010110X11100X0010X00X0001X0X1100X +mem[26506] = 48168688 +mem[39792] = 1782856 +mem[35767] = 30354 +mem[3782] = 3439 +mem[25399] = 804 +mask = X01X10X10X0X1001001X0X0100X100001100 +mem[36728] = 830047900 +mem[39236] = 454 +mem[35767] = 4930 +mask = X1XX101010XX1001101X0X0000X000001100 +mem[26504] = 38 +mem[26618] = 6509202 +mem[55528] = 49356209 +mem[39373] = 427885078 +mem[6797] = 35727 +mem[60494] = 11588408 +mask = 0X1000X1001X100100100000X010X01X1001 +mem[28964] = 3377598 +mem[37600] = 15038 +mem[54440] = 13014026 +mem[1872] = 54034 +mask = 010000101X00X0X1101000011X1000X11001 +mem[2672] = 38529642 +mem[4612] = 12358076 +mem[54440] = 698 +mem[11542] = 158875347 +mem[29683] = 130676 +mem[58914] = 13086566 +mask = 001XX001X100X0101X10100001100011X11X +mem[61472] = 33350 +mem[22694] = 1012806073 +mem[23462] = 118427580 +mask = 0000100110001001XX100111110X100X0100 +mem[33458] = 194706 +mem[6488] = 4762211 +mem[55925] = 577 +mem[53312] = 691832 +mem[33982] = 74563572 +mem[54155] = 673882 +mem[10046] = 455259 +mask = 00X0X001X0001001X1100000000X1X00X00X +mem[65279] = 18926 +mem[8787] = 404263 +mem[6780] = 192 +mem[57364] = 7578011 +mem[36592] = 1320217 +mask = 01001010X110100X10111101000X10X00110 +mem[10414] = 28478 +mem[8303] = 850886106 +mem[23434] = 109585 +mem[59687] = 55963101 +mem[26357] = 149399655 +mask = 011000010X01100100100X01000X000X1000 +mem[32249] = 957872254 +mem[37097] = 2407 +mem[38976] = 7487 +mask = 0X10000110001XXX1X100X000X10X100X010 +mem[59096] = 256975 +mem[57558] = 187691607 +mem[28499] = 50844685 +mem[21980] = 413222 +mem[9178] = 224473274 +mask = 011010XX00X010010110010000110X000100 +mem[28499] = 13442626 +mem[13668] = 767 +mem[65204] = 1294 +mem[29824] = 761 +mem[7353] = 107008372 +mask = 010010X0111X10011010110X000XXX01010X +mem[31019] = 2529 +mem[25249] = 531972 +mem[7705] = 1198443 +mem[18755] = 1091 +mask = 0100101001X0100X101110010XXX01X01011 +mem[4011] = 170 +mem[55626] = 1616 +mem[64402] = 1736957 +mem[59367] = 1198 +mask = 00100001X01X10011110X111110110000X00 +mem[16640] = 927178 +mem[62784] = 134127 +mem[52017] = 209325301 +mem[62522] = 310138953 +mem[26793] = 913812410 +mem[13893] = 16876 +mask = X000X010X11X100110101000111010001X01 +mem[62349] = 548 +mem[35033] = 529 +mem[55681] = 98474 +mem[21671] = 462821 +mem[24184] = 15122039 +mask = 011000010X10100X0110100010100000X0X1 +mem[64651] = 19198 +mem[65318] = 860 +mem[30180] = 43025 +mem[33280] = 216670269 +mask = 0X00XX1X011010X1101110X0X0X1X0001000 +mem[30267] = 3237 +mem[28430] = 2022016 +mem[10792] = 19348 +mem[10561] = 879088 +mem[32331] = 1030297216 +mem[53667] = 1950 +mask = 0X1X1010100000111X1011X0X01100101010 +mem[3301] = 228441 +mem[57487] = 133621 +mem[64673] = 14195 +mem[6012] = 106013562 +mask = 0010X00X10011001001X0X0110X00X011X01 +mem[28691] = 7828 +mem[3272] = 5314381 +mem[53221] = 906 +mem[36257] = 483 +mem[39139] = 239793066 +mask = 011000011X0010X01X1X010X0X0X010000XX +mem[6731] = 146985 +mem[22302] = 5265995 +mem[25582] = 124093 +mem[15205] = 160800 +mem[60546] = 47017168 +mask = 00100001100011XX1110010X0111000101X0 +mem[62302] = 118384 +mem[4442] = 943 +mem[32331] = 829093 +mem[10054] = 261101 +mem[21200] = 2244874 +mask = 000X10010000100101101X110X1001X00101 +mem[22694] = 160856 +mem[57484] = 16648378 +mem[11347] = 265832659 +mask = 0X100011001X1X01001000XX0X01X1111XX1 +mem[39729] = 15425 +mem[10968] = 43923 +mem[15911] = 153 +mask = 0001X001X00010010110010X0000010111X0 +mem[12587] = 58174 +mem[42542] = 272951779 +mem[4845] = 155009 +mem[47818] = 498 +mem[18721] = 12927 +mem[762] = 13549777 +mem[21972] = 1070883192 +mask = 0X00X0101XX0100110100001101XX0XX11X1 +mem[412] = 805494480 +mem[34671] = 511352857 +mem[56856] = 1382270 +mem[63089] = 67321554 +mask = 00000111011X10X11011X101X001X0001010 +mem[62102] = 10598387 +mem[47818] = 1528395 +mem[50481] = 4148455 +mask = 00X010X0111X1001101010000X101110110X +mem[65185] = 729486 +mem[56292] = 5502033 +mem[12729] = 7021 +mask = 0X10X0010XX1100100100000100XX10X1X0X +mem[37193] = 844441364 +mem[9631] = 725022597 +mem[37488] = 3522 +mem[53516] = 357 +mask = X000X110XX10101X1011100010X100000X00 +mem[6390] = 164431 +mem[8483] = 115021 +mem[47710] = 243784 +mem[49932] = 1658 +mem[32606] = 257364 +mem[41256] = 2470 +mask = 110X0010XX10101110X100X10X111100100X +mem[40832] = 65381067 +mem[29277] = 994339 +mem[9389] = 9978911 +mem[21671] = 11603 +mask = 0100100X10101111111X00X010110111X110 +mem[53651] = 1911 +mem[35511] = 88697 +mem[57887] = 177165 +mask = 0XX0100100X01000111011X1X1X01011X1X0 +mem[59444] = 425 +mem[44821] = 7937 +mem[36257] = 1973535 +mem[40669] = 7964428 +mem[57733] = 16992 +mem[31224] = 9670413 +mem[54960] = 99917 +mask = 1111011111111001111XX1X00X011X10000X +mem[52107] = 52615 +mem[46430] = 2797674 +mem[35037] = 489648 +mem[61728] = 5450284 +mask = 00101X01000010011010010XX00101000X00 +mem[53337] = 167323 +mem[23249] = 144 +mem[49058] = 78020 +mem[65279] = 34789011 +mem[57994] = 278 +mask = X0X11001X000100X1010X00100000111011X +mem[24461] = 69231 +mem[33718] = 3112488 +mem[1525] = 205706 +mem[24842] = 6365432 +mem[37193] = 983 +mem[41010] = 1250771 +mem[9773] = 492 +mask = 000010000X10100X1110XXX00010001X0X01 +mem[11359] = 19286 +mem[15549] = 671 +mask = 001X000110X01X0X10101010011XX001X000 +mem[90] = 4165576 +mem[7059] = 59706 +mem[4845] = 197 +mem[35511] = 28681534 +mask = 1100XX101110X00X1011X0X0111100001X11 +mem[9839] = 7327 +mem[33097] = 475963031 +mem[47912] = 8358 +mem[43269] = 259178327 +mask = 0X1010X10X101001011X11X1101011X0X1XX +mem[16654] = 8368090 +mem[41291] = 2146 +mem[20101] = 34091 +mem[21208] = 76242 +mem[35435] = 15664567 +mask = 00101001010010X1011011010X11010XX1X0 +mem[18755] = 314 +mem[44355] = 1709364 +mem[56366] = 15879386 +mem[23427] = 1174 +mem[19831] = 39454 +mask = X1101011001X1X01001X10111001011XX110 +mem[23505] = 402 +mem[47596] = 2233058 +mem[21760] = 45933 +mem[44370] = 27609 +mask = 001010010X0010XXX1101111X0X000X1X01X +mem[55611] = 1454243 +mem[38591] = 232585 +mem[21621] = 231761578 +mem[10169] = 4045271 +mem[52902] = 35939890 +mem[60957] = 205198448 +mask = 01001000X0X01111X11X111100011011X11X +mem[32807] = 243712052 +mem[45204] = 774567686 +mem[62717] = 171 +mem[55911] = 132 +mem[39733] = 44429 +mem[53259] = 79063 +mask = 00100001101X1X0110100X11011X0X010000 +mem[54912] = 65854650 +mem[33458] = 865332 +mem[40603] = 96 +mem[62127] = 4144 +mask = 00101001X00X1001XX10000X1X1X0101X000 +mem[37193] = 127119 +mem[21633] = 16917 +mem[36257] = 211 +mask = 01X010110010XXX101100X10X0010100X1X0 +mem[48000] = 1030 +mem[390] = 3489961 +mem[14671] = 218111318 +mem[55181] = 232521891 +mem[56447] = 5498 +mask = 00XX101011111001111100XX10X10111X000 +mem[17945] = 14147766 +mem[5804] = 9317 +mem[3243] = 76354 +mem[39812] = 17121 +mem[65185] = 882507 +mem[24184] = 1503364 +mask = 001011X10110X00X0110X0100100000X0111 +mem[7059] = 77105630 +mem[9842] = 93469 +mem[28235] = 46130 +mask = 00011001X00010010X101111101X000XX00X +mem[46578] = 188558839 +mem[32794] = 563 +mem[57424] = 16073628 +mem[26204] = 53518555 +mem[21585] = 7589033 +mem[1209] = 174591 +mask = 00X11001000010X1X11XX11100100000001X +mem[14670] = 552230 +mem[59848] = 230555109 +mem[52210] = 2510 +mem[62683] = 42631 +mem[34868] = 20381 +mem[63506] = 20704 +mem[13543] = 149934393 +mask = 0000X010X1101001111100X000X0X0XXX001 +mem[44146] = 9534 +mem[38367] = 71280 +mem[48566] = 39540 +mem[6301] = 488439556 +mem[16638] = 9302 +mem[13893] = 744336 +mask = 0010000X00001001X1X00001X00110XX0X01 +mem[7422] = 659 +mem[7156] = 536497 +mem[50861] = 75915798 +mask = X1X00010X11010X1101X1X101011010X10X0 +mem[23749] = 197897888 +mem[53516] = 19394 +mem[52597] = 327870 +mem[18755] = 9112 +mem[46245] = 256412 +mem[14234] = 89528 +mem[57220] = 95738416 +mask = 00X01010X000X0X1101X1101011X0111111X +mem[60185] = 799555 +mem[33559] = 1502644 +mask = X11X001001101011101011100X11X1001XXX +mem[38795] = 45814003 +mem[16914] = 10781 +mem[22548] = 288 +mask = 011001111X111X011111X0001100001XX11X +mem[43238] = 115469 +mem[62522] = 25284 +mem[7798] = 116533186 +mem[40416] = 14162 +mem[15067] = 511159 +mem[44546] = 9872 +mask = 0X00X0101000100X10100X01111000001011 +mem[28691] = 35897352 +mem[13371] = 68541533 +mem[31458] = 6263059 +mem[53277] = 8235 +mask = 00XX100100001001011011111XXXXXX10X10 +mem[246] = 4365 +mem[63802] = 28023932 +mem[62691] = 38120268 +mem[32606] = 32155701 +mem[8787] = 73310772 +mem[6000] = 187657 +mem[34053] = 6302546 +mask = 001X001100101X01X01010001XXXXX111001 +mem[62717] = 2689826 +mem[6969] = 3812794 +mem[24914] = 682498819 +mask = 0X10X0010XX010X1011001110X100000X00X +mem[29061] = 34429630 +mem[60199] = 3521402 +mem[59922] = 1653 +mask = 00101001000010010X100110XX10010X1001 +mem[47632] = 30829832 +mem[40349] = 2360241 +mask = 000011100110101X101X000X010X11001010 +mem[18625] = 2810 +mem[21671] = 6351 +mem[61897] = 11389 +mask = 011000011000X1XX101010XX00100001X000 +mem[32419] = 9855 +mem[54566] = 13281403 +mem[32842] = 3060651 +mem[52744] = 15731 +mask = 11X01111111110011XX1010X1X1001X101XX +mem[25842] = 357864 +mem[55611] = 4142 +mem[26491] = 1993 +mem[14721] = 46996265 +mem[23074] = 163733 +mask = 0X000XX1X11010X1101X1010X00111000001 +mem[22158] = 121237 +mem[36592] = 656697 +mem[32719] = 676 +mem[33097] = 1034487408 +mem[50670] = 3906154 +mask = 0000001010101X01101X00010X011X1X1101 +mem[47329] = 918208 +mem[1840] = 30632603 +mem[59200] = 2028 +mem[52744] = 32 +mem[30837] = 1214273 +mem[43183] = 3866571 +mask = 0X10X001X000111X1010111X00100X01X1X0 +mem[50788] = 115928382 +mem[50698] = 3427485 +mem[4920] = 452475222 +mem[27354] = 14200 +mem[50989] = 261259 +mem[18721] = 159393273 +mask = 01X011X0011010X11X11X00110XX10001011 +mem[63758] = 15239 +mem[7707] = 2466 +mem[42828] = 51703347 +mem[56944] = 3802 +mem[53539] = 47276878 +mem[51073] = 214485441 +mask = 0010100X010010011110X1100X100X110110 +mem[15448] = 14340 +mem[44061] = 2031 +mem[19707] = 43457433 +mem[40603] = 21065817 +mem[4662] = 30053 +mem[38981] = 1624176 +mem[43872] = 10552 +mask = 0000X0101X1X10011X1X000X1010100101X0 +mem[6012] = 1491 +mem[45255] = 670205912 +mem[7096] = 2912 +mem[4621] = 10593101 +mask = 001010X01111100X10X01001X00110001100 +mem[40984] = 1721577 +mem[56292] = 31350 +mem[27264] = 11075225 +mem[13404] = 35195435 +mask = 0010100110011X01101001X111X0110X1001 +mem[27264] = 1667120 +mem[35927] = 155343034 +mem[40700] = 93937438 +mem[4312] = 16188010 +mem[25983] = 493768 +mask = 00101X0101X01X01011011XX1X10X100X111 +mem[54715] = 79942609 +mem[33413] = 711314 +mem[17167] = 667493 +mem[60601] = 951299 +mask = 0X0X10XX10001XX11X1000010X0110010011 +mem[6829] = 299200 +mem[246] = 7814 +mem[60199] = 134519412 +mem[44196] = 1696 +mask = X11XX111111110011X11XX00101X0111010X +mem[38202] = 63903 +mem[6488] = 295501257 +mem[15959] = 196571 +mem[56914] = 3039159 +mask = 001000XX0010X0X1XX100010X1X11000010X +mem[15428] = 17873557 +mem[46435] = 5226 +mem[26157] = 253038623 +mem[29824] = 51824195 +mask = 00100001X000111010100101X1X1X00X0X00 +mem[1886] = 20037780 +mem[23634] = 438988 +mem[53277] = 24774137 +mem[63775] = 1560 +mem[20283] = 16629883 +mem[43116] = 58381263 +mem[44729] = 272355 +mask = 0001X001X00010X101100101100X0001X11X +mem[56960] = 1407 +mem[12587] = 28256 +mem[49069] = 54282286 +mem[42639] = 202261 +mem[11480] = 7915801 +mem[10095] = 517305 +mem[47429] = 782 +mask = 0X00X00100X0X00101X01111100010X1X00X +mem[64530] = 2002357 +mem[22346] = 193156 +mem[412] = 6478 +mask = XX0X1111011010X1101X11010X1XX010000X +mem[16907] = 15143671 +mem[4135] = 1838 +mask = 00101001X11011010110XX1010101X001101 +mem[7156] = 773 +mem[10128] = 2543913 +mem[30159] = 79295 +mem[26178] = 967449 +mask = 001010010100101X111011010001X0110X1X +mem[47329] = 276882 +mem[24610] = 287174 +mem[8685] = 29977825 +mask = 01001XX011101X01101001XX1X100110110X +mem[64033] = 250909 +mem[56548] = 10731345 +mem[39241] = 6913465 +mask = 01X000X011101011101110001010X100001X +mem[51388] = 4106124 +mem[29060] = 4687691 +mem[27501] = 16143 +mem[25418] = 152 +mem[56360] = 3973 +mem[50100] = 7595264 diff --git a/data/14_2021.txt b/data/14_2021.txt new file mode 100644 index 0000000..eb79acf --- /dev/null +++ b/data/14_2021.txt @@ -0,0 +1,102 @@ +BVBNBVPOKVFHBVCSHCFO + +SO -> V +PB -> P +HV -> N +VF -> O +KS -> F +BB -> C +SH -> H +SB -> C +FS -> F +PV -> F +BC -> K +SF -> S +NO -> O +SK -> C +PO -> N +VK -> F +FC -> C +VV -> S +SV -> S +HH -> K +FH -> K +HN -> O +NP -> F +PK -> N +VO -> K +NC -> C +KP -> B +CS -> C +KO -> F +BK -> N +OO -> N +CF -> H +KN -> C +BV -> S +OK -> O +CN -> F +OP -> O +VP -> N +OC -> P +NH -> C +VN -> S +VC -> B +NF -> H +FO -> H +CC -> B +KB -> N +CP -> N +HK -> N +FB -> H +BH -> V +BN -> N +KC -> F +CV -> K +SP -> V +VS -> P +KF -> S +CH -> V +NS -> N +HS -> O +CK -> K +NB -> O +OF -> K +VB -> N +PS -> B +KH -> P +BS -> C +VH -> C +KK -> F +FN -> F +BP -> B +HF -> O +HB -> V +OV -> H +NV -> N +HO -> S +OS -> H +SS -> K +BO -> V +OB -> K +HP -> P +CO -> B +PP -> K +HC -> N +BF -> S +NK -> S +ON -> P +PH -> C +FV -> H +CB -> H +PC -> K +FF -> P +PN -> P +NN -> O +PF -> F +SC -> C +FK -> K +SN -> K +KV -> P +FP -> B +OH -> F diff --git a/data/14_2023.txt b/data/14_2023.txt new file mode 100644 index 0000000..7289ab7 --- /dev/null +++ b/data/14_2023.txt @@ -0,0 +1,100 @@ +#.###...OO.#.O.O..O#.....#O#..O....#.#OO....O..#.....O##..#....#..#O...OOO#....##...OO#..O....O....O +...O..........#.OO#....O....#..O.#.....##.##O..OOOO#....#OO..O...O#O.O###O..#..O.O..O..OO...OO#.O..O +O............O....#....O....OO.#...#O..#.O......OO..#.........#O#..#.#......#..O#...###O...O.....OO. +..#...#..O.#O#..OO#O..#O.....O...#.............OO.O..O...O...O....O....#.#.#O........#...O..OO#..#.# +#.........#..#....O##.O#...O#..O#....O.##O.#.#..#....#..OO..#..##..O.##.O#..O#.....O......O....#O... +...O#O....OO.....#....O#.......O#O..............O....OO..O#.........O#.O.OO..O...O#.O..O...O...#.... +..O.O#.....O#....OO#..O.#.#O...#..##.OO.O.O..#O....OO#......#...#...##.#..#O#OO#..O.OO..O.#.#.#...O# +....O.O.OO.#.O#.#.#....O##.....##..#OO....O#O..O.O.O#.O.#.O...#..O..O......#..O.O##.#.#O........#O.# +.O.#O#O.#.O.#..###...O.#.#O#....#O#....O..O.OO...O....##.......OO.......#........#....#..O...O.O.... +#O.##.O....#O..O.....#...OO..O#..O..#...#.....O..#.OO.........#O#.O.#O#...O.##.O.....O.........#.... +....OO#..O.O#.#.O..........O#........#.#O..O.OO.O..#O....#.O#O#..#.#.....O#...O.#.OOOOOO.#O.##.O...O +..#.OO.O.....#.....#O..##..OO....O#.O.#....##.OOO..#O....O..O.#...O.#...O##O....#..O....OO.#O..O..#. +....#O.O#.....O.....O.....O.O.##...O..O#OOOO..O..OO.O#.O#.O...O.OO.#O...#..O..O..O.#...O#......O.OO. +...O....O.....OO....O..OO#.O#...O....O.##..OOO.#....#OO...#.O...........OOO....OO..........#...#...# +......O.....OO#.##.O....#.O.....O.......O...O......#.O..O#.#..#.O#.#.O.##......#...##.#OO#O.O...##O. +...#O......##..O.OO......O.##OO..O..#.O......O.##.#O....O...........#O..O#.O##.#.O...##....#.OOO.OO. +.O#..OO...O.OO#O...#....O..O#OO....OO##.#.##O###O.##...O.O............OOO....#OOO..#.#..OO.#...##### +O.##O.OO.#......##.O..O...#...OO.....O..#........O....O#O#..O#OO##....O..O..#O.#.........#..O.....#. +.O....#.##...#O.O.OO...O#O#......#..O..#O#OO#.#.#O...#O##O#O.#...#..#...#.O...#.OO..OO....#O.#OO.... +....#...#OO....OOO.........O.O....#O....#......O..O.OO.O....#..#..#.#...O.O.OO....O#.......#.OO.O#O# +..#O.#........OO.#...#...#.....#OO.......O.OO#.........##.........##.........#O..#.O#....O##......O. +#O#O.#.O..#O#..O..O...#....#.###..#O.O..O#.#........#....#O.O.OO.#.###O#.#.O#..#O...#......O..O#.... +OO..#...............O.OOO...#.......O#.OO......O..O..O.#...OO.##.O........#..O#........##.#.#.O#..## +O...#O.#.....O...##.O..O..#.O..O..O#......OO.OO#OO..O..O...OO#.#....O.O...#.#.#.#O.#..O..O.O#....O.# +O...OO..O...O.O.O.O...#...#.....O.#O...........O...O......O.....#..O...OOO##..#.OO..OO...O.OO.##...# +..O....##O#..#..#..O#.O......##.....##O.....#OO##..OO...........O#......#....#.###.O..OO#.#.......#. +.O..#..O.....##....O...#.OO..#.OO..OOO#O..#..O....##O....OO....O.....#O.O..##O....#....OO..O...#O.O. +..#..#.O#.O...#O..O...#..O.............O#.###.O..O..#..........O.#..#..O#.#..OO....#.........O...... +...OO..##O..#O#OO#O...##O#.....O...O.O....#...O..OOO..O..#.....O.O#.O.......O..O.#O...OO.#...O.##... +#O..O#....O..O...O..O....#..........O.O...#.O..O.O.....O...O.#O##.O..O##......#..O......#....O.....O +OO#OOO..O.#...OO.......OO......#.O......OO.O.O#.#....O#OOO#O.#.#O#.O..O..#.....##O.#....O..#.OOO.#.O +.#.O.......O...O...#O....O.OO.#.O#......#OO##.#.##..........O.O#...OO#.OO#..O...#...#.O...O.....#... +.O....OOO#..#..O#......O#..#O.#..#O.O#.O...##O..O..#..O...#O.OO...........O...#O.O.......O..#O...... +..#....O...O.....O.O.O...O#.#.....#...#O.O.O#...#...O.O#O....O.OOO#OO...O.#O..O##....O.O.###...OO.OO +..#...#..O#..#OO#..O....O..O.#.O....O#.#......O..O.O###.O#.#.....O.#.##..OO#..O....#.O...#..#..#O... +.....#.O.....#.##...#O........#...O....O......O#...OO#.......OO#...O.#..##O.O...O#..O.#..O....O..##. +#.##.O#.......O.O......OO....O.#.#.O.O....#.O.O...O#..#...O..O##.O.O...#..O#.O..O.O...O..#...O.O.#.. +.......O.#.O...#O.O.....O.###..#OO..OO.....OO#O.....O..O.O..##..#........O..#O.#..##..O..O..O..O.... +.#...O....O#..O..O........O.O.O........OOO.#....O#...#.O....O...OOOO....O.....#..#.....#...#O.O.#.O. +#O#..O.#O........O#....#...OO#.......O....#O....#.#.....O##...O.O...OO..OO#O#.#....#.O#.......O.OO.. +.###..#...#..#...#OOO#..#O...........#...#...O....O#..O#..O..O.#..#.#..O.#...OO.#.........OO.##.O.#. +.OO..#..O.OO.O.#O..O..#O##..O.####..O..OO.#.OO.......O.O#OO....OO#OOO..#.#OO........#..#.#.O.O.O..OO +.O.OO#.O.#..O..#O...#.#..O....##.O#.#O.O........O..#.OO....O...OOO#O.#...O................O.....O.O. +.O......#...O.......O.##.#...O...O..OOO....OO..O....#..O.O.O.O..OO..O......O...O#.##..O.....O.OO...O +..OO...O..O#.O.O.O.O..O.#.##.O..##.O......OO....O..O.O..O.....#..#..............OOO.#...#OO.O..O..## +#.....O...OOO#........#O#.#....#....OOOOO..#.#OOO..O.O#O#O.....#..O.O..............O.O#O..#O.OO#.O.. +....O.O..O#..O.....#O#...O.#O.##.O..O.#.#.O.....#O...OOO....O....O......#..O.O.#......O...#O.O...O.# +.O.#.O...O.O#....O..#...O....OO.......O.OO.O##..O#..........OO#.O#O#.O.O...#...O.O......#........... +.#O.....O..#....#O............#..O..OO..O.O.OO.#O.....#....#O.#.....O....O..O..O..#...#...O......#.. +....OOO.O......#.O..#O..O..#..O.O...O...#O#.O...O.O......OO...O...#..O#.O..#.#O.#O.#O.##OO..O....... +.O..O...#....O.O...O.OO.OO......OOOO...O#....#.O..#.#..#...O........#..#...###...#..........O....#.# +##.#O...O......O#OO....O.....O..OO.O#.OO...##.OO#..O..OO.......#.#.OO.#....O#O.O.O...#.O##.#.O...#.. +..#O#..#.OO.O..#O.O...............#.#O...#....#...#..#..#O...........#......##.......O##..O.#...#..O +O.....#.OO##.O..O..###OO....O...............OO..#.....OOO#.O...#O...#.#..#..##...#O#.OO...O......#.. +.##....#.O...O#O..O.##.##.O.#.O...#..#.##...#.......O.OOOOO#....#..O...............O.#O...O##.#....# +#.##.O..#.#...O.....OO#.....O.O.OO.OO#...O..O#.....O...#.......##......#.O.....O#.#O.....O..#.#..... +..#..O...O.O#...#O..O...O.O#.#OO...O...#......O.O.....#.O...O..OO....#...OO..O...#....#O..O.O#.....O +.....O.O.....O.OO#O.O....OO#......#.O.O....#.O..OO.O.......O..O.......###.O....#O..#....O.O##....OO# +#.#.O.##.....O....#.#.O.....O..O.O...##O#.O.#O.....#.#........O..O#...#......O#.#O#...#O........O.#. +..O..#..........#..O.O.#..OO.O.O..O..O.OO.#O..#.O..OO..OO.O#..O#OO#O.#.#.O...O.............O....O..O +.#...#O.#........O#..#.....O.##...#..O#..O..O..O.....O#.....OO..##..O..##O.#....O..#O.##.....O..OO.. +....#..O.#..#.O...#.....O.O.O.......#.O..O..........O.#O.#.O#..#.....O.#.....O..#O...OO...O..#...... +O...#...O........O.O.#O##O.....O....#...O....#....##...#.O.OO.....O.O##.OO#.#.O.OO.O.#O..O......O... +..OO.....O...O.O...O..#..O##OO...#..#.........#O.O#O.......O#OO.O..O..O..O.##O#O.#O..OOO..#.O.O.O.#. +O..O##...OO..#.#..O.#.O.O...#..O.....#....O#..O.O..O..OO.OO.........O..#.#.#...##..#.....O....O.#O.. +.#.#......O....O#..O.##.#O.O..OO...#O#O.#..OO.O#....O.##O#....O......#...#O....O..........O.#O....O. +###...O....O...OO....O...O.O....#..#...#.O....O......O.O....#..##...O.#........OO.....#.O....O...... +...#.#.O..O#...#.O#.O#.#O#...OO.O#.#O...#O.......O#.#O..#..##.##O##.....##.O.....O...#....#.....##.. +OO.O..#.O...#....O#...#.##.#....OO..#..#..O....O#...O#..#..OO...#O.#....##O....#O.O....O.#..#.....O# +.#.O.O..O..#...O...O......O#O....##....O......#......O..#.#...........OOO.#.....O.#.#.............O. +O.....O...#OO.OOO..#....#....#O....O.O..........O...O...#.OO..O.O.##...O.OOOO..O...O....O..O.#...... +#O........O..#O#.O..O#.......#OO.....#....#O##.O.O#.O.#O.O....O.O#O....O.O.OO....#.......O...#O..O.. +#...O.#.#...#.O.O.#....O.OO...O..O....#...........O....#.OO.OO#.#OO.....OO..O.##....O..#O.....#O..#. +##..#.OO.#OO..OO..##.........O....#...OOO..##O#..O.O.#.##O.#.##O.O...O..#O.O..O.O......#.#OO...O#O.. +.O....O#...O.....O#..O...#....O....O#......O..#.#O........#.O#..#..O.#.##..#..........#........O.#.O +.OO#.O.O.###.........O.O..#...#.O..O...OO..#.OO....#..#.........O#.....OO..O......#.......O....O.O#. +OO.OO.O.#.OO..#O..O.......##....O.O.#.##..##..#..O..O#...O...#...#...O.OOO.#O..O...#.O.O....OO...... +#.#..O.O.......OO.#.#..O..OO#O.....O#.#......O....O..O##.O.O##..O#.........#OO..O....#.#....O.O..O.. +#......#.O.#.....OO...#O.....#.O.........O.#..##O..OOO.##O....O...##...#..O#.O..#...O.OO...OO#....## +O......OO#..O#.#.#...OO.#O....#O#.O#..#..OO...#..#..O.#....#.O.#O.##O...#.....O....OO..........O.##. +.O...O..#O.OO...OOO.#..#..#.#..OO.O......#O#..O.........#........O.OO.O.###....#O#.#.#.#O..OOO....O. +O.....#O#....#....OO..OO...O.....##O.O#.##.O.#......O.#...O#.#O.OO##.........O#...#O##.O...#..O.#..# +.#.##...#O.#O..O#..#.#.#...#...O.O.O#..#.O..O.O#.#......OOO....#.O.O..O.O##..OOO..OO......O....OO#O. +O..##......O...O...O#OO#.......O..O..#....#.#..O....O..OO..O##O#O..#..O...O.O.O..##...#...###.....O. +.O..O...O...#...O...##...O#....O.....O.O.O#..#.....#....O..#.#...OO...OO.O..O..O##....O#O.#O..#....O +.#..O..O..#.#.O.O.#..#.O.#.#.#.#..O..O..O..O...#O....##..#.#.O...OO..#O....#..#.#..O.....O.O.....O.# +#...OO.#.....#.OOO#....O..O...O#O..#.OO..O.O.#...........O.....O.OO.#OO.O##O.......O....O........... +...#.......##.O..#O..O#.#O.....O.#.O.....#O#.#.......#....OO#.....#.#..O.OO#O..O...#..#.O#.#OOO..O.. +.#.O............#OO.##O.O.O..#...O....O#O....O....OO..O..O.OO.#...OO#.#..##.OO..##..O.##..#...O.#O.. +O#O...#...O#.#..OO.....O.OO..O#...O..#O#OO#..#O##..O.....#.O.#.O.OOOO...O..#.#..O..O...#O..#O#.O.... +.O..##.#..O.O.O...O...O.O..#..O.#.O.O.O#.#.O...O.#.#.O##.#.O.O.##...O...O.O...#O#OOOO#...#.OO....#O. +O..O.O....O.O....O.O.O.O.......O.O...O..#O#.OOO#............#.........O..O#.OO#..O#..#.#....#.#..... +.##.O...O..........OO...#O..#.......#..#..##.#.O..O.OO.#..#...O..O#.#.#O..#.OOO#..O..O.OO.#..#..#... +..O.......O#.O...OO.....O.OO..OO#.........#...O#.#.O......O.#...#...........OO..O....##....#.O...O.. +...#..O..#....#....##O...O.O....#....#O.....##.#.....OOOO..##.O##........#.O..O.....O...#....O....#O +...O#O...O....O...O...O..#......#..OO..O...#..#...#O......O.O..O.O.O...O..O..#...##.O#.O..O###..OOO# +...O.O.#OOOO.OO...O.......##.#O.#.O...#.....#..O........#.#.O#.#O#...O##.......O..O.....##..O....#.O +..O.O#.O.OO..#...O....O....O...#O..##.....OO.#.#.#.OO.#..OO.......O....##..O#.O.O.......#O#O#O..OO.# +OO#......OO.......O..O..#.OOOO#O......#.###.#O...#O#O...#..O..O....O#.#...#O.###O.#.OO....OO....#... +#.#.O..#....##....#..#................O.......#O.#O#O...##O.OO...O...#...O.##....O.O......##.O..#..O diff --git a/data/15_2020.txt b/data/15_2020.txt new file mode 100644 index 0000000..6557303 --- /dev/null +++ b/data/15_2020.txt @@ -0,0 +1 @@ +0,5,4,1,10,14,7 diff --git a/data/15_2021.txt b/data/15_2021.txt new file mode 100644 index 0000000..d8f5dfd --- /dev/null +++ b/data/15_2021.txt @@ -0,0 +1,100 @@ +4249856395422795894919869133487611581179923326874763428673979547991221931142777981153991369468629849 +5812974178739823463799939791688998895568796557798392761499941349143539572865883254186633218867928826 +3699989976298596286299499129934993241824395574879938998946914116375199242199151918863674914554714898 +5682435936794718871685718386458294198391116125679589438794914499278679393779734596558953699438589518 +7681197997388219696918569664119968498599547892968929425479817979816979144947916716989874825679487436 +9981166198272997899142698141878643123757515999788822988261499197559193945291512682763935126815448215 +8849481991861599951293183728419792414164347979985169641698899853377259811688489269959429131918919179 +3146684963669199195628973847379928251333566129941616877139631993381755512697185555441659879412994594 +3547126819874919985836685298322994247998729919239243539198191229787198622919819681997288193865811343 +9349351519955698988787949741387799819991699489867797184914918979814262987979129782223984139929928681 +8556723973779719572644889927179188961591428979299692841637999459259999966917347419979917999989799429 +3999593212698784221858498479516759888388689669747143292191959989949179914898181617598363288863529673 +5428799869888883819715648841341382669887652713779547744299157935892529712964887994849791591489974817 +4165839572399389794126943784626997119389378141921327523621283992924955951342126919499984987328936781 +5918974268979888998966997691965798988519797198467567586265175937858739845974399727152913189899879868 +9918963885878999715999979758376917418219222841971748992311279797791196671188181557777929939979528569 +8799414739499371349792499832971671794937933561999619313535199597778778121557962319178399272824346194 +8129974849671628977826913868589128781917962416787192199363828395129743811293383873718935942898484543 +3291978181898819892998112489871391737197991911931592663875989291645713999792932894185783865998135615 +9769786394195196445418935989967399989919987914119824796623857976492949168247992292316817898188699298 +9695549579996919793895372134169684298121551587731119812488691243992189122596899959128989294926989913 +9731949899392599399916551967299296355733976428888499681995484999191298894166112999923884965685649798 +1379132844766698587968789875949841895175974769991975485998386847244993897999111588556816596847214788 +9995799248928516994491995979579982981536188627577229466616615274772189816183363386951765979225171476 +8119319184142479165692338899796498149599699117488698945689444844778989694876998388519355148181719697 +3969928779117129139766611778112739189981889899228317887833728779584723699986312572133539799467285917 +2828571791973431936329179952568811618879743616915382919867751789598712817617446745199253856716911941 +7877882851638951395858496388153888963667598177681792531864174354491939941593119389999293999633917577 +1741348787717975984768578798922563489939392171468619989248936559712179995116534277937799235981547597 +8994795857858489999558911549196942878698886391795462739582595987979187765281397182149953478248998829 +8612529258832189244164522719918668148697754189678792826892293447659399729274986899475955657297984999 +7979418978468149867435687251779984869732288683757891423519948382875198942891979899776225467769271611 +3818925865589486991983914829611968896197719999391296298299521911997968172695633992575991389714563593 +9939187896519664586181929999697892324492792718919161519713861732615919297932929685698963679515326392 +9189845839678777775364697497289839263197942629799278637458319429822229529989343196991899576448897282 +9999639983298888593994869989699624152112558163996649649924665617939567974367965998835369235385845781 +8485297496991559289188422661599882518896282381858287969539917799964977429172882227811329528518187389 +9923859471976698253169673595135694645862699839964421741799449165978835991198979991891434697214818847 +9948337779794835971121969995653787569496217989663848398739231628499247383942859555527489595679787897 +9614621899899158259613995889586798538683918139138198111781714698794348571485366962113966939699643589 +1886264968913257167733217995794996991471499861875887994593877487186697874771821988536581746639569567 +9996998152929759225939499689998449399761985591467834853824558991322485728674388927966892986878819319 +9898162778195791515947756898474977179296647585999979756996981928598799139892651743929891711498489794 +2521299845948789489447298917175981779999984794295846999894374299918878915896995183978239599211199661 +3595238712479964219979978796399416285395878319927814389893184733214219892965998974989825195778431936 +2235456515733797949374988899892819815718692811711999741978953215792979895857589889485595198499933267 +1197979995691548749958849994592898117171521989543481689999898771166569678234761678582598848227891693 +6216285194657981924762962276999868669495239816738592141587889187963869774297156591399718859932485599 +4729519687582299378618117855237999797646997991843389649799259193169319238188911375949387726963679678 +9699419763993869239747599293979686119998329461424981594878199858799991786943919119924945895985515374 +5917996721981481869846954978898329942115828969756258675677679711875328179436699932532229987171169929 +7229157819969968259887444794288923399898267871298685198291217856595548347212555983111245182519289622 +9941195813129393544872257827938956788461327756591766941724841646918922553881862784891489959867389928 +8479286666256699729946931949971218817964289363968557999375893759943919891576159694877195239993489148 +5189737855542763417865693998141987771991218843271999857384919975699659994988779213888396912127939755 +5829249497186735715873851983779438136179792549877615899657346513899789927819449917872492988915513982 +6893461933919197988858287721313611812883946878115312372236989924698848988818298419696991695398125941 +6981819519985951199181939989475291951792185935616749128365399541588872686782591994295847959591392931 +7988629179489397799986811211539191291919253927863868887948841837793918643181962412676745991232121578 +5889916119249763577671931536771981885869515736589522848999798153991769949974999631378632167199887678 +9893498949812711525997272863949911589719196319429992823161587263989111998263931884594518988198746153 +6167489848782461731786755137947748897385171725523188729519395821564894154311747791864617427287926885 +1284879221869544119521638879871365523816995929979939483888749839719816469311148686844482791986117755 +4617558896994997356988295927288939978311852269226941898983267192735959576936969989579628535528783519 +5328888897937299985799899978919859582992981919818841999199494771499878669927759686618478946895944119 +6799938769339968858662394789696395769769575687756577828218986197652972952814799386756962996181892597 +9396911993551199899798629969782451326725698246878288812846813423295351841296547341338696917479175299 +8998397898488795919859127962748999922875998559197478977986192197254779199892998169999599176629148878 +1698547699914798869767429873945711593683922969939799919274119396933311939635974962783917832779918579 +8773297884249519189999647199932138888596519893944669261146627181688998288918962987398761891458879884 +5661719599479729158986561758999787569799247991581291493981747289118938848919798944839816176679395936 +9819441791329173937924877935925271972592729118224733234158273767899274195899119793821988798684414696 +1976289898791262299218117985854188291999988166561946723974852936794841371689495873895293179648555216 +9723987778468774982999879135869177783838973792981148981488979249865929898395999487197993391716979759 +1177899997181866344793594917459353978963997881815188848687916378799676376889949425869917561752649758 +9791868299666371298719945725279668482196145817963941526858953389928439799189979599987117288975594221 +9359479864494253699797539169919312739992899782984267865929872973278316996551116989646898578889798559 +2891458316689974817533795738749516416557382959989231868945595215936673184172899784699156791788186319 +3197871588419391799499768999958793419827795378639897913112989895282789729517678369821971988591168789 +3128895611274175995969789557139191499997198995898179681198268479688712943414819511197717969357964626 +8894829141789688146813983655599262175354512492811217287197518971727198974788999775881793393394664199 +6989187141894459991973787674231495975898898321231239587159329169888699482823813357919299199727591361 +5291418199993963928598629179855771924331332887583129988192175911928891699934755817621873135693191816 +9859979117149771714936925976542992919833772828551725982321627568959639165547556486133816386958767691 +7859228193989921397351284929914697967294416985799189145628697417412211943669121428893746928296129853 +9898681974164499972995857666974959138563814594959416796689799455999579812615141516926348999849199192 +3718388972799194318442969794235896693965351819955961988597649825892827718431384296684438269296581369 +6622814526191793264982158196814969278991591173839699792937584466991496599918911981477179793167467286 +9979379866996693519416698914822874331128813255572798589585921254251617789813794989743747235329888595 +1797898211694565884562549271126691989581781692389727679449696138934914999198975329972191479272399949 +8799526921898877188579896888615687919221936817161219171496896799791784217996429736635848912899357959 +3998179987191983936537841259615889646999196799579578519955782169872772733999838687699675879992385199 +4629983158488678918339598918897184289885199997966199238946856787429929894529981431432825472899789379 +2648419335213961853594831348897955886326266994947879975892927267713419578719291698994997922172724295 +4791456616384992968619169989914284879576442418663919488293715173289682167949877799818988158798898697 +8231746913997992473892883523293984991882222989389687618931693321291896977659253682566976938919319772 +8791786476374176864813358771936196161691499499725886199548984199739722733758439858858114991899439768 +7864649397847188893939876129989155438478439599981116718616269385899323813687798117158931299417619263 +1516286662577862992677589421596899929673339521868597254888585791795752635967517418681822599565577716 +6187189898988162537924787542999557639266889281629557986986981493311772812199877994518195163178939239 diff --git a/data/15_2022.txt b/data/15_2022.txt new file mode 100644 index 0000000..fe5ff9c --- /dev/null +++ b/data/15_2022.txt @@ -0,0 +1,32 @@ +Sensor at x=2832148, y=322979: closest beacon is at x=3015667, y=-141020 +Sensor at x=1449180, y=3883502: closest beacon is at x=2656952, y=4188971 +Sensor at x=2808169, y=1194666: closest beacon is at x=3015667, y=-141020 +Sensor at x=1863363, y=2435968: closest beacon is at x=2166084, y=2883057 +Sensor at x=3558230, y=2190936: closest beacon is at x=3244164, y=2592191 +Sensor at x=711491, y=2444705: closest beacon is at x=617239, y=2988377 +Sensor at x=2727148, y=2766272: closest beacon is at x=2166084, y=2883057 +Sensor at x=2857938, y=3988086: closest beacon is at x=2968511, y=4098658 +Sensor at x=1242410, y=2270153: closest beacon is at x=214592, y=2000000 +Sensor at x=3171784, y=2523127: closest beacon is at x=3244164, y=2592191 +Sensor at x=2293378, y=71434: closest beacon is at x=3015667, y=-141020 +Sensor at x=399711, y=73420: closest beacon is at x=1152251, y=-158441 +Sensor at x=3677529, y=415283: closest beacon is at x=3015667, y=-141020 +Sensor at x=207809, y=2348497: closest beacon is at x=214592, y=2000000 +Sensor at x=60607, y=3403420: closest beacon is at x=617239, y=2988377 +Sensor at x=3767729, y=3136725: closest beacon is at x=4171278, y=3348370 +Sensor at x=3899632, y=3998969: closest beacon is at x=4171278, y=3348370 +Sensor at x=394783, y=1541278: closest beacon is at x=214592, y=2000000 +Sensor at x=1193642, y=642631: closest beacon is at x=1152251, y=-158441 +Sensor at x=122867, y=2661904: closest beacon is at x=214592, y=2000000 +Sensor at x=551012, y=3787568: closest beacon is at x=617239, y=2988377 +Sensor at x=3175715, y=2975144: closest beacon is at x=3244164, y=2592191 +Sensor at x=402217, y=2812449: closest beacon is at x=617239, y=2988377 +Sensor at x=879648, y=1177329: closest beacon is at x=214592, y=2000000 +Sensor at x=1317218, y=2978309: closest beacon is at x=617239, y=2988377 +Sensor at x=3965126, y=1743931: closest beacon is at x=3244164, y=2592191 +Sensor at x=2304348, y=3140055: closest beacon is at x=2166084, y=2883057 +Sensor at x=3380135, y=3650709: closest beacon is at x=2968511, y=4098658 +Sensor at x=49224, y=1914296: closest beacon is at x=214592, y=2000000 +Sensor at x=3096228, y=2457233: closest beacon is at x=3244164, y=2592191 +Sensor at x=1415660, y=6715: closest beacon is at x=1152251, y=-158441 +Sensor at x=2616280, y=3548378: closest beacon is at x=2656952, y=4188971 diff --git a/data/15_2023.txt b/data/15_2023.txt new file mode 100644 index 0000000..c84fa3d --- /dev/null +++ b/data/15_2023.txt @@ -0,0 +1 @@ +dcb-,ds-,mdr=9,ddtp=6,sjhs=5,kgtl-,lms-,br-,vk=6,lms-,xd=4,kfs-,pdrct-,xft-,scr-,mn-,fq=3,hbqx-,ksjdgv-,ng=8,cpsh-,qxs-,qx=6,vjjr=5,fk=4,vpj-,zqgm-,zp=1,xz-,xnp-,csph-,zfgql=8,krsl-,fqdh=2,ng=2,lv-,nrl-,fqdh-,pjhdd-,phn-,lqzvsh=6,fnz=8,bdgknx=9,qjlv-,tgsq-,vqpn-,nrh=4,mr=1,tmqh-,qxs-,hkk=5,qjr=6,mm=3,pdrct-,np-,fsk=4,kzz-,blxnc-,skg-,sbsp=7,qvv=3,tgjr-,xtz=3,hbf-,sqk=3,mqhm=2,dq=1,thgd=1,djpj=7,lcvqz-,rpznm-,dbbd-,fxdkd-,sm-,zns=3,qmt-,cm-,kmsx=7,grq-,jr-,nhknz-,pzhfz=8,sfg-,ltf=1,rdm-,xv-,pz=4,dx=8,vj=4,grq-,cxbn-,dx=7,mzd=2,qs-,gkg-,nsg-,dvq=8,stqt-,pj-,plbc=8,tgsq=2,xftfd-,zp=2,bhj-,vfz=4,kzc-,gf=9,pxk=5,jhg=6,ptzd=9,jjh-,pr=8,gksbz-,dcnr-,dbd=7,rs-,fnz-,rg-,ttx=4,ng-,tg=6,fq=3,nz-,pzl-,lqzvsh=6,vvv-,rf=6,bp-,xntm-,mgk-,kq-,np=9,dhmxrf-,jtv=3,lf=1,rnd=6,jjh-,knzhf=1,jvc=9,jvf=1,krsl-,phn-,hbjl-,gmzd=7,nrh-,lsgj-,rdm-,zmc=4,jvf=8,jf-,jpb=5,sgq=9,scr-,pjq=3,zht=7,lrtd=1,vknrhf-,hpn=7,qhr=3,mx-,mppl=3,mx=1,jt-,ddb-,fq-,zfj=7,xdzl=8,hqq-,mdr-,dcb=7,zmx=8,bpk-,vb-,tdf-,hh=4,phhl=4,lg=2,ztgfc=4,qm=2,nmt=3,nzl-,pdrct=8,glq=1,smn-,xb-,gtd-,dshl=5,hpb=1,gr=8,lch-,qhr-,cjp=4,pcfvv-,kgtl-,rlqrc-,fnn=6,lcvqz-,xtz=9,rnd-,xtf-,sjj-,gtd-,vh-,qz=5,nfrmqc=3,mvf=7,ttr=4,zf=1,xftfd-,hkk-,crg=8,ps-,lfn=6,rdm=3,zh=7,rhsctp=6,vnhnt-,mxsl-,rpj-,dzlgmj-,qxs=5,cx=1,pzhfz-,rjjk=7,rfz=8,jzv=9,lcvqz-,grv-,sgq=4,pskfz-,vk=9,gg=5,ps=7,nfrmqc-,dldzn-,qt=1,zmc=3,jc=9,zdzd=9,btg=4,dcnr=4,jkb-,bdl-,gx=3,kq=3,kcpj-,zrlq=6,xdgq=9,cg=3,qr=6,zp=6,rpj-,dx-,kcvf=7,gr-,qst-,jk-,xz-,ng=3,dr=9,pjq=5,lms-,dsfln=2,gkg-,db=9,rkx-,mqhm=9,gnl-,vhff-,br-,cppk-,gkg=6,frz-,tgsq-,tgzb-,jzv=2,cg-,pztx=1,gnl-,kd-,jcdj-,jtv-,cx-,gr=7,dq-,cn=3,dg-,tcc=1,qcqp=8,pj-,hnrf=8,ml=2,cft=3,mvf-,pskfz-,mhcp-,lfn=8,pcfvv-,mtskcr-,glh-,nlvtt=5,mxcgz-,vjvqc=8,qqvd=8,vh=1,bhj-,nrh-,qg-,ps-,pjq=9,bthp-,gthvfr-,sfg=4,dss=8,hpb-,pv=9,pxtqn-,pz=5,xxg=2,rmf-,dqt-,tcvg-,zsv=1,cvl-,xpt-,jj=9,rfz=2,nc-,nsz=9,sk=1,zln-,hpn-,xntm-,vf-,ztgfc-,sqk=4,hj=1,crg-,kkj-,gt=3,tg-,pxb-,rlqrc-,pngv-,pdh=3,dq-,qg=7,cg=8,cn-,cg=3,jrzs=5,knb-,glh-,phrk=2,sk-,tgzb=3,sgq=6,gkz-,jcd=9,zpgrqr=9,qm=8,fnl=5,sdzm-,gnl-,flj=6,lh=9,dbd=5,mqhm=2,cn=8,fnn=4,kzz-,zn=4,hpb=2,pkkbjt-,zv=5,tdkgk-,jpb-,br-,fx=8,hnx=9,hnnkm=1,dng=1,br-,cppk=2,nlvtt=5,xdzl-,kmsx-,ntq=8,ptzd=8,zht=5,hnd=2,tn=4,phzv=5,qxk-,fq=3,mx=5,blnggt-,kzj-,dqt-,tbt-,thgd=1,cmqpn-,jd-,dbd=1,lrtd=7,qqvd-,tbt-,kfs=5,gpm=8,bh-,xvk=8,rrbhcr-,zvp-,sbh=9,qs=7,hrsf=4,ff-,lf-,fbm-,sm=9,khbsh=2,cft-,kzc-,cxhrzz-,jvf=2,crg=2,pxk=9,nmt-,qffgm=7,qnc-,tgjr=7,fnn-,rhsctp=9,fhf=1,vxjg-,dcr=7,cs=9,fhf-,hnnkm=5,jh=3,bdgknx=2,jvf-,cppk-,grq-,ddb-,jd-,mgv=2,sjhs-,vc-,mqhm-,nbx-,krsl-,fbm-,rgrtpd-,bdgknx-,hh=2,lg-,kkmgj=7,cbdz-,zfj=3,vjvqc-,kkj-,fk-,vctsd=2,lb-,btg-,vc=2,xftfd-,hh-,lms-,pl=8,hp-,qmx=3,vctsd=9,nt=4,pzl-,dcr-,mgv-,rpj=7,vqpn-,gr=4,pl=5,zd=9,szz-,nz=6,ln-,zvz-,kkmgj=7,nmt-,dq=4,sz-,dx-,nzr=4,xkbcj=5,ljqpsl=3,pgff=8,nzr=3,pskfz-,ksjdgv-,fsk-,lv=1,jhg-,pgdt=1,dbd=7,zmp=6,dcnr-,sk=3,rjc-,vjjr=3,qst-,pz-,rc-,fhh-,vc=4,sbk-,xtf-,qcqp-,gtb=5,qz=7,tl=1,mrqs-,cx-,zsz=2,fhm-,br-,dr=3,djpj=3,nfjh-,zrlq-,rtp=5,df=3,kmb-,cs=1,kjh=7,tbt-,pztx=9,lch-,cxhrzz=9,zfgc-,tdf=2,lfn-,zn=8,zmp=6,fbm-,ps=9,tmqh-,gl-,kn-,ttbbm=8,hbf-,pzh-,ddtp-,rkx=5,dbd-,phzv=7,bk=6,ppc-,jcdj-,mdr-,qm-,nzl-,ddx-,jr=6,ffgb=4,nzl-,zj=5,kgtl=6,br-,sjj-,ddb-,kfs=5,plbc=9,sbk-,dzfn=3,jj=6,mzd=8,vk=1,rjcj=5,nfrmqc-,nbx=9,skqr=9,vc=2,kx=5,jp=3,ltf-,gkf=6,rcs-,zqgm-,xkbcj=4,vlkgf-,zln=2,jt-,bhj-,zns-,hpb=6,pjq=4,dldzn=5,hfg=7,kq=2,kgl=9,pztx=2,pdrct=7,knb-,tg=3,cft=3,psdf-,hkk-,vh=7,df-,kd-,lb-,svnm-,xvcgnj-,lg-,pjg-,pjhdd-,flzfs-,xntm=9,kx=6,gthvfr=3,rhsctp=8,bdf=1,lfn-,nzl=6,zpcclb-,hz-,zvz-,lfn=3,dcnr-,qjlv-,ps-,td-,pn=9,nq=6,bmkb-,scr-,phhl-,mgv=5,rzcrg=3,gthvfr-,drx=5,pr=7,kzc-,gkf-,xnp-,cm=2,rrbhcr=2,zht-,gthvfr-,mxcgz-,gt=3,clm-,kfs-,gtd-,pxtqn-,vxp=8,jp=4,bz=2,stqt=1,sjj=1,dzrc=4,fqdh=9,zv-,mtskcr-,hnnkm=7,dbbd-,vlks-,zpgrqr-,kkz=9,dhmxrf=4,vr=5,hpn=2,qs-,rrbhcr=6,btg=8,vfz=2,nd-,ppc-,ng-,pl-,ksjdgv=8,sk=7,dbt=3,vlkgf-,jqg=9,dtg-,bhj-,qcqp-,tpr=6,zqgm-,sk-,hnrf=9,pxb=9,tgsq-,qmt=4,kn-,vb=1,dk-,qb=8,fk=2,djpj=7,mgv=2,lr=5,zzkn-,rjc-,rh=1,xftfd-,djpj-,lg-,rlqrc=9,hnnkm-,hnrf=6,fk-,scr=2,lfn=1,jhg=1,vp=6,pg=3,rcs=5,qjr-,dshl=9,kzz-,flzfs=3,qbbdc=5,gkg=5,cqz=7,xd-,qs-,ttbbm=2,qb-,rpj=8,fpn=1,pzhfz=9,hpb=7,fnn=8,xr-,lpj-,gl-,tdkgk-,crg=8,sm=9,kmb-,gg=1,knzhf=5,sk-,bh=7,ddtp=5,zht-,dng=2,fk=4,xtz-,fhm-,scr-,jbq=9,rhsctp-,zt=1,gpv-,pskfz-,bh-,dss-,tgjr-,vxjg-,gnl-,hrsf-,mx-,vhff=8,ljqpsl=7,nrh-,sbh-,hfg-,zsz-,vj=5,fpn-,ds=7,gkz-,gpv=3,dldzn=7,sbsp=6,zsz-,dss-,kcvf=5,pzhfz=2,sbk-,kl=9,tbt=2,dcnr=3,tcvg=6,psdf=7,szz-,bs-,hnrf=3,nd=2,dnmld=1,zmx=7,vx-,nsbxkk=9,gnl=5,fnz=9,tgzb-,xnp=4,fs=3,gbr=3,bq=2,pgff-,mpnlrx=8,pz=7,kgtl=1,lbs-,grq=4,shx-,kmb-,txp-,vnhnt=6,grv-,mhcp-,ttr=7,pzhfz=3,jpb-,cft=9,jrzs-,txp-,mdcg=9,zx-,glq-,kd-,nsbxkk=6,kzz-,ss-,sqk=2,jf-,jrzs=7,pn=5,stqt-,blnggt=5,pjg-,mm-,pzhfz-,pxk-,zj-,zv-,zl-,mzd-,tl=2,rg-,lsxt=1,nz=1,kcvf=6,mdcg=5,rs-,jrzs=8,cvl-,lb-,vvv=2,lglf-,sbj=1,rc=7,glh=1,phrk-,rk=9,vctsd-,xrr-,qsjf=5,qmt-,vqpn-,fnz-,bpk-,pzh=6,jvfpdj=9,dldzn-,cmqpn=7,jtvm=7,xntm=8,rjcj=6,bxbl-,xb-,drx=4,kgl-,sjj=2,qprbv=9,sv-,nt=3,pxk-,qqvd=2,pgff=9,hbf=6,krsl-,mhcp-,kq=4,rjcj=2,phn=5,cft=6,tqgk-,kkz-,vf=3,gkg=6,qd-,pxk=4,tg=9,qst=1,cn=7,jtvm-,pr=1,frz-,nhknz-,rrbhcr=9,mdcg=9,qhr-,cppk=8,knnx=4,thgd=9,gpm-,xcsgs=9,fq=3,qt-,rgt-,glh=6,dzlgmj=5,kkz-,dg-,qbbdc-,ztgfc-,zsz-,xk=2,bhj-,gmzd=8,skg=8,kr-,gthvfr-,nlvtt-,tq=2,jp-,drx-,nfjh-,kh=8,sbh=5,hnd=3,kgl=9,krsl=6,pz=5,zf-,kr-,pzl=4,vctsd=4,xntm-,qg=5,lpj-,dbbd-,szz-,br=9,sm=4,kjh=7,ss=8,cvl=7,ttbbm=6,ln-,lsxt-,rnd-,xcsgs-,rzdpq=2,grq=5,nlvtt-,nrl=7,xcsgs-,pgdt-,lgv=3,fdxl=1,vxp-,mppl-,zbqdr-,rg=5,plbc-,pm-,tdgls=5,zrlq=6,gr-,nsbxkk=7,rgrtpd=7,rn=3,hfg=1,mz=2,ttbbm=6,mppl-,zl-,zns-,lv-,vjvqc=5,dqt=5,hz-,nlgt-,tgsq-,pxk=1,bp-,bz=2,nz-,kcpj-,gtd-,vvv-,lfn=6,bdl=4,drx-,lr-,vmm-,rgrtpd=9,zv=5,nmt-,pm-,mgk-,hp=6,gr-,tqgk-,jxfcr=6,vx=7,kmsx-,zzkn=9,bdl=4,lch-,mg-,dx-,qjr-,xntm=1,xvk-,kgl-,hz-,tdf=1,kzc-,zj=1,phhl=7,lb-,nzl-,lglf-,bdl=9,tl=3,xl-,lch=6,phn=8,knl-,zc-,kl=5,vjjr=2,xvcgnj=6,pl-,hbjl-,cbdz-,vpt=8,rtp=7,pgff-,jqg-,xnh-,nq-,tx-,ddb=8,dx=1,qmt=7,dr=9,ffgb-,zx=6,dhmxrf=9,kkz=2,rpznm=3,phzv=2,kg-,hz=4,cm-,mx-,zrlq-,nsbxkk-,hnnkm=2,nzr=2,dzlgmj-,vjvqc=6,flzfs=2,jvfpdj-,qsjf=4,tcc-,vh=4,qvv-,zqgm-,fxdkd=6,nfjh=5,dctk-,tmqh=9,ptzd-,ltf=8,dbbd=6,ffz-,lqzvsh=5,mppl=3,pxb=9,crg=8,tgjr-,hnd-,pr=1,cz=3,hh-,ptcr=3,dcb-,hbf=4,cqz=8,jcd=7,plbc=2,gkz=6,mrqs-,dhmxrf-,pbxjx-,nb=5,zmp-,pgdt=2,zl-,sjhs=1,mx=4,fdxl-,nzr-,fqdh-,rcs=2,ltf=3,xjks-,nsg=5,rzcrg-,zm-,ddb-,nrh=1,zt=5,glh=9,pzhfz=3,kzj-,rjjk-,lhm-,dsf=7,dszd=5,cz-,th=8,jkb-,cvl=7,rkx=1,hqq-,mrqs-,db-,cbdz-,dsfln=4,cmqpn=9,qpj-,tbt=6,qx-,rzcrg=7,jt=3,shx-,kmb-,jf-,pxtqn-,krsl-,pxk=9,nrh-,tcvg=6,nfjh-,lcvqz=5,knl=1,sm-,kq=2,jptch-,hpn-,nlgt-,jxfcr-,mr=4,jz=5,ps-,gt-,jkb=5,sgq-,qxk=7,pxb-,phrk=3,vqpn-,dhmxrf-,fsbr=3,hnrf=6,qmt=3,rk-,nsbxkk-,gmzd-,jvfpdj=5,zh-,td=3,vc=4,gksbz=3,tg-,bhj=9,mvs-,pzhfz=9,vpt=3,fxdkd-,rlqrc=9,jpb-,hnnkm-,nnfd-,jr-,zbqdr=7,ng-,xtz=5,nfrmqc-,phhl-,rjcj-,rjc=7,ddx-,cppk-,dzlgmj-,cxhrzz=4,rtp-,rpznm=6,mxcgz-,zvz-,ppc-,sgq=3,jjh=2,gnl=8,ksjdgv-,nrh-,gg-,kcpj-,mgv-,cxhrzz=7,pskfz-,dcb-,xd=5,bl-,zh-,jt=4,rcs-,sbsp=3,nkh=8,gmzd-,kgl=7,xnh=5,vnhnt=2,lms-,qxk-,scr-,qg=9,jcpz-,gx=2,znkzq-,rf=4,jvfpdj-,dtg-,gthvfr-,dctk-,bd-,vlkgf=8,svnm-,jpb=6,lbs=6,hkk=9,xvcgnj-,mpnlrx-,jp=6,rfz=2,kfs=6,ddx=6,bz-,xjks=4,xv=1,jr-,jvc=6,sbnh-,nq=6,pn-,bl-,ln=2,mpnlrx-,th=4,mrqs-,zl-,kzc=1,fqdh-,ttx-,ttx=5,xqph=7,xtf=3,xftfd-,hpn-,sv-,gkf=2,zf=5,lcvqz=1,pzhfz-,pzh-,sm-,bk=2,vctsd-,lqzvsh-,jt=1,pkkbjt=1,kfs=6,gpv-,svnm=9,blxnc=8,vtc=5,gtd=5,lfn-,vb=1,dtg-,vvv-,sm=3,vp-,hrsf=6,zx-,bq-,kg=3,mb-,kcvf-,zfj-,hfg=5,mb-,tqgk-,bgv=7,ds=2,dcnr-,fbm=3,tn-,xh-,zvp-,pgff-,jd=9,knnx=8,bhj=7,vtc=7,tq=7,tkh-,gtb=3,zns-,zpgrqr-,zpgrqr=2,djq-,td-,ff=5,dzfn=9,qxk-,cz-,khq-,qd-,knzhf-,zbqdr=4,gthvfr-,kcpj-,krsl=3,hj=6,bdf-,zpcclb-,dss=7,tdgls-,lch=6,tmqh=5,rjjk-,djp-,xh-,tl-,jzv-,bk=3,qprbv-,ksjdgv-,szz-,zrlq-,qm=4,tx=2,zfgc-,zfj=1,kjh=2,vvk-,fhh=2,ks=8,dqt-,lms=2,tdkgk=6,nd=5,xz=2,jcd=8,nsbxkk=3,phrk-,mtskcr-,qpd=4,stqt=3,zmp-,tdkgk=6,tbt=9,ss-,bl-,qxk=4,vk-,zvz-,qm-,jd-,zfj=2,fx=4,zzkn-,jz=4,cft-,jv-,fnl-,khq-,jz-,qcm=4,fsbr-,pngv-,ttbbm=4,cppdg-,mr=9,xv=6,kh-,ds=6,rlqrc-,jqg-,knnx-,cn-,rmf=3,mx=4,phrk-,zl=1,mvs=1,vpj-,tg=6,nd-,nlvtt=1,lpj=5,gpm-,qmt=4,ks-,qqvd-,dg-,tdf-,zdzd=4,fnn=2,sjj-,ddb=7,ds=2,nsg-,rdm-,kgl=1,rg-,glh-,nb=4,rjjk-,dnbvds=4,xxg-,dshl=6,tg-,ch=3,qd-,qcm=5,nt=8,bdf-,mppl=5,zbqdr-,df-,lgv-,zh=7,rc=7,rn-,tdkgk=3,qz=4,mgk-,pzh=5,sm=4,ptzd-,bxbl-,nkh-,fqdh-,pgdt=1,rkx=3,xz=9,zd-,kx-,mx-,zh-,kl=8,rn=1,dcnr-,gg=9,ffz=2,lpj=9,zpcclb-,zp-,cppdg=6,gkg=9,hqq-,kx-,hnnkm=3,stqt-,cft-,bl-,xrr=7,skqr=7,skg-,kd-,jcdj=2,mg=9,jvc=2,glq=1,fhf=4,nb=2,qmt-,rf=7,knnx-,xb=2,zbqdr-,fsbr-,nfx=8,ps=7,dbd=3,rgt=7,xvk-,xtz=3,lsxt-,bk=9,tdkgk-,pkkbjt-,hnnkm-,ch-,khbsh=1,ff-,phzv-,fnn-,tmnjxl-,mgk-,tg=8,kmb-,knb=9,qxk-,kvlmn=8,zx-,qg-,hk=6,hnd=8,lqzvsh-,nrh=3,tgjr=9,kzj=5,vjvqc=6,hrsf=3,kvlmn-,hbf-,jtv-,ksjdgv=3,zx-,ddtp-,lrtd-,cxbn=6,phzv=3,qsjf=4,ll=2,zmx-,jr=1,xnh=8,bh-,ccd-,vpt=3,mb=9,pg=7,dcr=7,lch-,kr-,bz-,qc=4,grv=7,krsl=7,hnd-,dbsvh-,xsm=2,gnl-,xh=5,hnx=7,vnhnt-,cppk-,rnd=1,smn-,zmx=4,ljqpsl-,lgv-,dbt=3,nmt-,fk-,zb=1,mzd=9,pz=4,mzd-,mpnlrx-,mx-,vfz=9,blxnc=3,pjhdd-,ddtp-,sdzm-,fsk=6,cg=2,fxdkd=4,fp-,ln=5,qd-,cn=9,sf-,lg=1,mqhm-,glq=4,kmsx-,ddx-,bdgknx-,grq=1,pbxjx-,qxk=7,gkg=2,rjjk-,shx=1,flj=6,tgjr-,dhmxrf=4,dldzn=5,qst=7,gl=7,qd-,fpn-,pkkbjt-,zfgc=5,pm=9,plbc-,xsm=9,db=7,cgd=5,bdl=8,mx=7,mn-,kgl=3,jkb-,lsxt-,khq-,cn=7,jtv=1,dbt-,tdgls-,cs=1,mppl=4,bd=1,cjp=9,kcpj=5,hbqx-,zvp=4,ds=3,tbt=2,jhg-,xsm=9,rlqrc=3,blxnc-,kcvf=3,dsfln=3,vvv-,tx=3,pj-,sbk-,jptch=5,br=8,vbs-,drx=7,bl-,qr-,dtg=6,kkj=4,grv=5,lpj-,vxp-,lh=8,jpb-,xtf-,zb-,blnggt-,cs=8,bgv=6,vhff=8,pxtqn-,znkzq-,qst=4,jr=9,dzrc-,skqr-,db=8,nd-,xcsgs-,hk=5,hnrf-,zzkn=9,glh-,tgsq-,cxhrzz-,xz=6,rnd=1,grq=5,ttx=6,jpb-,mvs-,zx-,rgt-,cbdz-,phzv=7,cxbn-,glh-,xsm-,dq=6,dtg=4,jtv-,pzh-,pzl-,df=7,rg-,mrqs=6,dsf-,fnz=2,qmx-,jpb=8,gpm=6,kgtl-,pxtqn-,gx=5,dtg=5,rn=4,dtg-,lglf=3,jzv=1,jp=8,rjcj-,qc-,zh-,rkx=1,kcvf=8,hnnkm-,pgdt=5,qsp=5,txp-,nzr-,hfg-,mn-,hnrf=7,knzhf=9,jtv-,qbbdc-,knzhf=1,cqz-,fj=5,qcm=4,xvcgnj-,jc=4,cqz=5,qhf=8,zn=5,pskfz-,ll=4,pj=3,fq=5,gm-,cxhrzz=2,ks-,nbx=6,kcpj=8,kg=4,bl-,qpd-,skqr=7,xr-,vf-,fdxl-,pgdt=9,ppc-,bmkb-,tc=7,mm=3,pxtqn=6,ll-,nsg-,mqvc=8,xl=1,lv-,phzv=4,nhknz-,fn=4,pcfvv-,db=2,fhm=9,bthp=2,kgtl=5,dq-,nmt-,ljqpsl=1,cpsh-,dx-,zrlq-,cft-,cjp=4,rk=3,fsbr=5,btg-,jzv=9,zzkn-,sbh-,jz=4,rdm=2,qsp=1,gksbz-,zn-,vj-,btg=3,dcb-,fn-,jqg-,qm-,fqdh-,pjg-,rs-,gg=5,smn-,vpj=3,pv=7,cmqpn=4,xkbcj-,hpn=3,grq=6,jz=2,mdr-,dr=9,sqk-,rlqrc=2,xvk-,rkx-,nc=6,qcqp=9,vqpn=3,jk=3,cpsh-,zbqdr-,lglf-,zx=9,ps-,rlqrc=6,dk-,rjc=3,nz-,hk-,zpgrqr-,rgt-,xtf-,pskfz-,zqgm=9,ttx-,cs=8,sbsp=5,pzh=5,lcvqz-,ffz-,jvf=8,pskfz=8,ml-,cx=1,kzc-,qm=5,nq=8,ntq-,zmp-,lv=2,mzd=5,lhm-,qs-,dqt=5,dctk-,rhsctp-,zn-,hrsf-,nfjh=8,dzlgmj=9,mx=3,djpj-,rrbhcr-,rcgd-,bz=6,jhg=6,zv-,kmsx-,tbt=1,mz-,ztgfc=1,rf-,knb=2,qz=5,btg=1,ntq=4,cs=4,rpj=3,tpr=7,tcvg-,zdzd=7,pjhdd-,pj-,hnx-,zn-,xft=2,zh=1,fnn-,xnh=2,cbdz-,fhf=4,ddtp=8,kmb-,fpn-,pjhdd-,fj=6,jbq=8,rnd-,dq-,lqzvsh=6,gf=6,tgzb-,zbqdr=7,hp-,sbqr=2,fbm=3,pzhfz=9,dss=3,rdm=6,lf-,ztgfc-,tgzb=8,jtv=3,pskfz-,flzfs-,xftfd-,cg=7,bdf-,bp=7,qnc-,bhj-,rcgd=7,zfgql-,tx-,dszd=2,xpt=5,kfs=8,csph-,jbq-,flzfs-,ldb=5,dszd=2,kg=1,br=3,mdr-,pcfvv-,tfjz=9,blxnc-,tg=7,knb=5,knnx=9,nsbxkk-,mxcgz-,dss-,bl-,pdrct-,tgsq-,phn=2,bthp=5,mzd-,cxbn-,mrqc=6,jcdj-,vknrhf-,sv-,djpj=6,jcpz=3,zmx-,zdzd=9,phzv=4,ml=8,ptcr=2,hpn=4,rtp-,gbr-,vpt-,tc-,xpt-,pxtqn=5,phn-,lsgj-,lh=8,pn-,vfz=2,kvlmn-,pdh-,xdzl-,tpr=1,rjcj=1,cvl-,zh=6,blnggt-,kgl=1,fj-,xb-,sm-,cmqpn=8,mppl-,ltf=9,zf=9,mrqc=1,dss=1,gpm=5,dcr-,mqhm=9,jjh=5,jv-,jrzs=4,fs=5,zfj-,vpt-,zj-,mxsl-,lch-,rh-,fp-,zrlq=6,tq-,plbc-,zsz-,csph=2,cpsh-,kmb-,djpj-,flzfs-,pxtqn-,hz-,khbsh-,lhm-,jc-,cfzkr-,cxbn-,rlqrc-,cjp-,ppc-,vjjr=6,lcvqz=1,db=1,nbx=5,sbqr-,kkmgj-,xb=7,cxhrzz=6,lsgj=3,fs-,vc=6,gm-,ttr-,zmx-,grq=7,zh-,zbqdr-,xnh=3,lrtd-,pl=5,zht-,xl-,xh-,pzhfz=7,bq=8,szz-,dk-,jtv-,pxb=2,xtf=9,lpj=2,nnfd-,cppk-,mzd=9,knl=2,blxnc-,gbr=8,dq-,zt=7,jv-,vb-,fhm-,skg-,tdkgk=7,zmx=5,gkg=2,vc=6,mgk=2,dzlgmj-,bmkb-,pgdt=1,zsz=8,zfgql=9,flj-,mppl=9,vnhnt-,cpsh-,qcm=4,kzz=4,sdzm-,knb=9,zfgc=7,mb=3,ddtp-,nmt=7,dnbvds-,csph=5,dsf=9,gr=8,rdm=1,bdgknx-,xkbcj=2,cn-,pn-,bz=3,cppdg-,xd=6,psdf=6,nsbxkk=3,fp-,ksjdgv=1,mzd=6,zfgql=4,zpgrqr-,cmqpn=6,xk-,bs-,ddb=1,zp=4,tmqh-,xk=7,xft-,zt=3,xd-,hkk-,lrtd=6,dk=4,zc=5,nnfd=8,bs-,rjjk=3,fqdh=4,tx=3,qxs-,nsg-,tgjr=5,tcvg=6,gf-,blnggt=9,dbsvh=4,qprbv=3,kzc-,zpcclb-,bgv=7,ksjdgv-,xcsgs-,pkkbjt-,glh=7,xtf=6,rzdpq-,qx=6,lch=9,hz-,bhj=2,ntq=6,zf=2,qxk=6,zv=2,vr-,lr-,xcsgs-,mg=4,zv=9,vd-,fbm-,kkj-,vvv=1,pbxjx-,pv-,qjlv=4,dss-,mm-,ttx-,ng-,tqgk=4,fxdkd=9,rk=2,khq-,zqgm=7,drx=4,gmzd=1,qg=1,sbh=6,cvl=3,bmkb=7,dnbvds-,bxn-,zbqdr-,phn-,qjlv-,jvc-,qsp-,fdxl=4,tcc=1,zm-,nsz=5,rs=8,gf=9,lg=8,kg-,vvv=1,db-,tdgls-,kgtl=6,tg-,qmx-,flzfs-,zx=8,gr=6,nhknz-,ntq=7,lqzvsh-,xv=7,rjjk=8,cppk=1,xtz=4,dqt=5,qbbdc=5,qqvd-,xvcgnj-,rhsctp=5,zv-,np-,xv=8,mxcgz=9,xqph-,gbr-,qs=2,rs=9,ff=2,ttbbm-,jt=8,xdzl=6,sbk=3,pjhdd=9,lch-,xdzl-,lg-,tcc-,fsbr=5,tfjz-,qjr=9,sjhs-,zx-,bgv=7,rlqrc-,jz=9,ln-,xsm=6,dsf=3,qpj=3,ztgfc-,hpb=7,bhj-,pxk=9,pngv=5,zl-,lch-,vk-,pcfvv=6,lv=8,vlkgf=7,hlrdnn=9,sgq=2,vtc-,kfs-,mrqc=9,cx=1,hbf-,cvl=5,jcdj=6,lqzvsh=7,hnd=5,lfn-,qcm-,fhh-,jxfcr=4,qd=9,fhm-,ff-,tn=8,kn=8,mdr-,ffz=1,bk-,xftfd=5,jvfpdj=5,ffgb=7,ng-,jj-,gl=4,ff=3,knnx-,flzfs=1,ltf=7,bz-,fs=8,vd-,dqt=8,grv-,bl=5,zp=5,vj=4,pkkbjt-,pr-,bh-,hpb=4,djpj=2,dnbvds=8,pcfvv-,jzv-,lms-,xrr-,lsgj=7,tdkgk=2,lsgj-,bl=7,zh-,jr=3,rdm=9,vxjg-,xnh-,rmf-,kx-,jf-,jrzs=4,jd=1,mn=8,flj=2,vh-,jvc=8,csph-,gkf-,cqp-,kgtl-,cs-,ddtp-,zmp=1,dldzn=6,gksbz=2,rs-,rc-,kkz-,kjh=2,cm-,vpj-,vnhnt=5,ffgb=8,rf-,skqr-,jhg=8,xrr=5,zmc=7,ffz=4,pzhfz=6,pv=1,nnfd-,cppk-,lsxt=4,cgd=1,qcqp=7,fnz-,ptzd=4,knb=6,sqk-,vf-,bdf=6,nkh-,kl-,crg-,fn=3,flzfs=2,pbxjx=8,zmc-,fk=2,jt-,vx-,krsl=1,smn=7,qg-,ljqpsl-,xd-,cs-,ztgfc-,cm-,knnx=5,nz-,bdl=6,jr=9,lv=5,rtp=6,lch-,jkb-,sqk-,pzhfz=4,nrh=1,nnfd-,dcr-,dnmld-,mm=3,vfz=1,zht=1,xvcgnj-,cxhrzz=5,blnggt-,tqgk-,dnbvds-,zvz-,pr-,dzfn-,vlks-,mr=2,fk=2,qxk=8,cvl-,fx=7,plbc-,plbc-,qxs-,zm-,tdkgk=9,bdf=4,kq-,sjj-,zd=2,hnx=5,pzhfz-,zp-,ntq-,crg-,plbc=1,xrr=9,mqhm-,rc-,ltf=7,pgdt=1,kq-,fsbr=4,vpj-,jh=9,nsbxkk-,shx-,vxjg-,dqt-,pngv-,txp-,kq-,fq=1,jr-,ss=9,plbc=2,mxcgz-,rfz=3,zpgrqr-,zmx=4,jt=1,kr-,tgsq=5,fhm=9,nlvtt=9,hnnkm-,qhr=6,skqr=8,vvv=5,xh=2,gpv=5,rhsctp-,vx=6,xntm-,psdf=7,sbsp-,zn=2,ntq=1,zfgc-,zn-,tg=8,qxk=7,dldzn=4,cx=6,kn=8,lsgj=7,kzj-,lsgj-,np-,xh=2,mgk=3,gthvfr=3,djpj=4,zsv=7,zl-,kmsx=2,sv-,lglf=9,qd-,fq=4,ch-,xl=6,qxk-,cm=9,cbdz=2,zp=9,xb=7,kx-,ptzd=3,pztx=3,sbsp=2,dg=5,lf=6,xv=7,qb-,lglf-,ln-,bh-,mgk-,pzh-,tbt=7,xvcgnj=5,vfz=5,tl-,nzr-,dszd=3,nzl=3,qcqp=4,np-,qffgm=5,gl-,krsl=4,cqp-,fpn-,vmm=1,fnl-,jp-,nlgt-,ddtp-,xb=8,qqvd=1,jz-,cbdz-,jvfpdj=5,kkj-,zfj-,kgtl=3,psdf=7,vctsd-,dss=2,dbd=9,fnn=5,cppdg=7,rzdpq=3,dzlgmj-,nzr-,ljqpsl=3,fhh=5,mbn=9,rrbhcr-,lms=4,qqvd-,ttr-,mr-,bthp=5,jd=9,jjh=5,gg-,jvfpdj=9,jkb=7,zm-,qmx=4,xpt=9,pz=6,zj-,psdf=6,sf-,nsz-,zqgm-,xjks=9,xvk-,gg-,xpt=9,lqzvsh-,djpj=9,vjvqc=4,qsjf=7,ff=5,jjh-,lhm-,mdcg=2,grv=8,vnhnt-,cfzkr-,phhl=4,tg-,dk=9,mhcp=1,vb-,jt-,zm-,mm-,gt-,nt=1,ng-,mz-,qnc-,ntq-,mgv-,jhg=3,bxbl=7,nzl=3,ldb=7,blnggt=3,fn=5,khbsh=5,kx-,pv-,nsg-,rdm-,mgv-,pkkbjt-,glq-,lgv=9,hbjl-,qxk-,vjjr=7,qvv=7,sbnh=2,gg-,zsv-,rf-,jzv=9,nrl-,zpcclb-,qhr-,kn=2,hnnkm=3,zmc=4,qprbv=8,pgdt-,zbqdr-,bthp-,rhsctp-,djq=9,lhm=9,shx=2,qcm=3,phrk=4,hnd=6,pgdt=5,dx-,phhl-,fnl=5,dshl-,mxcgz=1,dx=9,cxhrzz=2,skg-,tfjz-,qmt-,sv-,zp-,lfn=4,mz=2,jhg=2,rc-,df-,ztgfc=5,gpv=5,kl-,lv=3,qg-,csph-,mpnlrx-,sm=2,tgzb-,bdf-,vf=8,kzz=4,ds=1,vjjr=2,kfs-,zf-,dx-,pn-,phhl=2,zsv=6,cqp-,jbq=1,ff-,pxtqn=8,nfx=5,knzhf=8,rh-,flj=5,ffz=4,dq-,ccd=9,mdcg=9,gkf=9,xdzl=9,nq=9,jp=8,gr=4,vh-,tx-,xv=6,nzr=5,pbxjx-,xz=5,tgzb=8,dzrc=9,ttbbm=2,gl=2,vc-,ttx-,qbbdc-,dtg-,ppc=1,mqhm=4,gpm-,mr-,sbsp=9,cm=3,djp-,lms-,pjq=1,mtskcr=8,qmx-,zzkn-,gkz=9,fn=9,sbnh=2,vnhnt-,bs=7,gr-,mvs=1,djpj=1,vlkgf-,rnd=4,jtvm-,cgd=8,lrtd=6,dtg=2,vb-,hk=1,xb=8,nfrmqc-,jjh=4,vctsd-,ks-,dldzn=9,fk-,vx=8,lms-,txp-,tdf-,vk=9,dvq-,mx=8,jv=6,ffz=2,qpd-,blnggt-,kn-,vk-,sbqr=3,lglf=5,rnd-,pm-,djp=9,djpj=4,dqt-,dshl=6,lbs-,jvc=5,hfg-,bthp=7,kgl=5,pskfz-,qhr-,lv=2,ttx=2,ttr=7,zmc-,skg-,kx=2,phn=1,pjg-,tq-,xqph-,fxdkd-,cmqpn-,sbj=9,dcb-,pm=3,dhmxrf-,qsp=9,cfzkr=9,bxbl-,scr-,hk-,smn=1,qc-,txp-,gksbz-,bdgknx-,jhg=5,djp=4,xftfd=9,db-,lr-,zpcclb=4,ml=2,cqz=5,hj-,ksjdgv=7,pm=3,rjcj-,crg=1,cfzkr-,kx-,cxbn=3,dtg=7,zh-,lqzvsh=2,pgdt=8,hkk=8,jd-,pjg=8,hnx-,vf-,tgjr-,cxhrzz-,scr-,xb-,ffz=7,lgv=7,jbq=9,tdgls-,br-,sjhs=8,nrh-,nd=2,pgff-,mzd-,kn-,fx-,svnm=9,kh=5,mxsl=9,cft-,nhknz-,tqgk=4,kkz-,kkmgj-,xxg=1,rrbhcr-,jpb-,ffgb=4,kg-,bmkb=2,knl=4,dsf-,jp=4,df-,gf-,kzz=6,ddb=8,pn-,qc-,pj-,xl=5,xvcgnj-,pxb-,vjjr=7,vnhnt=3,kn-,jf-,tc=2,rgrtpd=7,xvcgnj-,fpn=8,blnggt=5,cg-,lg-,xntm=7,ss-,dldzn=5,bdf-,qt=5,kkj=3,hp-,jr=2,gf-,kgtl-,fhf-,fxdkd=4,blxnc-,nlvtt=4,ff-,mzd-,kmsx=7,lsgj=2,cg=7,vqpn=9,psdf-,hlrdnn=8,np-,vlks=3,lqzvsh-,qc=4,tn-,svnm-,zf-,xqph=9,tpr-,df=4,cppk-,psdf=7,dsf-,kmsx=5,tg-,vxjg-,gmzd=6,qm-,nrl-,pkkbjt=8,fs=4,vc-,qpd=7,jhg-,pgff=7,vx-,nt=7,dcb-,vmm-,zvz=5,frz-,mvf=9,fbm-,ffz=7,tfjz-,zfj=5,pv=7,sdzm-,bdf-,dcr=6,vbs-,hkk=7,ln=7,kkj-,qcm-,fsk-,qmx-,rcgd-,jc=3,qx-,bdgknx=3,phrk-,br-,nd-,dnmld=5,ch=2,hpn=9,bthp=3,lsgj-,zvp-,hnd=9,vlkgf=9,jt=4,tl-,vmm=1,qbbdc-,tg-,zsz=5,sqk-,jc=7,kg-,pj=4,nrh-,phzv-,hrsf=3,zln-,rpj=8,xxg-,vfz=9,kkz=2,mtskcr-,qbbdc=4,pztx-,rzcrg=4,kzz-,fhh-,ptcr-,kzc=4,qch-,tq=6,pkkbjt=6,nkh-,plbc-,jj-,xpt=6,thgd-,qjlv=9,fsbr=2,bdf-,jxfcr=8,mgv-,dqt-,tq=8,fq-,xrr=3,mhcp=1,nfjh=6,bdl-,hpb=5,dctk=8,dshl=1,hnx=4,ppc=2,jz=2,ps-,zrlq=5,fs-,sbsp=6,pg-,jhg=4,sbj=7,qg-,pjq=3,dldzn=1,zd-,rpj-,ttx-,blnggt-,mgk-,xk=6,pz=2,kcpj=8,dcb-,skg-,rh-,sz-,cfzkr-,rgt=8,nz-,hbf-,vc=1,vk=5,fs-,xdzl-,btg=1,zrlq=8,jzv-,qg-,xl-,pjq-,krsl-,ttr=3,mxcgz=9,rlqrc=7,zj-,szz-,ss=6,zp=8,sbqr-,rtp=3,jj=8,lrtd-,dg=5,nlgt=6,dcr-,dzlgmj=8,pngv-,kq-,lgv-,lrtd-,zmp-,lsgj-,tc=5,vqpn-,td-,lh-,dcnr-,xd=2,shx-,ddm=8,vvv-,pxk=4,nkh=8,ljqpsl-,dbt-,ff=5,ng-,sbh=2,nq-,pdrct=7,qxk-,tcvg=6,rs=4,qm-,mrqc-,vbs-,zsz-,sbj-,cppk-,rkx=6,rs-,vpj-,ldb-,hnrf=7,qst=8,qhf-,bxbl-,jpb=5,zqgm=6,tgsq-,gpv=3,tl=8,fpn=7,blxnc=7,xvk=7,ps-,xd-,qr-,tgjr=4,pjhdd-,jv-,rkx-,vvv-,cppdg-,kzz-,xtf=2,vvv-,dng-,cxhrzz-,xxg-,tcvg-,zmx-,sbnh-,rmf-,vpj-,tgsq=4,bk=7,kkj-,vvv=8,hnx=2,xft=8,nsz=4,hbf=7,fsk=7,lgv-,xdgq=3,clm=1,phn=8,gpv=4,zm-,pzh=6,bxbl-,lqzvsh-,vlks-,vp=4,mrqs=6,nnfd=6,mxsl-,vr=7,fj-,ltf=8,kzc-,vfz-,lms-,pxtqn-,mb-,rk=7,cft-,kjh-,gmzd=6,rzdpq-,ptcr=8,dzrc=6,zn-,pm-,xvk-,cx=4,rn=3,vctsd-,qz=9,fn-,zh-,pg-,cz-,xntm-,vlks-,lcvqz-,sdzm-,cgd=6,tbt=5,ffz-,bhj=9,qjlv=5,sv-,nc=8,qr=3,lms-,khq-,ffz-,ln-,kcvf-,zrlq=6,lsgj=7,zf=8,vr=5,bxn=6,rtp=4,fdxl-,cxbn=5,mrqc-,qpd-,fk-,qqvd=2,djq=7,bk=8,qch-,jcd=7,ptcr=4,rcs-,qhf-,sgq-,bpk-,fq-,dcb-,rpj=9,tmnjxl=7,vtc=3,zrlq-,mgv=4,jkb=4,cvl-,kq-,ttbbm=1,kzc=8,dbd=3,lch-,ks-,blxnc=7,vp=3,pm=7,jpb-,tkh=8,fxdkd=8,dzrc-,qxk=3,jkb=8,cx-,dvq-,ztgfc-,sbk-,mr=8,kg-,txp-,xnh=4,jxfcr-,qm-,tl=1,vmm-,mrqs=7,mn-,lpj-,nrh-,qcm-,xz-,xft=1,kcpj-,phzv=7,kmb-,zt-,mgv=2,dcnr-,zpcclb=9,kgl=4,rhsctp=6,lrtd=5,ccd=3,dhmxrf-,qqvd=1,mppl=9,ff-,mrqs=1,ttx=6,hp=7,kgtl-,qhr=5,kjh-,qnc=2,vr=8,fx=7,rmf-,tcvg-,gtb=2,gnl=3,ddtp=9,th=1,hp-,zbqdr=6,nnfd=3,rfz-,xsm-,bpk=7,sgq-,hkk-,ttr=5,ppc-,vjvqc-,zht-,dcb-,rhsctp=7,kh-,jxfcr-,mgk-,cjp-,djpj=7,gkg=5,rjcj=5,mqvc-,zns-,lqzvsh=3,ppc=3,sm=8,jr-,jqg=5,sjhs-,ptzd-,hnd=5,pz=1,tmqh-,kmsx-,pxtqn-,phzv=6,krsl-,mrqs-,dcr-,dss=5,jt-,xh-,rcs=4,gpv-,pz-,ttbbm=8,mn=7,jjh-,qst=1,vk=6,gtb=4,pngv-,hj-,kr=6,hpb=3,dzlgmj=6,zfgc-,mx-,dctk=9,ttx-,nz=9,gkg=9,ddx=8,mpnlrx-,ntq-,vjjr=1,nfjh=2,tmqh-,hqq-,fj=6,fn-,kg-,svnm=3,gbr-,xvk=7,qz=6,zsv=1,hnd-,rzdpq=4,bhj=9,cmqpn=8,tgjr-,jd=2,djq-,glh=1,mr-,qsp=5,gt=7,vvv-,gf=4,kcvf=3,cft=7,glh-,lglf=4,lfn-,ddx-,kcvf=6,tbt-,kh-,gbr-,zt-,kcpj-,gl=1,kkj-,cbdz-,mg=2,dzrc-,hfg-,qbbdc=2,ddm=7,rrbhcr=3,tgzb=5,hpb=8,nq-,xd=9,nkh=8,nbx-,ttr=3,hk-,nhknz=2,lpj-,zd=8,jqg-,dtg-,br=1,vr-,vr=6,kh-,ddm-,sjj=4,mxcgz-,qprbv-,zb=2,pjg=7,dg-,khq=6,csph-,jbq-,cvl=9,tpr=8,fpn-,nfx-,vj=4,rkx=9,lglf=9,ttr=3,nrl-,gl-,xtz=5,znkzq-,nb-,vc-,dss-,zqgm-,pzl-,vx=7,tg=9,tq=6,mr=1,ttx=7,ds=7,gr=1,xjks-,vk=5,qpd-,ps=1,th-,rzcrg-,kkj-,kl-,vr-,ljqpsl=6,cgd=1,zbqdr=1,mr=9,pzhfz-,fhf-,sbqr=3,fp=2,mxsl=5,lfn=7,tc=8,qs-,kcpj=3,sgq=2,phzv-,mzd=2,gf=7,vfz-,vxp-,gnl=7,tgzb-,pzl-,fnz=2,qpd=6,lgv-,qc=6,lg-,cm=3,vlks=4,nfjh-,mgv-,jptch=7,mn-,dshl=4,jvc=8,dk=6,tx=5,zqgm=6,sk=9,nd=4,stqt=8,cxbn=3,dszd-,zvz-,kl-,xkbcj=7,gtb-,jc-,vh-,pjhdd=8,knnx=8,tgzb=5,xdzl-,jxfcr-,rn=4,gt=8,hqq-,pztx=3,nzr=6,mvf-,dbt=9,mrqs=3,lhm=7,pbxjx-,rgrtpd=2,bgv=1,jqg-,kkz=5,vpt=5,gkg=2,ds=4,rjc-,dng=9,qhf=8,fsbr=6,vctsd-,hpb=1,kmsx=7,jkb-,qz=8,fk=6,cppdg-,xvcgnj=2,kl-,bp=6,rjc=6,qqvd=9,rgrtpd=8,plbc-,pkkbjt=8,hpn-,jhg-,ln=2,ttr=3,zns-,sbnh-,tc=9,fdxl=6,xntm-,sm=5,vctsd=8,jf=9,vc=1,dsfln-,fq-,gx=5,qmx-,dhmxrf-,ks=8,ff=9,hfg=9,mgk=8,xkbcj-,qpj-,pzhfz-,dzrc=2,cgd=6,rcgd-,flj-,tgsq-,pn-,rkx=7,gbr-,fhf-,ln=3,vvv=1,sfg=5,pskfz=6,cx=6,mb=1,tn-,cs-,grv-,hj-,fbm-,ddm=8,cppk=8,vctsd=3,qsjf-,dzrc=6,znkzq-,ccd=3,mbn=9,hrsf=4,fn-,cfzkr-,tfjz=9,pgff=7,tcvg-,hnrf-,krsl-,jbq=3,gr-,cg=5,jjh=4,dsfln-,fj=9,vf=9,xjks=5,lch-,fp=2,vd-,gr=9,fs-,xr-,qsjf-,cz-,qjr=8,fn=2,sjhs-,gf=7,dqt=1,xsm=5,gkz=6,bs-,bhj-,zp-,nrh-,xv=8,lrtd-,ttr=2,jqg-,hpb=9,bz=9,rjjk-,mb-,zmp-,mrqc-,ccd-,jt=2,fdxl-,jd=6,jqg=7,gmzd-,pztx-,lcvqz=7,rkx-,cfzkr-,xz=4,zns-,hpb=2,ttr-,cft-,skqr-,mzd-,nrl=5,qffgm-,vp=4,gg=3,bhj-,pdh-,vhff=6,mgk=5,vvk=2,lgv=2,bhj=4,lgv=9,cjp-,pskfz-,nfjh=8,nnfd=2,glq=4,kfs=8,qt-,pzl-,rc-,sqk=7,dshl=1,ffgb-,fsk=9,stqt=4,vmm-,rzcrg=5,nfrmqc=1,bs-,pbxjx-,fk-,vlkgf-,qsp-,sqk=3,mtskcr=1,rlqrc=5,rtp-,mbn=9,rs-,fhh=1,vjjr-,rcs=9,rmf=2,mgk=8,kn=1,xvk-,xkbcj=8,dq-,zn-,mqhm=4,jj-,znkzq-,mbn-,mx-,pkkbjt-,kl-,ltf=1,cs=4,fsbr=2,mz=5,kgl=6,kgtl-,nd=3,cpsh-,rnd-,mb-,pj=1,shx=9,dsf=2,sv=9,dss=7,phrk-,vp=1,kvlmn-,zt-,lv=9,lsgj=6,hrsf-,bp-,hj=2,lms-,nzr-,rjc-,tx=2,ptzd=8,fx-,tgjr=5,cppdg=4,cppk=8,rnd=9,kd-,hpn=6,sbsp=4,rpj=4,lf-,smn-,gl=9,qhr-,zvz-,qmx-,cg-,xtf-,kg=7,rh=3,cs=4,ppc=2,bs=4,nrl=2,ff=7,jv-,pzh=4,mdr=6,ds=1,zc-,zm=2,qmt-,znkzq-,mb=2,tdgls-,ltf=8,kd=4,dk-,sjj=3,cvl-,dcnr-,mhcp-,hp=1,lr-,br-,gpm-,zp=7,fsbr-,rgrtpd=3,nrl-,tn=9,ddb-,rpznm-,th-,pl-,mvs=3,znkzq=9,vxp=2,sk=2,krsl=2,tx=1,dx-,qmt=6,dbbd-,stqt=6,vk-,kcpj=3,pz=5,cxhrzz-,qvv-,pdrct=2,ldb=7,vjvqc=6,sdzm=4,flzfs=3,djpj=5,bq=8,khq=9,rcs-,fk-,rn=2,lsxt-,phzv-,tl-,dctk=5,pm=2,fnl=7,rcs-,flj=3,mpnlrx-,xxg=6,nzr-,jkb-,nd-,gnl-,gnl=9,jcdj=3,bxn=8,tfjz=5,txp=2,pjg-,jzv-,dtg=8,ddb=9,qmt=5,vd=3,glh=9,shx-,hbjl=3,dx-,kh=7,br=1,mgv=5,tcvg=6,lrtd-,rmf-,cjp=4,cqz-,mdcg=4,ffz-,dnmld-,sfg-,dx-,bthp=7,gmzd-,tqgk=4,jr=9,dss=9,gpm-,jc=5,hz-,ffgb-,cvl=5,nfjh=8,cvl-,dnmld=5,fsk=7,qxk=4,ptcr=4,lf=9,rfz=5,mvs=1,vp-,fqdh=1,qs=7,xvk=1,sqk=6,nfrmqc=9,kkj-,pztx-,sv-,df=1,vxp=1,fq=7,mtskcr=2,nfjh=1,jk-,xdzl-,xvcgnj-,kg=8,pr-,zmc-,ksjdgv=7,lg=7,khbsh-,dbt=5,kvlmn=5,ttbbm=1,zrlq=1,cm=2,zfgc-,jcpz-,nnfd=2,kg-,bp=4,svnm=7,xtf=4,lch=2,pzl-,bz-,dqt-,ttbbm=9,nsz-,mvf=5,nbx-,jjh=1,xntm-,dcnr=8,lhm=7,blxnc-,ng-,rjjk-,qbbdc=6,rzdpq=6,znkzq=6,vh=7,kkmgj=6,ff=2,ss-,glh-,gkg-,lgv=6,lqzvsh-,sgq=5,vnhnt-,nc=5,zh=9,cg-,dq-,zf-,ksjdgv=4,xr=1,fn-,mqhm=2,zmx-,lcvqz-,ml-,rhsctp=8,jhg-,pg=3,ss=9,bq=4,gtd=1,zvp-,xvcgnj=1,fhm=7,zpgrqr-,vjjr=3,fpn=8,fbm-,ds=3,cm=2,pgff- diff --git a/data/16_2020.txt b/data/16_2020.txt new file mode 100644 index 0000000..8e18cad --- /dev/null +++ b/data/16_2020.txt @@ -0,0 +1,261 @@ +departure location: 32-209 or 234-963 +departure station: 47-64 or 83-967 +departure platform: 37-609 or 628-970 +departure track: 29-546 or 567-971 +departure date: 50-795 or 816-960 +departure time: 49-736 or 750-962 +arrival location: 48-399 or 420-967 +arrival station: 49-353 or 360-967 +arrival platform: 37-275 or 298-969 +arrival track: 40-119 or 127-954 +class: 35-750 or 760-968 +duration: 43-162 or 186-963 +price: 30-889 or 914-949 +route: 39-266 or 274-950 +row: 45-366 or 389-954 +seat: 42-765 or 772-955 +train: 30-494 or 518-957 +type: 48-822 or 835-973 +wagon: 32-330 or 342-951 +zone: 36-455 or 462-973 + +your ticket: +109,137,131,157,191,103,127,53,107,151,61,59,139,83,101,149,89,193,113,97 + +nearby tickets: +141,889,637,661,351,108,544,424,330,479,662,448,152,584,408,736,714,299,61,864 +692,855,843,361,21,265,678,716,347,531,56,792,492,656,727,848,149,596,887,862 +819,139,202,774,606,242,646,653,298,111,881,937,118,600,423,354,780,249,639,301 +938,258,482,697,640,678,946,349,153,198,707,601,925,601,677,307,925,840,870,177 +119,724,442,993,137,394,85,673,609,862,631,92,545,591,104,451,130,603,94,946 +468,932,879,522,256,688,587,747,154,735,476,661,312,602,315,314,263,55,203,733 +265,630,795,703,244,848,818,195,692,728,216,637,765,195,697,489,188,302,189,662 +97,300,193,203,87,835,835,205,850,584,690,218,699,734,433,862,149,657,686,691 +493,657,652,170,252,188,915,424,57,302,858,484,520,676,441,730,481,656,307,263 +425,776,137,931,633,402,197,83,574,161,732,85,445,726,786,208,535,773,390,248 +765,689,63,389,523,352,203,50,161,817,604,799,441,719,116,196,680,363,782,521 +876,882,389,543,575,257,333,481,493,852,134,939,114,576,705,915,645,584,259,710 +693,600,818,420,434,536,884,868,571,569,235,423,250,712,158,98,860,512,157,136 +201,882,688,918,244,147,678,619,194,237,931,914,649,446,783,107,207,260,518,652 +690,469,660,915,726,866,348,147,147,63,22,646,933,141,441,443,327,859,98,654 +246,882,869,239,914,342,682,705,243,263,629,641,607,776,193,50,997,701,314,887 +818,700,363,103,672,327,433,91,242,882,147,413,490,729,914,870,476,360,127,262 +138,791,317,866,694,849,55,845,660,699,349,894,630,390,638,838,850,573,433,859 +398,765,264,195,275,538,429,677,939,483,943,481,248,786,434,200,126,920,53,764 +570,928,684,793,779,782,531,343,656,609,688,624,113,84,304,641,314,464,662,93 +914,872,984,638,792,636,104,668,636,303,604,306,728,254,655,88,429,923,248,659 +478,243,884,54,632,920,430,539,108,144,496,274,396,855,204,307,53,129,774,256 +320,430,316,88,840,330,847,629,788,261,551,835,325,711,639,109,274,152,199,887 +236,250,820,662,795,638,507,784,431,654,161,694,704,641,489,108,154,300,872,881 +678,140,424,204,101,915,244,687,869,817,445,847,492,95,945,873,704,319,417,429 +646,206,438,256,541,629,348,856,687,311,268,541,704,876,152,63,141,312,711,523 +781,274,662,531,777,342,926,128,474,182,206,483,939,196,776,60,311,653,520,669 +193,525,275,923,305,343,888,858,143,706,144,438,484,487,299,463,761,987,477,935 +327,856,52,586,95,646,300,722,363,667,116,531,491,570,653,102,350,125,539,701 +865,821,685,522,102,449,728,527,471,87,884,839,357,765,642,655,432,141,155,299 +394,767,149,394,263,352,784,437,600,582,788,469,579,138,696,150,158,924,319,917 +129,633,605,207,136,318,301,654,629,200,597,4,921,654,581,926,441,55,444,446 +450,469,472,363,692,869,579,204,643,133,866,581,91,161,334,109,696,427,822,936 +299,195,155,235,64,136,869,791,723,701,771,207,133,489,188,84,489,881,856,88 +52,533,185,859,52,187,90,593,876,64,394,57,821,944,773,328,782,653,726,733 +865,129,240,602,84,735,821,220,730,685,667,391,543,728,146,301,153,605,321,138 +127,236,398,194,731,333,319,203,251,91,917,941,708,777,427,50,240,727,629,390 +750,93,128,470,638,60,156,589,469,864,6,421,103,532,189,363,113,791,390,238 +308,677,932,631,261,698,105,106,578,265,809,330,266,63,725,156,697,837,701,239 +670,263,691,16,467,750,151,188,591,697,718,943,312,539,350,887,777,644,872,117 +663,530,838,779,700,258,643,305,90,421,621,918,630,884,347,275,275,876,632,864 +528,300,917,676,439,567,155,207,839,60,53,544,877,140,298,165,491,947,889,869 +329,424,882,351,733,209,131,244,677,8,776,323,698,642,94,129,247,781,659,50 +239,774,873,532,490,427,879,523,275,142,690,668,115,346,488,261,675,272,569,570 +686,14,641,603,696,595,779,209,781,680,162,463,156,353,203,424,470,477,652,718 +660,855,473,924,850,925,668,836,208,320,275,838,647,861,662,822,8,310,315,481 +578,916,489,591,985,691,601,847,207,885,673,840,711,851,363,429,653,790,475,576 +275,317,441,727,636,671,979,84,670,97,932,591,639,240,598,153,323,657,858,317 +688,135,124,99,850,781,917,107,674,672,102,857,63,160,720,113,445,675,838,604 +125,52,127,656,542,353,764,87,632,114,689,659,155,609,699,677,608,787,760,468 +853,936,585,714,935,606,686,418,128,840,777,323,710,542,493,438,145,237,577,674 +589,88,301,665,200,657,662,887,131,160,209,689,594,61,592,449,253,185,479,846 +940,876,324,880,328,654,452,945,102,841,597,855,235,847,769,330,320,540,657,946 +855,764,90,857,485,330,696,202,101,726,713,845,862,209,977,577,719,484,604,257 +699,255,155,637,630,769,299,727,914,607,944,599,679,648,522,587,314,436,360,480 +660,638,493,306,323,351,928,105,464,470,235,795,264,666,915,92,130,990,599,344 +908,50,604,855,434,923,670,483,491,580,938,644,689,917,570,435,439,479,578,816 +840,864,664,681,855,822,567,764,364,778,787,929,768,645,760,820,469,919,606,189 +97,594,923,567,997,436,629,262,140,101,631,312,437,861,108,449,55,529,56,492 +397,55,730,570,93,538,187,179,660,862,580,879,640,947,708,494,101,697,361,857 +588,619,520,99,420,248,430,608,303,342,394,316,462,254,573,202,884,696,442,238 +645,716,266,637,688,905,198,651,788,591,138,641,451,132,366,934,687,151,186,522 +100,703,686,631,449,589,569,875,308,609,764,205,846,124,571,471,204,880,764,209 +588,608,13,85,199,486,946,727,840,134,102,305,712,156,679,713,941,252,260,156 +428,636,882,881,307,703,352,274,342,334,56,118,455,629,605,487,679,918,866,839 +524,327,946,877,637,52,484,439,471,441,863,465,63,112,580,481,872,976,141,819 +303,521,91,121,728,393,463,574,89,916,427,760,519,856,191,787,920,258,104,664 +321,204,243,529,986,197,94,86,135,660,434,851,466,241,688,878,145,86,570,915 +326,187,720,601,314,315,697,727,694,316,836,737,455,658,628,162,609,422,85,795 +87,61,678,86,311,669,836,693,448,855,69,129,869,92,307,95,594,934,944,701 +148,818,203,781,856,304,490,319,462,914,51,240,474,710,171,141,855,248,609,98 +792,696,708,234,597,774,923,55,688,189,109,127,390,96,105,11,884,102,154,304 +672,309,696,794,432,320,63,437,780,242,937,536,545,654,236,659,934,986,844,863 +698,202,531,365,583,583,135,62,650,924,83,127,436,50,444,334,819,700,577,731 +764,871,765,391,135,856,103,446,726,197,245,334,399,790,440,365,390,680,733,141 +204,353,301,865,310,889,534,767,463,777,850,108,434,353,189,258,529,652,329,353 +465,265,480,149,929,608,578,358,485,207,661,118,244,310,99,845,526,188,690,450 +729,262,879,315,344,93,54,151,529,236,716,675,429,594,709,191,331,822,817,89 +879,586,349,701,528,816,85,254,115,588,364,107,819,129,99,120,391,252,308,153 +734,865,866,686,662,267,533,698,856,462,437,63,846,325,762,525,59,392,129,923 +192,71,146,346,429,352,793,541,936,348,481,53,577,921,915,259,583,481,701,544 +683,605,543,398,840,935,579,658,114,303,309,682,420,932,734,211,673,316,817,598 +304,440,541,196,645,494,255,109,84,881,667,545,527,568,941,461,609,476,138,312 +585,147,56,524,856,947,664,529,850,424,358,533,918,205,145,844,600,51,765,784 +258,660,540,865,143,109,706,351,316,578,251,192,661,768,569,944,724,844,90,153 +483,126,431,727,159,536,157,190,567,783,92,395,782,236,589,946,763,432,150,607 +583,254,569,571,926,196,764,275,153,489,450,132,988,152,329,690,541,206,96,838 +109,432,876,51,98,598,217,243,723,927,656,782,323,310,933,724,939,257,363,947 +594,194,732,245,190,347,775,132,778,479,701,64,711,665,940,796,451,195,791,733 +724,92,544,474,454,92,577,596,449,262,887,54,258,709,432,488,914,553,527,199 +90,434,721,643,242,859,122,535,879,521,866,115,848,423,326,523,54,867,63,366 +720,639,151,311,835,112,679,574,521,531,262,316,607,201,708,684,102,97,183,192 +189,208,242,702,327,628,635,204,190,691,736,132,239,248,272,275,442,666,158,721 +325,239,677,569,62,542,243,162,641,127,451,819,909,469,692,632,878,238,935,154 +428,783,390,865,873,301,923,351,312,453,101,243,792,925,720,835,411,144,676,691 +162,234,479,593,865,929,671,855,239,629,452,666,778,52,237,299,641,519,124,207 +428,718,519,195,99,326,657,699,733,259,705,508,873,675,592,839,713,782,242,840 +662,191,487,794,685,320,949,778,1,480,256,540,448,257,493,934,914,889,888,312 +608,335,274,926,873,127,192,537,257,525,535,141,919,628,716,679,646,940,86,861 +652,420,127,786,669,235,665,446,649,846,260,245,320,9,194,649,599,818,98,682 +151,849,789,443,854,684,348,927,593,859,782,88,839,444,845,552,546,636,131,750 +311,161,144,894,919,639,482,639,442,326,452,427,247,275,524,445,484,250,155,633 +366,327,142,494,430,318,90,159,524,658,925,261,349,413,581,139,482,705,736,701 +940,723,589,421,247,747,161,136,389,197,59,422,304,430,396,399,576,857,764,342 +472,390,601,609,96,714,785,432,568,259,469,87,567,654,249,894,580,205,470,428 +483,864,679,542,546,94,86,529,822,439,352,573,718,487,468,412,64,733,944,396 +321,871,886,594,651,391,195,540,887,585,789,93,979,137,781,602,857,437,256,266 +653,677,92,451,259,574,598,327,795,945,757,262,425,693,199,714,642,640,479,691 +876,805,521,397,645,107,792,541,455,343,155,708,683,98,601,585,425,95,528,304 +54,475,941,107,518,446,722,92,633,90,672,469,567,774,725,200,312,192,319,269 +131,708,724,523,889,251,159,784,850,114,839,451,627,644,725,641,847,690,630,816 +190,748,307,649,151,113,119,470,670,426,597,318,445,112,733,716,928,704,527,480 +595,426,54,188,667,524,729,596,722,861,735,673,334,527,697,888,777,153,727,389 +104,318,877,931,420,245,857,122,52,761,107,365,608,709,300,148,209,274,603,317 +439,880,103,317,208,926,635,720,859,345,857,299,520,795,666,113,784,231,939,722 +695,197,538,108,525,860,713,425,840,923,12,597,935,653,161,146,245,156,924,851 +208,662,491,61,643,568,535,188,885,154,366,452,451,677,260,116,437,54,918,0 +110,729,530,97,472,453,261,464,260,136,529,736,476,248,793,484,907,155,705,199 +665,116,602,685,249,940,151,881,139,349,585,348,268,854,477,486,350,918,107,148 +706,161,194,299,93,582,353,305,519,453,653,330,86,336,875,206,691,860,546,694 +859,942,920,732,699,543,820,903,879,366,471,348,716,195,651,729,494,861,522,639 +150,780,206,731,600,841,930,146,709,257,709,928,854,321,488,695,365,85,335,822 +939,851,488,677,265,132,494,235,924,605,675,630,157,146,597,74,863,394,451,672 +105,60,352,417,925,100,471,678,204,186,254,466,641,363,653,252,492,156,528,262 +793,129,675,188,139,595,851,647,599,391,889,261,311,685,308,770,935,303,108,653 +476,664,732,889,671,852,586,878,363,399,533,774,396,568,448,208,318,941,721,766 +763,878,137,317,842,938,315,752,863,702,840,90,422,919,136,776,714,721,788,639 +935,682,299,776,191,488,593,630,55,523,260,842,804,707,783,642,429,96,657,638 +63,449,467,94,590,522,734,545,842,650,533,587,452,153,922,346,769,917,490,486 +682,171,94,348,665,681,310,727,918,712,129,578,531,572,325,438,353,715,648,193 +4,946,883,209,715,92,257,463,448,452,764,725,736,772,472,442,447,61,533,151 +107,268,685,439,105,247,920,192,594,683,876,640,860,762,602,153,486,534,472,817 +774,575,594,445,864,589,567,97,89,126,792,650,365,945,130,773,718,91,471,422 +598,97,668,420,157,735,538,778,690,675,205,633,474,945,893,590,578,119,852,854 +948,592,575,114,436,882,310,399,675,690,430,193,139,273,840,680,792,191,845,472 +135,545,472,145,275,810,821,601,260,652,715,919,848,690,568,421,668,855,390,484 +52,300,448,529,658,601,935,258,918,664,942,439,503,729,535,62,159,722,50,585 +108,704,717,604,883,99,726,727,62,95,587,558,532,541,791,723,200,235,243,702 +147,765,23,683,398,664,760,773,315,523,330,474,838,190,730,717,112,793,666,727 +602,494,606,704,56,310,658,102,862,109,885,100,123,455,692,783,949,837,786,700 +604,785,777,867,466,342,130,544,89,926,460,719,193,153,425,318,426,924,649,301 +583,64,448,244,843,686,572,237,489,134,316,593,679,818,917,424,303,809,704,315 +914,722,351,10,685,636,682,840,247,423,879,468,131,301,59,664,840,488,781,877 +673,856,521,398,58,697,110,762,470,157,424,147,89,581,498,939,322,128,147,942 +197,298,462,109,673,90,845,207,479,321,481,485,606,478,947,680,463,463,253,123 +719,438,143,595,822,762,118,318,94,12,718,438,794,540,644,931,871,668,303,677 +678,898,327,304,583,569,790,722,917,593,817,629,191,305,160,483,480,436,843,204 +103,927,157,921,198,470,264,307,630,527,844,391,863,987,392,87,519,193,776,945 +609,679,994,64,142,571,463,52,156,789,782,472,729,942,275,436,305,533,430,702 +83,428,788,946,642,923,537,348,423,943,712,720,735,391,301,207,778,360,265,912 +921,949,917,704,320,307,738,154,750,634,161,526,346,202,275,479,837,639,442,431 +464,390,780,718,250,860,135,309,601,840,63,176,299,595,699,360,309,868,83,933 +542,538,854,328,97,196,554,193,106,440,685,845,315,150,205,96,144,687,871,187 +366,816,601,312,784,432,678,344,934,663,916,308,312,731,204,499,535,946,885,348 +728,311,139,394,538,673,647,595,723,321,451,202,779,310,485,654,127,337,476,647 +209,424,471,780,111,437,262,942,750,761,148,635,987,104,888,197,818,93,203,246 +56,149,776,683,350,448,693,944,190,320,469,930,84,699,785,102,583,404,674,55 +63,774,490,586,726,658,927,348,723,55,85,119,652,675,931,198,136,51,843,987 +449,717,887,154,322,428,422,150,707,846,940,933,181,713,438,144,256,439,570,661 +482,112,729,935,539,700,843,301,264,61,409,606,762,681,645,442,785,140,705,314 +884,489,162,705,493,605,149,454,715,702,328,726,846,720,843,267,321,685,197,578 +596,668,776,345,820,692,711,453,494,816,870,432,868,636,694,101,792,538,766,313 +352,306,304,850,634,782,914,420,818,435,577,112,92,944,236,614,85,817,324,439 +577,443,718,323,301,685,932,115,526,544,864,915,215,945,838,342,654,57,252,490 +298,194,449,464,540,266,901,594,582,391,779,494,590,881,763,539,710,729,925,307 +136,534,242,840,52,186,694,937,349,160,307,271,595,525,527,319,773,604,821,628 +199,711,871,255,765,257,84,527,697,142,637,775,723,364,350,106,180,845,532,258 +880,581,323,314,390,197,144,857,116,448,765,429,406,576,299,574,583,709,711,193 +690,262,700,423,785,947,687,825,206,265,580,346,245,525,728,138,601,762,432,193 +137,844,469,843,89,869,541,638,364,312,183,795,920,320,949,880,914,853,872,353 +871,470,732,492,472,666,299,127,389,424,722,715,636,937,563,155,319,322,601,761 +306,779,639,678,446,789,326,147,519,646,528,712,99,397,85,274,310,738,360,363 +58,302,245,674,323,146,776,795,887,364,238,533,254,651,602,467,730,725,690,511 +246,583,160,931,520,160,728,859,90,718,123,207,304,440,652,848,311,486,86,260 +234,948,596,116,311,840,703,933,521,537,918,202,275,628,421,740,85,543,940,111 +588,59,712,479,718,421,634,880,349,938,327,645,664,538,204,832,540,58,838,312 +772,404,254,676,602,484,345,131,921,429,602,669,523,139,884,84,105,632,841,187 +351,226,470,727,648,259,462,248,772,449,682,914,867,89,137,258,326,716,935,392 +155,783,717,523,526,347,487,790,146,871,114,582,476,398,852,141,646,931,502,204 +821,835,115,658,448,656,406,522,884,855,921,591,131,398,887,320,148,494,568,518 +873,633,883,935,163,245,60,922,95,51,600,662,394,858,645,851,687,603,306,315 +875,128,923,60,393,730,601,820,130,864,928,768,85,874,915,329,849,574,424,127 +366,447,97,54,470,859,328,330,932,442,86,321,138,704,256,594,940,768,537,546 +726,207,661,475,58,469,721,475,395,849,161,106,106,710,822,762,817,521,443,418 +868,839,438,462,51,656,750,781,257,424,16,522,664,155,437,321,420,541,649,262 +464,934,263,657,732,839,152,515,674,870,631,133,435,137,601,105,301,819,454,201 +298,84,667,149,434,179,108,275,727,262,301,274,643,107,713,714,608,943,118,487 +183,364,885,842,846,939,301,630,541,852,781,92,88,579,442,853,634,242,642,668 +590,324,137,702,793,142,102,108,819,398,524,328,80,315,263,920,593,839,593,263 +638,56,205,108,776,542,391,72,391,918,714,490,663,762,586,648,248,545,345,352 +143,837,571,194,572,435,305,351,157,196,573,488,780,191,946,61,206,692,364,332 +463,483,591,870,486,727,591,869,917,865,829,648,704,940,63,303,781,600,116,263 +90,923,266,822,253,398,13,345,589,590,205,53,194,61,438,878,137,786,567,656 +656,317,657,715,793,488,144,55,533,568,323,573,571,264,584,141,188,900,195,914 +482,635,842,728,119,138,622,764,526,947,573,571,106,238,242,132,669,940,445,884 +710,200,939,539,633,113,471,308,364,134,494,299,274,555,322,848,245,761,729,570 +451,750,656,242,325,922,654,399,351,846,334,103,792,750,138,116,475,260,521,347 +732,659,783,332,718,926,777,314,61,96,392,917,350,683,160,886,666,569,668,687 +96,572,761,846,447,529,149,251,729,137,130,686,395,898,159,200,94,160,395,946 +575,497,399,196,839,362,691,193,539,55,693,583,103,489,308,929,160,189,736,438 +303,546,583,434,634,649,146,724,532,594,450,870,748,250,784,881,641,389,676,440 +692,578,721,155,639,578,55,337,682,324,422,645,925,587,482,308,853,782,673,592 +581,83,390,633,257,149,458,190,732,629,602,683,569,571,54,155,870,791,856,528 +442,850,243,698,635,592,677,316,102,463,102,433,89,887,93,634,243,922,907,394 +445,521,880,629,793,875,68,395,151,314,60,329,346,639,521,709,633,652,137,327 +298,481,576,712,207,672,86,645,257,704,136,595,684,503,888,128,392,200,188,111 +259,310,936,250,155,62,869,870,467,817,114,445,485,527,595,105,922,709,15,653 +455,162,364,89,531,512,683,700,877,687,845,817,466,351,478,719,254,50,520,701 +330,298,55,453,306,553,107,236,818,781,717,629,774,108,466,669,148,429,648,55 +98,347,887,131,889,427,366,273,866,119,858,717,939,147,202,703,852,533,669,530 +493,567,943,632,478,6,443,360,524,734,201,877,423,155,486,250,299,431,852,344 +594,726,360,429,472,438,770,300,351,299,726,838,644,274,676,364,883,311,856,694 +838,131,241,484,638,857,174,490,325,735,520,857,465,190,319,631,160,715,924,602 +334,437,541,482,471,118,311,89,570,703,323,131,708,474,351,571,940,525,875,530 +660,19,583,534,524,718,113,161,256,353,777,884,673,57,845,197,159,256,395,918 +575,649,301,716,568,121,539,320,353,392,343,351,64,127,240,249,578,702,946,131 +855,561,259,235,763,205,159,56,791,314,856,471,352,537,860,856,149,328,306,721 +234,519,146,448,682,521,798,528,697,543,526,714,208,489,703,493,195,195,430,875 +592,653,666,448,364,601,635,459,575,264,686,452,944,449,685,425,318,366,601,237 +721,733,919,545,193,631,359,346,822,588,431,921,660,444,421,773,878,787,774,491 +155,448,86,723,642,773,522,760,571,640,837,124,244,668,657,352,736,488,597,663 +390,527,446,979,109,862,105,235,869,584,730,433,440,945,199,485,843,448,396,725 +943,869,99,62,872,868,524,477,61,536,398,848,430,674,123,652,194,871,301,424 +837,868,346,83,87,931,273,837,923,480,843,608,732,874,581,847,436,525,592,159 +396,239,581,310,478,932,64,553,764,793,772,424,874,821,790,204,718,713,697,572 +83,776,420,190,446,606,852,437,716,151,114,463,789,185,352,528,526,83,104,426 +635,150,574,329,588,469,149,474,327,428,892,115,362,439,486,453,61,450,398,437 +60,680,820,877,204,928,89,936,432,304,102,858,560,781,677,645,308,452,392,104 +248,493,56,526,487,840,261,281,134,935,130,663,788,110,317,347,199,864,940,586 +398,680,468,879,236,345,609,424,584,349,749,587,398,64,300,234,298,942,141,839 +872,645,304,326,794,148,16,200,427,773,876,258,703,102,140,255,691,778,450,678 +735,526,453,323,144,934,690,578,433,836,64,884,794,139,678,275,397,945,692,18 +92,392,762,670,319,727,235,146,363,795,710,84,393,23,350,427,494,835,463,193 +677,87,698,254,259,702,850,114,265,792,434,366,260,464,527,392,519,838,922,2 +59,208,241,311,145,584,681,595,943,880,575,917,521,684,739,263,327,323,261,53 +682,735,790,735,481,591,103,815,721,696,432,578,106,835,134,530,391,819,788,50 diff --git a/data/16_2021.txt b/data/16_2021.txt new file mode 100644 index 0000000..53f5708 --- /dev/null +++ b/data/16_2021.txt @@ -0,0 +1 @@ +020D708041258C0B4C683E61F674A1401595CC3DE669AC4FB7BEFEE840182CDF033401296F44367F938371802D2CC9801A980021304609C431007239C2C860400F7C36B005E446A44662A2805925FF96CBCE0033C5736D13D9CFCDC001C89BF57505799C0D1802D2639801A900021105A3A43C1007A1EC368A72D86130057401782F25B9054B94B003013EDF34133218A00D4A6F1985624B331FE359C354F7EB64A8524027D4DEB785CA00D540010D8E9132270803F1CA1D416200FDAC01697DCEB43D9DC5F6B7239CCA7557200986C013912598FF0BE4DFCC012C0091E7EFFA6E44123CE74624FBA01001328C01C8FF06E0A9803D1FA3343E3007A1641684C600B47DE009024ED7DD9564ED7DD940C017A00AF26654F76B5C62C65295B1B4ED8C1804DD979E2B13A97029CFCB3F1F96F28CE43318560F8400E2CAA5D80270FA1C90099D3D41BE00DD00010B893132108002131662342D91AFCA6330001073EA2E0054BC098804B5C00CC667B79727FF646267FA9E3971C96E71E8C00D911A9C738EC401A6CBEA33BC09B8015697BB7CD746E4A9FD4BB5613004BC01598EEE96EF755149B9A049D80480230C0041E514A51467D226E692801F049F73287F7AC29CB453E4B1FDE1F624100203368B3670200C46E93D13CAD11A6673B63A42600C00021119E304271006A30C3B844200E45F8A306C8037C9CA6FF850B004A459672B5C4E66A80090CC4F31E1D80193E60068801EC056498012804C58011BEC0414A00EF46005880162006800A3460073007B620070801E801073002B2C0055CEE9BC801DC9F5B913587D2C90600E4D93CE1A4DB51007E7399B066802339EEC65F519CF7632FAB900A45398C4A45B401AB8803506A2E4300004262AC13866401434D984CA4490ACA81CC0FB008B93764F9A8AE4F7ABED6B293330D46B7969998021C9EEF67C97BAC122822017C1C9FA0745B930D9C480 diff --git a/data/16_2022.txt b/data/16_2022.txt new file mode 100644 index 0000000..12c97e4 --- /dev/null +++ b/data/16_2022.txt @@ -0,0 +1,61 @@ +Valve RT has flow rate=0; tunnels lead to valves EN, LZ +Valve VB has flow rate=0; tunnels lead to valves SZ, BF +Valve AD has flow rate=0; tunnels lead to valves EB, JF +Valve RE has flow rate=4; tunnels lead to valves QB, IF, XT, WF, KW +Valve RL has flow rate=0; tunnels lead to valves DQ, LZ +Valve OK has flow rate=0; tunnels lead to valves QH, BF +Valve RV has flow rate=0; tunnels lead to valves IU, JF +Valve TE has flow rate=0; tunnels lead to valves HE, XF +Valve WW has flow rate=0; tunnels lead to valves QH, YZ +Valve HB has flow rate=15; tunnel leads to valve OM +Valve IY has flow rate=14; tunnels lead to valves UH, KW, BN, LW, UY +Valve QF has flow rate=0; tunnels lead to valves JF, PL +Valve YZ has flow rate=0; tunnels lead to valves JG, WW +Valve QB has flow rate=0; tunnels lead to valves SP, RE +Valve SO has flow rate=0; tunnels lead to valves QH, SZ +Valve EB has flow rate=7; tunnels lead to valves IF, NH, AD, VI, DQ +Valve VL has flow rate=0; tunnels lead to valves JF, YV +Valve BF has flow rate=18; tunnels lead to valves OK, VB, OH, SX +Valve UC has flow rate=0; tunnels lead to valves SC, YV +Valve OQ has flow rate=0; tunnels lead to valves XT, AA +Valve YV has flow rate=6; tunnels lead to valves YX, TT, VL, UC, NH +Valve KJ has flow rate=0; tunnels lead to valves OH, JG +Valve QH has flow rate=20; tunnels lead to valves SO, OK, WW +Valve KW has flow rate=0; tunnels lead to valves RE, IY +Valve PL has flow rate=0; tunnels lead to valves JG, QF +Valve DQ has flow rate=0; tunnels lead to valves EB, RL +Valve AA has flow rate=0; tunnels lead to valves YI, EN, UK, OQ, VI +Valve XT has flow rate=0; tunnels lead to valves OQ, RE +Valve SZ has flow rate=24; tunnels lead to valves VB, SO +Valve IU has flow rate=25; tunnels lead to valves RV, HE, HQ +Valve OM has flow rate=0; tunnels lead to valves NY, HB +Valve YX has flow rate=0; tunnels lead to valves YV, SI +Valve SX has flow rate=0; tunnels lead to valves ZB, BF +Valve KD has flow rate=0; tunnels lead to valves XF, LW +Valve SP has flow rate=0; tunnels lead to valves XF, QB +Valve UY has flow rate=0; tunnels lead to valves UK, IY +Valve XF has flow rate=22; tunnels lead to valves SP, TE, KD, NY +Valve SC has flow rate=0; tunnels lead to valves LZ, UC +Valve UK has flow rate=0; tunnels lead to valves UY, AA +Valve LW has flow rate=0; tunnels lead to valves KD, IY +Valve FL has flow rate=0; tunnels lead to valves BN, LZ +Valve VI has flow rate=0; tunnels lead to valves AA, EB +Valve HW has flow rate=0; tunnels lead to valves JF, CY +Valve YI has flow rate=0; tunnels lead to valves AA, TT +Valve HE has flow rate=0; tunnels lead to valves IU, TE +Valve JG has flow rate=10; tunnels lead to valves PL, YZ, SI, KJ +Valve BN has flow rate=0; tunnels lead to valves IY, FL +Valve IF has flow rate=0; tunnels lead to valves EB, RE +Valve JF has flow rate=19; tunnels lead to valves HW, QF, VL, RV, AD +Valve SI has flow rate=0; tunnels lead to valves JG, YX +Valve WF has flow rate=0; tunnels lead to valves LZ, RE +Valve HQ has flow rate=0; tunnels lead to valves IU, UH +Valve LZ has flow rate=5; tunnels lead to valves SC, FL, WF, RL, RT +Valve UH has flow rate=0; tunnels lead to valves IY, HQ +Valve CY has flow rate=21; tunnel leads to valve HW +Valve NH has flow rate=0; tunnels lead to valves EB, YV +Valve TT has flow rate=0; tunnels lead to valves YV, YI +Valve OH has flow rate=0; tunnels lead to valves KJ, BF +Valve EN has flow rate=0; tunnels lead to valves RT, AA +Valve NY has flow rate=0; tunnels lead to valves OM, XF +Valve ZB has flow rate=8; tunnel leads to valve SX diff --git a/data/16_2023.txt b/data/16_2023.txt new file mode 100644 index 0000000..488db68 --- /dev/null +++ b/data/16_2023.txt @@ -0,0 +1,110 @@ +\-....|\......|...............................\......-../......./...\........|......|......................... +.........-.....-............|.................-......|.\\......-...................-..|...\................... +......./.|.............-.....-......................................./................\........\.............. +....|.-.........\..........|.......--.........../....|\....-.........|................./..-.................|. +...-......./...../....\...................-......../\.../...............\.............-....................... +...|............\.-......./...........|......-....................-..-.../....../......\...\.../.............. +..|..|..\.....................\..........|...\.|......................\......|....|....|.\.-......-...|....-.. +......../........................-......-.............\\.-............................/|........|../.......... +-..........................|.......-.../..............|...................\................|........-...../... +.|............\.//.....-..........-....\......./...........................|........................|......... +.............................................-................................\..-.\................/........\ +........|........................-....\..........-.........-..../....\../....\.\........\.....\.|............. +.................\..|...........-...|......../................|.-..........-./...........|.--................. +.......................-................\............\..|.....\....\....|\.....\.....-...\.....-.|............ +..........................\....|.../........../..........//........\\......................................... +........................\.|..\........./.........../...||.............../................../.........-........ +/...........................|.....-..../../........./.\.....................|....../.|.....|.................. +....................\.../-|..../..................../.....|..............\./.....-.........../.--......../|.|. +...-........\.....|......|....|.-............................-.....|./.......-.....-.....|-.....|............. +....../............................................./..|....-..................\.....-.................//..... +\.........................|....................................................../...../...\.........-..-..... +....-../..\\.......-......../...\.................................\....-.............\.........\.....-........ +............/.........../...........\....................\......../.....\.................................|../ +.......\.........-....|..-|..|..............\............/.................................\......./.......... +................./..........................................\...........-|......................./.........\.. +|.......................-..../-/.......-........\.........................................../..../.......-.... +.\.............|.........|...--....-..|..-..............................................................|\.-|. +.\....\...-\.....|./..........................\..............-......................\.....|................... +.....|......./.|......................|.................................\........./..../..........\........... +/..-...................|.......|.....-..........|...........\...-............-......|.|...................../. +....................\..../.............|............|...............................-....|.-.........\....|... +...|\.\.......\......\.....|..|.......|...\........................|.................-..-...........-......... +............../\-.|.......-...\..........-............\.../...../..|......\................./............|.... +..........|............\..../........-.............\./....../.........................../.-................... +.-.\/............................./......|....\........|....../............\......-....../.........\.......... +........./......../../.................\...-.\.........\............./../.....-............\.................. +\.\.......-..................-........-\.....|....\-............/...\............../................./........ +.........|.................-......\....\......./....|/................-.....\...........|\......|............. +.......|........\...\......................-...--........../......-...........\|...............|..\......|.... +........\.................\...../....|.|..................\.....................\...........\.....-.-......... +.....\/................/...-.-...............\...................................\....|.|.-|................/. +.......\............\............\-............/......\....../.........|......-......\..-....-...-.........\.. +.............../......................................|....\.............../..|................../...-...|.... +.........\.../../.........................../..-........./.-...\.......-..........|.-...../..../........../... +...|.......................|./..................-................\...|.....\.-................\./......\...... +|..../........|...../...................-./.....-...........|.....................-.......-..-................ +.../..-.......-...........|..-...............--..............||.../........................................... +....|../...\.................../..../-..-...|.-.............\......................-....\.......-.....-....... +.\.........-....-.....|........-..............................|.........................................\....| +..|......................./.........\.......................\...............-.....././...\..|....-....././.... +...--.|.......................\..|......\|........-....||../....-........|.........\.......-..../..\....-..... +-.\.........\...................-../....|............-.............../.............\......-....\.............. +............\....-.....\.|...............-.......-.|..............\...........................|..-.../........ +................................................\.........-....................-.......\...................... +.\.....\........................|....|......-...........-\...|/...................../......................... +///.-..\.........\......./....|..........................\.|/.....................-...........-\....|..|...... +-...........|.....-/...............................|.....|....................................\......-......\/ +................\/............................................/.......................-........./............. +........\.....-..\..............|....................|.....\........-../....../...........\-.........-........ +...../......../.........|.\........../.............\.............../......-.........................-\.../.-.. +.......................\..\......../|...|.....-..........................-.|.......\....................-..... +..\......-/........./....|..\.................|...-..../|.................................-................... +.............-..........-....../............................................../..........|.................... +.././.../.........\..\....|....||...............|./....-...-...............|/.......................-......... +...............-...../.\.....\............\...............................-.-...........\.............-|...... +....\..............-............/..\................................\-.....-...........................\...... +.....-.....|.-.........../.........|...................../..................\..../.......\.-./.............../ +..\-..-....|................\...../................................|....|.|........./...........|....|........ +.............|..............................-.\........../....../......\.|.......-.......-.................... +........................./.............|.|........|..-............-../........-../....|.......|............-.. +......./.........\.\..\..../.-.-..|./........-.|.............../......./......|....-.-...../...........\...... +................./.....-....|........-\..\....\...................../....................................../.. +.|.......|./.../.......|.-..........-................-...........\.......-./......./.......................... +.......-..............................\.....\..-\/.|.-....................../.............|..........-...-.... +............/..-..........\..\/.\.../...........-................-..........\.|....|../-....................-. +.....\......|.......|................|..\.|......\..-|-..../...........................................\...\.. +........../-.|........-..-........\......|...\.......\...|................................|......-............ +..|.......\....../......................||......\........-....\......|............-............/.....\.../.... +..................../...\.-............\......-........\...............-..\.....|............................. +..........|.-....|....|./-.....|................../.......\......-...........././...|-...........|....-....... +....../...\................./.....-...................|-................/.-...................|.........|.../. +...........................-.................|../..|....../..........-....................../................. +......../..\...../.\...\|...../.........\..........................-...\.......\...........\................./ +......-......|........./.../..|.....................|.......|...-..............-.\.....-./...\.......-..|.\... +....|...-....................|....|....|..............\..|-......|...|...........................-............ +.......................|........-......\-...........-../..................../................./............... +.......|....-\.\...|...\..............--...-.......-..|...\........|\.........................-......../....\. +...\..........................-.................-......................-......\........-...................... +..|.....................|.-../-....\....-................|....................../...............|.|.........|. +.\/.........-.....\............................|.............|....................\........................... +....-....................\....-....-..\.......\....................././......|.......................\........ +./.......-...............-..............-...-...........................-........|...............\-.......|..| +.....-................................/.|....-/...\..-.......-..........|.....-...|..........|................ +.....-..........................|...-.......|...../.\...-.........-........-\............-....-...../.../..... +......./|\...........-...............\......./.........\...................\.....\............../.|.\........\ +.\/.............|...........................\-|........|..-.....................|.......................|..... +/....|..................................|......................\..-\.....|..|......................|....|..... +..................................-....../-..............\.........................................-../....\.. +.......................||......./....................../.../....\.................................\.../....... +...............-..........--........\............................../...-/............/..........-............. +......../...........|....................-................|..../.............../......./..................\.\. +....\.../|..\..........|...........-.......................................................................\.. +......\...|/..\...............|......\.................../................../....\........../......-.......... +..............-....\............/.....|../...\....|.|..........\..........|................/..........|....... +..../\.......................-................\......-............\./......................|....|..........|.. +..............|................|\.......\..-.../................/............................|................ +...................-..................................................-.......|.\.........|................... +.................\....|.....\/......-........................\..................|............................. +......................................|...........\...-.....|.....|.............../.....|..\.../.............. +.........../............................/...............|.....................-....\..................-....... diff --git a/data/17_2020.txt b/data/17_2020.txt new file mode 100644 index 0000000..7a77954 --- /dev/null +++ b/data/17_2020.txt @@ -0,0 +1,8 @@ +#.##.... +.#.#.##. +###..... +....##.# +#....### +.#.#.#.. +.##...## +#..#.### diff --git a/data/17_2021.txt b/data/17_2021.txt new file mode 100644 index 0000000..6b9ce9e --- /dev/null +++ b/data/17_2021.txt @@ -0,0 +1 @@ +target area: x=25..67, y=-260..-200 diff --git a/data/17_2022.txt b/data/17_2022.txt new file mode 100644 index 0000000..b871a08 --- /dev/null +++ b/data/17_2022.txt @@ -0,0 +1 @@ +>>><<<>>>><<<>>>><<<<>>><<<>><<<<><<<<>><<<<><<<><>>>><<<>>><<<<>>><>>>><<<>>>><>>><>>><<<<>>>><<>>><>>><>>>><<<<>>>><<<>>><>><<<>>><<<>>>><<<>>><>>>><<>>>><<<<>>><<>>>><<<>>>><>>><<<>><<>>>><<>>>><><<<>><<<>>>><><>>>><<><<<<>>>><<<>>>><<<><>>><<<>>>><<<>>><<<>><<<<>><<<<><<<>><<><>>><<<<>>>><<<<>><<>>>><<<<>><<<<>><<<<><<<>><<<>><<<>><<>><<>>><<<<>>><<<<>><<<><<<>><>>>><<<<>>><><<<<>><<<<><<><<<>>>><<<<>><>><<<<>>><<<>>>><<<>>><<<><<><<<>>>><<<<><><<<>>><<<<>>>><<<<>>><<<>>>><<<<><<<>>><<>><<<><>>>><<<<>>>><<<>><<<>>><<<><<<><<<<>>>><<>>>><<<>>>><><>>>><<>>>><<<>><>>>><<<<>>><<<><>>><<<><<<<>>><<<><<<>>><>>><<<>>>><>>><<<>><><>><<<<>><>>><>>>><<>><<<>><<>>><<>>>><<<<>>>><<<<>>>><<<>>><<>>>><<><<>>><<>>><<<<>>><<>><>>>><><><<<<>>>><<<<>><<<<><<<<>>>><<<>>><<><<<>>>><<><><<>>><<>><<<>>><>><<<>><<<<>>><><<>><<<>>><<<<>><>>><<>><>>><<<><>><<>>>><>>><<>>><<<<>><<<<>>>><>>><<<><<<<>>><<>>><>>><<<<>>>><<<<>><<<>>>><<>>><>>><>>><<<>><<<<>>><<<<>>>><>>><>>>><<<<><<><<<<>>>><>><>>>><<<><<<>>><>>><<<<><>>><<<>><<<>>><<<>>>><>>><>>>><<>><<>>><<<<>>>><><<<<>><<<>><<>>><>><><<>><<>>>><<<<>>>><<<>>><<>><>>><<<<><<<<>><<>>>><<<<>>>><<<>><><<<<>>>><><<<><<<<>>>><>>>><<<>>><<<<>>>><<<>>>><<>>>><<><<>><<<<>><<>>>><<<><<>><<<<>>><<<>>><<>>><<<>>>><<>>>><<>>><<<<>>><<<>>>><<>>>><<<<>>><<<>><<<>><<><<<<>><>><>><<<><<>>>><<<<><>>>><<<<><<>>><<>>>><<>>><>>><><<><<<<>>>><<>>>><<<>><<>>>><<<>>><<<>>><<<><<<<>><<<>><<<<><<>>><<<>>><<<>><<<>>>><<><>><<<><<<<>><<>><<<>><<<<>><<<>>>><>><<>>>><<<><<>>>><<<>>>><>>><<<>>>><<<<>>><<<><<>>><<<>>><<>><<>>>><<<<>>><<<><<<><>><>>><<<<><<<<><<<<>><<<<>>><<<<><<><<>>><<<<>><<<>><><>>>><>><<<<>><<>>>><><>>><><<>>><>><<<<>><>>><>><<<<><<<>>><>><<<>>>><><>>><<<>>>><<><><<<<>>><<>><<<>><<><<<<>>>><<>><>>><<>>><<>>>><<<>>><<>>>><<<<>>>><<<<>><<<<>>>><<<<>>><<<><<<>>><>>>><>>>><<<><<<<>>><><<<<>>>><>><<>>>><<<<>>><<>>><><<<<>>><<<<>>>><<<<>>>><<><>>>><<><<>>><<><<<<>>>><<<<>><<<><>>>><>>>><<>>><<<<><><<>>><<>>><><><><>>><<><<>>><>>><<<<>>>><><<<>>>><>>><<<>>><<<>>>><<<>>>><<>>><>>>><<>><<<>>><<<>><<<<><<>>>><<<<>>><<<<>>><>>><<<<>><<<<>><<<<>><<<><<<>>>><<<>>>><>>><<>><<<<><<<>>>><<<>>><<<<>>>><>><<<><<>>>><<>>><<<<>>><>>><<<>><<<<>>>><<<>><<<>>>><>>>><<<><<<<>>>><>>>><<<<>>>><<<<><<>>>><<>>><>>>><<<<>>><>>><>><<<>>><>>>><<<<>><<>>><<<>>>><<>>><<><<<<><<<>><<><<>><<<><<><<<<>><<<<><<><<>>><<<>><<>>>><<>>><<>>>><<<<>>><<<>>><<>>>><<>>>><<<<>>><><>>>><<>>>><<>><<>>><<<>><<<>><>>><<<>><<<>><<<>>><<<<><<<<>>><<<<>>>><<<>>><<>><<>>><<<><<><<>><<<<>><<><<<<>><<<<>>>><>>>><><<<>>>><<<<>>><>><<<>>>><<>>>><>>><<<>><>>>><>><>>>><<<<>>><<><><<<>>><<<<>>>><<<><>><>><<<>>>><>>>><>>>><><<<<>><<<<><><<<>>>><<>>><<<<>>><<<>>>><>>><<><<>>>><<>><<>><<<<>>>><<>>>><><<<<><<><<<<>><<>><<<<><<<><<<<>>>><<<>><<<<>><<<<>>>><<>>><<<>><>>><>>><<>><>>>><><<>><<<><<>>>><<>>><<>>><<>>><<<<>>>><<>>><>><>>><<<><<<>><<>>>><<<<>>>><<<<>>>><<>>><<<>>>><<<<>><<<<>>>><>>>><>>><>>>><<<<>><><<><<<<>>><<<>>><<>>>><>><><<<>>>><<<<>>>><<>><<>><<<><<<<><<<<>><<<<>>>><>>>><>>>><<>>><<<>>><<<>>>><<>><<<>><<<><>>><<>>>><<<><>>>><><<<<><<>><><>><>><<<>><<>>>><<>>><<<><<>>>><<<<>>>><>>>><<<<>>><<<<>>><<><<<<>><>>>><<>>>><>>>><<<>>><>><<<>><<><<<<>><<<>>>><<<<>><<<<>>><<<>>><<<>>>><<<<>>><<<>><<<<>>><<<>>>><>>>><<><>><<>>>><<<<>>><><<<<>>><><>>>><>><<<<>>><<<<>>>><<><<<>>><>>>><<<>><<>>>><<<<>><><<>>><<>>>><>><<<><<>>><<<>>><<<<>><><<><><<<<>><<<<>><<>>><<<>>>><<<<>><<<>><<<>>><<><<<<>>><<<>>><>><>>><>><>><<<<>>>><>><<<<>><<>>>><>>>><>>>><<<<>>><<<<><<>>><>>><<<<>>>><<<>>>><<>>>><<<><<<><<<<><>>>><<<>><<<>>>><<<<>><<>>><<<>>>><<<><<<>>><<><><<>>><<<>><<<<><<<<>>><<><<<>><><>>>><<>><<<<><<<<>><<<><<><<<<>>>><<>>>><<<<>><<<>>><<><>>>><<>><>><<<<>><<<>>>><>><<<<>>><><<<><<>>><>>>><<<<>>><<<><>>><>>>><<<<>>><<>><<>>><<<<><<<<>><<><<><<>><>>><<<>>>><>>><>>>><<<<><<>><>>><<<>>><>>>><<<<>>>><<>>><>>><<<<>>>><<>>>><<<>>><<<>>>><<<>><>>><<>>><<<><<<<>>>><<<>>><<>><<<<>><>>>><<>>><<<<>><<<>>>><<>>>><<>><><<<<>>><<<<>><<<>><<<<>>>><<>>><<><<>>><<>><>><>>>><<<<><<>>><<<<><<<<>><<><<>>><<<>>><<<<>><<<<>>><>><<<<>>><<<>>>><>>><>><<<>>><<>>>><<<<>>>><<>>><<<<>><<><>>><<>>><<<<>>><<<<><<>><<<<><<<>>>><<>>>><>><<<><<<<>>>><<<<>><<<<><<>>>><<<>>>><>>><>><<<<><<<<>>>><<<>>><<<>>>><><>>><<<<><<<<>>>><<<>>><<>>>><<><>><<><<<<>>>><>>>><<<>><<<>><<<<>>><<<<>><<<>><>>><<<>>>><<<<>><<<<>>>><<>>><<<>>>><<<<>>>><<<>><>><<>><><<<<>><<><><<>><<>><<<<>>><<>>>><<<<>>>><<><<<<>>>><<<>><<<<>>>><<<>>><<><>>>><<<>>><>>>><<<<>>>><>><<><<<<>>><<>>><<<<>><<<>>>><<>>>><<<><<<>>>><<<<><<<>><<<<>>><<<>><<<><<<>><>>><<<<>>><<<>>><<<>><<<>>>><<<<>>><<<<>>>><<<<>><<<<><<<>>><><<<>><<<>><<<>><<<>>><<<><<<>>>><<<>><<<<>>>><><<<<>><<<<>>><<<<>><<><<<>>>><>>><><<<<>>><>>><<<<>>>><<<<>>><<<>>>><><<>><><<><<<<><<<<>>><>><>>>><<<<><<<<>><<<><>>>><<>>><<><<>>><<>>>><<<<>>>><<><>>>><<<<><<>><<><<>><<<<>>><<<<>><<<<>>>><>><<><<<>>>><<<>><<>>>><<<><<<<>>>><<<>>><<>><<<>>>><<>><<<<>>>><<<<>><<<>>>><>><<<<><<<>>>><<<><<<>><>>><<>>>><<<<>>><<<><<><>><<><>><<<><><<<><<<<>>><<>><<<><<>><<<><<<>><<<>>><>>>><<<>>>><<<<>>>><<<>><>><<>>><<<><>>><<<>><<<><<>><>>>><><>>>><<<>>><<<>>>><>>><<<<>>><>>>><<<>>>><<>>><<>>>><<>><><>>>><<<>>>><>>><>><<>>><<>>>><>><<>>><<><>>>><<<>><<>>><><<<>><<>>>><<<<>>>><>>><<<<>><>>><<>><<><<<>>><>><<<><<>><<>>><<><><<<<>>>><<<>>><>>>><>><<<>>><<<>>><<<<>>>><><<<<>>><<<<><<<>><<<<>>>><>>>><<>><<<<>>>><<>>><>><<><<<>>><<<>>>><<<<>>><<<>>><>>><<<>>><<<<>><<<><<>>>><><<><<>><>><<<<>>>><>><<>><<<<>>><<>>>><<<>><<<>>><<<>>><<<<>>><<<<>>>><<<<>><>>>><<<<>>>><>>>><>>><<<<><<<<>>><><<>>><<>>>><<<<>><<<<>>><<<>><<<>>>><<<<>>><<<>>>><<<><>>>><>>><<>>>><<<><<<><>>>><<<>>>><<>>>><>>>><<><<<<>><<<<><>>>><<><<<<>>>><>>><<<<>>><<>>>><<<><<<<><><<>>><<<>>><<>><<<>>>><>>>><<<<>>>><<<>>><<<>><<><<<>>>><<<<>><<<>>><>>><>><<<>>>><<<<>>>><<><<<>>>><>>>><<<>>>><<>><<<<>>><<<>>><><><<<<>>>><<<>>>><><<>><<>>>><<<<>>>><<<><<>>>><>>><<<<>><<>><<<>><><<<<>>><><<<>>>><<<><<<>>><<<<>><<<<>>>><<<>>>><<>><<<>>><<<<>>><><<>><<<<>>>><<<<>>><<>>><<<<><>><>>><<<<><>>>><<>><>><<<>>>><<<>>><<>><<><>>>><<<>>>><<<<>>>><<>>>><<<<>>>><<<>>>><<<>><<<>>><>>><>>><>>>><<>>>><<<>>><<<<>>><<>><<<><<<<>><>>><<<>>><<<>>><><<>>><>>>><<<<>>><<>>>><<<>>>><<<<>>><<<<>>>><<<>>><<><<>>><<>>>><<<>>><<><<<>>>><><<<<><><<><<>><>>>><<>>><><<><<<<>>><<<>>><<<<>>>><>><<<<>><<<<>><<><<<>>><>>>><>>>><<<<>>>><<<<><><<<><>>><<<<>><>><><<<<>>><<<><<><<<<>><<><>>>><>>>><<<>>>><<><<>>><<>><<<<>>><<<<>>>><>>>><<<<>><<>>><<<>>>><<<>>>><<<>>>><<<<>>><<<><<<><>>><<<><>>><<<><>>><>><<<>>><<<>>><<<<>>>><<>><<<>><>><<<<>>><<<>>>><<><<<>>>><<<<><><>>>><<>><>>>><<>>><<>>>><<>>>><>>><>>><<<>>><<>>><>><>>>><<<>>><>><>>>><<<>>><<><<<>>>><<<>><<><<<>>><<<<>>><<<<><<<<>>>><<<>><<<<>>><<<<>>><<>><<<<><<<><<<<>>>><<<<><>>>><>>>><<><<<<>><<>><<>>><>>><>>>><<<>>>><>><<<<>>>><<<<>><<<<>><<<>><<<<><>>>><>><<<>>><>><>>><>>><<<<>>><<>><<<>>><<<<>>><<><<<>>><<<>>>><<>>><<<<>><<<<>>><<><<>>><<<<>>><<<>>><<<<>>><<>>><<<>><<<>>>><<<>><<<<>>>><<>><>>>><<>>><>><<<>><<<<>>>><<>><<<<><<<>>>><<<>>><<>><<<>>>><<>>><<<<>><<>><<>><<<<>>>><<<>>><<<<>>>><<<>>><>>>><<<>>>><<>><<<<>><<>>>><<<<><<<>><<<<><<>>>><<<<>>>><<>>><<<<><<<>>>><<<>><<><<<<><><<>>>><><<<<><<<><<<<>><<><<<<><<<<>><<<>><<>><<<<><<>>><<><<<>><<>>><<<>>>><<>><<>><<<<>>><<<<>><<>>>><<<>>><<<<>><<>>><<><><<><<>>>><>><>>><<<><<<<>><<><<>>><<<<><<>>><>>>><<<><<><<>>>><><>>>><<>><<><>>><<><<<<>><<>>>><<>>><<<>>>><<<><>>><<>>>><>><<><<>><<<><<<>><<>><>><><><<>>>><<<>>><>>><<<<>>><<<>>><<<>><>>><<<<>><><<<><>>>><<>>><>>><<<>>><<<>><>>>><<>>><<<><<<>>>><><<<<>>><<<<>><<>><<<><<<<>><<<>>>><<<><>><<<<><<<<>>><<<>>>><<<<><<<>>><>>>><<<<>>><<><<>>>><<><<>><<>><>><<>>>><<<<>>><>>>><<>>>><<><<<>>><>>><<<>>>><<<<>><<<<><<<><<<><<<><<<>>>><<><<><><>><>>><<<>><>>><<<><>>><<>>><<<<><<<>>><<<<>>><<<<>>><<>>>><<<>>>><<<>><<<<><<<<>><<<><<<><<<>><<>>>><<<>><<<><>>><>>><<><<<>>><<<<>><<<>>>><>><<<>><>>><><<<><<<<><<<><<<>>><<><<>>>><<>>><><<<<>>>><<<>>>><<>><<<>><<>>><<><<<>><<>><<>><<<<>><<<<>><<<>>>><>>>><<>>><<<<><<>><<<>><<>>>><<<<>>><>><>><<<>>>><>>><<<>>><<>><<<<>><<><<<><<<<>><<<<><>><<<>>>><<<>>>><<>>><>><<>>>><<<>><<<>>>><><<<><<>><>><<>><<>>>><<>>><<<<><<><>>><><<<>>><<>>><<<>>><<<>>>><>>><<<<>>>><<<>>><<>><<<>>><<<>>><>>>><<><<<<>>>><<<><<<<>>><<<<>>><>><<<>>>><<><<><<<>>>><><<<>><<<<><<<>>><>>><>><<><<>><<<<>>>><>>><><<<<>>><<>><<<>>><><<<>>>><<<<>>><<>><<<><<><<<<>>>><<<>>>><<<>>>><><>><<<>>>><<><>>>><<<<>>>><<<>>>><<>>><<<<>>>><>>><>>><<>>>><<<><<>>>><><<<<>><<<>>>><<><<<<>>>><<>>>><><<<>>>><>><<<>>>><<>>><<>>><><<<>>><<<>><><<<<>>><<>>>><>>><<<>>><<>>>><<>><<<<><<>><<<>><<<<>>><>><<<<>>><<<>>>><>>>><<<>>>><>>><<<<>>><>><<<<><<<>><>>><>>>><<>>>><<>><<<>><<>>><<<>><<<<><<>><<<<>><<<<>><<<><>>>><>><><<<><<><>>><<<<><<<>><<>>><>>><<<<>><<<><<<>><>>>><<<<><><<>><<<<>><<<<>><>>>><><<<><>>><<<<>>>><<<>>><<>>>><<<>><<<>><>><<<><<<<>>><<<>>>><<<<>>>><<<>><<<<>>><>><<<<>><><<<<>><><<<<>><<>><<<<>>><>>>><<<<>>>><>>><>><>>>><<<>>>><><<<><<<>><<<<>>><<<<>><<<>>><<<<><<<>>><<<>>><><>>>><<<><<<<><<<>><<<<>>><<><<<<>><>>><<<<>>><>><>>>><><<<>>>><<><>>>><<><<<>>><<>>><<<<><>>><<><<>>><<<>>><><<<>>><>>><<<<>>>><<<>>>><<>>><<<<>>>><<>><<<<>><<<<><<>><<<<><<<>>>><<<><>>>><<>>>><<<>>>><<<>><<<>>><<>>>><>>><<<<>><<<<>><>>><<<<>><<>>><<<<><<<<>><<<<>>><<>><<><<<>><<>>>><<<<>><<<<>>><>>>><<>><>>>><<<><<<<>>><>>>><<<>><<<<>><<>>><<<>><<><>><<><>>>><>>>><<<<><>>><>><<<<>>>><<<>>>><<<>>>><<<>>>><<<><<<>>><<<>><<<<><<<><<>><<<>>>><<<>>>><<<<><>>><<><<<<>>>><>><<>>>><<>>>><>>><<<>>>><<><<<<>>>><>><><<<<>><>>><>>>><<<>>><<<<>>><<<<><<<>>>><>><<<><>>><<<<>>><>><>>><<<>><>><<><<<>><>>>><<><<<>>>><><<<>>>><<>><<>>>><>><><<<<><<<>>>><<<><<<>><<<<>><<><<>><>>>><<<<>>>><>><<<<>>>><<<<><>>>><<<><<<<><>><<>><<<>>><>><<<<>>><><<<>>><>><<>><<>>>><<<<>>><<<>>>><<<<><>><<<><<<><<><<<><<<<>>>><><><<><<>>><<>>><<>><>>><>>>><<><<<><>>><<<<>><<><<>><<<<>><<>>>><<<>>>><>>><<<>>><<<>>><<<>><>><<<<>>>><<>>>><<<>>>><>><<<>>>><<<>>>><<<>>><<>><<>><<<<><<><>><><<>><<>>>><<<>><>>><><<><<<><<>><<>>><<<>>>><<><>>>><<<<><<>>><><<<<>><<<>><<<<><<><<>>><>><>>>><<>>>><<<>>><<>>>><<<<>>>><<<>>>><>>>><>>><<<><>><<><>><<<<>>><<<<>>>><<<<>>>><>><><<<>>>><<<<>><<>>>><<<<><><<<>>> diff --git a/data/17_2023.txt b/data/17_2023.txt new file mode 100644 index 0000000..9b422e1 --- /dev/null +++ b/data/17_2023.txt @@ -0,0 +1,141 @@ +451523623316565623432622127257125712232367331521342225652611642316141624136152463732561551372631215312674332236746737356445314356414212616122 +131111312563542645151356721441546464555716523647724713614256756747842552485677444676614327572121711163626437457733167454462421341533136414653 +525454362235152362613613166675325577624425567562435612113577573237548842284324568833347432434356357525641342731616512267425551124621322366433 +453621463366222641245457744462611264222536513441615752884586855868327537655685623633542855335156625673761262355113167334223564652643446236246 +453266352353615445543743727743375646657225562553637678352724524556566868283582446743648766737565643756164326776755716364362241241362232252652 +451122263353224214323273367441713751643141441733885737585846346828375837678756267388268388226754457555414372365517131123514261566362641545615 +441313663646254217464221666555464221112477642445326533457735764833755428482728685564677277523326785227655677747463147365237116151641444333363 +522554551161642675362351435267157423357667265685856428553357838342554675545778768867285328652375622656252223755422631261524657264251434164354 +241233645231456376646623375477752316117484632782648382765846572778285255385558432454642236253884655832533374745325516756562372651263651226651 +414551141653254561246546636551272266347474564633653568736374267868828387228482455554726786427776588565876631144517131235474451637545244225365 +263151616625463134577367272141477372835227685486542825453363548875368275737575426448738852676577836845356534332327751273333774543244335564363 +532442555433462476112321642542565126257785787275688834643282865348648363753874673273627674825645868488288758241567421314177455311432161613643 +664145466633771652243617231663734828737447633528544728482628735655224382526267355625734488758862824374528574275143552476514215113213523141562 +135113522262127627373261516332275454854354537838625452776326576538623457844528882844775742572386387328473584434512471525263266634363265213341 +161325352221221513322127772457632687365686356343227773732442347837734636833285587774683525836428774688422742287267616151356467176446125152155 +654163116754653461421226725657557238477267586752324884554568663246938556657634848887772778366682624332574548774728366273334371133325654556264 +633341527421357526142567251757265236344844757478665254547634396884487794748886388443763788878556434362633226676372333636263166434726263221611 +244542652552514543642125675332458682325587478375278446635749374777363555988357574565934337572577838833865677785278273344166257523755455264415 +155412573416241252313344238543637565763473328462478764856976967949334565633734888865588966362268646263635243548358366756352223745652252767313 +311436267523172173526136462584564382884644748777873554747336666687857539387676737967388833984684732826446863324747236323366576164357464743622 +311612117312647746333427838584553584342338825323347834937985835579647497455736575874496393388689386334852723854576336528667167176645574136351 +441155232146372744476478525575366383833366343848438855359935334337553758793658495837844435343665485744428428688325363825824267131313753254323 +637422675616372175515678558777486322535872489894946586933448963497646633893866869967758637948497988955628637383284536757737742621325245623135 +644317322665241341215268387637378326582423679637585546553888456456377569498458856997555537476358584566347287868478434276835545136434165245671 +121133365244732427756784233443723788823473353534374769736358594538975653739666558859378443348746549365544873768537546448357735776316245762643 +475116636266424357348658744728823254858839753745679363767536585574948464738948755779789633943437397734597836248265834232535623712426333635772 +615557253664251437727675474366852384444436499984998776949373475767948944775463964836567854637996344774959686466544345755522475541223242666576 +741164731777317786257472583244344744989943878499978386983475765476646595593678646893377563637894465643593347223763327456478624617157327173235 +122516527571367765586374256548626234893576795335879845575968399899584849736353958769838873645986683773364586226773543386667878521521634544242 +665351261322165855634432437683546433988347667435669667774956477544544967474688537988578358885775988748338779487423335854638437826445331411362 +526267342177122755868365838646678337445386764537787858496545795585798695696676556633587358849396457687446837796256553576563834626126152341154 +476762522772788887224382785885276544365837698797733768738745476768689669898948898889484357356476633565558466468425843728687268855675663212474 +175253624231288356446748288787286666877997745868354688475465949678989764847654865878867687496444495754694376377757434864578755738347242262413 +272262146763767584343873876524437347354746466657364485859598789978448868449694449657564445753578398746846336434695658535265443283766564765435 +555113546156342337736245382733543545793547586499998745999876656494775776648448657754666548966675455739695565585696437863436738428252763225274 +753475772752878764568247766234965633765897556864448869798998947875564955875748498794844565599568486457859396639678722586253465734357566741456 +111324627186877645864657388895685475957484434545599858854995988455748778546665454797789898486886997898334774933639333482734277268242825477442 +273732661368226453845454284874937696374346859744574486679579448548585894968555978997469774785547969978755759555789744727782422782745844131267 +525367264864758678453348669985653369699388537485989557567468995566946849467764897798579445549546655753599799979964963334474834732786833536641 +671225624255676882582733345986973658557363687876685694856865969597868879966488699886598676956595969996393454766835996558547627683656276335151 +344711468522744626336583748384836453356653897547444586457894555859698898867859496695875979894764449433363637546593599665373575254376628635722 +426575416484224536533666367675337335993754488575785845884555748759477988578475884598566797479954666468967867359764977355833764722672368576621 +353726772855758622234244939495573988447698554564475678778876787547567469666457798694867868668458449564756796764785483764273424524283555366613 +336637426846365577274453587887444443638855797489646654946687447797965575569684578465557758694995954445746865776663384376626737885447774622133 +315155247837723228448587899869586665347797964875575456484995967678659558675576697479596456874685479455767437475754339355765322644772788321632 +371676237638444444374598453836365753858989567896687464759954559958556966689659689955746889749584449894956957754768797898952623258836648742145 +443365546482286726475736643784383388987488656669949756966999778665975666799886998685669579777886494759998733788783395573535865775353452568255 +272648247588827844567653756634753395989849854667976447776758798868756897566876667966969789555859967797954567775536595798836658563388274736224 +731335253433877768425965857754358769747856797544467675599765665958778779657975595995779896769768665548654744764783375499496747287483355553664 +114568337588588578343338654337668479886959667795844857769675755989867798787767956996966767487989688686968765779988794666648576358786675643336 +473427658434255435486597736796677579958957996978747785686597677667857667867655978978656555689944544867779887775467789944757442434535622547355 +351788366472428822295354665835974774655696547749484478597876699585588578885558559688875589898996675596479987669747938358859864362768635333735 +514767327432623888374453685546539957499698589459847677875795756897678879969979679595899958557784457858468989577844539393379688785358764824424 +456743787867385852646495436583573649777649986577986998789569595685967697899776966868596757866675768987987649543865434746643744552543565437526 +377253442378645847736333998395853486484757765958769785668997977798567759888798787685768585955885898868649777787564739635745757666336853843281 +522746843784253259783843667836978845458698788968696865897785857776999667678567558559578667885694866686664465994764757848839686375365347344283 +453267623427475736758784976638859975486546787858678556888869566986976997777755568897867667879587896774596789795777557446597335728785822873277 +755446653587532687733944458396989698865944657655797775887557679798687989779875568879576967766658745997846544485985387537563995583425663377645 +763447738265737739578596777654875798845899756995885889779887669888968877896678697569558975989669987647975479978934648868637786656535348527335 +477483775443562467663767539743468669695485775486686985597659777586786998978979988857795786968785866747994789658664646879574733584246633372544 +462848284436475333434489649384489889778887846559656696666769555677769866678968968795765698595799758576568556456957833434783847977242426386476 +448645734386766635344348686589598855675947848585669857795556578966796966987678879598756789758985696945445484648968353346856888848852374233638 +153874425435652634893357735955584896469495774589678568898985787668997989688887977869557985796898988865584478444847645588597886432282284536853 +256658435648566555894444435897549668858548855758597785799855987898869868968897888665857887598586855464968744594465553743769436956735343435762 +325643283843853893994745348646688684547867448959965555687678988997986969998788867789666567689889967486955568599979579783366574892363568366768 +435453323628335584684478887466956674978568756858867967979788867986889677776778867977668786958799575568445957446946768735938365366847683885338 +258855876267652354576946733798695795965487499897669575696589896698889786776968887686878775668655665768799889956479393398564383498464274222554 +556266743628226543533789699955854576458849555779687979876886966679698779887976889998785795856569569749988856564687344499599579654728373632823 +583522268838867797474483737586684474659848578887597885996997869977689979988867778667757566688889559999696969454565537776366957566784428322322 +443726634548653954659438463678477764684575887959859796976776887779776898899766889896677879767978766548657898597459794385975478558238623334324 +346677336678334584986588763498565564857594468575896687797679786796697887997787987878886778956958778765654789696476674559863646376342264282576 +145355477448886994578339597969979648865645869985885578885776698697997769679666676866965696889786598594678658756588576366435756338663747644558 +246885523744564973863995435576967976875999896689769679675878668767776669897666789978887767886658575577684578445666739996934355633458287582768 +472572265837547494843794466944965978754979455989999788959979988797866679788669887668757558999689666994586488498599644757965999982842836463782 +425333486653642893644387485387455485974686867665767969866976998767879966966769766698675589858759986588584998454988757677983668893572825373842 +643538476443352433937584958839858556955449476658697799586899979788867899987687997986657878999659758995685498694597879766559984336228388634336 +273834764262457889656335577655855576544548747559959568876698869777999866677888897966968879677999567957974794555544838337367647948266584326255 +775485527327645848438769346979898984999895759755675697996799996776688887676666879679767886758678788664857475695487784833338457693752786433467 +185523566433248363337833335747674687588687766658869668858997888879679989789997696989567885555799666689994546897648633994895368777267288382433 +323837348878522334449676444984555744954956857888788756958698989877999778969977779898568587585657889769987674647994564665989448958685488766262 +483246776375334779788458484856999457645847849687876695699856568699889766878698969769968556675995575777695588789885383645937857733533682866732 +124282746478664367353433589864868698545449646858855558588568986898786978998669668958675799567885759756858995949994755779466967957365545226688 +742767626527844738567865434857998858949447575959575896865595597879696988767778865985968599758688895448868676748954694639777477974342733328325 +215755476368637888685859698579576869745876669899766896899887989589998667769797785786867699786559966897745994776746579437939799877872274845583 +376323667353682699383839735633886659644958778466665965555955858666799689896778798787678897776889669846955974968984358856435454763625422824342 +323563276388567889387785644357948878458845785978787596868978556856576568796587795578976955966567757657857769957988736535454787823366246723843 +416545832824576639946436586449974694996496888474959895689656567667668696576555555659667778699867456949694557694955679887686994687566777768836 +775834744527685644698593744884439464685989788967555666979755897997659676995595885868669956559855984685855997475638453587349967742434836873873 +737773866633576228437969785875694974495747878848895689959769995559968758666966755567775899887659956987758967997767635963977852685323358582242 +544546662858758735558694466544487896784759476957686869968955657567987655776996767599768876658568946486988565464888489969344373577634473686273 +735863354626654233944666348994799349686567748668858967989985559566679858786868565595967597998678567465547549546948983557867363885864784652667 +256442652834663662677975677459443749965469499789844967585596798767998688787598689588596989788789699445597768757583995643893862345328386463827 +324126585443854528577996773375365696755596565556795945575967576755896599667666765578877597464647474689587474498444846774638964255888578547524 +575164824467825438437366983397735889455955659795795955565567988889755886778588659895685975898586979885554886369339999749758963265726332845767 +321555866445726273748633435757893885994548488864589859888568755778578875667967996759955769776984679859795483444484887763899836633343235352737 +137344736887354732338798779846879389696966776546978868556585965878669659889696588558965857464498764764759433464477894859798826257457323335625 +614114567538523557352946855596887835597577467449787786746875585757778595898689958895869567889959674678845475857586839648898632642787823452216 +747222584274766677728899576689956494739584978848654685754565558568676597977699798555446788497998579558668355966469368438336733346374584243152 +567456264673633357356458439857839388558747694874587996877787766689669688878765599678454547677467888947495476776874678398658646772854737885522 +567723182852662323276568736693536447736557788455977954446784997898978969979744988664678968799689446954896377444575537739482332843244545475722 +375574168272748425746243969385734353686485948695844785699568466998679545456646594568476554957594556674483374848543387489464783237322722873523 +532623624378828362872472349837499766746835449788884586999486885584589565447787548787699597745956886878639986637484386846724862562762686763643 +545441767257587868285374837995684947664755657486645696954785695887785668744678957444864865868679678769455846798876967956466766327636327353122 +734637223265622633468364848386788647489476745546759547747689489694844454584884958999967578544496496388793989774336866876238733857644832522525 +425611321548585554742435348535479474388439837866565797984899868448688588477444548997599588555554999684934885797963474478842268776755274321341 +642773235735463878875525384458968796746436749587887468497555577847889785588896784985875554876877993359849697889784837565638733585738457243154 +756613611658376287237552225384453936587693757743786474967997696774484994984549799665767878845443386934375385983854635658475765665873862142141 +351575315323762744486465747684588438854746987563894896877745877765894697956464979549759998448674984383855596889678855865443382538563767323767 +254353116336236838442444332465889884978666489497638777468499647746854846999785454465885696878684346587555995498963588765833246454782271463335 +165165212276385663256436367288997569977939665899754584578985976985485775754697848778458977593649473779354765486743264357384786458676672751431 +131252216474684888433256524274676987459955383535473658994955444587476587749944554946566647564498788556547934589763486483735325283752441663317 +612464415511647328788388232687568686743759773456874356945758678687665558748446447446664763895558399578864844865335856827586535335263372127447 +341173126741462324368426285783445535365979657757943973699735988446475867465898955739857656398449565954664758786667584365374377642435534724637 +314133652236153733383354627545448498576338353737953785755899435853874774646484487935875675335434999373985894783222878576455485524574476217421 +741545513654126463324748388886345375473548833934696943449385759653586533588636974885848787679543637486686887737527228352685246283416231214673 +567262325414571427644425456858245572588749483698463463958587763788737484776693973555857577566795658943575774277665822258748622222531247774654 +271477642534255664285233246383437454366433343564855993373955449674659767744799764684498956475368437454746776252288868246228378542437346545556 +751521172274662333737857333667687253788777439849894854997989668585588868388359938548639338687347938777695588852573886368477346437635112611525 +422721432632421432457544835327765242638535868637536494444347755333489749488838584759379463978956868687842757763487347683488312646671134611327 +362177766617157632775852578866852866426562846646638765787747738468369958373684476599947944567494758754653337736527237272484525425262742752652 +426577765262711444531843822256362844468554746498488675579848583697589595873657449895638989899555998662545287674428855743283541337636623717442 +566437716575232363614538546422348524658267887379866379559549469989676958495556664964573373439887464438735667227577426872452333117136163457472 +335376326734331551651642837477528553437247584227857876767647973536758899499944347598774778594873563528427536644737586834723743552563364277543 +363651514632323444231675323866858438655877527378746966747746686869447485974565844799793487984366722343335755837242266541732317434536714246211 +363561337473555152127357274434237385588826856762432696688466943976999559437585767566765993723674268576583263577376268823116742127736614534563 +554262123524124343312752648887668288438755244682754825436756586794954443746677356948994553332554364477743776566668627644416625311225552123653 +255132367547234347424372176543855452355684636622485772787763588944736833893885739679475536672642633788742453674853655356725746336166642765334 +541422545262231424513512246466244688755433454856823587755866534758886869659549454872677453422248665232742688885587553327435616664227573236233 +634552366313631321265476124611677565528225364777224528567277783256532532582665578534427233684827762852875757455337323547127744175721415211316 +455231426514574162374274745653582365277623876777256787722563755522284476777343857258535827484224375278445386345841252337421665373265443322351 +626511266535277543473637534444333534654587627257658348566885387644432547263386722748886827628567443485628335784371255647433172542326513461141 +542366552565541136313722327321257267854776745234423888282353753744876676574846336523663862838435635754233722517224512623167217747364662256513 +111114245346241772364755424333371233867578842763267878725783488322268886373542756856636452354873644675574561651411211777137657257744612234234 +356655432663526332424341351542236527733545353758768777467434644372866265372883436368243448864632852664776242755137263754332536743616534123452 +135632631545522266764264477451632442653342826357675822577852346278324486267276567354772538266652664784733422122222342126737237134441553421235 +241336366551516452522247775552723313166626354862355772236378228647666763735347273544446826377244536667575121427433261573234554213443532622635 +524333165342516561361165622424421544755144646523862382237878648463577565322566368486485858333678425657643232313727441415341674254331124535123 +432121354515234552615645566237115722361166761675477252624478845753556337487377238368764867654442672766667616133177553456447453636425241413466 +454332442353514342431662664146323314717631534717533277352475325637437373456532885283257434724867451777556164446646727663466542331656442553351 +615535564233515625364634257755177655124461253262651335448838425268544282746885834268468253261441546147467527174132757753654151525235164444536 +211325621226241546525365164421723671464374433556556637667686224263656646223454877888882614433271551256144716616576331411712632515536463245133 diff --git a/data/18_2020.txt b/data/18_2020.txt new file mode 100644 index 0000000..da39d13 --- /dev/null +++ b/data/18_2020.txt @@ -0,0 +1,381 @@ +(7 * (7 * 6 * 4 + 3)) * 3 + ((8 + 5 * 3 + 7 + 8) + 3 * (2 + 9 * 5 + 7 * 5 * 6) * 2 + 3 * 9) + (4 + 5 + 5 * 2 + 2) + ((5 + 6 + 9 + 6) + 3 + 4 * 6 * 5) +7 * 5 +(9 * (9 + 7) * 7 + (4 + 5 * 5 + 2 + 3) + 3) * 7 * 5 + 8 + (4 + (7 + 9 + 6 * 9) * 2) +((6 + 4) * 6 * (5 + 3) * 9 * (3 * 5 * 5 * 9 * 4 + 9) * 4) * 2 * 8 + 9 +7 * 7 + (9 + 2 * 9 + 9) +9 + (7 * 7 * 5 * 9 * 7) * 2 + 3 * 3 +5 * (5 * (8 * 4) * 7 + 8 + 7) * (5 * (4 * 3 * 5 + 2 * 5) + (6 * 6 * 7 * 2 + 2) + 4) + (5 + 4 * 7 + 5 * 9 + 9) * 2 +((7 + 3 + 8) + (2 + 6 * 4 * 5)) + 8 +8 * (6 * 7 + 3 * (8 * 5 * 2 * 4)) * (3 + (5 + 5 + 6) * (4 * 3 + 7 * 5 + 7) + (3 * 5 * 9 * 3)) + 8 +6 + 4 + 8 + 4 * ((3 + 5 * 8) + 7 * 7 * 8 * 7 * 2) +3 * (9 + 4) * (9 + 2 + 6 + 5) + 4 * (7 * 2) + 6 +4 * 6 + (8 + 3) + 7 +2 + (8 * (5 + 6 * 5) + 9 * 7 + (7 * 7)) + 5 + 5 +(8 + (5 * 7 * 3 + 6) + 8) * 8 + 6 +8 * 6 * 6 +8 * 6 + (9 + 4 * 5 * 3) * 9 * (4 * 2 + 6 + 7 + 4 * 8) +(5 * 9 * 8 * 9 * 6) * 8 +7 * 5 + ((2 * 7 * 5 + 2 + 6 + 3) * 9) * 5 + ((2 * 2 * 4 + 3) * 5) +(2 + 3 * 4 * (2 + 4 * 9 + 8) * 8) + 6 + 8 + 7 * 2 +3 + 7 + (3 * 4 * (8 * 6 + 8 * 8 * 2 + 9)) * 4 +9 * 9 + 9 + (3 * 7 * 9 * 4) +(7 * 7 + (2 * 5 * 8) * 4) * 9 + (9 + 4 * 8 * (9 + 3 * 5 * 4 * 7 * 4)) + 3 * 3 +7 + 6 + 3 * 8 * 4 * (9 * 4 * (5 + 7 * 2 * 8 + 7 * 8)) +(7 + 2) * 5 * 8 + 6 * 2 +9 + 4 + (5 + (7 * 7 * 9 + 5) + 6 * 5 + 2 * (4 * 7 * 7 + 8 * 5 * 5)) * 2 + 2 +8 + 2 * 2 * (2 + (2 + 7 + 7 * 7 * 3) + 7) +3 + 4 * (3 + 3 * 3 + 4) * 9 * 6 + 8 +((4 + 4 + 6) + (5 * 5 + 4 * 9 * 5) + 5) + 2 * 2 +9 * 5 * 6 * 2 + 6 + (2 * 9 + (2 * 3 + 4)) +(3 * 9) + 2 * (2 * 5 + 7 + 9 * 7 * 6) + 5 * 5 * 2 +7 + 3 + 5 * 6 +7 + 5 + (2 * 8 + (6 * 6) + 6) + (4 + 7) +2 * (9 + 5 * 3 + 5 + 5 + 4) * (3 + 4 + 3 + 5 + 2 + 7) + 2 * 2 +(4 * 5 + 6 * 3 + (5 * 3)) * 5 + 5 +9 + 8 + 7 * (7 + 9 + 2 * 2 + 7) * 7 +3 * 3 * ((4 + 3 * 4 * 2 * 2 * 6) * (9 + 6) * 3) * 5 +9 + 6 + 7 + 6 +8 * (4 * 8 * 8 * 7 + 4 + 9) +2 + (7 * 9 * 2) + 6 * 6 * 4 * 6 +((4 * 6 + 7 + 9 * 4) + 9) * 4 * ((6 * 3 + 3 + 9 * 7) * 8 * 4 * 5 * (2 * 6 * 8 * 5 + 5 * 3)) * 7 +(4 * 7) + 5 +6 + 9 * 6 + 9 + ((5 + 7 * 5 * 8) + 7 + 7 + 8 * (2 + 8 * 2 * 4 * 7 + 9) * 7) +6 + 3 + (9 + 6 * (4 + 7 + 4 * 6 * 7)) + 6 +5 * 7 * (4 * 6 * (3 + 8 + 6 * 8)) + 8 +(5 * 6) * 8 + 2 * 3 + (7 + 4 + 3) +3 + 4 * 9 * 2 + (7 + (5 * 9 * 7 + 7 * 4) * 4) + 3 +2 * 9 + ((3 + 5 + 2 + 9 * 9 + 6) + 4 + (6 * 4) + 2) + 3 +3 + 6 + (3 + 6 + 8 + 2 + 2) +8 * ((8 * 6) + (7 + 2 * 2 * 2 + 4 * 3) * (9 + 8 + 4 * 8) + 8 * 4) + 2 +9 + 4 * (7 * (2 * 4 + 9 * 3 + 7) * 8 + (4 * 3 * 9 + 9 * 5 + 7) + 9 * (6 * 4 * 2)) + ((5 + 6 + 7 * 9 * 6 + 6) + (6 * 2 + 8 + 9 + 4 + 4) + (8 * 5 * 2 + 6 + 7) * 5 + 3) * 9 * 8 +9 + 2 + (5 + 3 * 2 * (7 + 4 * 5 * 5 + 3 * 7) * 8 * (5 * 6)) +7 * (3 + 3 + 7 * 7 * 9) + (2 + 5 * 6 * 4) +9 + 8 + 9 +8 * (7 + (5 * 7) + (7 + 3) * 2 + 7) + 4 * 3 +2 * (2 * 6 + 5 * 7) * 2 + (3 + 3) * ((2 * 3 + 2) + (5 * 3 * 4 + 8 * 2)) +4 * (3 + 7 + 6 + 8 + 3 + 6) + 8 + (2 * 3 * (5 * 2 + 6 + 5 * 8)) +2 + 5 + 3 + 2 + 4 + (2 + (6 + 4) + 5) +2 * (4 * 4) + (5 + 2 * (4 + 2 * 2 + 4) * 4 + (5 * 9 * 9) + 2) +(6 + 9 + (3 + 5 * 3) + 4 * 2 * 2) + 7 + ((6 * 6 + 4 * 5 * 5 + 4) + 5) + ((8 + 4 + 9 * 8 * 9 + 2) + (7 + 2 + 9) + 4) + 5 +7 * 3 + (6 + (8 * 5) * 6 * 8) * 2 * 9 * 4 +9 + 9 + 9 + 2 +(7 * 9 * 2 + 8 * 7 * 4) + 9 + (9 * 6 * 9 + 7) * 3 * (9 * 5 * 5) +4 * 7 * ((7 + 9 * 5 * 4 + 7 * 4) + (2 + 3 + 5 * 4 + 2) + (2 + 5 * 8 * 5 * 5 + 6)) * 6 +5 + 8 * (9 + (9 + 3 + 9 + 5 + 5)) +(3 * 7 * 2 * 3 + (8 + 8 + 3 * 9)) + 8 + 8 * 6 + 8 + 6 +9 + 4 + 8 * (7 * 8 + 8 + 4 * 8) +2 * 9 + 2 * (5 + 3) * 2 * (5 * 5 * 8 + (3 + 4 + 4 + 5) + 4 * 4) +5 * 7 + 2 * ((2 * 8 * 8 + 8 * 2 * 7) * 6 * 7 + 7 + 2) * 2 + 9 +4 * (6 * (6 * 3 * 3)) * (7 * 5 * 4 * 2 * (5 + 5 + 8 * 3)) + 7 + 7 * 8 +3 * 2 + 4 +9 + 6 * 2 * 4 + 2 +((5 * 5 + 3 + 7 * 2) * 2 * 5 + (9 + 9)) + 3 + 6 * (9 + 8) * 8 * 9 +4 * (8 + 2 + 3 * 9 * 6) * 6 * 3 +2 * (9 * 6 + (8 + 6 * 4) * (5 * 5) + 9 * 2) +6 + (3 * (6 * 6 + 4 + 5) + 3 * 5 * 4 + (6 + 9 + 4 * 5 * 3)) + 6 * (3 + (6 + 5 + 5 + 6) * 8 + 8 * 4) * 4 + 6 +9 * 9 * 2 + (6 * 4 * 2 + 4 * 7 * 9) * 7 + ((5 + 6 + 7 + 7) * (7 * 3 + 9) + 9) +(2 + (6 + 8 + 6 * 5 + 5) + 8 * 5) * 9 + 3 +2 * 9 + 2 + (9 * (4 + 6 + 4 + 2) * 9 * 5 + 7 + 2) +8 + 6 + 4 + 6 +3 + ((6 * 4 + 2 + 4 + 3 + 8) * (4 * 3) * (9 + 4 * 6 + 2 * 7 * 6)) + 5 + 7 +3 * (8 * 4 + 9 + 4) * 7 * 2 + ((5 + 9 * 6 * 4 * 4) * 8 * 4 * (6 + 2)) +((8 * 7 + 6) * 3 + 2 + 5) + 8 * 5 * 8 +(3 * 2 * 6 * 3 * 2) * 6 * 2 * 9 +(4 * 8 * 3 + 5) + (8 + 9) + 7 * 7 + 3 * 3 +(2 + 7 * (7 * 8)) + 8 + (6 * (4 * 8) * 4 * 2 * 8) * 4 * ((7 + 8 + 4 + 3 + 6) * 4 + 9 + 4) + 3 +((7 + 2 + 3 * 3) * 5 * 5 + 4) + 9 * 2 + 7 + 9 + 2 +(6 + (2 + 7)) * 4 + 7 + 8 * 5 +(9 * 8) + (8 + (2 + 4 + 5 + 6 * 9) + 2 * (8 + 9)) +2 * (9 + 8) * 8 * ((7 * 6 + 7 * 3) + 2 + 5 * (7 * 2 + 7 + 8) + 3 * 3) + 8 +4 * 6 + 6 + 4 * 9 +(2 + 4 + 5 + 3 + 6) + 3 * 3 * 3 + (5 * 2 * 9 + 6 * 6 + 5) +7 * 5 + (6 + 2 * 2 * 8 + 5) * 6 + 6 +(5 + 8 + 2) + 3 +3 + 3 * 5 * ((3 + 8 + 5 + 9) * 4 + 4 * 4 + 4) + 8 * 3 +2 + (5 + 5 + (6 * 5 * 2 * 8) * 4 + 8) +8 + (5 * 7 * 2 * 2) * (7 + 9 * 5) * 2 + 9 + 4 +((9 * 9) + 6 + 4 + 9) * 5 +5 + 3 * ((4 + 8) + 9 * 2 * 6 + 7) +6 + 7 + 5 * (2 + 9 * 4 * 5 * 7 + 5) + 9 * 4 +(7 * 2 + 4 + (8 * 8 + 2 * 5 * 3 * 6)) + (4 + 4 * 3 + 7) + 4 * 6 +2 * (5 * 9 * (5 + 3 * 5) * 5 + 6) + 4 + 5 +5 * (4 + 7 + 4) +9 * 7 + 8 + 4 + (6 * (6 * 2 * 4 + 9)) + 5 +6 * 3 +(5 * 6 + 2 * (2 + 5 * 6 * 4 + 9 + 2)) + (4 + 3 * (9 * 9 + 4 * 8 * 8 * 9) * 4) * (8 + 7 + (4 + 8 * 2 + 4) * 9) +8 * 5 + 9 +7 + 4 * 9 * 6 + 6 +9 + 6 * (8 * (7 * 6 + 2 + 4 + 6 + 9) * 2 + 2 + 2 + (7 + 7 + 9)) +6 * (7 * 6 * 6) * 9 * 6 + 7 +(5 * 7 + 9) * 7 + ((4 * 5 + 3) * 5 * (3 + 8 * 7) + 2 + 3 * (7 + 6 + 2)) + (3 * 5 * 5) + 2 +4 * 2 * 2 * 2 * (6 + 4 + 9 + 4 * 5) +((9 * 7 + 7) + 8 * 7) * 4 + (7 + 9 * 9) * 6 +8 * (6 * (8 + 4) + (5 + 6) * 6) * 7 + 4 * 7 * 2 +(7 + 7 * (8 * 5 + 4)) * 5 * (3 * 6 * 2 * 3 * 9) * 3 +4 + (7 * 5 * 3 * 5 + 3 * 5) * 7 +(6 + 5 + 6 * 3 * (6 * 4 + 6)) + 2 * 5 * 9 + 3 * 5 +3 * (6 + 3 + 5 * 3) + 6 * 3 + (7 + 8) * 9 +(3 + 8 + (5 * 4 + 4 + 7) + 5 * 2) + 2 + 5 + 6 * 9 + (4 + 2 + 6) +9 * 8 + (3 + (4 + 2 * 8 + 7 * 5 + 3) + (3 * 3) * 3 + (2 * 8)) +7 * 4 + (3 + 7 + 6 + 4 * (3 * 6) * 2) + ((5 + 5 * 5) + 6 + 2 * (2 * 3 * 3 + 3)) +9 * 5 * (6 + (2 * 3)) + (3 * 4 + 3 + 9 + 6) + (9 + 5 + 2 + (3 * 4 * 9 * 9 * 5) + 2 * 7) * 5 +(6 + 9 * 4 + 5 * 4 * (8 + 2 * 4 * 2 * 3)) + 4 * 9 + 6 * (4 * 5 * 9) +9 * 7 + (2 + (6 + 3) + (4 * 3 + 9) + 9) + 8 + 9 * 3 +3 * (8 + 7 + 7 + 8) * (5 + 5 + 2 + 6 + 9 + 7) +7 + (7 * 5 + 3 * 4 * 9 + 2) * (8 * 6 + (5 + 2) + 6) * 4 + (6 * 3) + 2 +(4 * 5 + 7 + 3 * (7 * 8) + 8) + 6 * 2 + 9 + 3 +7 * 4 * 8 * (7 + 5 + 2) + (8 * 8 * 2) + 3 +7 + 7 * (6 + (4 * 7 + 3 + 2 + 7) + 3) +2 + (8 + (5 + 9 + 2 * 6 * 6 + 8) * 8 + 2 * (5 * 2 + 8) * 4) + 2 * 6 +(4 * 9 * (7 * 6 * 9 + 8 * 6) * 9) * 2 * 2 +3 + (8 + 2 + (2 + 3 * 2) * 6 + (5 * 8 * 8 * 8 + 2 + 3)) * 4 * (9 + 3) * 6 +8 + 3 * (3 + 5) + 3 + 5 +4 + ((9 * 5 * 2 + 7 + 5) + 6 + 3 + 6 * (7 * 6) + 6) * 2 * 3 * (3 * 9 + 9) +((4 * 9) * 8 * 6) + 8 * 8 + 6 + ((6 + 4 + 7) * (2 + 2 * 4 * 9) + 3 + (5 * 9 + 9 * 9 + 5) + 2) +(8 * 4) + (8 + 8) +((4 + 5 + 2 * 4 * 7 + 3) * 6 * (4 * 6 + 8) * 9 * (9 + 7 + 5 + 3)) * 5 +8 * 2 + 8 + (7 * (8 + 2 + 6 * 7 + 9) + (5 + 9 + 3) + 6 * 6) * (8 + (4 * 2 + 4 + 7 * 5) + 2 * 6) * 5 +(2 * 5 + (8 * 7 + 9 + 2 + 2)) * 2 + (8 * (2 + 4) + 4 * 5 + 7) + 4 +4 + (2 + (4 * 3 * 9) * 5 * 4) +((3 + 4) * 7 + 6 + (5 * 3 * 8 + 8 * 9) * 3 + 6) + 8 * 4 * ((7 + 4 * 3) * (6 + 9 + 9 * 4 * 7) + 9 + 5 + 2 + (5 + 8 * 4 * 6 + 4 * 8)) +4 * (9 * 5 * (5 * 7 * 7 + 4)) * 5 * (5 * 7 + (4 * 5) * 4 + 9) +5 + (8 * 6 + 8) + 8 +7 + (8 + 6) * 4 + 2 +(3 * (9 + 6 * 8)) * 8 +3 + 6 + 4 + ((5 + 4 * 2) + 7) +7 * 3 + 5 * (2 * 5 + 4) * 8 +5 * 5 + (6 * (8 + 5) * 7) * 7 + 4 +7 + 9 + (2 + (3 + 8 + 4) + 9 * 2 + 6) * (7 + (3 + 6 * 8 + 8 * 7) + 9 * 3 * 8 + (9 * 6 + 2 + 8 + 4 * 4)) +6 * (2 * 8 + 3 + 5 + 5) + (3 + (8 * 2 * 3) * (2 + 9 * 8 * 5 + 3) + 4 + 7) * 7 + (5 * 5 + 7) +(2 * 2 * 6 * 4 * 9 + (9 * 5 + 7 * 4 + 6 * 2)) * 4 + (4 + (8 * 2 + 3 + 6)) +2 + (8 + 4 * 8 + 3) * 6 + 7 + 4 +(6 + 6 * (2 * 5 * 5 * 4 * 5 * 4) + 8 * 7 * 3) + 5 + (3 * 6 + 3 * 7) + 5 + 5 * 3 +2 * (8 + 2 + 6 * (9 * 9 * 9 + 4 * 2 * 7) * 3 * (4 + 6 * 3 + 8 + 4)) + 8 +(6 * 7 + 8 * 6 * 7 + (5 + 9 * 3 + 6 + 9 * 5)) + 2 * 6 +(7 + 2 * 4 + 3) + 4 * 5 + 3 +((7 * 7 + 2 + 7) + (3 + 3 + 5 + 9 * 3 + 2) * (2 * 4 * 7 + 6 * 3)) * (2 + (7 + 4 + 3 * 9 + 4 * 5) * 4 + 3 * (5 + 8 * 3)) + 5 + (2 + 8 * 2 * 8 * (6 * 7 + 4 + 5)) * (3 * (7 * 6 * 3 * 8)) + 7 +3 * 4 * ((8 + 8 + 9) * 6 + 6 + 7 + 6) + 8 + 3 +(6 + (7 * 4) + (9 + 6 + 3 * 9)) + 2 * (4 + 6 * 5 + (2 + 8) * 5 + 9) + 3 * (6 + 8 + 8 * (7 * 8 * 3 * 2 + 2 + 8)) +(9 + 8 * 4 + (5 * 8 + 7 * 2 * 8 * 9) * 8 + 9) * 3 +9 + ((5 * 3 + 6) + (8 + 6 * 6 + 7 + 2 + 8) * 8 + 5 + (9 + 8 + 2 * 9 + 2)) * 7 +((8 + 2 + 6 + 3) * 8 + 5 + 8 + 2) * 9 +(6 + (4 * 4 * 7 * 2 + 6) * 4 + 2 * 8 * (6 + 2 * 8)) * 2 * 8 +3 * (4 + 3 + 3 + (3 * 7 * 7)) + 6 + 7 + 4 + 8 +(6 * 8 + 7) * 8 * 9 + 8 + 4 +(7 * 7) * 2 + (8 * 7) + 4 * (5 * 2 * (3 + 4 + 7 * 8 * 3) * 9) + 6 +7 + (9 * (6 + 8 * 7 + 6 * 3) + 4) * 4 + 3 +6 + 3 * ((2 + 2 + 3 + 9 + 9 + 8) * 6 + 2) + 5 +3 * 6 * 6 + 2 + 2 + (2 * 2) +6 + (4 + 9 * (5 + 9 * 4 * 6 + 6) + 4 * 6 * (2 * 7 * 7 * 4 + 8)) + 5 +((2 + 6) + 2 + 5) + 7 + 3 + 5 * 3 + 5 +(6 * (2 + 8 + 7) + 4 * (2 + 8) * 9) + 9 * 6 +(2 * (9 * 4 * 3 * 2) + (4 + 4 * 3 + 2)) + 4 +(6 + 4 * (5 + 9)) + 7 * 7 * 8 * 5 * 3 +(3 + (5 + 4 * 3 + 9)) * 2 * (9 + 6 * 6 * (7 + 8 + 2 * 5) * 8 * 6) +8 + 6 * 6 +8 + (8 * 9) + 5 +8 + (7 * (6 + 8) * 7 * (5 * 7 * 8 * 7) + (8 + 4 + 6 * 9 + 8) + 4) + (6 * 4) * 3 * 7 +9 + 4 + 3 * 7 * 5 +(8 + 9) + 6 + 4 * 7 +5 * (4 * 6 + 4 + 2 * (5 * 2 * 2 * 8)) * 3 +3 * 3 + 2 + ((8 + 5 + 4 + 8 + 8) * 7 * 6 + 9 * 8) +9 + (8 + (8 + 9) + 7 + 8) +(8 + 2) + (2 + 5 + 7) + 6 * 6 * 6 * 6 +5 + 7 + (5 + 4 * (5 * 6 + 3 + 3) + (7 * 9 * 5 * 6 * 6 + 3) * 8) * 7 +6 + ((7 * 3) * 6 * 5 + 5 + (3 + 3 + 9)) + (6 * 2 + 6 + 9 + (2 + 4 * 3 * 4) + 7) +8 * 5 + (9 * 2 * 7 * 2 * 6 + 8) * 2 + 2 + 6 +6 * 8 +(2 * 3 + 5 + (8 + 6 * 8 * 7 * 2)) * 3 + 2 + 6 + 2 * 5 +(7 + 6 * (2 + 2 * 4 * 9 + 7 * 5) * 4 + 2) + 4 * (9 + 6) + (9 + 5) + 7 +5 * (3 + 7 + 7 * 4) +2 * ((2 * 7 * 8 * 4 * 3 + 7) + 6 + 3) * 5 * 7 +8 * 4 + 7 + (6 * 4 + 3 + 2) + 7 * 8 +7 * 9 + (2 * 9 * 2) * 6 +8 + (6 * (2 + 8) + 9) + (7 + 6 + 6 * (8 * 3 * 5 * 5 * 9) + 3 + 7) + 8 +2 + 5 * 4 + (4 * (3 + 7 * 5 + 8) * 8 + 2) + 3 * 7 +(8 * (9 * 7 + 9 + 9 + 4) * 3 + 2) * 8 +4 + (6 + (2 + 4 * 6) + 4) +(8 * (4 + 6 + 2 * 6 + 7)) * 9 + 8 + 3 * 5 +((2 * 7 + 3 * 5) * (5 + 7 + 7 + 3 * 7 * 3) * 8) * 2 * ((2 * 9 * 4 * 6 + 4) + 6 + (8 * 5 * 4 * 5 * 6 * 8) + 7 * (9 * 6 + 7 * 3 + 4 + 7)) + 9 +6 + 8 + (3 * 3 + 2) + 5 + 4 +5 * 6 + 6 * 5 * ((3 + 5 * 8 + 4 * 8) * 9 * 9 + 6 * 4 + 6) + (4 * 7 * 5 + 9 + 7) +2 * 7 * (4 * 7 + (4 + 7 + 4 + 3 * 2 + 7) + 7) +((8 + 3 * 6 * 6 + 4) + (9 + 5 + 3 * 3) + 7 * (3 * 4 + 4 + 9 * 4 + 6) + (8 + 5 + 2 * 2 * 5)) * 8 * 6 * 7 + ((5 + 6 + 2 * 4 + 2) * (9 + 8 + 9) + 6 + (6 * 5 * 9 + 7) * 4 * 6) * 7 +4 * 5 * (9 * 3) + (9 + 6 + 5 * 8) +3 * 8 +9 + 2 * (7 + (2 + 9) * 9) + 4 * 4 * 8 +(8 + 4 + 7 * 2 + 8 * (8 + 7 * 4 + 4)) + 4 +4 + 8 + ((7 * 9 + 9) + 3 + 2 + 3) * 8 +(6 + (4 + 3 + 8 + 6 * 8)) * (5 + 9 * (5 + 2 * 7 + 8) + (6 * 7 * 4 + 2 * 5) + 4 * 9) * 8 * 5 +8 + 3 + 4 * 9 * ((4 * 9 + 3 + 6) + 3 * 3 + 9) * 2 +6 + ((3 * 2) * (4 + 9 + 9 * 5 * 2) * (2 * 8 + 4 * 7 + 4 + 8)) * 5 + (9 * 4 * 6 + 6 * 4 + 8) +2 + (5 + 4 * 8) + (9 * 9) +8 * 3 + 7 * 3 + ((2 * 2 + 6 * 3) * 3 * 7 * 8 + 5) + 9 +4 * 7 + ((6 + 7 * 3 * 4 + 8) * 2 + 6 + (4 * 6 + 9 + 6 * 8 * 3) + 3 * 3) + 3 +5 * (9 * 9 + (7 + 6 + 2 + 9 + 9 + 9)) * 8 +5 + 4 * 2 + 7 * (5 * 5 + 2 + 3) +2 * 2 + 6 + ((2 + 2 + 5) * 6 * (2 + 7 + 3 * 9) * 5 + 9 * 8) +((2 * 4 + 7) + 9 * 8) + 5 * 6 * 2 + 9 +6 + ((7 * 9 * 9 + 2) * 2) +6 * (7 + (4 + 7 * 2) * 5 + 2 + 7) + 6 * 7 + 5 +8 * (6 * 8 + (7 + 2 + 7) + 3) + 7 + 6 +(7 * 2 * 3 * 7) + 4 * 3 + 6 * 9 + 7 +8 * 7 * (8 * 9 * 3) +9 + (9 * 4 * (9 + 3 * 5 + 9 + 9) * 8 + 5 + 9) +6 * (9 * 2 * 9 + 6 + 9 + 8) + (6 * 9 * 5) + 2 * 4 +2 * 5 * (7 + 8 + 3 + 8 + 6 * 4) * 4 + 5 +2 * 2 * (4 + 3) + 2 + 4 * 4 +(6 * (9 * 6 + 2 * 2) * 4 * 3 * 4 * 7) + 2 +(2 * 5) * 3 + 3 * 3 * 7 * 8 +3 + 6 + ((6 * 6) * (9 + 8 * 2) * 7 + 5 + 9 * 2) +9 + 7 + (2 * 8) +(8 * 7) + (8 + 6 * 7 + (3 * 9 + 6) * 6 + 8) + (4 * 2 * 9) +2 + 2 + 2 + 9 * ((4 + 5 * 7 * 5 * 4 * 7) * (9 + 9) + 4 * 4 + 9) * 8 +4 + 2 + ((6 + 8 * 4 + 7) * 7 + 3 * 9 + (9 + 5)) +7 + 8 * (3 * (3 + 9 + 6 * 5) + 6 * 8) * 7 + 4 +8 + 7 * (2 * (5 * 7)) + (4 * 3 + 7) +(2 + 8 * 7) + ((8 * 9 * 3 + 3 + 5 * 7) * 2 * (9 + 6 * 3 * 5) * 4 * (4 + 6 * 6 + 4 * 9) * 3) * 6 + 4 * 4 + 2 +3 * (9 + 4 + (9 + 5 + 8 + 6 * 3 * 4) * 8 + (9 * 3 + 8 + 4 + 7)) * 8 +(4 + 4 * (4 * 7)) * 2 + 7 * 3 +((4 * 9) * (9 + 6 + 9 * 8 + 7)) + 6 + 7 + 7 +6 + ((9 * 5 + 9 + 6 * 6 + 4) * 7 + (9 + 5 + 5) * 9 + 3) * (5 * 9) + 8 + 9 +(3 + 8 * (7 * 3 * 4)) * (6 * (6 + 4) + (9 + 8) * (2 * 5 + 4) + (8 + 5 * 6 + 5 * 2 + 2)) * 6 + 9 + (7 + 6 * 5) + (5 + 4 + (6 + 8 * 2) * 2) +4 * ((6 * 8 + 7 * 6 + 4) + 4) +((5 * 6) + 4) + (9 + 4 + 9) + 2 +5 * 9 * 7 * 6 + (9 * 7) +5 + (2 + 7) * 5 + 9 + 7 +6 * 2 * 8 + 4 +(3 + 2 * 4 + 8) + ((7 * 5 + 7 * 2 * 8) + 7 + 2) * 6 * 2 + 5 +(2 * 5) * (3 * 9 * 4 * 8 + 5 * 3) * ((9 + 5 * 6 * 3) + 3 * 7 + 4) * 5 +((3 + 6 * 3) * (4 + 9 * 5 * 6 + 4 * 7)) + ((8 * 7 * 2 + 7) + 5 * 6) * 6 + 7 +(8 + 4 * 8 * 8) * 9 * 9 + 7 + 4 +(7 * 9 + 5) * 5 + (9 + 4 + 4 + (7 * 9 * 2 * 8 * 2 + 9)) * ((7 * 5 * 7 * 3 * 7) * 5 * 2) + 8 +5 + (6 * (8 + 9) * 7 + 9) + 3 + 3 +8 + 8 * (6 * 5 * (3 + 5 + 9 * 2 * 9 * 7)) +5 * (4 + 7) * 5 + 7 + 8 + 6 +3 * ((5 + 6 + 2 + 7) * 4 * 6) * 5 * 5 +(6 + 3 * (9 * 9 * 7 * 8 * 9 + 9) + 5) * 8 * 6 + 7 + 2 +8 * (4 + 3 * 5 + (5 + 2 * 3 + 8) * 2 + (8 + 7 * 7 + 4 * 7 + 7)) + 8 * 6 + 4 * 5 +4 + 7 * 8 * (2 + 6 + 5) * (4 + 8 + 4) +9 + 8 * ((2 * 3 * 6 + 4 * 2) + (6 * 5 * 9 + 7) * 5 * 2 * 9 * 7) + (9 + 4 * (2 * 8 * 7) * 3 + (9 + 8)) + 3 + 6 +7 * 3 * 8 + ((6 + 7) * 9) * 2 +5 + 3 +4 + 9 * 7 * ((7 * 8 + 7 * 2 + 5 * 7) + 5 * 4) + (5 * 5 + (7 * 6) * 6) +((2 + 4) * 5) * 3 + 5 +5 + (2 + 8 * 9 * 6 * 2 * (2 + 8 + 3 + 5)) * 9 * 8 + 3 * (9 + (4 + 2 + 4 + 7 * 4) * 9 * 9 + 7) +2 + 6 * 9 + 3 + (7 + 8 + 2) * 4 +5 * 4 * (2 * 4 + 3 + 3 * (9 + 6 + 6) + (3 * 8 * 4)) * 4 * 3 + (9 * 7) +7 * (5 * 5 + 4 + 8 + (3 * 4 + 6 + 9)) * 2 * 9 * (6 + 7) +2 + (5 + 3 * 5 * 8) + 3 * 8 + (9 + 9 * 8 * 2 * 2) +((7 + 9 * 9) * 7 * 2) + 6 * 6 * 9 +(6 * (9 + 9 + 4 + 5 + 6 + 2) + 6 + 8 + (7 * 3 * 8)) + 2 + 6 + 2 +(3 + (6 * 2 + 2 + 6 * 7 + 8) * 9 * 2) * ((2 + 9) + 8 * 9 + 2) + 3 * (3 + 4 * 7 * (3 + 2 * 8 * 6 + 7) * (5 + 3)) * 5 +(9 * (9 * 9 + 7 * 4) + (7 * 4 * 7 * 5) * (9 * 2 + 8 + 5 * 6)) * (6 * (7 + 9 + 6 * 7 + 9) + 4 * 4 * 2 + 6) * 9 +4 + (3 + (4 + 5)) + 7 * (6 + 4 * (5 + 3 + 9 + 5 + 2) * 4 + 4) + 8 + 8 +((5 + 8) + 5) * 9 + 6 + 8 * 7 +8 * (5 + (3 * 3 + 6 * 3)) * 5 + 2 + 8 * 8 +6 * 2 * 9 * (8 * 7 * (2 * 4 + 6 + 7 + 4 * 5)) + 9 + 7 +(5 * 3 * (8 * 2 * 8 + 2 + 8) * (8 + 8 + 9 * 7 * 6 * 3) + (4 * 2 * 7) * 4) + (4 * 3 + 9 * 5) + 5 + (5 + 9) +(6 + 3) * 5 + (6 + 7 + 5 + 7) +(9 * (6 + 6 * 8 + 4) * (3 * 6 + 6 + 7 + 7 + 5) + (5 * 7 + 4) * 9) * (7 + 3 + 7 * 2 + (5 + 7 * 6 + 8) * 4) * 7 +6 + 8 * (5 * 5 + (3 * 2 * 2 * 7 + 4 * 9) * 7 + 4) + 8 + 4 +9 + (5 * 7) * (5 * 6 * 8 * (5 * 2) + 9) * (6 + 3 + 6 + 9 + 2) * 6 +8 * (8 + 8 + 9 + 9 * 6 * 3) + 8 * (3 * 3) + 3 * 3 +7 * 7 * (5 + 5 * 9) + (6 * 6 * 3 * 4 * 8 + 8) + 3 +(3 * 2) + 5 * (6 * (9 + 2 + 3 + 2 * 9 + 5) + 6) + 2 + 7 * 9 +9 * 2 + 3 + (3 * 7) + 4 +7 * 5 * 7 * (4 + 3 * 7 + 3 + (4 * 5 + 5) + (5 * 8)) * (8 * 3 * (8 + 9)) +((3 * 8 * 8 + 6 + 5 * 5) + 3 + (3 * 8 * 7)) * 2 * (9 + (9 * 8) * 5) * 5 * 4 + 7 +4 * 9 * (4 + (3 * 7) + (6 * 4 * 9)) + 2 + 8 +5 * ((7 + 2 + 6 + 6) * 2 + 4 * 8) +5 + 9 * ((7 + 2) * 5 * 4 * (5 + 7) + (8 + 4 * 8 * 7 * 9)) +((4 + 3) + 6 * 3) * (4 * (4 * 6) * 3 * 2 + 8 * 4) + 8 +5 + (6 + 3 + 6 * 8 * 7 * 2) + 3 * 9 + (8 + 2 + 6 * (4 + 6 * 6 * 8 * 3 * 3)) + 7 +7 + (8 + 8 * (8 + 3 * 3 * 5 + 2)) + 4 + (2 + 3 * 7 * 7 + 6 + 2) * 9 +7 * 3 * 2 + 6 + 7 * 4 +(3 + 4 * 7 + (8 * 3 * 5 * 8 + 5 * 3) * (7 + 4 * 8 + 9)) + 8 + (4 * 3 * 4) * (6 + 4 + 8) + 5 + (9 + 6 + 2 + 4) +((3 + 9 + 5) * 7 * 2 * (3 + 7)) + 5 + 3 +(4 * 9 + 3 + 9) * 8 * 8 + ((7 * 2 + 6 * 2 * 2) + 8 * 3 * 2 + 2 + 6) * 3 + 7 +(5 * 6 * (8 + 8) + 2) + 6 + 2 * (5 + 4) + 2 +(3 * 8 + 2 + 5 + 6 + 6) + (8 + 7 + 9 * 4 * 4 + (4 * 4 + 4 * 7 + 7)) * 4 +(7 * 7 * 4) * 7 * 3 + 6 +(9 * 3 + 7) * 7 + 4 + 2 * 7 * 3 +6 * 9 + (6 * 6 + 6 * (3 * 9 + 7)) +5 + 6 * 7 + 8 + (3 * 3 + 5 + 3 + 6) + 8 +(6 + 4 + 6 * 9) + (3 * (6 * 3 * 2 + 2 + 9)) + (2 + 9 + 8 * 3 * 8 + 9) + 4 + (4 + 4 + 7) +4 + 3 * ((6 * 3 * 2) + 3 * 3 + (6 * 4 + 5 * 5 * 7) * 6 + 3) +2 + (7 * 5 * 6 + 8 + 4 * 8) * 3 * 6 * 3 +9 * (8 * (6 * 7 + 7) * 3 + 9) + 7 * 5 + 6 +((3 * 5) + 2 * 4 * 2) * 7 + (4 + (4 * 2 * 6) + 2) + (3 + 5 * 8 + 6) + (5 + 2 * 6) * 2 +8 + 9 * (4 + 6 + 9 + 2 + 4 + 6) * (9 + 4 * 5) * 2 +(6 + 9 + 4 + 7 * 7 + (6 + 5 + 4 * 6 + 4 * 5)) * 3 + 7 + (2 + 9 + 7 + 8 + 4 * 5) +(6 * 7 * (7 * 7 + 3 * 9 + 4 * 2) + 8 * 7) * 3 * 2 +(7 * (5 * 2 + 2 + 8 * 4 + 6)) + 7 + 7 * 8 * 7 + 2 +(8 * 6 * (4 + 6 * 8 * 8)) * 8 + 4 +(4 + 7) * (7 * 4 + 4 + 5 + (9 * 9 * 4 * 5) + 8) + 4 + (8 * 9 + 2 + 4 * (2 * 2 + 8) * (5 * 7 * 4 * 6 + 2)) + 6 +4 * (8 * (2 * 5) + 4 * (7 * 2 + 7 + 8) * 7) * 4 * 9 * 7 + ((5 * 4 * 5 + 7 + 9) + 7 * 7 + (6 * 3 + 8 + 7 * 4) + (6 + 4 * 3)) +((3 + 4 + 7 * 8 * 5) * 9 * 6) + 6 + 3 +((7 + 3 * 8) * (3 * 7 + 4 * 3) + 5 + 2 * 9) * 8 + 4 + 2 +((3 + 8 * 8 + 9) * 5 * (5 * 6 + 5 + 7)) + 2 * (6 * 5 + 4 * 6 * 4 * 8) * 9 * 7 +4 + 9 * 8 * ((8 * 6) + 7 * 2 + 2 * 6) +(2 * 3 * 3) + 4 * 8 * (3 * 5) +(8 * (5 + 9) + (5 * 6 * 7 * 2) + 4 + 4 + (6 * 9 + 8 + 7 + 2)) * 7 * 2 * 6 + 2 * 2 +(8 * 9 * 7 + 3 * 6) + 5 + 4 * ((9 + 8) + (3 + 7 + 6 * 2) + (7 * 5 * 9 + 5) * 8 * 3) + (6 + 9 * (6 * 8) + 2 + 4 * 4) +6 + 8 * 9 + (4 * (9 + 2 + 3 + 5 + 3 + 8) + (3 + 7 * 4) + 4 * 7 * (6 + 2)) +2 + 4 * 7 * 5 + (8 * 3) + 6 +9 + 9 + 4 + (4 * 3 + 3 * 2 + (7 + 2 + 9 + 8) + 4) +3 * 7 * 7 * 9 + 7 +(3 * 2 * 3 * 5 + 6) + 4 * 5 + 8 + 5 +7 * 6 + 7 * 8 + 8 * 3 +(6 + 2 + (6 * 8 * 5) * 6 + 3 * (8 * 5 * 9 * 2 * 7 + 4)) * 3 +(8 + (4 + 2 * 3 + 7 * 5) * 9) * 3 + 9 + 4 + 6 +(9 + 6 + (6 + 3 * 2 + 8 * 5 + 7) + (8 + 8 * 3 + 9 * 4 * 8) + 6 * 2) * (7 + 9 + 5 + 8) * 7 + 4 * ((6 * 5 * 7 + 7 * 9 * 3) + (2 * 4 + 4 * 2)) +(5 * (3 + 5 + 5 * 6) * 7) + 8 + 3 * 4 + 7 +3 * 7 * (9 * 5 + 9 + 7) + 9 * (3 * 4 * 4 * (8 * 4 + 2 + 5)) + (9 * (5 * 3 * 4 * 9) + 5 * 8 + 9 * 5) +6 + 7 + ((2 * 4 * 5 + 7) * 2 * (8 + 8 * 4 * 3) * 3) * 5 * 6 * 4 +7 * (9 * 6 * 4) + 7 + (8 * 2 * 7 * 4 + 8) +4 + 7 * (8 * 4 * 2 * (2 + 5 + 9 + 5 * 2 + 5) * (5 * 6 + 2 * 5 + 9) + 3) * 9 * (3 * 6 + 3 * (4 * 4 * 6 + 6 * 2 * 9)) + 8 +2 + 6 * (8 + 9 + 6 + 2 * (9 + 4 * 7 * 5 + 5)) * (7 * 7 * 2 * 9) +4 * 3 + (8 * (6 * 8 + 8 + 6) + 3) + 5 +(5 + 6) + (2 + 6 + 4 + 8) +(9 * 5 * 3 + 6 * 6) + (5 * 4) +3 * 2 + (7 + 7 * 2 + (6 + 6 + 2 * 8 * 4) * 3) * 8 +(4 * 6 + 6) + 4 * 9 +6 + (9 * 3 * 3 * 3) + 8 +(5 + (9 + 6 + 3 + 7 * 3 + 5)) + 5 + (4 * 3 + 4) * 9 * 3 +(6 + 8 * (8 + 3 * 2 + 4 + 5 + 9)) * 7 +6 + 3 * 3 * 5 + ((7 + 4 * 8) + 2 * 7 + 4 * (5 + 8) * 8) + ((5 * 4 * 2) * 4 * 5 + (3 + 4 + 4 * 7 + 7)) +2 * 3 * 3 * 4 * 7 + 2 +6 * (7 + 9 * 9 + (9 * 6) + 5) + 4 +8 * (2 * 7 + 5 * 5 + 8) + 5 +(4 * 5) + (3 + 3 * (5 * 9 + 8 * 2) + 6 * 4 + 4) * 5 + 6 +4 * 9 + (3 + 3 * 2 + (2 + 4 * 4 * 7 * 7 + 5) * 9) * 5 * 3 +(5 * 3 * 6 + 8 + 2 + 4) * 6 * 8 * ((6 * 2 + 2 * 4 + 6 * 2) * 6) +4 * (5 * 4 * 6 + (7 + 3 * 9 + 3)) + (3 * 4 + 4 + (5 + 7 * 6 * 2 + 7) + 3) +3 * (5 + 2 * 6 + 8 + 5) + ((8 + 3 * 6 + 8 * 3) * (7 * 7)) + 8 * 4 * 5 +4 + (8 + 6 * (4 + 3)) * 4 + 4 +4 * 3 * (3 + (8 * 9) * (9 * 7 * 4 * 9 * 4 * 8) * (5 + 2 + 2 + 2)) +8 + (2 + 2 * 5 * 3 * (4 * 3 + 7 + 6 + 3)) + 7 * 2 * 5 * 5 +4 * (7 * 9 * (2 * 2 * 5) + 2 + 8 * (6 + 2)) * 4 * 7 * 8 +(2 * 3 * 3 * 2 + (9 * 8 + 5 + 4)) + 7 * 2 * 6 +((6 * 7 + 3 + 3 * 4) * (5 + 9 + 5) + 7 * 6) + 9 +6 * 9 + 8 + 3 + 6 * (6 * 9 + 9 + 3 * 2 * 2) +(3 * 5 + 2 + 9) * (6 + 9 + (6 * 8 + 2 + 8 * 3 + 8) + (2 + 6 + 6 + 6 * 3)) * ((7 * 5 * 9) * 3 + 9 + 3 + 8 * 2) * 8 * 6 + 8 +3 * (4 + 4 + 6 * (5 + 7) * 8) * (3 * (6 * 7 + 3 + 7 + 7) + 7) +6 * 8 + 8 * (6 + 9 + 5) * 7 + 7 +3 * (8 + 5 + 8 * 7 * 7 * 8) + 7 + 9 * 4 + 9 +(4 + 5 + 7 + 6) * (9 * (6 * 3 + 9 + 3 + 3) + 6 * 8 + (2 * 8 * 4 + 7 + 5 * 4)) +7 * 2 + 3 * (5 + 9) + 7 * 3 +7 * 8 + 5 + 7 * 4 * ((7 * 4 + 8 * 8) * (6 + 5 * 8 + 7 + 5 * 3)) +(7 * 4 + 3) + (7 + 9 * 7 * 9 * (3 + 2 * 2 * 8 * 2 * 6)) + 5 * 3 + 3 + 3 +5 + 6 * (3 + 6) * (6 + (7 + 2) * 3 + (8 * 6 + 3 + 8 + 5 * 9)) * 7 +(9 + 6 + 8) + 3 + 5 + 2 + (3 * 9 + (8 + 3) + 7 * 3) +6 + (9 + 7 * 2 * (8 * 9 * 2 + 7 + 6 * 7) * 6) +2 + 4 * ((7 * 2 + 4) * 8) + 9 * 3 * 3 +3 + ((5 + 4) * 4 * 7 * (3 + 5 * 4 + 3) + 3) +(7 + 4 * 3 * 6 * 7 * 5) * 2 * 7 + 4 +(7 * (7 * 9) + 8 + 2 * (6 + 9 + 9 * 2 * 5) + 7) * 7 * 7 + 9 +(2 * 5 + 9 * 5) * 3 +3 * 9 + 5 + 7 * 9 + 6 +9 * 3 * ((3 * 6 + 4 + 8) + 9 + 2) * 3 +8 * 3 + 6 * 8 * 2 + 4 diff --git a/data/18_2021.txt b/data/18_2021.txt new file mode 100644 index 0000000..983da28 --- /dev/null +++ b/data/18_2021.txt @@ -0,0 +1,100 @@ +[[0,6],[[[4,0],[6,6]],[[2,2],9]]] +[[9,[[1,6],[6,0]]],[[1,[0,8]],[[0,8],[9,8]]]] +[[[0,[2,1]],3],[[[2,4],[1,2]],[7,5]]] +[[[[8,3],[8,5]],[[7,8],[5,5]]],[9,2]] +[[8,[1,9]],[[[9,9],[9,2]],1]] +[[[[3,7],[2,1]],[0,9]],4] +[[[[3,8],[6,0]],[0,7]],[[[6,3],[2,0]],9]] +[[[9,[7,0]],[8,[9,6]]],[[5,6],4]] +[[[[3,6],[3,6]],[0,2]],[[[8,3],9],[[3,4],8]]] +[[7,[8,4]],1] +[6,[[3,[5,6]],[0,6]]] +[[[7,[4,7]],[[4,5],[4,3]]],[[5,5],[0,[4,2]]]] +[[[0,[2,9]],[[2,4],[4,8]]],[[8,[9,5]],[[9,6],0]]] +[[[[2,0],[9,7]],[[3,2],0]],[7,7]] +[[5,[2,1]],[[3,[5,1]],[[8,5],[1,8]]]] +[[[[9,7],6],[[7,8],7]],[[[6,8],9],[[9,5],7]]] +[[4,2],[[[0,1],[7,2]],[[0,2],[5,5]]]] +[[1,8],[[5,[7,9]],[[3,1],[7,1]]]] +[[[4,[4,6]],6],5] +[[[5,[3,6]],6],[[[8,0],[8,6]],[[3,3],[0,1]]]] +[[4,[[2,6],[0,9]]],[[0,6],[4,2]]] +[[[[9,4],[6,5]],7],[[[1,5],[0,9]],[4,[4,2]]]] +[[7,[[6,5],8]],[[[5,6],0],[6,[3,5]]]] +[[[5,[6,4]],[8,[0,4]]],[[3,[9,3]],4]] +[[[[4,0],6],[6,[6,5]]],[[9,[6,3]],[[9,6],7]]] +[[[[2,2],4],[8,[7,2]]],[2,1]] +[5,[9,[[5,9],4]]] +[[[1,[7,7]],[[2,2],8]],[[[9,7],5],[4,3]]] +[[[[6,8],1],1],[1,[[2,0],6]]] +[[[[0,5],8],[[8,9],[9,3]]],[[[5,5],[4,2]],2]] +[[[9,[2,5]],[6,[1,7]]],[5,[3,[2,2]]]] +[[[7,6],8],[[[1,9],3],[5,2]]] +[8,[[2,[0,7]],8]] +[[[[8,1],[0,0]],5],1] +[[1,[[4,8],0]],[[9,[7,8]],5]] +[[[[1,3],1],[[9,8],[6,6]]],5] +[[[3,2],[[0,5],[0,1]]],[[9,[9,3]],[4,9]]] +[[[0,[2,4]],[[3,3],[6,5]]],[[1,[2,1]],[[3,4],9]]] +[[2,[3,[7,6]]],[5,5]] +[[[[8,2],0],[[9,6],[9,0]]],[[[6,2],[5,0]],9]] +[7,[9,7]] +[3,[[[5,5],1],[8,5]]] +[[[5,5],[5,6]],[9,5]] +[[[9,7],[1,2]],[8,[5,[7,0]]]] +[[[1,[5,2]],[7,[8,9]]],[2,[[4,5],[2,3]]]] +[[[4,[2,2]],[5,[4,7]]],[[[0,3],2],[5,[2,6]]]] +[[0,[[6,5],5]],[[7,[7,2]],3]] +[[[4,[9,4]],[1,9]],[7,[[7,1],[6,1]]]] +[1,[0,2]] +[[[[5,1],[2,1]],[[7,8],6]],[[3,[4,9]],2]] +[[9,[[4,0],[8,8]]],[[[6,6],[2,8]],[1,[1,5]]]] +[[[1,2],[7,0]],[7,[[3,0],5]]] +[[[6,[0,8]],3],[[3,7],1]] +[[[[6,1],[1,0]],9],[[4,8],[3,[0,8]]]] +[[6,[3,[5,8]]],9] +[[[[5,0],[7,7]],[[3,1],[4,8]]],5] +[[[3,7],[9,0]],[[[0,2],7],0]] +[8,9] +[[8,[[0,8],4]],[1,[[4,6],2]]] +[[[5,5],3],[[6,6],[0,[6,3]]]] +[[[7,[3,7]],[[6,1],[9,4]]],[[[8,9],1],[[8,7],6]]] +[[6,[[0,9],[2,3]]],[[1,[5,3]],[8,4]]] +[[[3,5],8],[[[2,4],[7,5]],5]] +[[0,[[7,0],[9,4]]],[[[0,0],[6,7]],[6,5]]] +[[[[1,9],[6,4]],0],[6,[3,[4,8]]]] +[[[[1,6],[0,4]],8],[[8,8],6]] +[[[[7,4],[9,6]],7],[[1,6],[1,0]]] +[1,[[[6,8],5],5]] +[8,4] +[9,[[9,[3,9]],0]] +[5,[[[4,9],7],[[1,0],0]]] +[[[6,1],[0,[2,3]]],[[[7,8],[5,9]],9]] +[3,[[3,[3,4]],[6,[7,8]]]] +[[[7,[7,1]],[4,[2,0]]],[6,[7,3]]] +[[6,9],[[3,[4,7]],3]] +[1,[[9,[5,1]],[7,[7,5]]]] +[[3,2],[[9,[6,8]],[[1,0],2]]] +[[[[3,2],8],[7,6]],9] +[[3,[[9,5],6]],[5,9]] +[[[3,[6,3]],[[7,0],[5,7]]],[[3,3],[[4,9],[4,8]]]] +[[[0,[4,3]],2],[3,[0,[1,3]]]] +[[[7,[3,4]],[7,[3,1]]],[[0,[4,7]],6]] +[[[1,[7,4]],[[8,7],3]],4] +[[[5,5],[[0,3],2]],[1,[[9,4],6]]] +[[[[6,0],[8,8]],[6,[6,0]]],[5,6]] +[[[1,[5,4]],[[5,9],[1,7]]],[[5,[4,7]],[4,[4,4]]]] +[[0,[[2,6],0]],[[6,[4,3]],5]] +[[[1,[5,3]],[9,[1,2]]],[[[4,8],[5,6]],0]] +[[0,7],[1,[7,7]]] +[4,[[7,[7,2]],[[9,1],7]]] +[2,[[1,6],[6,9]]] +[[[4,[4,5]],9],[[[1,7],6],[3,[7,3]]]] +[[6,[[1,1],[7,8]]],[[[5,2],[8,1]],5]] +[[[5,5],[[4,1],[1,2]]],[[3,8],[3,4]]] +[[[[1,9],[0,3]],[4,[0,9]]],4] +[[[4,9],0],[[9,0],[8,[7,5]]]] +[[6,[5,3]],[[[6,6],4],[[6,8],4]]] +[[[[1,1],2],1],[1,[[6,4],2]]] +[[[[6,3],[1,5]],[6,[7,7]]],[6,6]] +[[[[3,0],[5,6]],1],[[[9,3],[1,7]],[[3,4],[2,7]]]] diff --git a/data/18_2022.txt b/data/18_2022.txt new file mode 100644 index 0000000..3b46aaf --- /dev/null +++ b/data/18_2022.txt @@ -0,0 +1,2888 @@ +4,14,6 +6,9,16 +13,13,19 +9,14,3 +7,10,19 +6,17,13 +4,4,10 +17,11,17 +5,14,15 +8,1,12 +3,12,5 +20,8,13 +7,10,17 +10,16,17 +11,20,11 +3,9,11 +19,10,10 +14,10,2 +12,16,16 +18,13,9 +9,13,18 +17,8,6 +14,17,16 +11,6,17 +11,5,11 +16,6,6 +11,7,2 +14,19,9 +18,8,9 +3,11,11 +17,9,7 +17,12,13 +12,19,11 +16,16,10 +5,17,9 +15,10,2 +5,8,16 +6,11,17 +7,16,12 +13,16,16 +10,15,19 +10,1,13 +19,12,8 +19,9,13 +16,9,6 +5,16,11 +4,10,6 +4,5,8 +3,6,13 +19,11,9 +6,12,4 +18,6,12 +13,9,18 +14,12,18 +4,15,10 +19,6,11 +5,4,14 +14,6,6 +5,15,13 +3,7,7 +2,10,13 +18,15,12 +12,12,3 +7,12,18 +5,8,7 +11,16,16 +13,8,2 +7,17,14 +13,10,3 +12,12,2 +9,11,18 +9,18,7 +10,19,10 +7,4,4 +19,15,9 +11,17,17 +14,8,4 +5,15,5 +16,9,5 +9,19,7 +19,15,8 +2,13,9 +18,13,16 +4,15,13 +11,11,17 +7,3,15 +4,8,5 +4,16,7 +8,3,11 +6,6,4 +12,10,20 +7,16,17 +12,3,4 +5,16,13 +13,12,19 +9,9,19 +13,4,15 +17,16,12 +2,14,8 +16,13,18 +14,18,12 +16,12,17 +12,18,15 +5,11,17 +10,18,6 +10,17,5 +16,5,8 +16,16,15 +15,7,5 +3,15,8 +19,11,6 +12,8,2 +5,6,5 +11,16,13 +5,10,4 +5,17,10 +11,8,3 +8,15,17 +16,7,7 +7,4,15 +12,6,18 +6,15,4 +13,2,9 +10,19,16 +15,15,5 +3,10,16 +8,14,4 +17,13,11 +14,3,11 +7,5,18 +10,16,4 +16,16,14 +19,9,10 +11,13,1 +3,14,11 +5,8,6 +13,12,18 +7,7,19 +19,9,9 +13,16,5 +2,7,6 +6,5,14 +3,8,10 +10,4,6 +10,9,1 +4,8,13 +15,10,5 +16,4,9 +17,13,7 +6,7,3 +7,2,10 +7,5,17 +2,6,10 +11,10,20 +10,12,17 +4,16,14 +11,16,17 +5,12,5 +5,5,11 +10,13,2 +8,10,18 +11,2,13 +10,19,9 +4,15,9 +4,4,11 +8,4,5 +4,19,12 +9,12,15 +15,10,16 +12,11,18 +14,15,16 +17,15,14 +1,11,13 +4,14,13 +16,16,12 +15,12,17 +19,12,12 +7,3,6 +16,15,13 +12,4,4 +5,7,4 +13,7,18 +4,4,8 +7,17,7 +10,8,1 +16,4,11 +9,3,6 +7,5,14 +3,16,10 +8,5,15 +14,6,16 +8,11,1 +16,16,9 +14,18,13 +14,16,3 +4,14,8 +10,2,12 +7,5,8 +16,17,13 +18,16,14 +13,9,16 +12,14,19 +17,13,6 +12,13,18 +5,18,9 +16,12,4 +15,11,2 +13,2,12 +4,7,14 +12,18,5 +4,14,12 +17,16,8 +2,16,8 +5,12,3 +14,15,3 +9,5,4 +9,10,3 +13,15,4 +16,15,8 +15,3,8 +3,14,10 +12,3,7 +10,19,13 +17,5,12 +16,15,15 +19,6,12 +2,15,14 +17,9,14 +3,6,10 +8,11,19 +10,11,2 +11,19,10 +15,19,11 +16,15,16 +2,11,7 +8,4,9 +8,12,3 +7,18,11 +11,4,4 +6,17,16 +6,2,7 +13,4,16 +20,6,10 +11,2,11 +9,18,6 +14,6,17 +2,12,14 +10,6,18 +3,14,7 +6,3,11 +6,15,16 +5,7,8 +7,3,14 +16,13,4 +10,4,5 +18,12,10 +13,2,13 +8,7,4 +11,13,17 +2,12,12 +5,3,11 +7,15,16 +4,13,17 +15,3,12 +14,11,3 +9,19,8 +4,10,19 +3,10,15 +17,15,8 +7,5,15 +10,11,1 +4,7,13 +9,15,18 +11,11,4 +4,5,14 +9,17,6 +13,2,14 +12,15,4 +2,5,9 +10,7,18 +8,16,4 +15,4,15 +18,15,7 +9,11,1 +3,13,11 +18,7,6 +14,8,17 +9,11,3 +15,15,18 +4,17,9 +13,18,8 +9,2,7 +2,13,12 +12,2,8 +4,7,7 +7,17,8 +15,10,17 +7,6,17 +8,19,10 +16,13,16 +6,6,5 +1,15,10 +17,10,16 +16,8,7 +3,13,8 +14,16,18 +2,8,13 +2,12,8 +4,6,12 +14,8,2 +17,6,6 +10,11,20 +9,6,17 +9,5,15 +7,2,8 +11,7,3 +2,6,13 +1,9,15 +5,10,16 +5,17,8 +12,7,17 +10,18,7 +15,16,6 +8,19,12 +3,13,9 +16,11,3 +3,9,6 +10,20,10 +10,16,5 +3,10,7 +3,10,6 +8,17,4 +17,9,5 +8,15,3 +18,11,15 +12,3,9 +12,17,6 +13,10,18 +14,16,6 +3,12,6 +18,13,8 +10,9,5 +8,17,15 +2,7,8 +3,14,14 +3,9,12 +6,15,6 +10,18,9 +18,11,12 +11,1,8 +19,13,10 +7,6,4 +8,6,2 +14,18,15 +3,8,7 +14,12,2 +16,7,5 +5,10,5 +11,16,4 +16,10,4 +10,7,19 +9,20,13 +18,9,15 +9,17,5 +12,4,6 +5,14,18 +10,17,4 +17,17,8 +13,3,15 +19,11,13 +12,7,18 +19,7,7 +12,15,3 +11,6,4 +4,6,6 +17,15,9 +3,14,8 +13,19,13 +11,17,6 +10,8,3 +2,9,10 +17,11,10 +17,13,14 +6,13,3 +18,12,12 +9,5,17 +20,12,9 +12,3,6 +18,15,11 +2,8,12 +8,18,10 +8,7,16 +5,8,11 +18,13,13 +7,7,4 +20,7,11 +1,10,8 +6,17,10 +15,17,8 +17,11,5 +9,18,8 +19,9,11 +9,9,20 +8,3,10 +13,15,17 +8,11,3 +18,7,14 +7,5,16 +10,10,3 +12,5,16 +11,10,3 +12,2,10 +17,13,16 +8,5,17 +15,4,8 +7,9,20 +10,13,1 +6,12,17 +9,3,9 +5,10,15 +7,18,16 +17,15,12 +11,17,4 +4,16,8 +7,14,3 +17,17,13 +9,3,5 +6,7,5 +11,3,16 +4,10,4 +18,5,8 +3,16,8 +9,18,11 +13,15,3 +16,9,18 +8,13,4 +9,18,15 +6,6,17 +14,9,3 +18,6,9 +18,4,10 +20,12,12 +7,8,3 +14,13,3 +10,5,3 +13,15,16 +17,14,6 +19,10,6 +10,4,17 +11,15,18 +13,12,3 +9,5,3 +18,9,9 +7,11,20 +7,4,16 +10,4,4 +11,4,5 +16,9,17 +8,14,2 +13,20,8 +18,10,5 +5,7,6 +8,6,6 +14,2,13 +14,11,2 +9,18,14 +8,17,3 +10,8,19 +8,4,17 +10,18,12 +1,9,9 +13,4,3 +8,10,19 +5,17,11 +3,15,10 +9,8,3 +2,14,15 +19,7,8 +16,12,14 +10,2,8 +18,13,14 +14,15,6 +4,9,15 +3,6,14 +14,8,19 +15,19,14 +13,2,11 +18,14,10 +11,7,17 +11,3,9 +15,6,17 +16,3,12 +9,10,2 +18,11,16 +9,7,2 +8,8,18 +15,5,15 +9,19,14 +18,10,11 +18,15,13 +3,6,11 +8,6,18 +18,13,15 +3,7,14 +5,14,16 +11,17,5 +17,12,5 +18,11,10 +16,15,10 +5,3,10 +6,14,7 +3,10,13 +5,18,11 +18,9,6 +8,9,20 +3,11,8 +16,11,6 +3,11,12 +5,16,5 +17,6,15 +3,13,6 +17,13,13 +12,9,1 +2,13,14 +18,12,14 +12,13,19 +12,17,17 +17,12,4 +4,5,10 +14,18,10 +12,9,18 +6,3,6 +15,5,6 +18,7,12 +13,19,15 +14,16,5 +18,16,11 +8,10,17 +8,13,3 +7,3,9 +9,3,11 +16,9,4 +5,6,13 +6,5,5 +15,9,18 +1,10,9 +2,10,11 +10,18,17 +7,9,17 +8,4,13 +19,8,12 +12,8,19 +7,12,20 +8,19,8 +10,13,18 +16,6,3 +7,16,15 +15,8,3 +12,2,12 +6,4,9 +16,11,4 +15,5,17 +12,9,20 +11,14,1 +15,9,17 +8,14,18 +9,19,13 +13,18,10 +10,19,15 +17,5,10 +14,7,18 +11,9,19 +5,8,4 +12,4,5 +7,17,5 +6,4,13 +5,13,18 +19,10,7 +6,16,7 +17,4,11 +16,16,16 +5,6,15 +10,13,4 +4,9,6 +2,8,11 +4,6,13 +10,14,3 +15,11,6 +13,7,2 +12,3,16 +12,1,8 +5,16,14 +15,6,15 +9,2,12 +8,7,17 +1,12,12 +16,5,6 +13,14,18 +18,12,9 +12,11,17 +8,11,4 +20,11,12 +19,13,13 +14,3,5 +6,7,17 +6,12,3 +18,8,14 +6,11,3 +17,14,5 +18,8,4 +15,6,16 +17,17,10 +11,19,12 +16,17,10 +7,14,19 +6,2,9 +15,16,17 +8,6,19 +9,4,15 +14,14,17 +6,10,18 +11,4,17 +17,13,5 +14,15,5 +2,7,14 +8,15,18 +5,15,7 +8,8,4 +15,5,9 +10,9,2 +14,19,7 +6,16,13 +14,17,14 +7,4,13 +6,8,5 +10,6,5 +7,13,19 +17,7,5 +19,5,10 +7,13,4 +10,3,10 +12,16,4 +17,7,6 +5,12,17 +5,17,12 +19,14,10 +3,5,13 +17,4,10 +10,15,18 +10,18,11 +10,12,2 +4,4,9 +4,11,16 +17,12,11 +3,9,10 +6,13,16 +4,13,5 +17,5,11 +6,16,15 +19,11,11 +17,15,15 +14,3,8 +14,5,14 +9,6,3 +13,3,6 +18,15,10 +10,3,15 +17,8,5 +17,16,7 +19,10,12 +9,4,16 +13,14,17 +17,8,15 +13,16,6 +10,19,6 +1,13,11 +14,9,19 +19,15,13 +2,14,13 +12,10,3 +16,13,5 +9,3,15 +2,10,14 +4,7,8 +4,6,8 +4,13,14 +16,10,16 +14,16,17 +2,13,11 +6,14,16 +7,7,17 +3,8,15 +6,14,17 +6,7,15 +13,6,18 +15,12,3 +9,13,2 +19,7,11 +13,10,2 +8,20,11 +14,19,11 +13,4,6 +7,10,4 +14,3,6 +16,11,16 +3,8,9 +15,18,8 +2,13,13 +8,4,6 +16,5,16 +15,4,9 +15,11,18 +15,5,4 +5,8,15 +19,14,7 +16,10,5 +2,9,9 +11,2,8 +10,3,18 +19,8,11 +11,5,18 +6,6,16 +2,9,13 +13,11,2 +18,7,9 +16,11,18 +10,3,4 +5,6,16 +6,19,10 +9,4,10 +7,7,3 +4,5,11 +2,10,10 +2,11,9 +17,7,8 +3,8,8 +6,3,7 +12,14,3 +10,18,16 +19,9,12 +15,7,17 +17,17,11 +13,7,3 +6,8,3 +16,7,6 +7,18,10 +3,8,13 +16,4,12 +11,8,1 +18,5,12 +10,7,3 +6,8,4 +6,18,13 +17,11,14 +14,13,18 +10,6,4 +6,7,6 +15,14,4 +15,8,17 +16,10,17 +7,18,9 +13,19,8 +3,7,12 +12,10,18 +20,13,12 +8,17,6 +18,8,16 +14,3,9 +16,8,8 +8,2,10 +15,17,7 +11,1,10 +5,15,9 +17,12,16 +3,10,14 +6,3,14 +15,10,3 +7,3,10 +4,15,4 +15,6,18 +12,10,2 +14,6,15 +15,4,13 +16,18,12 +18,11,6 +14,13,2 +16,13,14 +18,5,15 +14,17,6 +15,7,3 +14,4,5 +12,19,9 +11,19,9 +6,4,15 +15,3,6 +14,5,11 +8,2,7 +14,11,1 +9,15,5 +13,5,5 +15,8,18 +16,14,7 +13,9,4 +13,8,16 +7,12,2 +13,11,17 +14,3,12 +14,10,20 +7,6,19 +20,11,11 +17,6,8 +10,21,12 +14,18,11 +14,9,4 +4,15,8 +11,19,7 +18,10,14 +15,10,4 +18,8,5 +9,6,4 +5,5,8 +19,13,14 +15,5,8 +11,7,18 +14,13,19 +9,12,19 +17,10,3 +8,17,7 +9,10,5 +5,9,17 +12,13,4 +5,9,3 +2,9,11 +13,19,9 +7,14,4 +4,16,6 +6,18,12 +4,12,16 +4,9,7 +7,2,14 +16,14,16 +4,12,17 +4,15,7 +7,11,2 +15,18,6 +19,14,13 +11,3,17 +4,16,12 +8,7,19 +13,15,18 +10,3,6 +7,4,14 +11,14,2 +6,16,5 +13,3,7 +6,5,15 +4,4,15 +6,5,7 +5,11,4 +15,16,15 +8,17,5 +8,11,20 +18,7,7 +14,6,14 +11,11,19 +14,3,15 +17,6,16 +3,12,11 +18,12,7 +17,3,8 +1,13,9 +7,17,12 +5,9,4 +9,15,2 +4,14,7 +5,10,17 +7,5,7 +10,13,19 +7,4,11 +5,6,14 +5,15,15 +9,5,5 +10,13,17 +16,5,14 +2,10,15 +16,13,15 +14,18,7 +8,4,12 +8,16,8 +5,8,17 +19,8,10 +13,10,19 +9,4,17 +4,13,12 +6,13,4 +14,19,12 +9,17,16 +4,13,6 +12,16,17 +10,16,7 +17,14,7 +15,13,3 +14,19,14 +9,2,8 +16,6,15 +6,16,6 +13,5,4 +3,16,9 +7,7,16 +18,16,9 +12,11,19 +16,5,5 +16,5,15 +2,14,12 +13,1,12 +6,19,13 +7,16,7 +11,5,6 +6,9,19 +13,19,11 +7,10,3 +12,17,18 +18,10,4 +14,14,7 +6,17,8 +10,14,20 +16,18,14 +9,3,7 +6,3,9 +10,2,10 +18,9,14 +10,19,12 +8,4,15 +15,4,12 +11,6,3 +9,10,20 +15,17,10 +7,2,11 +9,4,5 +7,11,3 +7,14,17 +7,6,3 +3,11,6 +9,12,20 +6,4,7 +15,18,11 +18,4,11 +16,11,17 +6,10,5 +17,15,6 +17,10,13 +9,7,17 +11,19,8 +2,8,6 +9,17,7 +2,10,8 +18,7,15 +2,7,9 +7,16,16 +4,7,11 +17,8,12 +7,13,2 +8,4,7 +18,14,14 +8,3,13 +14,5,7 +15,7,4 +2,7,10 +7,16,14 +9,18,5 +4,6,15 +14,14,15 +18,9,10 +11,5,5 +9,13,19 +15,19,10 +17,9,4 +13,14,6 +12,6,5 +11,16,14 +7,10,18 +5,5,6 +16,4,13 +15,14,17 +4,16,9 +12,20,10 +18,14,8 +2,12,5 +4,13,9 +8,14,17 +8,13,2 +16,4,14 +13,6,3 +12,15,5 +10,4,13 +19,8,9 +10,9,18 +2,14,10 +15,14,9 +18,16,12 +9,13,20 +11,3,8 +15,9,3 +15,17,11 +10,6,3 +6,6,15 +5,8,3 +13,13,2 +12,19,13 +11,3,12 +8,3,9 +6,14,6 +17,14,14 +14,6,3 +8,9,4 +10,16,15 +9,11,19 +14,14,3 +9,9,1 +13,17,7 +17,9,9 +8,16,17 +14,7,15 +10,1,10 +6,10,2 +17,8,17 +11,14,15 +15,18,10 +19,10,14 +3,13,10 +15,11,4 +10,17,18 +6,13,7 +8,17,11 +16,7,15 +6,19,7 +4,10,8 +11,16,18 +9,14,19 +15,13,4 +19,13,7 +13,3,11 +1,9,13 +13,13,1 +9,4,4 +14,16,16 +16,12,7 +15,17,12 +10,2,13 +4,5,12 +7,13,18 +19,13,9 +16,6,4 +16,3,9 +15,10,18 +20,11,7 +8,2,8 +5,11,19 +3,8,11 +9,7,5 +9,4,13 +16,15,5 +5,14,12 +15,6,7 +16,17,11 +8,2,13 +3,13,7 +17,10,5 +15,4,11 +9,7,20 +18,9,7 +17,15,5 +16,10,15 +4,17,11 +12,14,17 +2,10,12 +7,18,7 +14,5,12 +3,13,15 +20,12,7 +18,7,13 +19,7,12 +15,4,6 +14,13,4 +4,9,18 +15,5,7 +7,18,8 +16,8,6 +16,10,6 +13,14,2 +11,2,10 +12,9,3 +16,6,13 +12,18,6 +6,14,3 +3,9,13 +5,16,15 +13,19,10 +13,6,15 +4,8,15 +6,5,4 +9,8,19 +15,3,14 +5,4,15 +8,5,4 +6,15,15 +11,5,4 +2,11,6 +13,5,6 +12,17,11 +10,14,16 +13,19,5 +11,13,19 +2,6,11 +2,14,11 +17,8,9 +11,2,9 +3,5,11 +18,8,6 +2,12,15 +17,8,16 +4,6,4 +17,14,16 +7,4,12 +4,3,10 +10,17,13 +10,12,18 +10,10,19 +10,2,7 +14,7,16 +6,15,14 +10,15,17 +12,18,4 +8,4,8 +4,8,6 +12,17,14 +10,5,7 +18,15,8 +5,15,6 +13,10,20 +15,17,5 +2,13,10 +8,18,14 +18,7,5 +3,6,8 +12,17,12 +16,15,17 +20,9,13 +16,5,11 +15,16,8 +7,12,3 +17,11,16 +7,7,2 +17,11,4 +18,10,15 +3,12,7 +18,4,9 +3,14,15 +4,15,11 +14,4,10 +15,9,2 +11,20,9 +11,6,5 +6,10,16 +19,12,9 +16,3,6 +15,9,5 +14,3,10 +3,12,14 +13,3,12 +4,8,10 +6,7,4 +5,4,10 +5,15,4 +3,9,16 +9,19,5 +9,16,12 +14,5,17 +4,6,7 +16,8,16 +9,17,14 +8,3,8 +2,12,13 +11,12,20 +11,15,2 +5,17,15 +6,6,7 +16,15,7 +12,18,14 +12,8,18 +13,17,15 +17,13,15 +10,16,3 +12,3,15 +14,12,4 +5,9,16 +4,14,15 +12,6,4 +9,14,18 +9,15,17 +14,9,17 +11,16,5 +3,17,13 +9,15,4 +12,16,15 +13,4,14 +12,19,14 +19,16,8 +11,3,5 +14,2,14 +8,9,18 +3,15,7 +14,2,10 +4,8,17 +6,17,6 +1,11,7 +6,4,16 +9,17,8 +16,8,17 +15,18,9 +4,10,15 +13,20,11 +10,5,18 +13,13,4 +16,14,18 +10,7,16 +13,14,3 +11,8,2 +4,14,14 +13,18,16 +15,16,12 +17,4,8 +5,7,18 +4,13,15 +10,17,9 +8,18,8 +5,12,4 +17,7,14 +13,18,6 +2,14,9 +11,18,14 +7,4,5 +2,11,12 +7,12,19 +19,11,12 +15,17,17 +3,11,17 +10,13,3 +7,4,17 +8,9,19 +11,1,13 +12,11,2 +2,12,11 +9,5,18 +14,9,18 +3,17,9 +6,16,16 +8,2,6 +10,15,3 +15,12,4 +14,5,15 +18,8,15 +2,14,14 +20,9,12 +3,13,13 +16,6,7 +6,11,18 +16,17,7 +18,8,7 +4,5,7 +1,11,10 +3,7,10 +17,11,6 +12,16,3 +17,7,10 +12,11,1 +12,16,18 +13,11,3 +20,13,7 +17,15,11 +7,19,9 +6,16,17 +7,11,4 +15,12,19 +5,7,16 +4,4,6 +11,5,3 +2,8,9 +4,7,4 +17,6,7 +15,3,7 +16,14,15 +6,8,18 +13,17,14 +18,11,13 +9,9,18 +8,8,19 +6,13,17 +18,6,10 +5,17,7 +3,5,12 +7,5,4 +3,17,10 +8,16,16 +18,6,11 +3,9,14 +7,15,18 +9,7,19 +18,10,7 +7,4,8 +10,8,16 +3,15,14 +17,11,7 +18,7,10 +3,9,8 +3,12,8 +9,2,11 +18,6,13 +15,3,11 +18,11,9 +13,8,18 +3,14,13 +3,10,9 +10,15,5 +16,5,10 +9,19,12 +15,6,4 +16,17,12 +13,18,5 +10,12,20 +15,16,13 +1,10,12 +17,10,14 +8,16,6 +4,12,15 +12,3,12 +15,12,18 +13,3,14 +3,8,16 +5,8,5 +10,18,8 +18,16,10 +2,8,14 +15,18,5 +13,12,2 +16,16,8 +9,19,10 +7,19,15 +3,14,9 +3,14,5 +9,7,3 +20,8,9 +12,13,20 +4,18,8 +11,3,10 +18,14,15 +6,17,17 +2,7,11 +7,15,15 +5,18,12 +8,19,11 +12,13,3 +7,15,17 +15,2,9 +9,3,16 +14,13,17 +17,14,15 +6,14,5 +14,14,5 +14,12,3 +15,16,16 +15,6,19 +10,4,14 +8,6,3 +10,8,2 +18,8,11 +4,4,14 +13,9,3 +4,11,14 +8,1,14 +19,12,13 +8,10,2 +5,15,12 +12,4,15 +13,17,16 +3,16,13 +10,19,7 +18,8,8 +6,13,18 +13,11,19 +3,15,9 +14,15,4 +7,15,5 +4,5,17 +8,4,4 +4,15,15 +2,12,10 +15,13,17 +14,17,4 +5,5,15 +14,11,19 +17,9,16 +9,15,19 +13,20,9 +8,18,7 +13,18,11 +9,3,4 +11,18,11 +11,12,2 +14,4,17 +4,14,9 +13,11,18 +6,17,9 +7,3,13 +12,14,2 +10,11,19 +9,11,20 +15,15,4 +13,13,3 +3,12,13 +5,3,13 +11,11,2 +3,8,6 +19,9,6 +16,6,10 +6,12,18 +16,3,10 +9,4,3 +17,6,14 +6,4,6 +17,13,4 +17,15,13 +5,15,14 +14,16,15 +11,3,13 +3,12,15 +10,14,17 +5,15,16 +16,7,18 +11,10,19 +8,5,6 +7,8,17 +14,12,1 +12,8,20 +18,6,15 +8,19,13 +9,18,10 +19,6,9 +12,8,3 +2,8,10 +2,15,9 +17,12,15 +12,19,8 +11,14,19 +18,4,13 +15,6,6 +4,12,14 +17,17,7 +13,7,5 +17,13,17 +5,6,7 +9,1,10 +6,13,5 +19,5,9 +8,15,2 +2,9,14 +6,18,16 +12,13,17 +12,5,3 +13,4,12 +4,10,5 +5,9,18 +4,10,18 +9,1,15 +5,8,13 +8,8,20 +8,5,16 +5,17,6 +14,3,13 +14,6,18 +5,9,5 +13,18,13 +10,3,13 +16,14,5 +7,8,4 +19,14,11 +2,8,15 +5,14,17 +9,16,6 +9,19,15 +6,15,5 +16,6,14 +15,16,7 +3,7,13 +6,7,16 +7,14,15 +8,18,11 +4,16,13 +10,9,20 +14,8,5 +4,11,5 +14,4,16 +16,9,16 +5,13,4 +4,7,6 +6,17,5 +8,5,18 +10,17,6 +9,11,17 +7,19,10 +16,14,14 +16,17,14 +17,13,18 +11,10,18 +8,17,14 +10,20,11 +7,18,6 +7,19,11 +4,9,11 +12,13,2 +9,20,10 +10,14,19 +1,7,12 +2,13,6 +19,13,6 +6,17,14 +9,2,6 +7,2,13 +3,9,5 +4,10,16 +18,8,12 +5,17,14 +17,15,16 +14,19,10 +10,4,16 +11,14,5 +3,13,14 +4,4,13 +17,7,12 +10,19,11 +11,8,19 +3,16,7 +18,8,13 +4,5,6 +6,17,4 +8,15,16 +18,16,13 +18,11,14 +13,5,18 +13,8,20 +15,3,9 +15,5,5 +6,19,8 +14,14,16 +11,9,18 +10,9,19 +11,18,5 +9,5,14 +8,4,16 +5,4,9 +12,18,12 +9,2,10 +9,16,15 +13,17,6 +17,5,6 +15,16,14 +3,11,9 +16,18,13 +17,4,13 +12,7,4 +8,7,7 +7,19,14 +10,7,4 +11,13,3 +3,8,14 +8,7,3 +10,14,18 +4,14,4 +7,17,16 +19,14,8 +6,9,5 +3,7,6 +18,13,11 +11,11,18 +2,7,15 +17,5,9 +11,18,4 +9,12,1 +5,16,16 +4,3,14 +18,10,16 +10,1,9 +6,12,19 +8,10,1 +20,13,10 +7,7,18 +10,5,4 +11,9,2 +11,20,13 +13,18,14 +10,16,6 +8,12,18 +14,18,16 +14,15,17 +3,15,13 +14,10,19 +18,10,8 +5,8,18 +16,3,7 +13,18,7 +17,18,8 +19,8,14 +15,14,5 +19,12,14 +15,15,16 +17,14,10 +10,18,14 +4,14,5 +12,20,9 +14,7,19 +7,5,9 +15,11,3 +8,14,3 +9,17,15 +9,14,5 +6,13,2 +13,18,15 +4,12,11 +13,3,8 +12,2,7 +9,7,18 +8,18,15 +11,17,3 +17,12,7 +16,13,13 +5,8,14 +11,4,15 +9,1,16 +15,8,4 +12,5,17 +9,1,12 +6,4,14 +20,13,9 +3,12,9 +15,13,15 +4,13,16 +16,14,6 +16,6,11 +13,17,9 +18,14,11 +12,4,16 +17,16,9 +4,6,14 +11,11,1 +5,16,6 +3,10,11 +18,15,6 +18,7,11 +16,5,13 +11,2,7 +8,3,7 +11,16,3 +7,3,11 +14,11,18 +8,20,9 +10,4,15 +10,10,20 +16,16,11 +10,10,2 +9,19,11 +7,3,12 +8,7,18 +7,17,15 +11,14,17 +11,3,6 +14,7,5 +14,17,15 +4,17,12 +17,7,17 +5,16,9 +8,3,6 +17,5,5 +2,7,13 +1,12,10 +10,17,8 +15,17,14 +10,10,18 +12,6,3 +15,17,9 +17,10,6 +2,8,8 +8,3,16 +7,15,13 +16,15,6 +12,15,2 +17,17,12 +17,12,12 +6,3,10 +11,16,2 +19,9,8 +16,11,5 +16,11,15 +4,14,18 +15,18,13 +18,12,13 +3,10,5 +12,3,14 +14,3,7 +18,11,5 +14,8,18 +8,4,10 +9,16,17 +14,4,6 +12,2,9 +8,16,14 +14,18,8 +10,5,19 +4,5,13 +3,6,15 +18,13,7 +14,11,5 +6,4,5 +7,8,5 +7,17,6 +14,10,1 +16,12,3 +5,14,6 +15,13,5 +18,14,6 +4,17,8 +8,6,4 +12,4,8 +16,16,13 +4,13,4 +18,5,11 +13,3,16 +15,9,4 +18,16,7 +12,15,19 +17,16,10 +2,7,7 +7,17,3 +12,13,16 +14,17,7 +11,20,8 +11,15,17 +14,14,13 +11,14,18 +5,4,11 +14,7,3 +5,16,12 +13,2,7 +19,9,5 +9,14,6 +17,16,11 +15,4,16 +4,9,8 +7,9,2 +9,15,16 +14,4,9 +11,4,6 +10,20,8 +12,5,5 +5,7,14 +20,7,13 +12,18,13 +14,6,13 +15,9,16 +6,3,12 +7,5,13 +13,3,9 +19,15,12 +9,10,19 +10,5,15 +8,15,5 +16,13,3 +18,10,6 +8,19,7 +12,19,6 +8,8,3 +3,11,7 +8,7,1 +14,17,8 +4,12,7 +17,16,14 +13,19,7 +12,2,14 +5,16,7 +17,15,17 +10,16,16 +13,9,20 +19,16,7 +11,18,7 +9,11,2 +12,17,5 +13,20,12 +14,8,3 +14,6,4 +9,6,15 +11,19,15 +11,5,17 +5,4,13 +12,19,10 +6,18,9 +5,5,10 +12,18,8 +20,7,9 +13,14,16 +3,9,7 +5,15,17 +18,14,13 +16,17,6 +5,8,8 +4,6,16 +8,12,17 +4,8,8 +6,8,17 +10,18,13 +17,10,15 +18,13,17 +17,6,11 +10,5,17 +9,9,2 +12,9,17 +13,6,4 +11,18,15 +13,6,16 +13,2,10 +6,9,4 +2,15,8 +18,8,10 +5,13,5 +16,8,15 +8,2,11 +1,9,11 +15,19,13 +15,11,19 +19,15,15 +14,17,12 +18,12,6 +6,4,8 +11,17,14 +13,18,9 +17,5,14 +13,11,4 +7,18,15 +9,3,13 +10,5,16 +17,15,10 +16,17,15 +8,18,6 +3,10,4 +16,3,14 +6,17,7 +19,12,7 +20,8,12 +19,9,7 +16,2,14 +17,12,14 +20,12,10 +19,10,11 +9,20,9 +7,14,5 +15,8,2 +11,5,9 +5,10,3 +7,15,7 +18,7,8 +13,19,12 +7,9,4 +17,15,7 +13,8,19 +7,15,8 +17,12,17 +15,19,12 +8,6,14 +16,9,3 +9,9,3 +12,3,10 +16,4,15 +8,3,5 +17,9,11 +15,18,12 +16,3,11 +11,18,16 +11,17,7 +10,15,1 +9,16,13 +14,14,2 +4,7,5 +11,3,4 +19,11,7 +15,6,9 +16,10,3 +10,14,4 +15,18,14 +5,15,8 +10,17,15 +18,9,13 +13,6,17 +5,7,13 +15,8,6 +8,9,2 +4,6,5 +4,17,10 +14,3,14 +18,13,10 +2,8,7 +3,11,15 +15,5,12 +6,12,2 +11,9,20 +10,16,18 +12,15,16 +12,3,8 +7,5,6 +17,9,15 +13,15,15 +12,10,19 +8,9,3 +9,14,2 +5,13,17 +19,8,8 +5,5,14 +14,2,8 +11,1,14 +17,18,13 +7,4,6 +8,5,7 +6,18,11 +15,2,10 +11,9,3 +13,17,13 +3,14,12 +15,6,13 +14,10,3 +11,4,8 +12,18,16 +10,6,17 +18,11,11 +17,5,13 +20,10,13 +6,11,7 +10,2,6 +12,5,15 +5,5,17 +14,16,12 +17,4,9 +11,6,2 +12,11,3 +11,19,13 +18,5,10 +16,3,13 +11,15,4 +13,4,17 +9,19,9 +12,4,7 +4,14,17 +4,12,4 +13,14,4 +5,14,14 +2,7,12 +10,3,5 +8,13,18 +4,14,16 +16,7,14 +11,18,12 +10,5,2 +14,17,5 +9,2,9 +4,11,17 +18,12,4 +12,15,14 +8,4,14 +10,15,2 +17,16,13 +4,4,7 +13,14,5 +5,7,12 +12,19,7 +16,4,10 +10,1,7 +11,12,1 +8,18,12 +10,17,16 +8,13,1 +5,3,12 +12,20,14 +4,9,4 +13,20,13 +19,13,8 +4,16,10 +4,17,13 +14,10,17 +10,6,20 +11,18,6 +4,15,14 +7,13,3 +8,2,15 +18,10,10 +14,16,4 +11,20,14 +10,11,5 +14,2,11 +10,1,11 +19,11,10 +15,6,11 +14,7,4 +10,17,14 +10,12,19 +14,11,20 +17,6,13 +15,5,13 +12,7,3 +10,17,17 +7,17,13 +18,9,16 +12,20,12 +9,6,18 +17,18,10 +16,8,3 +19,10,16 +16,16,7 +16,7,10 +3,16,11 +13,1,13 +4,9,16 +15,8,5 +9,13,3 +3,10,12 +10,16,2 +5,12,18 +17,11,15 +7,2,7 +10,7,20 +7,8,20 +12,20,7 +16,12,6 +16,6,17 +18,6,8 +3,7,8 +6,16,14 +16,12,19 +9,3,17 +17,5,7 +6,11,4 +14,16,9 +4,13,13 +6,19,11 +8,6,16 +9,12,3 +11,2,12 +3,15,11 +5,6,8 +3,10,17 +2,4,11 +16,17,8 +9,18,12 +5,11,3 +12,17,15 +17,4,12 +13,7,19 +11,7,19 +17,16,6 +9,6,16 +5,8,12 +5,14,4 +6,4,11 +10,16,12 +9,12,2 +14,9,2 +1,8,10 +6,9,3 +16,3,8 +6,4,10 +7,2,6 +2,13,7 +8,15,4 +12,15,17 +18,9,12 +8,7,2 +4,8,9 +15,13,18 +15,17,4 +3,9,9 +8,19,14 +16,5,7 +9,3,12 +16,16,17 +12,8,4 +18,3,10 +14,5,16 +4,11,4 +13,1,11 +6,15,13 +2,11,13 +1,11,9 +3,14,6 +16,12,16 +17,7,13 +3,14,16 +14,16,14 +16,7,11 +6,9,17 +4,10,17 +16,8,13 +9,8,2 +11,19,14 +6,8,2 +20,11,9 +17,8,14 +12,2,11 +18,5,7 +10,18,15 +17,8,11 +1,11,15 +5,11,16 +9,1,11 +7,20,11 +10,2,11 +4,8,12 +12,7,19 +17,17,9 +2,11,10 +15,4,7 +16,7,17 +5,6,6 +1,10,11 +9,3,14 +16,17,9 +17,9,6 +4,3,8 +6,10,17 +11,10,2 +6,7,18 +14,14,6 +19,13,11 +18,17,11 +14,5,4 +3,10,10 +15,6,8 +14,19,8 +7,13,17 +4,15,6 +5,5,5 +17,10,8 +21,9,8 +10,3,16 +16,15,12 +15,4,14 +9,17,4 +15,4,10 +15,15,14 +3,17,11 +7,16,5 +8,9,1 +9,4,7 +17,7,9 +19,10,9 +9,17,17 +16,12,15 +11,18,9 +5,5,7 +6,14,14 +8,12,19 +5,12,16 +18,11,8 +11,2,15 +5,13,3 +19,12,11 +20,10,9 +9,4,6 +6,5,13 +7,16,6 +10,2,14 +6,17,11 +15,13,13 +7,18,13 +20,12,11 +2,11,11 +1,13,10 +2,11,14 +14,13,20 +9,3,8 +8,3,17 +11,18,8 +17,11,8 +11,4,7 +15,13,16 +5,3,9 +4,4,12 +18,11,4 +11,14,3 +9,6,19 +10,17,7 +9,18,4 +13,17,4 +12,6,16 +8,10,3 +19,8,13 +7,11,18 +10,10,4 +4,12,2 +13,3,5 +7,9,3 +5,7,3 +17,10,10 +8,10,20 +2,15,10 +13,10,16 +8,13,19 +20,9,11 +3,6,7 +3,6,12 +11,2,6 +7,5,5 +15,14,8 +12,16,5 +16,12,18 +14,13,16 +3,5,14 +19,14,9 +7,17,11 +7,8,18 +16,18,8 +19,11,8 +16,7,16 +15,19,7 +16,11,19 +19,12,10 +6,5,6 +8,20,10 +11,15,3 +15,7,7 +16,16,6 +13,1,9 +9,8,5 +2,11,15 +13,17,18 +7,2,12 +3,11,14 +13,5,14 +17,10,12 +17,6,9 +13,13,17 +2,12,7 +8,1,10 +16,18,9 +18,6,14 +6,5,17 +16,13,2 +18,12,15 +13,4,4 +6,13,13 +15,13,2 +12,10,17 +12,5,4 +15,10,19 +9,2,13 +1,11,14 +17,8,7 +11,10,1 +6,7,2 +11,3,15 +1,7,7 +2,16,15 +18,9,8 +12,18,11 +5,9,14 +15,14,18 +15,3,10 +6,11,2 +18,16,8 +11,17,16 +16,4,8 +5,12,15 +19,10,8 +5,11,18 +12,12,4 +11,10,17 +15,5,16 +13,13,18 +17,13,12 +12,17,4 +15,14,16 +9,10,1 +11,20,12 +12,19,12 +19,11,14 +15,15,17 +10,3,12 +14,2,9 +13,16,15 +9,18,13 +12,9,19 +12,1,9 +3,4,13 +5,4,6 +3,7,11 +12,8,17 +16,6,16 +1,12,13 +5,13,6 +6,12,16 +16,14,17 +6,15,7 +7,3,8 +7,11,19 +12,14,18 +18,10,13 +18,5,13 +16,5,9 +3,7,15 +4,9,14 +14,12,19 +18,15,14 +13,5,17 +4,17,14 +6,6,3 +13,5,2 +5,16,8 +13,9,19 +16,18,11 +9,8,1 +19,16,13 +11,5,2 +15,5,14 +7,17,18 +5,6,10 +10,16,19 +12,1,11 +5,5,9 +8,18,13 +18,14,5 +4,16,11 +14,10,16 +14,18,9 +15,14,2 +18,14,9 +9,17,13 +5,11,5 +12,7,2 +4,5,9 +15,16,10 +13,1,7 +14,17,11 +7,3,4 +15,13,19 +18,14,12 +13,9,2 +17,10,4 +5,6,11 +5,11,15 +10,2,9 +7,3,7 +15,19,9 +6,10,3 +19,8,15 +16,8,14 +17,5,8 +20,10,8 +2,12,9 +17,12,3 +6,18,15 +5,7,11 +16,9,14 +13,1,14 +12,17,16 +13,5,15 +2,9,12 +2,16,10 +13,12,17 +3,13,12 +14,4,12 +20,12,15 +11,3,14 +17,7,4 +19,9,14 +13,17,5 +2,12,6 +7,6,13 +5,10,2 +10,20,12 +16,18,15 +3,7,5 +7,4,9 +12,6,17 +10,1,12 +15,7,6 +17,17,14 +7,15,4 +13,16,18 +15,6,5 +7,14,2 +6,6,8 +14,16,8 +9,5,16 +2,6,12 +14,1,13 +12,12,19 +12,1,10 +4,6,10 +12,16,14 +11,5,16 +3,9,15 +9,16,4 +19,15,14 +5,17,5 +4,15,12 +17,18,11 +8,3,14 +3,8,12 +5,4,8 +10,7,6 +4,8,11 +18,15,9 +17,10,17 +8,11,18 +14,5,18 +12,19,5 +14,5,5 +4,12,5 +8,18,16 +5,13,14 +10,2,15 +6,2,8 +14,10,4 +11,4,13 +7,9,18 +10,11,3 +5,4,12 +6,6,6 +14,10,18 +14,7,2 +8,17,16 +15,2,12 +4,3,11 +11,6,16 +5,11,6 +17,9,8 +12,2,6 +13,3,4 +12,13,1 +17,14,8 +6,3,15 +20,10,14 +3,13,16 +17,12,6 +16,13,11 +2,11,16 +8,11,2 +2,9,5 +15,3,13 +5,7,7 +17,11,13 +18,16,6 +15,12,5 +10,8,4 +9,16,5 +17,7,15 +10,3,8 +2,5,13 +8,14,7 +7,1,12 +1,9,10 +6,14,18 +1,12,8 +19,14,14 +11,4,16 +13,15,2 +9,15,3 +11,1,15 +4,2,10 +4,13,8 +11,12,18 +14,6,19 +13,6,19 +17,9,17 +10,11,17 +1,11,8 +6,5,10 +5,7,17 +8,15,7 +12,17,9 +10,10,1 +1,13,13 +8,17,13 +19,13,12 +9,8,16 +4,16,16 +15,16,4 +3,7,16 +13,7,4 +14,16,7 +20,11,13 +6,10,4 +7,9,19 +4,9,5 +15,2,14 +7,16,9 +10,3,14 +11,19,11 +4,9,9 +8,7,6 +17,8,8 +2,13,8 +15,13,6 +13,5,3 +15,15,15 +10,11,18 +7,18,12 +12,1,13 +10,19,14 +10,13,5 +3,15,12 +3,10,8 +16,18,10 +3,11,5 +11,13,20 +12,15,6 +17,6,12 +6,5,16 +13,17,17 +13,3,17 +3,16,6 +12,14,1 +4,11,6 +18,5,6 +11,20,10 +8,6,17 +16,15,14 +10,14,5 +6,15,17 +12,3,13 +13,3,10 +9,2,14 +11,1,12 +3,6,9 +3,12,4 +13,10,4 +19,12,6 +12,4,18 +14,4,8 +18,15,15 +13,12,1 +7,19,8 +2,8,16 +12,12,21 +11,8,18 +10,18,5 +12,9,5 +10,15,4 +17,14,13 +10,18,10 +8,16,5 +20,14,11 +8,7,15 +11,6,18 +10,20,9 +8,2,9 +1,9,8 +4,8,16 +10,12,3 +17,7,11 +5,7,15 +5,6,4 +11,3,7 +17,13,9 +8,14,5 +12,16,6 +16,7,13 +4,14,11 +19,7,10 +8,18,17 +16,14,13 +13,8,4 +1,12,9 +8,5,13 +6,8,16 +12,3,5 +19,6,13 +13,4,13 +1,14,9 +16,12,5 +6,18,10 +13,3,13 +5,18,10 +18,5,9 +6,18,8 +17,14,17 +12,17,10 +2,14,7 +5,5,16 +7,12,15 +1,12,7 +8,14,19 +7,8,19 +10,10,17 +5,13,15 +19,7,13 +5,6,18 +3,11,16 +4,5,5 +11,14,6 +9,10,18 +16,13,17 +13,19,14 +15,15,6 +14,1,11 +6,10,19 +11,3,11 +17,7,7 +16,13,19 +16,14,4 +2,6,9 +19,14,15 +11,11,20 +7,6,5 +4,16,15 +8,17,8 +8,16,18 +18,4,7 +6,14,15 +7,17,17 +7,6,16 +7,18,5 +5,6,9 +12,18,10 +5,2,9 +2,5,11 +20,10,11 +20,11,14 +19,5,11 +10,7,2 +14,19,13 +12,5,14 +5,7,5 +11,9,1 +6,3,13 +16,4,7 +9,1,8 +20,8,11 +6,14,8 +17,8,4 +6,15,18 +14,15,18 +18,14,7 +5,5,13 +13,2,8 +11,15,19 +3,16,14 +15,18,15 +5,19,12 +13,7,15 +9,10,17 +14,4,11 +1,10,13 +19,9,15 +13,2,6 +6,4,12 +7,13,15 +9,8,18 +7,9,16 +6,8,14 +9,4,8 +16,15,9 +6,9,18 +9,5,13 +12,6,19 +5,17,13 +15,17,6 +3,5,10 +16,4,6 +6,15,3 +16,2,12 +19,11,15 +14,12,16 +8,2,12 +11,11,3 +9,20,11 +18,13,12 +15,12,15 +2,10,9 +6,3,8 +3,13,5 +8,19,6 +1,11,11 +13,20,7 +7,14,18 +4,9,12 +8,17,17 +7,19,12 +5,9,6 +4,11,13 +17,7,16 +15,9,14 +12,17,8 +11,13,2 +19,14,12 +19,7,9 +12,8,16 +16,7,4 +4,13,7 +12,7,16 +14,1,12 +6,18,5 +7,20,13 +18,12,16 +13,16,17 +13,16,4 +9,1,13 +6,12,5 +7,16,18 +4,10,13 +15,1,12 +14,12,20 +1,7,10 +12,17,7 +13,12,16 +9,9,17 +13,14,19 +5,12,6 +6,2,11 +11,18,10 +17,12,18 +15,17,16 +1,6,9 +12,4,3 +10,3,9 +4,9,17 +10,3,7 +14,18,6 +12,9,2 +14,20,9 +8,19,9 +4,6,9 +10,19,8 +19,12,15 +2,10,7 +8,5,10 +7,13,7 +15,7,2 +4,12,13 +17,9,3 +9,12,18 +6,8,15 +6,18,14 +4,7,15 +15,12,16 +18,6,7 +7,4,7 +8,3,12 +1,10,10 +6,18,6 +1,11,12 +17,11,12 +9,19,6 +14,2,7 +19,16,9 +6,17,12 +20,9,9 +15,2,11 +9,7,16 +6,16,10 +14,12,17 +8,20,12 +10,20,15 +12,6,2 +11,15,6 +18,12,5 +16,13,7 +10,6,19 +13,17,12 +8,8,1 +13,2,15 +13,16,13 +7,18,14 +17,10,9 +15,16,9 +7,10,20 +9,2,15 +18,9,5 +8,17,9 +15,15,7 +7,12,5 +4,7,16 +13,8,17 +10,3,17 +12,18,17 +12,14,15 +12,20,13 +9,18,16 +14,11,17 +7,6,18 +1,13,12 +6,12,20 +10,17,10 +12,2,13 +13,20,10 +9,16,3 +12,4,17 +11,2,5 +7,12,4 +13,11,20 +12,17,13 +11,5,19 +8,16,15 +20,12,13 +5,11,7 +11,8,4 +18,11,7 +11,12,19 +14,9,5 +7,16,4 +7,14,16 +14,3,16 +2,9,8 +10,1,8 +4,12,6 +12,7,5 +15,17,15 +18,12,8 +19,10,13 +12,18,7 +18,10,12 +2,9,7 +11,19,6 +6,16,4 +7,17,10 +15,3,16 +16,10,19 +15,7,16 +4,8,14 +17,12,10 +8,18,9 +9,15,15 +7,8,2 +13,9,17 +8,13,17 +8,12,5 +16,7,8 +4,7,17 +17,10,7 +4,9,3 +4,7,9 +1,8,13 +10,14,2 +20,7,12 +13,4,5 +8,20,7 +8,15,19 +6,14,2 +19,8,6 +13,8,3 +8,8,2 +11,1,7 +3,15,15 +6,2,10 +7,13,5 +12,10,1 +16,10,18 +8,2,14 +17,16,5 +17,3,10 +0,10,11 +5,3,7 +5,5,12 +10,6,2 +11,5,14 +9,7,4 +5,4,7 +12,18,3 +6,11,19 +16,8,5 +7,19,7 +3,12,12 +18,7,16 +14,13,6 +6,11,15 +14,7,17 +13,17,8 +14,6,5 +9,13,1 +9,1,9 +9,14,20 +6,2,6 +9,18,9 +5,14,8 diff --git a/data/18_2023.txt b/data/18_2023.txt new file mode 100644 index 0000000..48a2458 --- /dev/null +++ b/data/18_2023.txt @@ -0,0 +1,618 @@ +L 7 (#357ea0) +U 2 (#931393) +L 4 (#3a7350) +U 10 (#02c563) +L 4 (#81f110) +U 5 (#74d543) +L 9 (#256002) +U 6 (#708cf3) +L 4 (#4c90e0) +U 8 (#0ac253) +L 8 (#4c90e2) +U 5 (#693483) +R 6 (#256000) +U 6 (#27cc33) +R 8 (#3bf170) +U 3 (#376663) +L 4 (#035da0) +U 6 (#045753) +L 10 (#826390) +U 4 (#7a8c43) +L 10 (#271b30) +U 10 (#6d21f3) +L 10 (#4a97c2) +D 2 (#641f33) +L 6 (#8468c2) +D 3 (#4316e3) +R 10 (#2dc6b2) +D 11 (#5776a3) +R 7 (#6319d0) +D 7 (#6573e3) +L 11 (#7e0de0) +D 6 (#7d1f63) +L 6 (#4c51e2) +D 5 (#5de033) +L 5 (#59cb30) +U 11 (#2bb943) +L 3 (#434650) +U 6 (#2bb941) +L 8 (#20d440) +U 6 (#3c4843) +L 4 (#535852) +D 6 (#818223) +L 7 (#144d02) +U 4 (#818221) +L 3 (#564072) +U 5 (#2e7f43) +L 12 (#4c51e0) +U 9 (#3b61d3) +L 9 (#14d352) +U 4 (#727ac3) +L 7 (#2f39c2) +U 7 (#0516d3) +L 4 (#9d1aa2) +U 4 (#22d7e3) +R 9 (#321810) +U 6 (#740ad3) +R 5 (#4cfb40) +D 7 (#740ad1) +R 8 (#38f8c0) +D 11 (#1f22e3) +R 4 (#0e5630) +U 18 (#62bcb3) +R 3 (#292920) +D 6 (#7b6263) +R 3 (#0d3bd0) +U 9 (#82c2b3) +L 8 (#426530) +U 13 (#40cf11) +L 2 (#2ca6c0) +U 4 (#577ac1) +L 6 (#1ec6a0) +U 3 (#247691) +L 10 (#69b330) +U 6 (#3db1f3) +L 5 (#357750) +U 5 (#adbae3) +L 13 (#508510) +D 8 (#0ebc21) +L 2 (#11ae92) +D 4 (#8e3c61) +L 12 (#11ae90) +U 9 (#4e7451) +L 8 (#11ac20) +U 3 (#633511) +L 3 (#1091b2) +U 16 (#5b17e1) +R 3 (#25f402) +U 4 (#50ed21) +R 13 (#50e172) +U 8 (#ac0503) +R 13 (#5ca752) +U 9 (#119051) +R 4 (#012c32) +U 8 (#aabdf1) +R 2 (#678e72) +U 5 (#46f071) +R 7 (#890120) +U 4 (#0c2131) +R 7 (#62ffe0) +U 10 (#08cdc1) +R 7 (#0927c0) +D 14 (#880c31) +R 7 (#0927c2) +U 9 (#4043a1) +R 3 (#533660) +U 4 (#314eb3) +R 5 (#89f670) +D 7 (#59a0f3) +R 11 (#41cfc0) +D 9 (#20c953) +L 8 (#83fc42) +D 9 (#798a53) +L 2 (#83fc40) +D 11 (#2f7c73) +R 10 (#5a7880) +D 4 (#72f003) +R 4 (#184650) +D 3 (#1146d1) +R 5 (#5ce420) +D 4 (#915c31) +R 11 (#257a20) +U 5 (#78faf3) +R 13 (#595510) +U 8 (#29a813) +R 3 (#050b70) +U 8 (#1bcac3) +R 12 (#53c3a0) +U 3 (#752613) +R 10 (#282602) +U 7 (#6d5a53) +R 6 (#6266d2) +U 6 (#0ff141) +R 8 (#40f1e2) +U 6 (#0ff143) +R 7 (#814a02) +U 9 (#22a8b3) +R 2 (#469720) +U 2 (#358e33) +R 12 (#9d5ce0) +D 5 (#358e31) +R 3 (#2cb960) +D 3 (#17cf63) +L 4 (#a20580) +D 4 (#29c2e1) +L 10 (#9c87f0) +D 5 (#3cd241) +R 8 (#4c6400) +D 2 (#3aca21) +R 2 (#661a10) +D 9 (#997e51) +L 3 (#661a12) +D 4 (#4c65e1) +L 7 (#82e570) +D 4 (#72e2a1) +R 14 (#369ab0) +D 3 (#256c01) +R 7 (#7449e0) +D 7 (#582f41) +R 8 (#820b42) +U 5 (#212c51) +R 7 (#30a812) +U 6 (#8bd2f1) +L 5 (#8e4622) +U 12 (#016441) +L 6 (#030532) +U 9 (#7ffcc1) +L 4 (#362f62) +U 4 (#41b291) +R 10 (#77ccb0) +U 7 (#3e3811) +R 5 (#52abd0) +U 3 (#3e3813) +R 13 (#30e6c0) +U 6 (#2763d3) +R 13 (#468d70) +U 9 (#2763d1) +R 4 (#490740) +U 5 (#16c7b1) +R 13 (#0698c0) +U 3 (#3092a1) +L 6 (#34dc72) +U 5 (#6eedb1) +L 4 (#34dc70) +U 5 (#3bb131) +L 13 (#60d040) +U 3 (#502ad1) +L 3 (#42e190) +U 16 (#1550a1) +L 5 (#9144e0) +U 5 (#0e1761) +L 9 (#0740d2) +U 7 (#4ff951) +L 8 (#2ca952) +U 7 (#309051) +L 3 (#a03c52) +U 12 (#05c2d1) +L 3 (#800432) +U 8 (#3dce71) +L 5 (#192882) +U 9 (#4c2d43) +L 5 (#419c22) +U 5 (#b1aaf3) +L 4 (#66bec2) +U 6 (#24f6a3) +L 7 (#2d7eb2) +U 10 (#5c6651) +L 6 (#167982) +D 6 (#5e9201) +L 7 (#167980) +D 10 (#1ba941) +L 6 (#1887a2) +D 4 (#4c2d41) +R 12 (#465332) +D 7 (#4f4261) +L 5 (#18f3b2) +D 14 (#3a0001) +R 5 (#18f3b0) +D 5 (#477441) +R 11 (#03f1b0) +D 7 (#66e581) +L 6 (#09d890) +D 8 (#3db093) +L 9 (#252580) +D 7 (#1b8853) +L 3 (#963ea0) +D 6 (#1b8851) +L 5 (#132d70) +D 8 (#3db091) +L 8 (#0f6be0) +D 6 (#66e583) +L 5 (#5e59d0) +U 10 (#1fe881) +R 4 (#4b8912) +U 10 (#7eb3c1) +L 7 (#4b8910) +D 8 (#166151) +L 7 (#49db70) +U 8 (#02a761) +L 10 (#39e420) +U 3 (#492dd1) +R 6 (#48e850) +U 5 (#703fb1) +R 16 (#4c6b72) +U 3 (#10fdd1) +R 2 (#359bc2) +U 3 (#a2b691) +L 4 (#3c6712) +U 3 (#0613b1) +L 11 (#53dde2) +U 11 (#662e11) +L 10 (#7164d2) +U 3 (#3af111) +R 4 (#3a2be2) +U 3 (#040021) +R 3 (#0da842) +U 3 (#b32a51) +R 4 (#52af42) +U 15 (#035bb1) +R 6 (#0d6b52) +U 5 (#261bd1) +R 5 (#7314e0) +U 3 (#50ed33) +L 13 (#526630) +U 5 (#704043) +L 9 (#3f1350) +U 7 (#0c7273) +R 5 (#493b90) +U 2 (#30c193) +R 9 (#33ba10) +U 7 (#75b9c3) +R 7 (#0c2ef0) +U 8 (#042593) +R 10 (#5b3cc0) +U 10 (#66b891) +R 8 (#33d8e0) +U 5 (#43e851) +R 3 (#30ca70) +U 2 (#099de1) +R 8 (#54ef50) +U 5 (#4adfa1) +R 5 (#87a9b2) +U 6 (#765601) +R 2 (#87a9b0) +U 8 (#02cc61) +L 14 (#063ef0) +U 6 (#242451) +R 5 (#04c3f0) +U 3 (#2622d1) +R 11 (#770830) +U 9 (#64cd61) +R 8 (#3f7700) +U 3 (#97bc41) +L 14 (#4328a0) +U 6 (#1d3ed1) +L 10 (#3f5090) +U 10 (#549f11) +R 5 (#401c12) +U 9 (#1db141) +R 9 (#3ab0c2) +U 6 (#027201) +R 12 (#8398b2) +U 2 (#5e76d1) +R 6 (#6b9210) +D 6 (#59c901) +R 9 (#6b9212) +D 5 (#23be31) +R 5 (#170352) +D 6 (#6404d1) +R 12 (#4577e0) +D 7 (#a84041) +L 14 (#4a3910) +D 4 (#528a21) +L 4 (#459bd0) +D 8 (#5c3d21) +L 4 (#6efdb2) +D 6 (#20a931) +R 3 (#15cd22) +D 7 (#7c9c13) +R 6 (#7e8af2) +D 6 (#2b0663) +R 7 (#304942) +D 3 (#277bb3) +R 6 (#2ade02) +D 3 (#b2ff33) +R 13 (#2524b2) +D 3 (#1cc843) +R 4 (#6c16c2) +D 3 (#876163) +R 3 (#436032) +D 8 (#6520e1) +R 2 (#1c69d2) +D 15 (#a123d1) +R 5 (#1c69d0) +U 6 (#785fd1) +R 3 (#18e722) +D 11 (#a7a271) +R 7 (#04d402) +D 3 (#20a933) +R 10 (#83d842) +D 5 (#89d7b1) +R 4 (#672c02) +D 10 (#394b21) +R 5 (#520a32) +D 4 (#5b1951) +R 8 (#187f52) +D 3 (#471901) +R 7 (#2d9542) +D 13 (#b049b1) +R 3 (#526ba2) +D 9 (#6445d3) +R 5 (#7ddda2) +D 2 (#6445d1) +R 17 (#8f7f92) +D 3 (#824f13) +R 9 (#29ec62) +D 4 (#31cb73) +R 8 (#53c0a2) +D 7 (#1b1321) +L 6 (#6183d2) +D 3 (#4e9f01) +L 3 (#6582e2) +D 13 (#484c11) +R 9 (#0683e0) +D 8 (#8186e1) +L 7 (#7c7340) +D 7 (#8186e3) +L 4 (#440f90) +D 8 (#1ba571) +L 7 (#267130) +D 6 (#288601) +L 3 (#6c3dc0) +U 8 (#36ceb1) +L 2 (#03b370) +U 10 (#27e7d1) +L 3 (#4ecfd0) +U 6 (#840633) +L 6 (#281d50) +U 4 (#840631) +L 8 (#70c000) +D 11 (#27e7d3) +L 8 (#506fe0) +D 2 (#36ceb3) +L 7 (#549e70) +D 4 (#3855e1) +R 7 (#826de2) +D 4 (#459461) +R 8 (#1b5db2) +D 7 (#588f91) +L 8 (#97c742) +D 4 (#72fbf1) +L 5 (#5ea652) +D 5 (#565203) +L 13 (#4d0d22) +D 9 (#753983) +R 13 (#40f5b2) +D 5 (#459463) +L 4 (#00e1e2) +D 3 (#054db1) +R 7 (#1109b2) +D 3 (#51ac81) +R 6 (#786302) +D 5 (#1d4111) +R 11 (#384d62) +D 8 (#0abf31) +R 3 (#9e4960) +D 2 (#56d781) +R 5 (#2370b0) +U 15 (#1e2401) +R 5 (#015242) +D 2 (#09c081) +R 10 (#068442) +D 6 (#8b50f1) +R 2 (#74fa32) +D 6 (#8b50f3) +R 3 (#5c62e2) +D 9 (#4e15b1) +R 9 (#882932) +D 11 (#5207a3) +R 6 (#858b62) +D 6 (#87cd73) +R 4 (#389ac2) +D 8 (#0093b3) +R 6 (#2c2582) +D 6 (#483b71) +R 4 (#967a82) +D 11 (#483b73) +R 8 (#139412) +D 3 (#43d833) +R 3 (#39ce82) +D 12 (#1b3e53) +R 10 (#70ef10) +D 4 (#2cb373) +L 13 (#32fb60) +D 3 (#5239e3) +L 13 (#98c7d2) +D 4 (#323a43) +L 13 (#0b22a2) +D 8 (#2ce053) +L 7 (#7696e2) +D 7 (#505353) +L 8 (#b06560) +D 11 (#127133) +R 3 (#0a2af2) +D 10 (#7fcd23) +R 11 (#646af2) +D 9 (#19db13) +R 3 (#1facf2) +D 4 (#278353) +R 9 (#7da710) +D 12 (#97eec3) +R 3 (#324190) +D 7 (#0d7793) +R 4 (#afe8a2) +D 10 (#5c84d3) +R 5 (#812562) +D 4 (#2d50f3) +L 16 (#b1f652) +D 3 (#051f51) +L 6 (#47f1c2) +D 10 (#9968d1) +L 2 (#64a0a2) +D 6 (#9968d3) +L 6 (#6b9ae2) +D 2 (#6972b3) +L 8 (#319422) +D 6 (#a5c243) +L 6 (#1572e0) +D 5 (#a2e233) +R 13 (#1572e2) +D 8 (#0f0be3) +R 7 (#5c79c2) +D 3 (#2ebab1) +R 3 (#431082) +D 10 (#090461) +R 5 (#222c82) +D 9 (#4e4681) +L 4 (#732d30) +U 6 (#678f01) +L 5 (#387c20) +U 9 (#71c291) +L 7 (#aba952) +D 11 (#059f41) +L 4 (#222c80) +D 4 (#3944a1) +L 8 (#431080) +D 7 (#22e801) +R 6 (#03da22) +D 4 (#264601) +L 6 (#5eb852) +D 7 (#2cb323) +L 13 (#1d2bd2) +D 2 (#2cb321) +L 3 (#5b2ef2) +U 9 (#264603) +L 2 (#16f302) +U 6 (#051f53) +L 9 (#4bd602) +U 4 (#385d93) +L 9 (#736600) +U 6 (#38ebf3) +L 13 (#41dc90) +U 5 (#073e13) +L 6 (#031ff0) +U 11 (#784b53) +L 5 (#50b290) +U 7 (#3e8d53) +L 8 (#50b292) +U 5 (#752f43) +L 15 (#4583e0) +U 5 (#7dbe13) +L 3 (#8db280) +U 4 (#4212a1) +L 12 (#a4bbf0) +U 3 (#66d011) +L 5 (#336120) +U 4 (#479a81) +R 6 (#78af90) +U 4 (#352181) +R 5 (#78af92) +U 10 (#421b01) +R 5 (#4143e0) +U 4 (#494a51) +R 13 (#57dea0) +U 9 (#312a23) +R 12 (#894440) +U 6 (#312a21) +R 5 (#4e2a70) +U 4 (#61a223) +R 3 (#1c5820) +U 7 (#146ba1) +R 5 (#4da250) +U 3 (#146ba3) +R 10 (#555d30) +U 2 (#52e6c3) +R 3 (#078620) +U 12 (#23ce33) +L 10 (#15b752) +U 5 (#3447b1) +L 8 (#656962) +U 9 (#3447b3) +L 3 (#65f2b2) +D 14 (#05c0d3) +L 4 (#20fb32) +U 10 (#23fea3) +L 11 (#6fb332) +U 9 (#3eac33) +L 7 (#00ea52) +D 13 (#8b56d3) +L 2 (#115f30) +D 7 (#365993) +L 2 (#167ef0) +D 3 (#3a33e3) +L 2 (#1e9ef0) +D 7 (#755883) +L 5 (#6e64b0) +D 5 (#6b9661) +L 6 (#76e2b0) +U 3 (#43f601) +L 5 (#46e7a0) +U 7 (#5c9be3) +L 3 (#328892) +U 9 (#8c7073) +R 5 (#3c6020) +U 6 (#943bd3) +R 3 (#498750) +U 10 (#0f8f33) +L 11 (#36f0f0) +D 7 (#2af483) +L 12 (#207430) +D 3 (#0c9011) +L 10 (#0ed572) +D 5 (#426c31) +L 9 (#7ddd92) +D 5 (#319fb1) +R 11 (#7ddd90) +D 4 (#44de41) +R 6 (#0ed570) +D 3 (#094551) +R 10 (#004c10) +D 4 (#6b53f3) +L 11 (#506b90) +D 4 (#2f2a23) +L 5 (#39b5f0) +D 3 (#8ca543) +L 6 (#39b5f2) +D 10 (#20ea63) +L 2 (#66cec0) +D 2 (#22cf93) +L 11 (#3ee352) +D 6 (#591893) +R 12 (#14d660) +D 4 (#5c95f3) +R 3 (#14d662) +D 4 (#37d7b3) +R 5 (#025f32) +D 13 (#7ddd23) +L 8 (#3a93c2) +D 4 (#063123) +L 12 (#9a7522) +D 3 (#61ae11) +R 9 (#572b22) +D 4 (#4fcde1) +R 9 (#130512) +U 4 (#a1ee51) +R 6 (#130510) +D 4 (#1e2a31) +R 11 (#275c72) +D 3 (#129543) +L 10 (#585302) +D 11 (#608d93) +L 8 (#62bf02) +U 11 (#27f113) +L 9 (#322732) +D 3 (#4a7f63) +L 6 (#664bb2) +U 6 (#5a4ea3) +L 9 (#507222) +U 3 (#2e1ca3) diff --git a/data/19_2020.txt b/data/19_2020.txt new file mode 100644 index 0000000..e0c5e75 --- /dev/null +++ b/data/19_2020.txt @@ -0,0 +1,516 @@ +58: 127 99 | 105 36 +56: 71 99 | 102 36 +116: 36 | 99 +42: 19 36 | 68 99 +67: 36 71 | 99 73 +117: 81 99 | 80 36 +77: 99 37 | 36 83 +106: 27 99 | 32 36 +73: 36 99 | 99 99 +126: 15 36 | 73 99 +133: 99 99 | 36 116 +92: 99 51 | 36 14 +61: 99 21 | 36 6 +6: 54 116 +33: 36 103 | 99 9 +131: 54 99 | 15 36 +81: 36 38 | 99 78 +93: 99 100 | 36 87 +1: 113 99 | 129 36 +36: "b" +70: 99 130 | 36 122 +76: 99 4 | 36 44 +79: 65 99 | 48 36 +99: "a" +108: 118 99 | 96 36 +15: 36 36 +2: 99 102 | 36 27 +103: 109 99 | 136 36 +9: 23 99 | 63 36 +12: 15 99 | 123 36 +137: 36 54 | 99 20 +13: 36 30 | 99 70 +7: 99 32 | 36 102 +94: 18 36 | 59 99 +71: 36 99 +3: 99 104 | 36 62 +4: 72 99 | 114 36 +32: 36 36 | 99 36 +21: 27 99 | 122 36 +52: 99 20 | 36 73 +135: 99 116 | 36 99 +31: 95 99 | 89 36 +24: 99 107 | 36 125 +19: 36 77 | 99 28 +112: 15 36 | 15 99 +89: 99 50 | 36 111 +23: 99 34 | 36 73 +69: 36 54 | 99 73 +85: 12 99 | 25 36 +53: 36 54 +95: 36 76 | 99 117 +124: 106 99 | 22 36 +10: 102 99 | 122 36 +107: 99 133 | 36 34 +129: 54 99 | 71 36 +16: 36 130 | 99 27 +86: 36 122 | 99 102 +45: 97 36 | 41 99 +102: 99 99 | 116 36 +25: 32 36 | 133 99 +87: 99 52 | 36 115 +119: 91 99 | 101 36 +34: 99 99 +121: 36 91 | 99 52 +29: 102 36 | 27 99 +20: 116 116 +47: 36 36 | 99 99 +49: 123 99 +38: 99 98 | 36 86 +123: 36 36 | 36 99 +48: 36 123 | 99 54 +51: 36 54 | 99 102 +98: 73 99 | 47 36 +26: 20 99 | 34 36 +68: 36 88 | 99 108 +111: 75 36 | 5 99 +54: 99 36 | 99 99 +109: 47 36 | 20 99 +0: 8 11 +17: 36 57 | 99 120 +66: 99 132 | 36 35 +62: 36 130 | 99 32 +59: 36 130 | 99 122 +44: 99 60 | 36 92 +122: 99 36 +74: 126 99 | 16 36 +37: 82 99 | 85 36 +65: 130 36 | 27 99 +80: 58 36 | 43 99 +55: 99 130 | 36 20 +118: 66 36 | 3 99 +5: 24 36 | 124 99 +14: 36 54 | 99 71 +11: 42 31 +96: 40 99 | 61 36 +22: 36 34 | 99 135 +97: 36 27 | 99 20 +43: 99 128 | 36 29 +101: 73 36 | 133 99 +91: 133 36 | 54 99 +114: 36 112 | 99 52 +83: 79 99 | 74 36 +28: 134 99 | 39 36 +72: 99 26 | 36 49 +78: 36 25 | 99 90 +30: 102 99 | 133 36 +27: 99 36 | 36 99 +35: 99 27 | 36 15 +84: 2 36 | 64 99 +75: 1 36 | 119 99 +115: 130 36 | 71 99 +39: 99 84 | 36 121 +40: 99 69 | 36 110 +63: 36 32 +88: 17 99 | 93 36 +120: 53 99 | 55 36 +105: 99 133 | 36 123 +127: 36 123 | 99 47 +134: 99 46 | 36 45 +50: 36 33 | 99 138 +82: 131 99 | 59 36 +104: 122 99 | 27 36 +8: 42 +113: 34 36 | 123 99 +125: 99 123 | 36 54 +64: 54 36 +46: 36 10 | 99 107 +130: 99 36 | 36 116 +18: 36 54 | 99 34 +110: 99 34 | 36 27 +136: 99 15 | 36 73 +132: 122 36 | 133 99 +128: 15 99 | 102 36 +57: 36 56 | 99 67 +100: 99 63 | 36 137 +60: 7 99 | 63 36 +90: 36 122 | 99 133 +41: 34 36 +138: 99 94 | 36 13 + +babbbbababbbababaabaabab +aaababbaababbabbaababbabbaaabaab +abaaaabbaabaaabaababbbbaabbaaaba +abbaabbbbbaaaaaabaaaaaaa +aabaaaababababababaaababbabbbaaa +aaabaaabbbabbaaabbaababb +aaabbabbabbbaababbbabbab +bbbabbbbaaabbabbbaabbaab +babbbaabbaaabbaaaabaaaabaabbbaabaabbbaaaaabbbbbb +abbaaabbabbabaaaaaaaaabb +bbbabbaaabaabbbbaaabbabbaabbbbbbbaababab +ababbbabbabbababbaabbbbbbbbabaabaabbbbbb +bbbbbbbbaabababababbbbba +aaabbbbbabbababbabbaaaaa +aaabbabbbaabbbaabaababbabbbbbbabaabaaabaababaaba +abaaaabaabaaababaabbbbbb +bbbbbabbaababbbbaabbaaba +bbbaabaabaabbbbaabbabaaabababaaaaabbbabaababaababbbbabaa +abaaaabbbbaabbbabaababab +abababbabbaabaaaabbbbaba +babbbabbbbabbabaaaababbb +aabbaabaaabbbaaabbabaaaa +abbabaaababbbbababbbbaaabbabbbaa +babababaabbaabbbbabbbbabbaaabaabbbabbbaa +abababababbbbbbbaaabaabb +bbbbbbaabaababaabbbaabba +bbabaababbababbbbaabbaba +aaaabaabaaababbbabaabbabbaaaaaaaaaaaabba +babaabaaabbababbaabbbbaa +aababbbbabaabbabbbbabbbaababbbababbaaaabbabaaaab +babaabbbbababababbababab +babababbbababbaaabbbaabaaaaabbbbaaaabaabaaabaaabaabaabbbbaaaaaaabaababab +ababbababbbbaaabbabababbabaaaabbbbaabbbbaaaaabbabbaaaabbbbbbbbbabbbaaabbaababbbaaaabbaaaabbabbba +aaabaaabaabababaabbababaabbbaabaaaabaabb +bbbbbbaabbaaabbabbaaababaaaababbbaaabbba +bbbbbaaaaabaabbaabbabaabaabbbbbababbaababaaabbabaabbabab +bbaaabbbbaabbbabbbbaaaabbabbbabaaaaaabaabbaabbbbbbbabbab +baabaaabbbbabbbabbbaaabbaabbbbbb +bbbbaabaaabbbaababbbbaaaabbbbbab +bbbabbbabbbaaabbbbbaabbb +abbbaababaababaabaaaaaaa +bbbbbabbbabbaabaabaababa +aababaaabababbabbabbbaaa +aabbabbbbbaaaabbbbaabbbbababbbbabbbaaaaa +bbabaaabbabbbbbbbbbbaabb +babbababaaabbabbbaaabbbb +abaaabbaabaaabbaaabbbbba +baababbbabbabbaabbababbbbaabaabaabababaabaabbaba +bbaabbbabaaabbaabaababab +bbbbbabbabbababbbbaabbbb +bbbbaaaaabbababaababbbaa +bababababaababaabaababbaabaaaaaa +bbbbaaaaaababaabbbbaaaaa +aababaabbaaaabbbabbabbbb +abbbababaaabbbbaabbbbbbbaabaaaaa +aaabaaaaaaabbbaabbbabbabbaaaabbbabbabbabaabbabaababaabba +bbaaabbababaaaaababaaabb +bbbabbbbbbaabbbbbabbbbbbbabbbaababaabbbbaabaaaaa +bbbbabbbabababbaaaabbaab +abaabbabaababaabbaaaabba +ababababbbbbbabbaaaaabaaabbbbbbbbababbbbaaabbbab +bbbbbbbabbbbbaabbbbabbaaaaaabbababbaabbbabbaaaab +abbbaababbaabaaaaabbbbaa +bbaaaabaaaaaaabaabababbb +babbabbbbbbbbbbbaabbbaaa +abababbaaabaabbaaaabbabbaaabbbaabaaaabaa +babaabaaabbabbabababbaab +abbababaabaaabbbaaabaaaaaaaaabbbbbbaabbb +babbabbaabbababbbaabbaba +babbabababababaaabbbaababaabbbbbaababbabbbaaaabaaaaabaaaabbbaaab +babaaaaaaaabbaaaabaaaaaa +bababaaabbbbbbbabaaababa +bbaababaaaabbbbaaabaabaabbaaabaa +abaaabbaabbabbabaababbaa +abbaaabbbaabbbaabaabbbab +bbbaaaabbbabbaabaabaabab +babbbbaaabaaabbabaaabbaaabaaabaa +bbbbbbaaaabababaababbbbb +abaabbaaabbbbbbbbabbbbba +abaabbbbbabbabbbbbbabaaa +baaaabbbabbbbbbbaaaabbba +aabababaabaabaaaabbabbba +bbaaabbababbbbabbbbbaabaaaaabbabaaabbaaaabbbbabbabbbbaababaaaaab +abbbbaabababaaaabbbaaaabaababaabbbbabbbbaaaaaaaabaaababbaaababaa +aabbabaaaabaaababaabbbab +babbabbbbbaabaaaaaabaaaababbbbbbaabbabba +abaaaabbaaabaabababbbaaa +aaaababbbbbaaaabaabbbaaa +bbbabaabbbbbabbaabaaabaa +ababbabbaababaaaabaaaabbbbaaabbbbabaabab +babbbbabaaabaaabaaaaabaaaabbabab +aababbabbabaabbbbaaabaab +aabaaababbbabaababaabbbaaabaabbabaabaaba +bbbbabbbbbaaaabaaaabbbbbbbbabababaaabaaa +abaabbbbbabaaaaaaaaababa +abbbbaaaaaababbaabbbaaaaabbababaaabbbaaababaabab +babaaabaabaababbaaabbaab +abaabbbbbbabbabaabbababbabaaabbabaaaaaaa +bababbabbaabbbbbbbbbaaab +bbbaaaabbbaabaaabaaaaaaa +bbaabbbbbbbaaaababbbabaa +baabbbbabbbbbbbbbabaaaabbaabbbbbabbbaaaabaababbaaabbbabaaaabaaabbababbbbaaabbaba +abaabbbaaabbabaabbbbaababbaaaabbaaabaabb +abbbababababababbbbabaaa +bbbabbaaaaabaababaabbbaaabbaaabbabbbaaabbbaaabbb +abbbaaaababababbaabbabbb +baabbbaaaaababbaaabaabab +aaabbbbbaaabaabaabaabaaaabaabaaaaabbaaba +bababbbbbabbaaabaaabaabaaabbbabbaabaaababbababbbbbabbbaabbbabbbaababbbaabbbababb +abbabaaaabaabaabbaaaabbbaabbbbbb +abbaabbbaaaaabbbbababbaaaabbbaba +babbabbbbabababbbaabaaba +babbabbabaababaaaabbbbab +aababaabbbbbabbbbbbbabbaabbaaabaababbaab +bbbaabbaaabaaababbabbabaaaaabbaaabbbabbbaabbabbaabaaabab +ababababababaabbbaaaaaabbabbbbabbbbbbbababababababbbbaabaaababaaaabbbbbbaabababbbbbbbaba +aaabaaababbbaabaabaabaaabbabbbab +bbabbaabbbabbababbabbbbb +ababababaababaabbaaaabab +bababaaaaaababbabbbbbaba +babbbbabbbaaababbbbbabbbbabaabbaabaabaab +ababaabbbbbbbbabbbbbbaba +abbbaaaababbaabbbabbaaab +bbbbabbaabbbaababbabaabb +bbbbbabbbbbbabbbababaaab +babbabbbbbbabaabbbbaaaba +baababaabbbbabbbbababaab +aaaabaabaaaabbbbaaabbaab +bbbaaaabbabbababababaaab +abaaaababbbbaaaaababbaba +bbbbaaaaaaabbaaaaabaabab +babababbbabbabaaaaababbb +babbbaabbbaaabababbbbaba +aaabbabaababbaaabaaaaababababbaaabaabaabaaabbbbaaaaaaabbbabbaaba +abaaaabbabaabbbabaaaabbababaaabaababaabbaaaaabbbbabaaaba +bbbbaaaaabbbbbbbbaaabaab +bbaabaaaabbaaabbabbbbbaa +abbbbbaabababababbbbbaba +bbbabbbaabaababbbbbbabaa +bbbaaaabababbabbbbabbbba +abaababbbababaaabaaaaabb +bbabaaabbbaabbbbbaabaaaa +bbbaabaabbbbbbbabaabbaab +aabbabbbbbbbbabbbbaabaab +aabbabbbaaaaabbbbbbabbbbbaababbababaaabaaaababbabbaababbbaabbaba +abbbbbbbbababaaabaababab +bbbbbbbababbbbbbaaabaabaabbbbbba +abaabbabbbbaaabbaaaaaaaa +bbaaabababaaababbbbabbbabbababba +abbababbbabbabbbabaabaabbaababaaabbbabba +abbbbbbbbbbbbaabaabaabab +bababbabbbbbbaabbaabbbab +aaaaabaaaaaaaababaababbb +aabbabbbaabaabaaabaaabaa +abbabaaabbabaabaabbababaaaabbbaabaababbaabaaaaabaaaabababbbabbab +aaabbbbbbbabbaaaabaaaaab +aaaabbbbbbbbbaabbbabbbba +ababbabbabbbabbbbabaaabb +bbbaaabbaaababbbaababbbbabaabbabbbbbaaaaaaabababaaaabaabaaabbababaabababbabbbbabbbabaaba +ababababbaababaabbbaaaba +baaabbaabbbabbbaabbabbba +abaaabbbbbaaaabbabababbbbaaabaabbabaaabb +abaaaabbababbbbabaababab +baaaabbbaaabbabbaaaabaaa +baabbbaaaabbabaababbbaaa +bbbbbbbbbaaaaaabaaababbabbbbabbbabababaaaaaaabbaabbbbbabaabaabbbaaaaababaaabbabaaaaababa +bababaaabbaaababbbbbbbbabbbbbbababbbabaa +aababaaaabbabbabbababbabbaabaaba +bbbbabbabbbbababbababaaabbbbaabb +abbaaabbbaabbbbabbbabbab +baaaabbbbaababbabababbbb +aaaabbabbabbbbbbbbabbbaa +bababbababbbbbabbbbabbab +abbabbabbbbabbaaabbbabba +ababbabbbaabbbbbababaaab +abbabbabbbabaabaabbabbababaabbaabaaaaaaa +abbbababbbaabbabaabbbaaa +aaaababbabbbbaaaabbabbaa +bbabbaaaabbbbbbbbbbabbbbbaaaaabbbbbbbaba +baabbabbbbbaabbbaabbababbbababba +baabbbaaaaaabbbbaabbabba +aababaaabababaaabbaaabbabababbaaabbaabbbababaaab +bbaabbbbaaaabaababbbababbbbabbbaaababaaaabbaaaba +abaaaabaabababaaaabaabbb +aaabaabababbabbaababaaaa +babababbbbabaaababaaabbaaaaaaaaaaaaabbababbabaaabaaaabbabaaaaabbaaababbbaaaaabaaaaabbaab +ababaaaababbbaaababbbbaababbabaabaaaabaaabaabbaaabbbaababaaababbabbaabaa +abbbbbbbbaaabbababbbbbab +abbbbaaababbabaaabbbbbba +aaabbaaaabbaabbbbaaaaaaa +aaaabaabbbbbbbabbbbbbbbbbbbbbabbbbbababa +babbabaaababaabbbabbaabbaaababbb +baabbaaabaaababaabbabbbabababbaababaaabbbbbbaaaabbaabbbbabababababaabbbb +abbababbbabaaabaaaabbbbbbbaabbbbaabababbbbbbbabaaabbaaaa +bbaabbbaabbaabbbabaaaabbaabbbbaa +aaabbbbbbababbbaabbaaaba +abbbbaaababababbaaaabbba +abbaaabbabbababaaaaaabba +abbbabbbabaaaabbbabaabbbbbabbbbaabbbaabb +abbbababbabbbabbbbaaaabb +baabaaabbbbbabbbababbabbbbbababb +bbabaaabbbaabbabbbaabbbbbbbbabbbbbbbababbbaaabaa +babbabaaaaababbbbaaababaaaaabbbbaabbbaababbaabaabbbaabab +bbbbababaabaaabaabaaaaabababbbbbbabbaaaaaabaabaa +bbbabbbaaaabbbaabbaaaabaaabbaaba +bbabaabaabaabbbbaaabbaba +bbaababaaaaabbabbbabbbaa +bbbbbbbababababaaabbbbab +abaabaaaaaabbabbbaaababb +bbaaaabababaaaaabaaaaabb +bbbaabaaabaabaaabbbbbaabbbaaababaaaaabbbabbabbbaaababbaa +baabbbbbabbbaaaaaaaaabba +aaaaaabaaabaabbaabbabbaa +abaaabbaabbaabbbbbbabbbabbaaabababaabbaaabbbaaabbaabbbab +abaabbababbababbabbbbaaaababbabbabbabbabbaababbb +abababbababbbaabbbbababa +babaabbbbbaabaaabaabaaba +bbaaabbbbbbababbaaabababaabbaaabaabaabbb +abbaaabbbabbaabbabbaabaa +abababbaaabaabbaabbbbaba +abaabaaababaabbbbbbbbbaaaabbaaba +abaababbabbabaaaaabbaabb +baababaaabbabaaaabababaabbaaabababaababaaabbabab +aaaaabaababbaababaabbaba +aaabbbbbbbbbbbaaabbbbabb +aaaabaabbbbbbabbbbbbbaba +bbbbbabbabbbbaaaababaaba +bbabbaabbabbaababbbaabbb +bbabaaabbabbabbbaabaabab +babbbaababaabbbbbabbbbbbbaaaababbbaaaaab +babbabbbababababbbbabaaa +aaaaaabaaababaaababbaababababbaabaaaabbaabbbbaba +aababaabbbabbababbbbabaa +babbaabbbabbabaaabbabbaa +babbbbabbbaabaabbaaababbbbbbbbbaabbbbbbbaaaabbbb +aabbabaaaababbbbbabbaababbbabaaa +abaabbababababbababaabab +baababaaaaabbbbaaaabaabb +bbbabbaabbabaabaabaaabaa +bbbabbbbbbbbbbabbbbbaaab +baabbbbababaaabaaaabaaaabbbaabab +aabaaababbabaaabbaabbbab +aaabbabbbbabaaabbababaaababbbbaabbaaababbabbbbbbabbbabaabbaaaaab +abaababbbabaaabababaabba +bbabbbbbbbbabaaaabaabababaababbbaabbaaabbaaababbbbbabbba +baabbabbbabbbbababbabbababbabababbaabbabaaaaabaaababaabaabababab +baaaaaababaaabbbaababbaa +aaabbbbaabababaaaaababab +baaaabbbbabaabbbbaaaabba +abbbabababbbbaaabbabbabaaabaabbbbbababba +bbaabbabbbbaaabbabababaababbbaabaabbbbaa +bababbabaabbbaabbbbbbaba +aaaabbbbbbbbbbabaabbbaba +baaabaaabbabbaaabababbbbbbbbababbbabaaabaabaabbabbbbbbababbababb +baaabbaaabaababbaabababaaaaababbbaaabaab +aababaabbbaaababbbbaabba +bbbabbbbbabbbaabbbbbbbabaaabbabaabbbbbba +ababababaabbabbbbbaabbbbaabaabbb +aabaaabaaaaabaabbabaaabb +bbbbaaaaababababbabbbbbbbabaabbbabbaaaba +bbaaaababbbabaabaababbba +bbaabbabbabaaaaabababbaababbbbbb +baaaaababaabababaaabaabbbabaabbbbabaabbbbbbbbaab +abbabaaabbbbbabbbbbaaaba +babbbabbabaabbbaaaababbb +abababaabababbbaabbaabba +babbabbbabbbaaaabbaabbaa +babbbbabbaababbaababbaba +bbbbaaaabbbbabbbbbaaabaa +bbababbbbabbbbabaaaabaabaabbbbbbaaaabbaa +bbbbbbabababbabbaaabbbaabbbaabbabaaaabab +aaabaaaaabababbabaaabaaa +ababaabbaabaabbaababbbaa +babababaabaabbaabbaaabaa +bbaaaababaabbbaaaabbbaabaababbabbbbbbaababababababbabaab +bbababbbaabaabbabbaabbbbaaabbabbbabbbaaa +aaaababbabbababbaababaaabbabbbab +bbabbaaaaabaaaabbbbabaaa +aaaaabaaaaabbbaaabbabbba +abbbaababbbbbbabbbaabababbbbaaab +babbabaaababbabbabbaaaab +babaaabaaaaaaabaabbabbbb +bababbaabbababbbaabaaababbaabbabaababbbbaabbbaabbbbababb +aaaaaaabbbbabbaaabbbabab +bbabaabaaabbabbbbaaababa +abbabbabbbbaabaaaaaababa +bbbabbbbabbbbaaabaaabbbb +babbbabbbbbbabbbaabbbbaa +baaaabbbaaababbaababaaaa +aaaaaabababbbbabbababaab +bbaabbbbabbababababbaabbbbbbabaa +baabaaabbbbaaabbaabbbbba +bbabaababbaabbbbbbbabbab +bababbabaababbabbaabbabb +aaabbabbaababaabababaaaa +baababbaabaabbbbabbbaababbababbbbaabbababbbababaabbaaaba +aababaaaaaabaaabaaaabaabaabaabbbbbbababa +abbbbaaaaaabbbbaabaabbbababaaabbababaaaa +abbbabbbaaaababbbbbbabaa +bbabbaaababaabaaaaabaabb +aabaaababbabbaaabbaabbbbaabaaaabbaaabbabbaaaaababaababbbbbaaabbb +aaabbbbabaaaabbbbbababba +aaaabbbababbabaaabbabbbbaaabbaaaabbababbbaabbbab +aaabbbaaababbbbabbbbaaab +aaaababbaaabbabbaababbba +babbbbbbbaababaabbbbbaba +abbbaaaababbbabbbabbbaaa +aabbbaabababababbbbbbbaabbbbbabbbaabbabb +aaabbbaabaaabbabaababbba +abbbaabaaaabbbbabbbbbbababbaaaba +bbbabaabbabbbabbbabababb +aaaaaaabbbababbbbbaaaaab +abbabbbbbaabbbbbaaababbbbabbbbabbaabbabb +aabaabbabbbbaabaaaaaaaabbababababaaabbaabbaababbbbbbbaaabaaaabbabbbbbaba +aaaabaababaaaaaabaaaabba +bbbaaabbababababbbbbbaaa +abbbabababaabbbabbbbaababbbaaabbbbbbbbbaaabaaabb +bbaaaabaababaabbaaabaabb +aaaabbabaaabbabbbbbbabbaabababaaabaabbabbaabbaba +bbababbbbaaaabbbababaaaa +bbababbbabaaaabababaabab +aababababaababbaabbaaaba +baabbbaaabaabbbbaabbabbbabaabbbaaaabbaab +bbbbbaabbabbabbabbbabbbbabbbbbaaaaaaabba +baaaabbbbbbabbaabbbaabab +abbbabbbbbbbbabbbabababaabbbbbbbbababaaababbaaab +abbaabaaaabbabaabbbaaabaabbbbaabaabbaababbaababbbaaabaaaaabbaaaa +baaabbabababbbabbaabaaaa +aaabaabaaababbbbababbaba +bbaabbbaaaaababbababaaaa +abbbbaaabaaaaaabbbbaabab +abbbbbaaababbbababbaabaa +ababbabbbbbabbbbbbabbabb +bbbbbbaaaaaaaabaaaabbaab +aababbababaaababbbbbaaaabbbaabbaababbaba +aaababbaabbabababbbababa +abbabbabaaaaaabaabababaababbbaabbbabbaab +aabaaababbabaaabbaaabaab +aaabbbbaabbbbbaaabaaabaa +aaabaaaababbbaabaabbaaba +abaaaabaaabbbaabaabaabab +babaabbaabbbbbbbabbabaaababaaabbbbbababa +babbaababbbaaaababbbabbbabbaaabaabbaabaa +abaabbbabbbbaaaabbbbbbbbbbbabbaaabbaaabbaabaababbaabbbab +bbaaaaaaaabbabbbabaaaabbaaaabbaa +bbaabbbbbbaababbaaaaaaaabbbaaabaaaababbbbbbaaaababbbabbababaaaabbbbaabbaabaabbbaabbaaaaa +bbabaababbaabaaababbbaaa +aaaababbaaabaaabaaaabbba +aaaabaabbabbabbabbaabaaaabbaabbbaaaaabba +bbaabbbbabaababbbabbaababbbbbbaabaabaaababaabababbbababb +aaaaabbbaabbabbbabaaabbaababbbbbaaabbbbbbbabaaabbabaaaabbbbbaabb +bbbbaababababbaaababbbabaaaabbaa +abbbbaaaaababbabbbababaaaaabbbabbbaabaabbaaabaab +abaabaaaaabaabbaaaabbaaaabbbbabb +bbabaabaaaaaaaabbbbababa +bbbbbabbabababaaabbaaaab +aaabbbabbaabababbbabbbbaabbbaaaaaaabbbab +abbababaabaabbbaaaaabaaa +bbbabbaaaabbbaabaaabaaabbbbbabaa +abbababaabaaababbbbaaaba +babaabbaabaaabbbbabbabbaaabbbaaa +aaabaabaabaaababbabbbbbbbaabbabbabbabbbbbbaabaaabbaababbaaaaaaaaaaaaaabbbbbabaaa +babbbabbabbbaaaaabbaabbabbbabbabbbababbaaabaaaaa +bbbbbbababbaaabbbaaaabab +aaaabbbbbbaabbabababbaba +abaababbbabbbbabbabbaaab +ababbaaaabbbbbaaaaabbabbbbaabbabbaababbb +aaabbbbababaaababaaabaab +bbbbbbbabbaabaaabaaaabbbbabaabbbaaabaabbbabbaaab +bbababbbbabbbaababaaaaab +baaaabbbbaabbbaabaaabbbb +abaaabbababaaaaabbababba +aaabbbaaabaabbbbbaabaaba +baabababbaababbbbaababbbaabbbbaa +aabababaaaaaaabaaaababab +aabbababaabbbbbaabbaabaabbbbbbbaaaabaababaabababbbbabaab diff --git a/data/19_2021.txt b/data/19_2021.txt new file mode 100644 index 0000000..56c93b8 --- /dev/null +++ b/data/19_2021.txt @@ -0,0 +1,778 @@ +--- scanner 0 --- +712,493,-580 +-705,-746,944 +-468,-742,927 +-906,-760,-387 +523,612,505 +-973,425,-333 +361,-777,-655 +-172,-143,-8 +403,-606,-574 +-655,761,677 +-670,-738,898 +459,511,-563 +713,-623,478 +-605,714,848 +-18,-8,104 +510,641,739 +-991,515,-523 +556,559,577 +709,-678,647 +789,-632,517 +-976,-761,-391 +-966,491,-435 +-611,679,810 +383,-654,-565 +641,491,-564 +-790,-798,-400 + +--- scanner 1 --- +-286,612,-671 +550,-491,494 +-344,-303,619 +487,-410,518 +973,-373,-692 +110,31,-17 +662,607,-702 +983,-337,-801 +-550,671,606 +-466,-293,710 +793,650,-662 +-506,595,519 +-294,-768,-699 +444,-519,645 +-312,599,-535 +-464,-304,529 +489,802,531 +438,778,402 +831,-342,-707 +-542,513,494 +-301,621,-550 +-445,-677,-708 +560,846,460 +-293,-724,-739 +638,590,-629 + +--- scanner 2 --- +-635,-463,-706 +896,-619,679 +647,295,757 +797,-608,645 +-270,-724,575 +-493,485,466 +-340,466,-635 +931,-698,684 +624,689,-597 +584,235,861 +411,-511,-238 +-577,670,452 +592,614,-699 +69,3,116 +469,-472,-403 +-762,-440,-769 +562,-473,-299 +-426,448,-617 +670,355,931 +683,528,-588 +-378,-620,578 +-535,525,-608 +-6,-191,36 +-647,-428,-727 +-454,-713,576 +-458,625,481 + +--- scanner 3 --- +438,-559,589 +-590,703,724 +451,970,-584 +657,488,518 +620,-539,588 +569,-409,-714 +-654,-497,546 +506,893,-703 +367,-557,605 +-760,743,-517 +299,925,-664 +-802,-444,601 +-760,797,-413 +523,-491,-552 +520,525,466 +47,174,-89 +-554,-293,-909 +-699,577,686 +-563,-244,-847 +710,529,430 +556,-438,-480 +-61,65,25 +-577,-242,-690 +-807,795,-448 +-601,599,763 +-846,-494,561 + +--- scanner 4 --- +519,654,-940 +723,-779,431 +512,259,327 +-614,322,-479 +-1,-73,-119 +807,-942,-373 +410,690,-950 +-660,-720,-524 +-889,427,353 +-582,-558,474 +-505,385,-481 +-827,536,391 +-549,416,-405 +735,-539,388 +638,-629,470 +-609,-834,-559 +472,303,326 +-636,-659,521 +-833,511,409 +-711,-721,-586 +745,-941,-451 +503,350,478 +504,685,-798 +-532,-659,336 +813,-874,-376 + +--- scanner 5 --- +637,-351,-454 +820,833,-269 +487,-374,703 +-451,-657,828 +766,726,370 +-109,-27,-55 +-452,-602,760 +526,-342,910 +833,757,-477 +-647,-678,769 +689,-411,-450 +-845,657,-682 +-560,535,563 +-468,403,553 +6,111,87 +718,-486,-416 +-664,-436,-479 +771,843,-494 +-655,-530,-493 +772,807,513 +672,815,457 +-717,-428,-587 +-797,629,-713 +606,-297,758 +-433,544,520 +-699,752,-723 + +--- scanner 6 --- +-712,-426,681 +398,-239,-616 +-866,737,603 +787,581,-421 +-624,425,-698 +660,636,788 +-641,478,-670 +-855,410,-685 +54,176,135 +-496,-215,-283 +889,500,-360 +479,-258,-539 +765,483,789 +699,635,723 +819,-682,528 +-691,-319,832 +413,-316,-666 +-865,873,502 +-400,-297,-214 +-411,-257,-391 +47,-11,-7 +908,714,-409 +739,-634,430 +-589,-300,721 +-806,911,549 +746,-579,435 + +--- scanner 7 --- +-748,-520,456 +850,883,-684 +720,-714,-439 +734,-633,-369 +892,871,-799 +829,848,-672 +-452,587,-307 +409,-653,665 +422,838,525 +421,-494,564 +-522,703,760 +-724,-450,600 +761,-674,-597 +-356,-656,-802 +-455,691,-415 +-561,613,894 +-321,-533,-753 +526,839,432 +361,800,374 +391,-623,659 +-49,101,-52 +-453,598,-491 +-711,-374,399 +-556,692,859 +90,-64,7 +-445,-561,-815 + +--- scanner 8 --- +711,-456,-414 +290,-741,546 +381,736,-240 +-404,-352,-609 +-512,-394,-694 +-386,-749,593 +-466,-745,599 +-616,687,954 +542,637,568 +352,-724,460 +629,585,653 +560,-563,-393 +303,-949,470 +70,-14,46 +482,600,-239 +-436,-781,432 +-107,31,169 +600,-437,-516 +428,774,-299 +-806,273,-250 +-819,288,-481 +-709,762,937 +-335,-434,-705 +519,574,718 +-791,341,-464 +-669,741,851 + +--- scanner 9 --- +658,667,348 +-507,-411,-746 +489,722,344 +132,158,41 +624,-673,-878 +-644,568,696 +652,-735,-754 +-370,-679,656 +528,713,268 +747,-722,-843 +535,-741,347 +-522,974,-638 +-563,739,654 +-454,-708,560 +456,-673,284 +-600,-335,-744 +-438,-676,659 +-496,-227,-747 +541,680,-475 +639,-751,276 +-554,691,674 +-612,840,-677 +-601,939,-643 +79,50,-113 +611,536,-451 +465,479,-488 + +--- scanner 10 --- +832,700,-495 +-400,854,718 +-24,73,89 +-588,544,-742 +-529,703,-780 +771,-593,-458 +-621,-815,623 +883,676,-366 +877,-621,-609 +528,548,698 +-496,849,685 +-454,-751,-758 +761,744,-424 +683,488,665 +-492,-693,-669 +834,-512,-482 +-335,755,724 +659,505,738 +-806,-766,645 +490,-444,743 +-688,-774,667 +338,-439,837 +-567,601,-646 +-401,-780,-593 +348,-475,728 +66,-68,8 + +--- scanner 11 --- +557,487,481 +-411,-305,476 +-729,705,812 +544,489,-731 +581,-542,-442 +-773,838,730 +-916,955,-691 +-594,-372,-747 +430,444,590 +673,438,-707 +581,550,562 +469,-550,-600 +556,-506,-524 +-31,6,77 +-139,144,-41 +-418,-407,542 +-408,-363,-710 +615,560,-775 +-679,972,-695 +546,-464,375 +-779,876,765 +-478,-359,-709 +456,-344,374 +365,-466,364 +-714,926,-687 +-393,-495,566 + +--- scanner 12 --- +-554,440,781 +620,-665,578 +-484,464,637 +-432,-355,595 +-100,114,-60 +567,665,-581 +658,632,378 +579,627,343 +669,666,477 +-459,-545,-640 +701,-707,749 +-826,574,-834 +-531,-512,-587 +626,-356,-521 +609,-609,-539 +-888,565,-785 +-693,-558,-669 +622,813,-634 +610,-427,-519 +-13,-13,73 +-471,-279,604 +582,857,-584 +-408,477,838 +-669,588,-836 +611,-685,626 +-601,-359,650 + +--- scanner 13 --- +-607,351,-484 +120,23,-52 +454,-521,-469 +841,462,484 +-704,-386,498 +555,817,-561 +-601,431,-488 +-494,549,769 +-768,401,-452 +514,-469,-465 +-492,515,851 +-712,-486,442 +882,550,537 +589,-440,-431 +400,-552,743 +-730,-338,-284 +606,807,-499 +613,750,-424 +-623,-392,355 +845,498,674 +445,-632,895 +-22,-18,68 +-580,552,764 +477,-671,688 +-740,-387,-509 +-654,-325,-492 + +--- scanner 14 --- +695,-578,-741 +-525,-524,908 +627,579,740 +760,-659,787 +-518,-492,-772 +-669,412,783 +756,501,-366 +821,452,-499 +-559,-362,-779 +670,538,749 +-765,875,-491 +710,-615,897 +-139,20,128 +-704,858,-677 +-534,-604,881 +-880,846,-640 +-743,467,748 +705,658,678 +719,447,-365 +774,-787,907 +-573,-549,798 +9,95,-35 +-465,-311,-776 +-654,460,634 +596,-658,-757 +626,-617,-560 + +--- scanner 15 --- +661,511,-766 +458,-453,788 +-435,-460,692 +-325,-841,-621 +643,528,-513 +454,-559,864 +663,527,-695 +685,-911,-473 +-469,-391,561 +-421,650,-613 +-393,-890,-656 +-384,598,-476 +-653,398,485 +-319,-403,608 +-425,686,-423 +506,-909,-564 +663,656,912 +-660,341,560 +729,758,919 +560,-506,926 +639,568,937 +-18,-10,58 +-711,331,622 +-326,-876,-486 +506,-913,-537 + +--- scanner 16 --- +-443,-656,375 +499,-609,-905 +-788,-254,-779 +757,881,-622 +505,-605,-825 +338,-641,-855 +-799,-294,-956 +-558,481,-500 +550,-485,523 +-533,840,544 +-454,-767,309 +860,827,-675 +-575,428,-472 +360,668,836 +-513,730,479 +506,685,731 +-703,-212,-887 +-344,413,-485 +364,629,768 +-532,687,522 +843,902,-582 +562,-418,704 +-460,-772,334 +-108,116,-53 +564,-498,642 + +--- scanner 17 --- +-779,-922,-822 +707,-737,-658 +-353,566,475 +29,-40,-85 +522,297,-805 +631,-650,-614 +-449,566,520 +-505,714,-477 +-468,538,-465 +521,227,-801 +-780,-885,-876 +-710,-766,541 +-646,-987,-871 +789,-762,-622 +849,512,744 +-415,618,312 +560,-718,631 +748,471,588 +836,396,648 +587,-774,579 +-781,-865,647 +521,-732,401 +-654,599,-448 +484,413,-792 +-757,-725,746 + +--- scanner 18 --- +588,452,452 +696,-717,478 +-592,750,399 +720,557,-881 +-919,-583,750 +487,440,611 +627,453,-880 +-99,159,-27 +392,-491,-745 +-485,892,365 +258,-530,-655 +-719,-344,-698 +-647,440,-786 +-669,-300,-658 +-483,732,303 +293,-525,-734 +778,392,-842 +-870,-592,812 +-666,-492,-643 +753,-680,332 +-655,528,-780 +-564,389,-761 +-40,0,-148 +552,-693,408 +493,422,581 +-921,-569,593 + +--- scanner 19 --- +642,-674,-824 +-308,502,851 +-241,-283,729 +-655,743,-775 +-4,173,16 +176,-21,8 +594,-607,443 +-230,440,852 +621,744,-440 +520,-583,-814 +470,735,-349 +-360,-249,678 +640,-493,-813 +-797,728,-744 +639,-574,362 +469,775,-393 +531,512,449 +613,609,539 +-311,-482,-707 +574,524,689 +-374,-458,-626 +777,-571,440 +-233,434,784 +-391,-259,664 +-807,837,-780 +-268,-609,-598 + +--- scanner 20 --- +131,165,-117 +-691,728,707 +-657,524,-685 +-575,-348,-621 +805,543,456 +10,-6,-166 +439,-390,620 +-663,436,-693 +935,-596,-470 +474,-343,618 +-698,-560,526 +-660,-451,400 +-535,-304,-671 +873,-587,-421 +522,746,-748 +426,728,-857 +698,559,303 +-639,732,574 +543,-390,566 +-638,385,-776 +-688,704,525 +711,524,452 +-520,-496,-674 +488,888,-855 +-737,-549,422 +716,-573,-419 + +--- scanner 21 --- +-696,-367,959 +573,-537,-825 +862,-826,707 +-803,630,451 +-616,332,-658 +877,-813,938 +-616,-875,-583 +-662,-818,-516 +376,421,889 +10,-124,158 +651,660,-577 +809,-798,724 +804,661,-682 +706,-549,-704 +-763,545,463 +414,374,948 +-786,-498,923 +-873,714,446 +-673,-745,-566 +550,475,949 +-614,420,-709 +-33,21,30 +-650,-481,895 +-655,443,-679 +652,595,-616 +787,-488,-806 + +--- scanner 22 --- +64,81,54 +-633,524,-715 +-680,-850,-309 +-663,372,613 +-848,-812,430 +788,-328,-489 +842,-431,-542 +738,-714,669 +863,-345,-582 +-640,-736,417 +-648,-689,-259 +-571,473,-725 +569,758,-411 +-623,-822,479 +-701,507,532 +927,523,543 +917,537,574 +602,839,-456 +122,-68,153 +893,472,424 +605,761,-594 +-708,531,-658 +-644,-683,-339 +675,-564,646 +-667,432,561 +686,-629,756 + +--- scanner 23 --- +-489,640,-740 +-739,-813,720 +399,-469,534 +-451,424,514 +-864,-439,-801 +-865,-385,-764 +-458,554,473 +436,-460,348 +451,875,619 +439,341,-733 +546,-647,-529 +-454,373,420 +622,-603,-616 +704,-639,-641 +455,858,856 +437,-456,418 +-473,720,-641 +415,392,-604 +459,829,654 +-590,-784,835 +-553,-796,659 +5,-29,20 +371,463,-675 +-670,679,-671 +-731,-390,-866 + +--- scanner 24 --- +479,813,605 +-421,-402,-375 +444,851,599 +-48,139,125 +-748,529,574 +105,11,84 +647,-560,-465 +-862,612,-634 +546,508,-529 +-785,731,-579 +667,-561,-647 +643,-520,985 +-656,-747,608 +-808,581,578 +-707,-757,670 +733,-330,967 +397,680,649 +-380,-490,-428 +665,-577,-718 +667,-432,960 +517,742,-516 +-417,-438,-565 +-649,-690,533 +-817,692,-786 +599,580,-562 +-673,500,540 + +--- scanner 25 --- +-587,-880,-854 +774,-772,-664 +-665,449,-801 +399,-948,578 +-368,-666,714 +693,243,629 +953,479,-759 +-494,391,634 +963,465,-790 +704,325,429 +929,414,-909 +-812,-870,-903 +442,-751,549 +559,322,560 +-588,493,572 +-604,-794,-916 +155,34,-112 +711,-622,-687 +-399,-694,762 +722,-687,-577 +-358,-789,616 +26,-59,-17 +-631,374,-772 +404,-719,583 +-627,314,-720 +-602,399,581 + +--- scanner 26 --- +-537,-661,-554 +-494,-780,790 +659,-817,588 +784,-534,-350 +-498,-840,738 +725,-513,-546 +609,514,811 +596,485,577 +-569,365,639 +-458,481,-780 +-631,-763,-616 +33,-53,121 +-66,64,-29 +564,545,-271 +596,614,-439 +-523,-755,-563 +-525,447,506 +-550,528,-756 +-460,-705,819 +-656,535,-823 +714,-894,707 +518,578,-478 +866,-849,627 +716,-589,-351 +642,567,739 +-519,412,468 + +--- scanner 27 --- +-85,-16,64 +418,478,-378 +-513,623,709 +814,736,845 +-632,-710,-855 +557,-666,-807 +-594,452,667 +-556,252,-630 +-592,-760,-811 +-604,-645,429 +-588,-647,358 +783,728,850 +-647,-707,-663 +52,-66,-100 +849,608,807 +-603,500,687 +-635,217,-625 +834,-623,651 +358,501,-552 +836,-802,587 +298,564,-448 +746,-733,-810 +609,-713,-817 +832,-802,560 +-605,-665,611 +-120,-179,-120 +-545,351,-664 diff --git a/data/19_2022.txt b/data/19_2022.txt new file mode 100644 index 0000000..e5297f3 --- /dev/null +++ b/data/19_2022.txt @@ -0,0 +1,30 @@ +Blueprint 1: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 3 ore and 8 obsidian. +Blueprint 2: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 9 clay. Each geode robot costs 2 ore and 10 obsidian. +Blueprint 3: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 20 clay. Each geode robot costs 2 ore and 12 obsidian. +Blueprint 4: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 3 ore and 13 obsidian. +Blueprint 5: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 16 clay. Each geode robot costs 3 ore and 14 obsidian. +Blueprint 6: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 18 clay. Each geode robot costs 4 ore and 20 obsidian. +Blueprint 7: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 11 clay. Each geode robot costs 4 ore and 12 obsidian. +Blueprint 8: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 2 ore and 20 obsidian. +Blueprint 9: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 11 clay. Each geode robot costs 4 ore and 8 obsidian. +Blueprint 10: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 5 clay. Each geode robot costs 3 ore and 15 obsidian. +Blueprint 11: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 15 clay. Each geode robot costs 2 ore and 15 obsidian. +Blueprint 12: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 3 ore and 10 obsidian. +Blueprint 13: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 16 clay. Each geode robot costs 2 ore and 18 obsidian. +Blueprint 14: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 11 clay. Each geode robot costs 4 ore and 7 obsidian. +Blueprint 15: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 18 clay. Each geode robot costs 3 ore and 13 obsidian. +Blueprint 16: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 14 clay. Each geode robot costs 3 ore and 16 obsidian. +Blueprint 17: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 6 clay. Each geode robot costs 3 ore and 16 obsidian. +Blueprint 18: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 12 obsidian. +Blueprint 19: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 17 clay. Each geode robot costs 4 ore and 20 obsidian. +Blueprint 20: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 16 clay. Each geode robot costs 3 ore and 15 obsidian. +Blueprint 21: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 2 ore and 9 obsidian. +Blueprint 22: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian. +Blueprint 23: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 7 clay. Each geode robot costs 4 ore and 11 obsidian. +Blueprint 24: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 9 clay. Each geode robot costs 3 ore and 9 obsidian. +Blueprint 25: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 15 clay. Each geode robot costs 2 ore and 8 obsidian. +Blueprint 26: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 16 clay. Each geode robot costs 3 ore and 13 obsidian. +Blueprint 27: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 18 clay. Each geode robot costs 4 ore and 11 obsidian. +Blueprint 28: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 3 ore and 7 obsidian. +Blueprint 29: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 20 clay. Each geode robot costs 3 ore and 14 obsidian. +Blueprint 30: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 11 clay. Each geode robot costs 3 ore and 8 obsidian. diff --git a/data/19_2023.txt b/data/19_2023.txt new file mode 100644 index 0000000..eaf2304 --- /dev/null +++ b/data/19_2023.txt @@ -0,0 +1,783 @@ +bcj{s>2236:A,s<1879:A,x<3217:R,R} +dx{s>2913:fjr,m>3556:A,a>845:A,qmf} +llc{m<375:A,A} +sk{s>1852:A,s>1779:A,A} +kkb{a<3232:R,x>2370:A,R} +qpz{s>2002:R,s<1970:A,A} +xh{m<1123:hxp,hbs} +hvs{x>833:A,a>3047:A,m<2545:A,A} +bn{m<884:R,m<1819:A,x<191:R,A} +mg{m>3212:tbn,a>2969:bvv,m<2894:hn,dv} +zxl{m>1434:zm,kpk} +ndg{m<2376:A,m>2763:A,A} +rzf{x<493:A,A} +bvj{s>2051:kpv,a<430:jsq,rz} +knm{m<972:R,R} +jds{s<2286:R,x<544:A,a>2810:A,A} +rdg{m>1477:bzn,m<1233:srv,tlm} +jg{x>938:cz,a<1498:rnn,nvj} +zx{s>418:rgl,x>3567:R,jxd} +zg{m<471:A,a<2572:rzf,s>2871:A,R} +jcs{s<2971:R,s>3598:A,x<3099:R,R} +rk{s<3628:jg,bgx} +dj{s<2872:R,x>871:llc,A} +tsk{m>2811:R,a<2339:R,R} +jv{m>760:fkk,s<2822:rzk,mr} +hhd{m>1117:A,A} +ghz{a>1392:dvd,hhd} +dn{x>968:A,s<1630:R,R} +nts{a>80:A,a>64:A,R} +xn{m<573:R,a<3414:R,R} +qc{m>1686:dvp,bm} +mlh{m>692:A,x<2902:A,A} +xfk{m>2842:R,R} +vrh{a>2782:R,R} +dcf{s<3052:A,m<2489:R,s<3448:A,A} +tv{x>2354:tp,s>2429:R,ppm} +gt{m>2262:A,s>3008:R,A} +bs{a>2819:mhl,pgx} +dg{x<1711:A,a>205:R,m<2496:R,R} +stf{m<3718:dx,pdf} +vkq{x<145:R,x<246:R,m>3266:R,A} +sf{m<2735:R,a>3531:R,a<3366:A,A} +mzl{s<2358:R,a>469:A,vlt} +ptv{a>2905:R,m>421:A,x>2378:R,A} +qxc{a>2506:R,x>298:pc,s>433:R,vkq} +kp{a<1201:R,R} +gdl{a>3699:cnx,R} +hm{s>2407:A,A} +cv{m>3491:A,a>765:A,A} +hxp{a<2799:xvm,x<2281:xn,x>2576:R,A} +cnh{m>3228:A,A} +kzg{s<3590:lq,s>3742:rg,s>3685:knv,rk} +rsf{m>2247:R,A} +fh{a<752:A,R} +pc{m<3219:A,a<1070:R,A} +zzc{m<1537:rh,x<1332:ks,s>3714:fdp,A} +cjx{m<688:R,m>715:A,m>698:A,R} +cm{m<1054:R,m<1358:db,m<1665:A,A} +bl{m>3228:R,A} +gxc{x<2677:A,s<3681:R,x<3281:R,A} +vn{x<1211:R,a<866:R,A} +mmk{x<3204:tcm,mvt} +scv{m<2127:R,m<2757:R,R} +zdx{x>3953:R,A} +nc{m>685:A,A} +hsx{m>642:R,A} +ffs{x<3434:jr,s<1059:hph,vrf} +nnt{s<3682:A,A} +ncp{m>3832:zq,a<166:fqr,s>2611:R,R} +nr{x>764:R,A} +cnn{m>1004:R,s<3558:A,a<3149:R,R} +qpk{x>2793:lcq,cjg} +bvv{s<2215:R,R} +dzv{m<1595:R,a>2746:A,A} +hlp{m<2717:R,a<112:R,m>2886:A,A} +hbs{m>1397:kkb,s>634:qz,a<2922:csb,A} +rtg{x<744:R,m<3368:A,x<837:R,A} +sng{m<309:dq,x<247:hsx,vmx} +gtz{x<350:R,A} +bkr{x<2489:jnd,x>3246:R,R} +qt{s>162:A,s>148:A,A} +kt{m<306:A,A} +xq{s>2980:A,R} +nhp{s<2481:R,s<2699:A,s>2972:R,A} +zmd{m<3111:R,A} +rnr{a>2648:md,R} +lmh{s<608:A,R} +kkq{x<3443:A,x>3701:A,s<1947:R,R} +smz{a>1213:ghz,nz} +pnj{a>2358:gs,s<291:R,A} +zm{m<1811:rl,a<2644:lnl,s>2150:gp,hg} +xzq{x>1152:R,bdc} +rxm{a>1500:A,A} +ctt{x<910:knm,mqh} +jf{x>2683:vhq,x<2214:lvg,R} +hs{s>736:R,x<2835:R,m<2848:A,A} +gp{x<708:mrc,x<1063:R,s<2409:khf,A} +mps{a>639:cdk,m<2016:tz,a<353:hp,cr} +tl{x>2394:R,s>3188:A,A} +hqx{a>649:A,m>2661:R,R} +hbj{a<175:R,A} +rs{s<3100:R,A} +pnn{a<2669:mm,m>2861:R,a<3361:jpb,A} +pbk{m>2755:R,a<824:hqx,m>2677:A,R} +zvq{s>1300:R,a<3508:A,s<1200:A,R} +hgj{s<3821:A,x>2702:A,x<2287:R,R} +jx{m>1376:A,x>482:R,x>233:pbx,vl} +pjg{a>2436:mg,pf} +dt{s<3582:rm,m<3084:lbl,pp} +qm{m>1296:jf,m>1258:mt,m>1232:jlq,dh} +fkk{m>930:qpg,s<3192:glq,a<2845:R,xs} +zv{x<3000:R,R} +tg{a<2422:gnz,a>3105:zvc,m>1030:jn,lc} +csb{a>2364:R,A} +zjf{x<2175:R,R} +st{m>1699:zxn,xh} +xv{s<328:R,m<2127:R,R} +bpb{x<2814:gdl,s<2502:cnq,s>3484:rv,hqq} +xj{a<2653:A,x>354:A,A} +tmf{a<1461:lmh,s<883:A,s<1238:cnh,R} +cl{s>1307:R,m<903:R,x<3644:R,R} +lc{m>585:jv,a>2877:gfm,m>204:jzv,lrn} +xz{s<3512:R,R} +gqv{m>488:A,psx} +fl{a<1470:gdr,x<596:zk,a>2901:fmd,ftn} +flj{a<3243:pj,A} +nsg{m>1345:R,s>3301:R,A} +mhl{m<1146:A,x>3138:vzh,s<2495:R,R} +pkl{x>2127:R,a>2366:A,a>2111:R,A} +hff{m>3698:kzf,x<3696:R,R} +nzp{m<577:R,x<2373:A,R} +nkv{s<486:A,x>892:A,R} +dh{s>2784:pxn,m<1220:A,m>1225:shx,ng} +vg{s<1279:R,A} +qjl{s>744:A,R} +bc{x<809:R,a<802:R,s>63:A,R} +nt{a<500:R,a<991:R,x>599:A,A} +gk{s>241:R,x<2909:chl,A} +mh{a>337:A,R} +hhr{s>2512:R,kkq} +rz{m<2800:sk,hgm} +pf{s>2109:R,s<1938:R,qpz} +cc{m<2623:hz,R} +bkb{x<3020:R,A} +khf{s<2247:A,a>3124:R,A} +rxx{s>3423:R,A} +lx{x>2862:A,A} +lm{x<1348:R,A} +cj{m<2624:R,x>659:A,qg} +flq{x<354:A,m<2208:R,A} +mgq{a<378:R,R} +lb{a<1478:zhb,a>3026:A,x>506:xd,ns} +nh{m<1325:R,R} +nj{x<3388:rsf,R} +mvt{a<2971:A,a>3368:A,R} +zrq{s<1068:A,A} +ql{s>3450:A,s<3309:A,a>349:R,A} +tz{x<3055:zrq,x>3527:R,m<1145:A,A} +ch{s>836:rc,s>515:cmq,gk} +cbv{x<3456:zv,s<2710:A,m>2476:lhn,cgc} +nb{s>487:A,R} +zp{x<3382:A,m<2400:A,A} +nl{s>3261:A,s>3183:R,R} +hdr{x<326:R,m<2396:R,x<353:A,A} +mn{s<3015:mp,a>2917:pm,qb} +jr{m>1751:hj,mmk} +fsk{s>1189:R,m>702:R,R} +xcs{m>2025:A,x>730:R,x>465:R,A} +gdc{s<3676:R,s<3680:A,A} +xr{x>2595:A,m<1556:R,a<3672:A,R} +vlt{a<442:A,a>454:A,a<446:A,R} +hxk{x>1265:A,A} +qpg{x<2888:A,x>3295:A,x>3035:R,R} +mjf{s>262:R,s>234:R,a>3542:R,R} +znm{a>1618:A,x<978:R,A} +fq{a<2186:A,s>2212:A,A} +vs{m>377:A,a>2650:R,R} +mdg{a>884:hff,bb} +vq{m<672:hv,m<1059:R,m>1160:A,R} +gx{s>2825:R,A} +xvm{x>2321:A,s<584:A,x<1857:A,A} +qq{m>2815:lk,s>1660:hdr,a>3218:flq,A} +nv{s>652:qf,qxc} +cbm{a>3614:qx,R} +ls{s>1539:lb,vlc} +vh{m>2816:kp,x<330:pk,A} +tbn{m>3616:R,s<2147:R,A} +zhq{a>2701:R,a>2558:R,A} +sq{s>2909:R,m>3304:A,R} +gkf{x<2381:gt,x>3292:R,A} +nf{m>2231:R,R} +ghj{x<742:zg,x>1124:nnh,a>2016:gqv,dj} +ppm{a>2662:R,x<2007:R,R} +hkz{x<2578:mc,vxs} +qg{x<265:A,m>3099:A,A} +cs{x>1082:hxk,x>785:zkx,rsb} +jp{x<3156:A,R} +mf{x>159:bd,lmv} +ks{m<2850:R,x>1209:R,x>1073:R,A} +xbh{m<384:R,m<526:R,m<559:R,A} +mql{x>2491:R,qdc} +lmv{s<1357:A,A} +zlq{m<1608:R,x>2032:R,a<3614:R,R} +bk{x<705:qzn,x>749:nr,A} +br{m<624:R,R} +gcc{a<2067:gm,m<1260:vq,xtl} +nx{a>826:R,m>2770:A,m<2368:A,A} +mj{m<2250:R,a<949:A,R} +pd{s<794:R,m<984:A,x<2919:A,R} +bj{a<1930:A,m>550:A,m>289:A,R} +zvc{s<2813:csr,hdl} +sj{x>2759:A,m<646:A,R} +bp{m>1610:R,x>187:R,a>2927:A,A} +xlx{s>2967:R,s<2367:xlz,m>3457:vm,R} +rrs{m<1350:pdv,x<225:bz,xx} +mrc{s<2376:A,A} +hhm{a>1620:xlx,s<2703:jd,ltl} +qhh{x>642:nsg,A} +nkd{m>1644:A,a>2714:R,m<1500:A,R} +jn{m>1371:tcl,m>1205:qm,bs} +gfm{s<2728:mql,a<2978:lpf,m>344:jp,bkb} +bq{s<2699:R,m>375:R,R} +fjr{s<3616:A,s<3760:A,x<2454:R,R} +lrn{m>80:zvn,m<46:tv,a<2618:tcv,cb} +pm{s<3627:A,cnz} +lh{a<47:R,x<1977:nts,x<2160:A,A} +lq{m>2133:hh,a<1957:qhh,s>3390:fcj,ss} +ns{a>2112:A,x>443:R,s>1637:A,R} +mqh{m<899:A,x<925:R,x<932:R,R} +mnf{x<1236:R,m<722:A,m>834:A,lsq} +lns{m>540:R,R} +qb{m>3068:A,s<3630:R,rp} +zgc{s>157:A,a<2880:A,A} +bg{s>1424:A,A} +fp{m<3748:R,x>3563:R,A} +jsq{x>1832:bcx,m<3125:A,R} +zt{s>1211:R,s>1135:R,A} +fhn{s>3568:A,x>3191:A,R} +cvq{m>3218:xq,x>2582:A,s>2448:A,A} +qmf{x>2322:A,m>3467:R,s<2223:R,R} +mqm{a>2259:A,scv} +sn{m>1037:R,qkn} +cx{s>244:A,x>1311:R,R} +zpd{s<1427:A,a>1779:R,R} +rr{s>1826:cdz,x<568:ttl,pvs} +cdm{a>1936:hpt,x<1270:fqb,a>1251:A,cx} +gb{x>2017:tsk,x>1851:R,x<1684:znz,R} +kb{a<1075:A,s>2851:A,R} +rnn{m>1645:R,R} +fqb{a>1129:R,R} +nvq{s<1550:mf,a>1970:pnn,kx} +cjg{a<500:A,A} +tpz{x<3638:R,A} +zs{x>226:A,a>1279:R,x<81:A,R} +shh{x<2023:R,a>1077:A,m<3110:A,R} +fdp{a>1468:R,s<3727:A,x>1434:R,R} +xs{a>2935:R,A} +phd{a>115:th,lh} +db{a<2563:A,s>1398:R,A} +ttl{s<1004:zqx,m<1653:xl,cjr} +fmd{a>3387:R,A} +qzn{m>375:R,a>2109:A,s>283:R,R} +hph{a>2754:rsv,x>3782:mqm,zx} +pvs{m>1842:xg,x>1013:tdb,mqg} +hd{x>1320:qjl,x<1187:rnr,mnf} +hl{m>1458:R,m<1389:A,A} +zk{a>2689:dqv,A} +jms{x>965:R,A} +lfd{s>2581:dzv,nkd} +vdb{a<2202:zxt,a<2294:A,R} +qp{s>1511:rnj,sng} +pj{a<2909:A,R} +rsb{x>641:R,a<2354:A,s<1177:jc,A} +czb{m>3141:R,R} +dns{m<3457:A,A} +fr{m>1065:A,m>422:A,R} +qn{x<920:R,x>1286:A,m>1176:R,R} +hjb{s<3744:R,x<3145:R,R} +lz{s<1214:jmm,x>1334:kj,A} +qz{x<2297:A,R} +mt{m>1278:R,R} +hx{m<329:R,A} +sp{m<745:R,qn} +lcf{x>2723:A,A} +qdc{x<2021:A,x>2232:R,R} +zxn{a>3213:gn,a<2726:gb,tq} +csr{x>2568:cp,m<773:nsr,m>1236:sgk,sn} +vc{m<3005:R,m<3610:ps,R} +cgk{x>1258:R,x<1110:A,x<1196:A,R} +cgc{a>1921:R,A} +vrf{a<3069:vd,m<2619:hq,nlv} +vl{a>1308:R,a<664:R,a<1067:R,A} +fn{s<3270:kb,A} +xb{a>590:vn,m<2224:rxj,R} +ng{a<2765:A,x<2511:R,a>2927:R,A} +zrf{s>322:A,s<196:R,a>2973:mjf,A} +rc{m<1118:R,x<3069:A,s>1241:zpd,A} +mcc{x>748:A,A} +qlc{a>2547:R,x>3107:A,s<2267:A,R} +bcx{x<1953:R,s>1831:A,A} +hpl{x<369:R,m<3331:A,m>3701:R,A} +dmt{s<1024:R,a<1521:A,A} +nsj{m<2783:rvg,a<1980:hhm,ld} +lk{m<3591:R,x<331:A,a>3320:R,R} +bh{s>2643:dvz,a>2702:A,A} +tx{s<156:R,a<1799:mj,s>253:fzm,hvs} +xvg{s<2714:A,s<3147:A,A} +hh{s<3409:nl,m<3233:A,a<2422:xz,R} +gts{a>1286:hhr,gbr} +ckf{s<2414:pjg,x>994:ffj,cmt} +mx{a<981:R,a>1003:A,s>2182:R,R} +glq{a>2825:R,a>2592:R,R} +ld{m>3369:bkr,s<2719:thc,zbn} +gnz{a<970:hkz,a>1669:gcc,x>3079:gts,smz} +psl{s<1643:dxb,m<2010:tg,a<1346:pqn,tk} +tf{s>2822:sq,m>3143:R,rd} +vz{m<3712:mnd,s>134:qt,a>1799:kn,bc} +qss{m<3104:qv,x>2681:A,x>2001:A,R} +fcj{s<3503:R,s<3532:A,x>696:cnn,kc} +vlc{s>1302:A,m>3084:dns,hc} +bd{m<3160:R,a>1409:A,A} +bps{x>1384:fcs,cdm} +cb{s<2615:R,s<3448:tn,a>2723:nnt,A} +lsq{s>809:R,R} +grr{a>3271:bpb,mn} +hqq{x>3438:xfk,R} +rd{x>267:R,x<90:A,R} +fqr{x>2550:R,x>2122:A,R} +rzk{a>2747:sj,s<2106:mlh,x<2830:cjx,sfk} +jkg{m>2606:pbk,a<1058:qd,a<1219:gkf,bbs} +flz{x>2125:A,a>2097:R,m>2163:A,A} +zqp{a<1151:R,a<1198:R,s>3041:A,A} +dvz{x>782:R,a>2898:R,R} +dqv{s<408:R,x<578:R,R} +jd{m>3201:R,s<2207:trx,s<2489:A,rxm} +hgm{s>1788:R,x<1769:A,x<1995:A,R} +vqr{s>788:hx,x>1312:R,A} +thc{s>2155:zmd,R} +dvp{a>2498:R,m<2002:nhh,A} +ft{m<507:A,s<3387:jnr,m>533:A,A} +tr{x<3220:vs,m>439:jb,A} +mqg{s>766:ksh,x>775:pdr,x<643:fl,kxv} +mhv{a>372:R,R} +lfh{s>111:A,a<2061:A,kjq} +kjq{a>3318:R,m<3194:R,a>2864:A,R} +znz{a<2358:A,m<3219:R,R} +dr{m>2049:A,A} +sjl{x>3661:R,A} +xl{m>895:rrs,qp} +gm{a<1886:jcs,m>1004:R,s<2632:jsc,lx} +shx{m>1229:A,R} +tp{m<17:R,s<2612:R,R} +qrx{x>3692:A,x>3463:A,R} +pgx{s<2943:A,a<2592:R,rxx} +cmq{s>728:pd,R} +cnz{m>3336:A,a<3109:A,s>3758:A,A} +zlj{s<2298:zp,m>2495:vdx,m>2315:R,A} +vr{a<39:A,s<588:R,R} +ntf{x<3136:R,s<3561:A,a>158:A,R} +mp{m<2748:A,A} +xx{a>2166:spr,x<415:vg,x>508:hl,fh} +lbl{s<3777:gxc,a>409:A,m>2712:mh,R} +tcm{x<2977:R,m>847:A,R} +fcs{s>272:A,a>1567:zgc,A} +nsh{a<3221:A,x>521:R,R} +kr{m<1648:R,A} +srv{s>922:cgk,sc} +pxn{m>1223:A,s<3294:R,R} +lvg{a<2737:R,A} +md{m<757:A,a<3484:R,x>1079:A,R} +chv{s>2853:dt,x>3123:mz,x>2140:vv,bvj} +jlq{m>1247:xvg,R} +mc{m<1264:A,ptm} +vhq{m<1335:R,x<3245:A,a>2829:A,R} +hpt{m<3161:A,a>2904:A,A} +dtf{a<3472:R,s<2342:R,R} +trx{s>1998:R,s<1829:A,A} +vdx{s>2511:A,s>2428:A,m<2752:A,R} +vd{s<1390:A,x<3751:R,x<3880:R,zdx} +ptm{m<1617:A,x>1926:A,x<1694:A,R} +vf{x<686:A,A} +dl{m>2226:A,R} +mm{x>136:A,a<2364:R,A} +bgx{s<3665:R,a>1589:spq,gdc} +sg{m>3237:A,x>3478:R,A} +dq{m>135:A,R} +hp{a>164:A,a<60:vr,m>3056:A,df} +rm{s>3161:vxc,s<3056:fgg,rs} +bx{m<2349:nth,a<87:R,hlp} +cdz{s>3074:kzg,m>2365:ckf,s<2573:zxl,sqj} +ksh{x<811:fsk,x<921:cm,znm} +kx{s<1706:A,x>175:R,R} +tzj{a<2609:vh,s>1501:qq,flj} +xc{x<1363:A,A} +jzv{x<2484:bq,s<2883:tr,m>431:ft,jls} +gs{m>1412:A,x>709:R,A} +pk{a<1730:A,x<308:R,x<319:R,R} +kpv{m>3321:R,a<457:A,R} +jcl{a>2730:R,m<880:R,R} +kl{a<965:A,x<287:R,m<3351:A,R} +tqc{s<518:R,a<3082:A,A} +gh{m>2373:gnj,nj} +rv{x<3370:hjb,sf} +bz{x<119:R,m<1550:A,a<2149:R,bp} +gtr{s<3309:R,x>3634:A,A} +qkn{a>3568:A,s>2419:A,A} +qd{x<2634:R,m<2382:mlr,a>847:R,A} +lhn{x>3722:A,A} +hc{s>1187:A,a>2167:R,m>2591:R,A} +xd{m>2456:R,a>2280:R,R} +bb{s<2972:gf,m<3645:cv,m<3848:fp,qrx} +zqx{m>2541:nv,hr} +nq{x>601:R,s<2677:kl,s<2917:gx,gtz} +lpf{a>2914:ppv,m<299:tl,a<2900:R,ptv} +kc{a<3291:A,x>339:A,A} +zvn{a>2638:R,s<3043:kzr,zfh} +trl{m>1081:R,nzp} +zq{a<182:A,A} +nhh{m<1864:A,x>941:A,A} +llz{a>1108:R,R} +knv{a>2354:cj,x>996:zzc,s<3723:dr,jx} +zz{s>453:A,A} +bm{x<874:R,R} +th{s<2637:qsv,x>2052:A,s>3374:ndg,dg} +jc{x<596:A,x<616:A,a<3401:A,A} +jnd{s<2807:A,s<3453:A,A} +xt{m<2915:jkg,m<3333:xbx,x>3162:mdg,stf} +hz{x<1195:A,m>2319:R,R} +mlr{s<2819:A,R} +jcb{s<3169:xr,a<3594:lcf,s>3337:A,R} +dvd{x>2266:R,s<2456:R,R} +cz{x<1213:R,R} +jls{x<3307:A,s>3588:zhq,gtr} +qcv{m<2944:tx,s>212:fc,m>3494:vz,lfh} +rsv{a<3428:R,m>2118:zbh,km} +cp{s>2204:R,a>3681:A,A} +kpk{s>2298:hm,s<2124:sp,x<580:rn,nc} +jsc{m>577:A,x>2348:A,x<1894:A,R} +gdr{m<1018:nt,a>862:nb,a<521:A,R} +cq{a>1679:jh,x>2455:kg,tmf} +km{a>3750:A,x>3811:R,A} +xlz{m<3339:A,A} +jpb{s<1718:A,A} +dv{a>2641:A,s>2037:R,s<1920:R,R} +jmm{s>691:R,x>1219:R,a<384:R,A} +qsv{m<2465:R,m<2782:A,A} +rg{a>1394:pt,x>724:xb,cg} +gf{a>678:R,R} +tcv{s>2592:A,qlc} +hq{m>1644:zvq,a<3426:A,a>3644:cl,R} +tn{s>3020:R,a<2786:A,R} +rj{m<1057:A,A} +pdr{a<1445:dp,x<882:zrf,x<940:ctt,rmq} +cdk{s<782:A,m>2281:A,x>3070:R,R} +pdv{s>1360:xj,a<2197:zt,R} +hxf{s<2049:R,x>2247:A,A} +kzf{a>1176:A,m>3860:A,A} +gxn{a>3573:A,A} +zbn{x>2791:R,pkl} +kzr{x<2744:A,x>3573:A,x>3114:R,A} +pqn{a>543:xt,a<287:td,chv} +bbs{m<2371:R,dcf} +kxv{m<800:bk,pnj} +cg{x>392:R,m<2342:A,R} +jh{s<596:R,A} +lnl{m>2064:dl,A} +vxs{x<3363:A,s>3117:ql,nhp} +gnj{m<2761:ntf,a>158:fhn,A} +lkq{x<1201:R,m>380:A,A} +pt{x>1005:rkp,m>1814:A,R} +vzh{a<2967:A,s<2919:R,s>3436:A,R} +xg{s>800:cs,s>433:lf,x<1166:qcv,bps} +dxb{a<2010:zvs,x<2857:st,ffs} +qf{a>2114:hpl,czb} +kn{a<3038:A,x>858:A,m<3875:A,A} +cr{m>3287:R,mqs} +hv{a>2238:A,a>2148:A,A} +vv{a<436:mhv,x<2586:lkt,qpk} +hzk{x<2136:A,s<3490:A,m<723:A,A} +zxt{s>978:A,R} +kz{a>147:zlj,bx} +td{m>3001:gst,x<2376:phd,s>2885:gh,kz} +vm{s>2601:A,x<2583:A,A} +hr{x>273:fr,tvh} +zvs{a<1335:mps,m>2218:cq,ch} +hg{s<1954:lkl,m<2144:xcs,s>2053:nsh,nf} +cjr{x<294:nvq,x>385:ls,tzj} +qx{m<562:A,A} +rnj{s>1717:lns,ggg} +hj{m<2990:R,m<3504:A,x>3229:A,R} +tlm{a>2460:glg,A} +ps{s<2694:A,m<3245:R,s<2889:A,R} +gst{m<3558:cvq,m<3745:zgn,ncp} +lkt{x<2308:A,A} +zhb{a>913:A,x>487:R,a<500:R,R} +lf{x<903:qbv,s<581:cc,a<2449:nx,xzq} +ggt{m<186:vj,vqr} +nz{m>951:llz,s>2939:R,a>1082:A,R} +rp{m>2675:R,m>2261:A,A} +fzm{x<899:A,R} +nnh{s>2847:bj,m>604:dzq,A} +rqk{a<829:lz,a<1378:kt,a>1776:vdb,sbv} +zfh{s>3658:R,A} +rb{m>2433:zjf,flz} +ftn{a<1998:xvb,s>326:R,a>2510:jcl,R} +rkp{a>2607:R,a<1968:R,m<1342:R,A} +mz{a<422:sg,mzl} +bzn{s>789:A,A} +vxc{s<3419:A,s<3525:A,m<3238:R,R} +mqs{s<966:A,A} +ph{x>2317:A,x>2178:R,A} +jnr{m>555:R,A} +cnx{a>3858:A,R} +sfk{m>670:R,x>3344:R,x<3118:R,R} +tvh{a<1646:kr,x>130:bn,tqc} +pp{a<429:mgq,m<3566:hgj,s<3784:A,R} +rxj{s<3911:A,a<208:A,R} +xtl{s<2570:R,R} +rgl{a>2317:A,m>2066:A,a>2210:A,R} +sc{x<1261:A,m>1138:R,a>1644:A,A} +hdl{s>3524:trl,m<1251:cbm,jcb} +sgk{m>1740:gxn,m>1449:zlq,m<1371:A,A} +sqj{m<1009:ghj,qc} +rvg{x>2751:cbv,rb} +fc{x>896:A,s>351:R,a<1524:vf,rtg} +nlv{x>3765:A,a<3662:bg,tpz} +bdc{a>3423:R,R} +jxd{m>2430:A,R} +ffj{x<1225:vc,lm} +rmq{a>2410:zz,a>1947:A,m<1209:jms,A} +glg{m<1371:A,x>1253:A,a>3301:A,R} +pdf{s<2488:hxf,A} +cmt{a<1811:nq,x>499:bh,tf} +nsr{x<1949:dtf,m>301:ph,R} +zkx{s<1453:bl,a<2646:R,m>2900:dn,R} +sbv{m<281:dmt,x<1338:lkq,x>1412:R,xc} +rn{a>2044:R,m<785:zl,s<2211:R,zs} +fgg{m<2752:R,R} +tq{m>2968:A,s>982:R,xv} +vmx{x>401:A,a>2267:A,m<613:R,R} +cnq{s<2153:A,A} +in{x<1523:rr,psl} +xdd{a>1076:R,a>1021:A,m<3092:bcj,mx} +chl{x<2084:R,A} +xbx{s>2576:fn,a<924:qss,x<2785:shh,xdd} +zbh{m<3192:R,a>3731:A,x<3623:R,R} +vj{s<875:R,a<3350:R,x<1196:R,A} +qv{x>2691:R,x<1966:R,A} +ltl{a>1494:R,a<1423:A,A} +dp{m<745:R,m<1280:nkv,x>869:R,R} +ggg{s<1607:R,m<462:R,R} +kj{m<173:R,a<461:R,A} +rh{x<1307:A,x<1428:A,R} +mr{x>2820:A,m<651:br,hzk} +lcq{s>2053:A,m>3275:R,R} +gbr{s<2435:nh,a<1081:rj,x<3440:zqp,A} +kqh{m>1705:vrh,A} +qbv{x>790:pr,A} +zl{s>2209:R,A} +zgn{x<2405:hbj,x<3371:R,R} +nvj{m>2048:A,R} +kg{x<3110:hs,sjl} +tcl{x<2652:lfd,kqh} +ppv{a<2945:A,m>359:R,a<2956:R,A} +jb{s<2174:A,x<3596:A,x<3834:R,R} +gn{x>2033:A,m>2665:A,x<1766:R,R} +tdb{m>983:rdg,m>512:hd,a<2442:rqk,ggt} +spq{a>2917:A,m<1999:A,m>3160:A,A} +rl{m<1608:fq,a>1384:jds,R} +ss{m>1255:R,m>614:A,a>3013:mcc,xbh} +hn{a>2659:A,s>2109:R,R} +dzq{s>2673:A,A} +psx{x<921:R,A} +mnd{s>91:A,R} +pr{x<863:R,x<882:A,s<676:R,A} +nth{a>63:R,A} +tk{a>2726:grr,nsj} +spr{m>1479:R,a>2918:R,m<1424:A,A} +xvb{s<257:A,m<824:A,R} +lkl{a>3513:R,A} +df{m>2377:A,x<2393:R,s<794:A,A} +pbx{s>3731:R,R} + +{x=1272,m=2035,a=996,s=123} +{x=2086,m=1523,a=691,s=1133} +{x=3600,m=584,a=2515,s=1052} +{x=1134,m=814,a=716,s=2044} +{x=860,m=1827,a=209,s=1021} +{x=556,m=10,a=412,s=1032} +{x=231,m=214,a=2241,s=1183} +{x=1315,m=38,a=609,s=146} +{x=547,m=1780,a=1113,s=239} +{x=393,m=1938,a=1698,s=328} +{x=1562,m=115,a=332,s=2578} +{x=362,m=618,a=1811,s=669} +{x=966,m=696,a=276,s=424} +{x=715,m=494,a=331,s=1018} +{x=2710,m=2991,a=225,s=1624} +{x=1586,m=702,a=2640,s=89} +{x=787,m=255,a=2756,s=1590} +{x=1210,m=255,a=552,s=1485} +{x=388,m=73,a=2372,s=2598} +{x=1509,m=573,a=82,s=1234} +{x=158,m=71,a=140,s=1848} +{x=983,m=1792,a=276,s=1443} +{x=6,m=379,a=175,s=1552} +{x=1448,m=1318,a=782,s=45} +{x=2606,m=59,a=1588,s=1865} +{x=902,m=481,a=865,s=353} +{x=821,m=300,a=739,s=991} +{x=222,m=692,a=517,s=749} +{x=212,m=2987,a=2187,s=3844} +{x=1625,m=722,a=625,s=436} +{x=186,m=204,a=696,s=36} +{x=87,m=52,a=2210,s=470} +{x=478,m=74,a=916,s=1358} +{x=350,m=2133,a=540,s=10} +{x=353,m=530,a=8,s=119} +{x=113,m=1219,a=1199,s=114} +{x=239,m=1330,a=1289,s=310} +{x=160,m=541,a=740,s=2207} +{x=710,m=1572,a=153,s=534} +{x=156,m=1332,a=359,s=968} +{x=729,m=816,a=548,s=436} +{x=384,m=558,a=3056,s=531} +{x=669,m=2493,a=65,s=93} +{x=2481,m=746,a=33,s=471} +{x=1759,m=3183,a=90,s=526} +{x=414,m=656,a=2653,s=1630} +{x=227,m=595,a=501,s=2012} +{x=1,m=1857,a=130,s=3385} +{x=1307,m=2,a=919,s=1625} +{x=853,m=604,a=2382,s=1724} +{x=2676,m=2318,a=661,s=1102} +{x=2213,m=240,a=3516,s=710} +{x=1118,m=21,a=3454,s=612} +{x=1858,m=168,a=139,s=1036} +{x=2570,m=3636,a=2081,s=401} +{x=149,m=458,a=1164,s=677} +{x=605,m=2263,a=97,s=16} +{x=15,m=1979,a=1705,s=1590} +{x=33,m=457,a=1175,s=2729} +{x=436,m=605,a=535,s=1493} +{x=34,m=407,a=833,s=798} +{x=272,m=846,a=68,s=2495} +{x=2624,m=52,a=595,s=2574} +{x=574,m=400,a=647,s=48} +{x=73,m=210,a=622,s=888} +{x=1154,m=834,a=557,s=1052} +{x=1844,m=15,a=3539,s=2831} +{x=2112,m=1220,a=13,s=566} +{x=44,m=823,a=900,s=536} +{x=730,m=992,a=382,s=582} +{x=425,m=258,a=137,s=181} +{x=1294,m=85,a=224,s=464} +{x=522,m=750,a=43,s=333} +{x=337,m=1638,a=1607,s=2945} +{x=1305,m=357,a=1190,s=2724} +{x=560,m=1424,a=2355,s=1419} +{x=1616,m=55,a=1777,s=3425} +{x=592,m=1115,a=83,s=130} +{x=324,m=942,a=137,s=1428} +{x=1121,m=515,a=360,s=288} +{x=619,m=1863,a=303,s=667} +{x=484,m=3574,a=107,s=788} +{x=70,m=188,a=418,s=225} +{x=1075,m=376,a=547,s=2803} +{x=1092,m=551,a=1967,s=695} +{x=1145,m=2432,a=536,s=226} +{x=1474,m=1,a=867,s=536} +{x=2738,m=2397,a=813,s=951} +{x=1049,m=4,a=1708,s=2179} +{x=2349,m=2657,a=808,s=360} +{x=333,m=1660,a=120,s=1620} +{x=3882,m=1902,a=755,s=1499} +{x=1519,m=418,a=139,s=276} +{x=12,m=2213,a=1387,s=188} +{x=62,m=433,a=3247,s=3477} +{x=260,m=1923,a=745,s=1092} +{x=1898,m=2523,a=745,s=161} +{x=1763,m=60,a=2245,s=1874} +{x=837,m=1963,a=839,s=413} +{x=676,m=963,a=490,s=54} +{x=2289,m=1275,a=276,s=454} +{x=21,m=96,a=335,s=13} +{x=939,m=2479,a=481,s=9} +{x=1772,m=2981,a=2166,s=2140} +{x=730,m=1868,a=12,s=457} +{x=283,m=1126,a=1981,s=1394} +{x=1347,m=614,a=1068,s=72} +{x=401,m=2943,a=1885,s=1961} +{x=271,m=1366,a=207,s=53} +{x=610,m=265,a=1082,s=1623} +{x=997,m=2395,a=1047,s=491} +{x=3726,m=503,a=1199,s=1153} +{x=791,m=1157,a=1729,s=835} +{x=226,m=425,a=652,s=1027} +{x=1,m=310,a=2110,s=3072} +{x=523,m=2198,a=162,s=3226} +{x=1715,m=392,a=397,s=498} +{x=419,m=2116,a=164,s=247} +{x=2053,m=2607,a=245,s=775} +{x=418,m=1715,a=1257,s=971} +{x=2664,m=882,a=2507,s=1349} +{x=2078,m=2249,a=407,s=280} +{x=408,m=203,a=75,s=1220} +{x=731,m=736,a=2364,s=773} +{x=562,m=3377,a=897,s=24} +{x=14,m=1776,a=3167,s=52} +{x=3935,m=1832,a=426,s=3331} +{x=1000,m=1388,a=1508,s=2292} +{x=1691,m=44,a=64,s=93} +{x=594,m=726,a=550,s=46} +{x=69,m=687,a=411,s=1148} +{x=971,m=165,a=293,s=2299} +{x=1020,m=43,a=1162,s=199} +{x=677,m=1372,a=3491,s=1956} +{x=439,m=199,a=2173,s=112} +{x=202,m=822,a=218,s=1717} +{x=373,m=161,a=747,s=3432} +{x=437,m=3602,a=179,s=2357} +{x=712,m=1317,a=435,s=43} +{x=1318,m=625,a=2002,s=1045} +{x=383,m=1388,a=143,s=1333} +{x=1781,m=1425,a=418,s=2396} +{x=1098,m=1127,a=402,s=27} +{x=571,m=179,a=2963,s=225} +{x=497,m=890,a=252,s=769} +{x=1402,m=72,a=328,s=1212} +{x=2100,m=897,a=2356,s=1697} +{x=133,m=736,a=1568,s=606} +{x=1533,m=221,a=424,s=940} +{x=1214,m=1653,a=9,s=3649} +{x=517,m=887,a=230,s=365} +{x=1317,m=70,a=154,s=1313} +{x=1329,m=1887,a=2397,s=534} +{x=1852,m=2036,a=2139,s=1044} +{x=1161,m=1753,a=420,s=1347} +{x=1352,m=1692,a=698,s=167} +{x=2330,m=377,a=4,s=58} +{x=1058,m=856,a=2887,s=1043} +{x=600,m=551,a=1006,s=2464} +{x=1409,m=546,a=1519,s=39} +{x=774,m=572,a=406,s=484} +{x=505,m=158,a=99,s=63} +{x=808,m=1004,a=418,s=31} +{x=376,m=2473,a=1902,s=2710} +{x=283,m=94,a=965,s=1332} +{x=667,m=370,a=1609,s=94} +{x=198,m=210,a=300,s=1041} +{x=2537,m=1582,a=720,s=108} +{x=279,m=3454,a=3498,s=836} +{x=311,m=736,a=2123,s=109} +{x=857,m=2026,a=275,s=2750} +{x=1832,m=384,a=2192,s=18} +{x=1092,m=630,a=1233,s=250} +{x=478,m=582,a=773,s=2205} +{x=1368,m=2047,a=2413,s=1450} +{x=532,m=128,a=354,s=1570} +{x=1142,m=594,a=295,s=142} +{x=789,m=504,a=1704,s=1362} +{x=2582,m=1879,a=749,s=336} +{x=514,m=155,a=198,s=1052} +{x=293,m=253,a=1478,s=1068} +{x=1014,m=414,a=599,s=643} +{x=3048,m=162,a=266,s=986} +{x=1223,m=1933,a=733,s=141} +{x=193,m=70,a=1008,s=250} +{x=1005,m=967,a=517,s=334} +{x=93,m=670,a=175,s=1231} +{x=842,m=1451,a=1193,s=62} +{x=107,m=2605,a=761,s=1931} +{x=1118,m=1756,a=1255,s=3175} +{x=202,m=538,a=2878,s=1348} +{x=67,m=1373,a=65,s=1153} +{x=111,m=227,a=1750,s=584} +{x=428,m=869,a=912,s=153} +{x=3254,m=2700,a=144,s=2609} +{x=3211,m=858,a=177,s=423} +{x=199,m=1808,a=326,s=2681} +{x=2325,m=888,a=1135,s=170} +{x=117,m=699,a=281,s=1858} +{x=1144,m=2008,a=3108,s=645} diff --git a/data/1_2020.txt b/data/1_2020.txt new file mode 100644 index 0000000..c1aaa7d --- /dev/null +++ b/data/1_2020.txt @@ -0,0 +1,200 @@ +1834 +1546 +1119 +1870 +1193 +1198 +1542 +1944 +1817 +1249 +1361 +1856 +1258 +1425 +1835 +1520 +1792 +1130 +2004 +1366 +1549 +1347 +1507 +1699 +1491 +1557 +1865 +1948 +1199 +1229 +1598 +1756 +1643 +1306 +1838 +1157 +1745 +1603 +1972 +1123 +1963 +1759 +1118 +1526 +1695 +1661 +1262 +1117 +1844 +1922 +1997 +1630 +1337 +1721 +1147 +1848 +1476 +1975 +1942 +1569 +1126 +1313 +1449 +1206 +1722 +1534 +1706 +1596 +1700 +1811 +906 +1666 +1945 +1271 +1629 +1456 +1316 +1636 +1884 +1556 +1317 +1393 +1953 +1658 +2005 +1252 +1878 +1691 +60 +1872 +386 +1369 +1739 +1460 +1267 +1935 +1992 +1310 +1818 +1320 +1437 +1486 +1205 +1286 +1670 +1577 +1237 +1558 +1937 +1938 +1656 +1220 +1732 +1647 +1857 +1446 +1516 +1450 +1860 +1625 +1377 +1312 +1588 +1895 +1967 +1567 +1582 +1428 +1415 +1731 +1919 +1651 +1597 +1982 +1576 +1172 +1568 +1867 +1660 +1754 +1227 +1121 +1733 +537 +1809 +1322 +1876 +1665 +1124 +1461 +1888 +1368 +1235 +1479 +1529 +1148 +1996 +1939 +1340 +1531 +1438 +1897 +1152 +1321 +1770 +897 +1750 +1111 +1772 +1615 +1798 +1359 +1470 +1610 +1362 +1973 +1892 +1830 +599 +1341 +1681 +1572 +1873 +42 +1246 +1447 +1800 +1524 +1214 +1784 +1664 +1882 +1989 +1797 +1211 +1170 +1854 +1287 +1641 +1760 diff --git a/data/1_2021.txt b/data/1_2021.txt new file mode 100644 index 0000000..b6a7329 --- /dev/null +++ b/data/1_2021.txt @@ -0,0 +1,2000 @@ +157 +148 +149 +146 +144 +145 +162 +163 +164 +166 +173 +186 +183 +164 +168 +175 +176 +172 +170 +183 +196 +204 +216 +224 +225 +228 +231 +215 +218 +225 +229 +230 +232 +238 +237 +240 +261 +263 +262 +257 +270 +278 +279 +280 +284 +299 +300 +311 +312 +311 +312 +326 +327 +326 +336 +338 +344 +350 +351 +352 +354 +373 +376 +382 +383 +381 +390 +396 +400 +408 +421 +422 +423 +428 +431 +432 +444 +437 +438 +458 +427 +413 +423 +425 +426 +424 +428 +443 +446 +459 +465 +478 +482 +485 +498 +522 +528 +535 +536 +528 +507 +525 +526 +528 +523 +527 +524 +525 +532 +534 +552 +551 +561 +563 +562 +568 +575 +577 +587 +588 +593 +594 +597 +600 +605 +607 +615 +611 +617 +618 +622 +644 +646 +634 +631 +635 +633 +636 +641 +643 +644 +645 +641 +659 +661 +659 +660 +683 +695 +696 +704 +705 +719 +720 +707 +722 +723 +727 +728 +730 +731 +740 +744 +733 +718 +711 +712 +720 +719 +729 +739 +748 +754 +759 +781 +797 +796 +802 +811 +812 +819 +815 +826 +828 +841 +844 +849 +888 +893 +895 +900 +901 +904 +905 +922 +921 +922 +938 +963 +971 +973 +983 +991 +994 +1001 +1023 +1027 +1035 +1059 +1060 +1089 +1098 +1124 +1125 +1128 +1122 +1123 +1113 +1115 +1113 +1141 +1146 +1150 +1151 +1152 +1153 +1143 +1144 +1146 +1162 +1154 +1153 +1154 +1165 +1169 +1168 +1171 +1178 +1179 +1180 +1172 +1176 +1186 +1188 +1189 +1188 +1187 +1192 +1190 +1189 +1184 +1194 +1195 +1200 +1194 +1206 +1207 +1216 +1218 +1186 +1187 +1184 +1187 +1190 +1214 +1239 +1240 +1250 +1249 +1277 +1278 +1279 +1314 +1316 +1321 +1345 +1344 +1351 +1364 +1367 +1368 +1370 +1373 +1365 +1361 +1355 +1354 +1365 +1360 +1358 +1356 +1357 +1363 +1364 +1373 +1377 +1387 +1381 +1392 +1396 +1397 +1399 +1406 +1410 +1429 +1430 +1431 +1437 +1443 +1448 +1449 +1465 +1466 +1461 +1462 +1464 +1471 +1488 +1489 +1490 +1500 +1502 +1528 +1549 +1551 +1552 +1551 +1543 +1544 +1543 +1546 +1547 +1551 +1555 +1563 +1539 +1525 +1524 +1523 +1548 +1513 +1522 +1508 +1507 +1515 +1498 +1505 +1504 +1505 +1506 +1507 +1510 +1516 +1520 +1540 +1547 +1548 +1547 +1522 +1523 +1533 +1561 +1588 +1589 +1591 +1592 +1594 +1596 +1608 +1624 +1628 +1638 +1639 +1641 +1625 +1627 +1629 +1648 +1653 +1678 +1679 +1699 +1703 +1697 +1700 +1698 +1699 +1715 +1714 +1716 +1717 +1720 +1722 +1721 +1722 +1716 +1720 +1742 +1765 +1767 +1757 +1756 +1755 +1761 +1784 +1785 +1789 +1798 +1806 +1809 +1821 +1822 +1831 +1826 +1818 +1817 +1814 +1815 +1818 +1819 +1820 +1827 +1830 +1831 +1832 +1840 +1841 +1842 +1848 +1849 +1850 +1851 +1861 +1863 +1860 +1861 +1855 +1863 +1862 +1864 +1865 +1887 +1902 +1925 +1939 +1945 +1944 +1943 +1947 +1964 +1986 +1987 +1986 +1989 +1979 +1984 +1986 +1994 +1996 +2001 +2002 +2005 +2009 +2022 +2024 +2025 +2029 +2013 +2014 +2017 +2018 +2017 +2019 +2020 +2009 +2007 +2006 +1982 +1984 +1986 +1991 +1994 +1982 +1991 +1989 +1995 +1996 +1997 +1998 +1997 +2004 +2005 +2030 +2062 +2064 +2076 +2077 +2079 +2080 +2084 +2103 +2104 +2110 +2104 +2105 +2106 +2118 +2124 +2127 +2125 +2121 +2127 +2133 +2135 +2141 +2139 +2136 +2138 +2146 +2140 +2141 +2156 +2172 +2181 +2170 +2173 +2195 +2194 +2199 +2203 +2228 +2230 +2234 +2204 +2212 +2214 +2200 +2201 +2200 +2197 +2201 +2204 +2230 +2240 +2242 +2255 +2263 +2271 +2273 +2274 +2273 +2277 +2278 +2285 +2286 +2297 +2298 +2297 +2310 +2313 +2309 +2311 +2314 +2322 +2320 +2316 +2317 +2339 +2338 +2350 +2378 +2379 +2387 +2391 +2390 +2391 +2396 +2398 +2406 +2425 +2433 +2430 +2421 +2422 +2440 +2449 +2445 +2466 +2479 +2477 +2479 +2485 +2481 +2490 +2491 +2492 +2496 +2508 +2505 +2487 +2492 +2493 +2482 +2499 +2515 +2516 +2543 +2574 +2575 +2577 +2578 +2569 +2556 +2554 +2557 +2559 +2562 +2571 +2595 +2596 +2598 +2599 +2603 +2602 +2615 +2614 +2610 +2623 +2632 +2626 +2642 +2643 +2675 +2681 +2689 +2706 +2708 +2713 +2714 +2703 +2691 +2692 +2693 +2700 +2710 +2711 +2712 +2711 +2712 +2716 +2673 +2674 +2694 +2715 +2723 +2736 +2759 +2768 +2773 +2767 +2757 +2752 +2749 +2752 +2758 +2753 +2752 +2754 +2760 +2791 +2792 +2803 +2804 +2797 +2800 +2797 +2807 +2811 +2814 +2816 +2819 +2837 +2838 +2843 +2841 +2848 +2853 +2859 +2868 +2854 +2864 +2845 +2848 +2831 +2830 +2829 +2840 +2838 +2831 +2836 +2856 +2854 +2870 +2863 +2865 +2866 +2867 +2895 +2892 +2893 +2911 +2909 +2918 +2923 +2924 +2893 +2888 +2892 +2893 +2898 +2893 +2920 +2930 +2931 +2930 +2926 +2933 +2939 +2957 +2964 +2968 +2969 +2971 +2985 +2986 +2990 +2988 +2977 +2971 +2970 +2978 +2964 +2997 +3007 +3015 +3013 +3015 +2998 +3000 +3024 +3034 +3045 +3067 +3073 +3074 +3075 +3076 +3084 +3091 +3089 +3088 +3095 +3082 +3085 +3086 +3082 +3080 +3096 +3110 +3113 +3114 +3117 +3120 +3125 +3128 +3129 +3131 +3130 +3136 +3130 +3131 +3138 +3141 +3147 +3153 +3152 +3161 +3162 +3180 +3183 +3197 +3203 +3205 +3195 +3202 +3209 +3216 +3217 +3230 +3235 +3238 +3245 +3248 +3269 +3262 +3266 +3267 +3268 +3272 +3265 +3264 +3268 +3275 +3276 +3283 +3277 +3276 +3277 +3278 +3298 +3311 +3314 +3318 +3327 +3330 +3333 +3349 +3353 +3354 +3347 +3357 +3359 +3361 +3390 +3389 +3398 +3411 +3418 +3409 +3422 +3423 +3425 +3426 +3442 +3444 +3457 +3458 +3459 +3471 +3454 +3455 +3457 +3469 +3470 +3496 +3495 +3492 +3509 +3512 +3511 +3514 +3513 +3516 +3519 +3522 +3533 +3539 +3541 +3537 +3547 +3548 +3552 +3554 +3556 +3559 +3560 +3568 +3571 +3580 +3582 +3601 +3602 +3625 +3623 +3625 +3633 +3640 +3655 +3657 +3659 +3660 +3659 +3665 +3666 +3672 +3698 +3707 +3706 +3712 +3713 +3728 +3727 +3724 +3747 +3737 +3733 +3739 +3736 +3757 +3758 +3766 +3768 +3771 +3776 +3785 +3782 +3790 +3792 +3800 +3779 +3781 +3782 +3816 +3824 +3832 +3831 +3842 +3848 +3847 +3848 +3851 +3840 +3848 +3849 +3854 +3871 +3870 +3872 +3877 +3885 +3899 +3908 +3913 +3914 +3910 +3909 +3910 +3926 +3938 +3951 +3952 +3949 +3978 +3980 +3981 +3984 +3980 +3981 +4000 +4001 +4006 +4007 +4024 +4039 +4040 +4048 +4036 +4041 +4040 +4052 +4065 +4068 +4043 +4048 +4037 +4043 +4046 +4048 +4049 +4056 +4059 +4063 +4068 +4080 +4077 +4075 +4076 +4069 +4038 +4037 +4040 +4027 +4028 +4034 +4053 +4057 +4058 +4061 +4059 +4064 +4065 +4069 +4071 +4073 +4075 +4077 +4082 +4096 +4093 +4104 +4112 +4105 +4106 +4109 +4093 +4100 +4108 +4109 +4134 +4135 +4165 +4146 +4152 +4162 +4171 +4173 +4181 +4184 +4185 +4189 +4192 +4196 +4194 +4209 +4221 +4222 +4200 +4217 +4216 +4217 +4216 +4221 +4231 +4227 +4230 +4227 +4240 +4241 +4242 +4222 +4243 +4248 +4245 +4236 +4237 +4256 +4261 +4248 +4250 +4254 +4255 +4258 +4261 +4262 +4266 +4274 +4290 +4291 +4290 +4312 +4323 +4336 +4337 +4333 +4328 +4330 +4293 +4297 +4309 +4327 +4328 +4356 +4358 +4332 +4346 +4347 +4370 +4379 +4382 +4391 +4400 +4398 +4406 +4417 +4422 +4420 +4421 +4426 +4424 +4420 +4421 +4422 +4401 +4402 +4428 +4437 +4444 +4448 +4451 +4452 +4451 +4454 +4463 +4468 +4467 +4476 +4473 +4477 +4478 +4482 +4514 +4515 +4556 +4559 +4560 +4559 +4561 +4563 +4564 +4562 +4568 +4577 +4589 +4590 +4611 +4599 +4607 +4595 +4596 +4583 +4597 +4595 +4601 +4602 +4607 +4608 +4609 +4633 +4636 +4647 +4654 +4655 +4622 +4623 +4625 +4651 +4653 +4654 +4657 +4661 +4670 +4677 +4678 +4679 +4680 +4678 +4679 +4682 +4680 +4678 +4676 +4678 +4680 +4678 +4683 +4689 +4705 +4716 +4725 +4723 +4728 +4729 +4730 +4746 +4757 +4755 +4762 +4791 +4785 +4787 +4792 +4793 +4790 +4793 +4794 +4807 +4813 +4804 +4826 +4827 +4840 +4878 +4880 +4883 +4884 +4875 +4887 +4889 +4922 +4929 +4928 +4933 +4934 +4945 +4943 +4944 +4945 +4947 +4944 +4957 +4955 +4956 +4944 +4946 +4954 +4961 +4967 +4981 +4971 +4980 +4981 +4989 +4991 +5000 +5017 +5016 +5017 +5016 +5018 +5032 +5033 +5038 +5039 +5041 +5043 +5059 +5068 +5070 +5074 +5075 +5076 +5088 +5099 +5100 +5105 +5122 +5123 +5124 +5126 +5118 +5116 +5121 +5115 +5125 +5128 +5133 +5143 +5142 +5143 +5150 +5145 +5146 +5148 +5154 +5155 +5166 +5164 +5180 +5173 +5168 +5167 +5169 +5175 +5176 +5204 +5203 +5204 +5206 +5210 +5204 +5205 +5206 +5207 +5205 +5226 +5233 +5235 +5239 +5241 +5242 +5261 +5266 +5260 +5268 +5272 +5278 +5280 +5281 +5290 +5295 +5296 +5306 +5319 +5344 +5362 +5364 +5377 +5381 +5385 +5368 +5391 +5392 +5381 +5397 +5398 +5405 +5385 +5395 +5396 +5401 +5407 +5408 +5402 +5400 +5401 +5404 +5414 +5415 +5418 +5427 +5413 +5408 +5419 +5440 +5445 +5444 +5439 +5443 +5448 +5449 +5448 +5475 +5477 +5481 +5474 +5476 +5480 +5497 +5494 +5496 +5505 +5506 +5509 +5517 +5518 +5521 +5510 +5511 +5513 +5514 +5513 +5528 +5536 +5523 +5525 +5526 +5524 +5525 +5527 +5528 +5534 +5538 +5554 +5560 +5563 +5564 +5571 +5586 +5590 +5596 +5597 +5603 +5624 +5599 +5609 +5599 +5618 +5620 +5608 +5623 +5627 +5629 +5630 +5632 +5640 +5637 +5638 +5643 +5653 +5650 +5649 +5658 +5656 +5654 +5673 +5672 +5673 +5675 +5676 +5677 +5672 +5682 +5681 +5680 +5671 +5674 +5679 +5685 +5687 +5691 +5694 +5718 +5720 +5721 +5719 +5716 +5717 +5719 +5711 +5712 +5713 +5712 +5711 +5712 +5711 +5704 +5709 +5710 +5723 +5720 +5719 +5720 +5725 +5724 +5728 +5729 +5747 +5745 +5747 +5748 +5752 +5749 +5763 +5766 +5767 +5775 +5782 +5784 +5785 +5787 +5788 +5787 +5792 +5787 +5788 +5787 +5789 +5792 +5793 +5820 +5827 +5843 +5844 +5864 +5875 +5877 +5890 +5895 +5896 +5909 +5932 +5944 +5951 +5960 +5983 +5996 +6003 +6028 +6043 +6046 +6038 +6053 +6056 +6069 +6063 +6059 +6064 +6065 +6077 +6075 +6074 +6075 +6091 +6108 +6109 +6103 +6100 +6108 +6130 +6131 +6158 +6162 +6176 +6166 +6168 +6170 +6181 +6180 +6179 +6180 +6183 +6184 +6187 +6186 +6185 +6182 +6194 +6190 +6193 +6222 +6241 +6243 +6233 +6222 +6248 +6250 +6251 +6265 +6269 +6270 +6272 +6285 +6284 +6280 +6273 +6286 +6287 +6292 +6307 +6311 +6317 +6316 +6317 +6316 +6317 +6314 +6316 +6291 +6293 +6323 +6327 +6328 +6327 +6322 +6321 +6330 +6332 +6335 +6333 +6351 +6349 +6346 +6347 +6346 +6364 +6374 +6383 +6395 +6398 +6406 +6418 +6419 +6418 +6413 +6414 +6415 +6416 +6399 +6400 +6401 +6399 +6382 +6379 +6380 +6386 +6387 +6373 +6372 +6396 +6397 +6415 +6423 +6424 +6433 +6438 +6445 +6446 +6447 +6448 +6450 +6446 +6464 +6447 +6452 +6464 +6466 +6477 +6491 +6489 +6490 +6503 +6528 +6562 +6564 +6581 +6579 +6580 +6594 +6595 +6609 +6619 +6621 +6641 +6648 +6693 +6686 +6693 +6677 +6700 +6706 +6707 +6710 +6735 +6745 +6746 +6747 +6748 +6750 +6753 +6755 +6756 +6759 +6760 +6771 +6770 +6775 +6785 +6788 +6793 +6796 +6797 +6806 +6814 +6821 +6822 +6823 +6825 +6827 +6841 +6846 +6841 +6834 +6836 +6837 +6815 +6824 +6830 +6837 +6841 +6834 +6835 +6836 +6826 +6841 +6835 +6795 +6794 +6795 +6793 +6794 +6795 +6804 +6816 +6817 +6819 +6830 +6835 +6840 +6845 +6853 +6897 +6896 +6894 +6896 +6899 +6897 +6903 +6886 +6889 +6890 +6891 +6890 +6891 +6894 +6888 +6905 +6906 +6916 +6917 +6921 +6920 +6924 +6925 +6939 +6958 +6968 +6969 +6974 +6977 +6975 +6971 +6963 +6964 +6974 +6975 +6976 +6977 +6971 +6969 +6977 +7003 +6985 +6993 +6997 +6999 +7000 +7001 +6999 +7000 +7004 +7003 +7017 +7033 +7053 +7058 +7066 +7067 +7064 +7066 +7062 +7063 +7088 +7093 +7096 +7106 +7110 +7116 +7124 +7125 +7128 +7150 +7152 +7154 +7159 +7161 +7162 +7144 +7176 +7183 +7185 +7172 +7208 +7207 +7222 +7225 +7226 +7222 +7210 +7211 +7212 +7238 +7231 +7221 +7236 +7237 +7234 +7235 +7253 +7249 +7253 +7263 +7260 +7259 +7260 +7261 +7263 +7241 +7243 +7257 +7260 +7261 +7275 +7258 +7263 +7274 +7279 +7280 +7289 +7307 +7289 +7301 +7307 +7309 +7317 +7337 +7360 +7364 +7375 +7373 +7377 +7403 +7415 +7438 +7439 +7438 +7442 +7445 +7446 +7450 +7452 +7453 +7460 +7468 +7472 +7478 +7474 +7487 +7486 +7487 +7488 +7492 +7510 +7509 +7506 +7507 +7512 +7516 +7519 +7514 +7525 +7545 +7553 +7554 +7560 +7561 +7560 +7561 +7564 +7571 +7601 +7605 +7628 +7629 +7642 +7651 +7682 +7684 +7685 +7698 +7699 +7713 +7734 +7753 +7755 +7760 +7767 +7775 +7776 +7777 +7760 +7763 +7770 +7758 +7769 +7765 +7772 +7777 +7774 +7780 +7781 +7785 +7783 +7800 +7801 +7799 +7804 +7805 +7814 +7815 +7801 +7802 +7803 +7806 +7808 +7810 +7816 +7821 +7796 +7795 +7793 +7792 +7769 +7770 +7777 +7771 +7772 +7773 +7775 +7776 +7778 +7766 +7767 +7768 +7774 +7775 +7780 +7781 +7782 +7788 +7791 +7796 +7798 +7813 +7814 +7817 +7824 +7825 +7826 +7828 +7843 +7867 +7870 +7872 +7875 +7877 +7878 +7888 +7893 +7902 +7904 +7911 +7914 +7915 +7919 +7915 +7945 +7946 +7952 +7954 +7931 +7935 +7936 +7900 +7915 +7920 +7911 +7914 +7925 +7937 +7942 +7974 +7976 +7989 +7993 +8006 +8007 +8010 +8016 +8020 +8026 diff --git a/data/1_2022.txt b/data/1_2022.txt new file mode 100644 index 0000000..38b625c --- /dev/null +++ b/data/1_2022.txt @@ -0,0 +1,2255 @@ +5686 +2211 +1513 +7036 +5196 +10274 +2967 +2551 + +5942 +5827 +2514 +4024 + +9857 +13173 +13071 +17540 + +8264 +2725 +6163 +3589 +4223 +8568 +3009 +8662 +1376 + +1270 +5911 +6619 +4174 +1153 +7989 +2435 +3577 +1086 +3233 + +16008 +16955 +13004 + +5135 +2622 +7433 +2508 +6498 +6702 +4321 +3999 +5778 +2692 +1523 + +7310 +1841 +2040 +4938 +6186 +1555 +6107 +2880 +4305 +1270 +8060 + +8727 +5727 +12263 +14610 +9171 + +42938 + +1860 +5190 +3635 +1963 +4026 +4287 +3410 +1670 +6451 +3981 +1281 +1225 +6461 +3709 + +5058 +5947 +1528 +10692 +11369 +12969 + +7290 +4303 +6729 +3143 +4367 +2374 +2881 +1956 +3864 +6972 +3263 +6477 + +1507 +5380 +5788 +4267 +2937 +1139 +1529 +3569 +2081 +3857 +4758 +2987 +2080 +2219 +1794 + +2735 +8620 +3851 +6929 +3448 +6822 +5281 +7563 +4385 +7865 + +2160 +3457 +2468 +6635 +3777 +6423 +3603 +7088 +3747 +4105 +3059 +3236 + +14116 +4368 +18640 +1213 + +11151 +11231 +10021 +12658 + +1899 +4539 +4194 +6465 +6112 +5642 +4383 +1999 +1089 +6234 +5598 +2817 +1435 +4993 + +16336 + +6654 +6290 +2606 +1222 +4484 +4007 +5560 +4120 +2672 +1716 +3431 +6629 +3534 + +1428 +1117 +4014 +4237 +3441 +1564 +2492 +3999 +1975 +1689 +5245 +2862 +4494 +2527 + +4460 +2987 +4546 +2783 +6449 +4539 +5181 +6599 +5812 +6772 +5509 +2650 +3553 + +1375 +7067 +8702 +4222 +1146 +2016 +7478 +5190 +5963 +4371 + +6564 +1322 +4502 +1932 +1589 +3294 +7798 +7951 +1151 + +9588 +3857 +6452 +5841 +4617 +7876 + +3290 +3008 +8186 +15610 +11186 + +2275 +4886 +7045 +1983 +6616 +7320 +6840 +1071 +5123 +6501 +4227 +5072 + +1553 +3815 +3787 +3013 +2284 +4355 +1161 +4593 +4336 +2256 +2382 +5055 +3923 +5132 + +5379 +1987 +4347 +5061 +5045 +6672 +1153 +5484 +6456 +6824 +1588 + +14163 +16215 +1954 +9164 + +7350 +5067 +2170 +7769 +5656 +1661 +7576 +7416 +6151 +5020 +5729 + +32348 +20553 + +15878 +7366 +13034 +3482 +8740 + +16102 +8408 +16886 + +8592 +9925 +9337 +4966 +5435 +6582 +9328 +6201 + +3962 +6432 +6527 +5883 +5532 +4407 +2796 +5365 +1840 +7334 +2920 +4086 + +10664 +5976 +8604 +2827 +10060 +10229 +11492 + +5451 +3545 +5641 +5779 +7277 +2628 +1250 +1811 +5818 +6112 +3898 +3523 + +1371 +1946 +5127 +4787 +3784 +1134 +2292 +5031 +5291 +5038 +1637 +1178 +1697 +2475 +4239 + +5933 +9062 +2975 +5058 +1127 +1918 +5812 +3932 +3434 + +4523 +10216 +10764 +9355 +1272 +3639 +2747 +2548 + +5359 +5827 +3677 +7954 +6695 +7177 +7101 +3889 +4736 +5698 +3803 + +2079 +1641 +1348 +3200 +4035 +1547 +1347 +5528 +3003 +1209 +3457 +3948 +4284 +3396 +2369 + +1015 +2463 +5926 +4967 +1398 +4356 +2397 +4613 +2909 +3431 +3482 + +2449 +3480 +2076 +3984 +3030 +2249 +2718 +4658 +4959 +3047 +5571 +3218 + +6923 +7052 +3144 +6109 +7223 +5610 +2834 +5771 +1290 +2216 +7407 +1853 + +16073 +5598 +2369 +3785 +15890 + +5797 +1682 +6510 +8054 + +6160 +6406 +3893 +3531 +3712 +2649 +3254 +2373 +6053 +6616 +4503 +3573 +5476 + +11525 +7276 +12639 +2181 +3772 + +15209 +18108 +14012 +13754 + +5564 +9463 +10638 +9542 +2412 +4357 +10507 + +4852 +3004 +5131 +4503 +6019 +5520 +1506 +1493 +2572 +2354 +4924 +4807 +4789 +4351 +3845 + +40493 + +39589 + +4519 +6704 +4962 +9477 +1208 +10288 +3798 +5526 + +2682 +13451 +10034 +2545 +4452 +7412 + +32413 +5857 + +6163 +11407 +8780 +5351 +2741 +9916 +10314 + +6667 +35063 + +12333 +22183 +23309 + +2949 +5861 +4380 +3457 +1019 +6456 +4615 +4039 +6861 +2787 +6200 +4583 +3176 + +4526 +7517 +8417 +7109 +8327 +6758 +3958 + +12106 +13851 +16017 +7920 +13186 + +1444 +5154 +10869 +6868 +5040 +11545 +9097 + +1244 +4683 +8043 +9237 +4766 +12954 + +7405 +2364 +7117 +6204 +1116 +2605 +4528 +1003 +4004 +7295 +6348 + +7835 +6402 +8314 +1188 +6044 +7310 +4614 +7415 +1987 + +2847 +5827 +5559 +4660 +3528 +1034 +5672 +5868 +4208 +2761 +4184 +4177 + +51072 + +4750 +8432 +4449 +4830 +2616 +1373 +9126 +9834 + +36394 +26194 + +1227 +13357 +16812 +9012 + +18457 +20244 +10274 + +3070 +4738 +5567 +7328 +7028 +4186 +1472 +7041 +4009 +4126 +6411 +1744 + +2004 +10907 +7451 +4526 +8140 +6890 + +4716 +3610 +2470 +1736 +2892 +5414 +2949 +5628 +1411 +2775 +2604 +4958 +5322 +1891 +4458 + +3784 +11731 +8898 +12113 +13296 +10644 + +3783 +1713 +1379 +7704 +5959 +3955 +9411 +7517 +1514 + +2962 +2602 +1501 +1045 +1479 +5280 +4134 +5198 +4167 +5033 +5241 +1822 +1567 +3668 +2178 + +5060 +6325 +2962 +1971 +5843 +4140 +6175 +3161 +1466 +6243 +2931 +3443 +4895 +4249 + +66339 + +6137 +4851 +3798 +9698 +9988 +5932 +10712 +7545 + +5195 +3263 +1797 +2538 +1837 +2693 +5952 +5333 +3238 +3717 +3950 +4183 +3355 +1280 +5517 + +5045 +4841 +2418 +4492 +3604 +4101 +2854 +5791 +2241 +4027 +1901 +3826 +5477 +5254 +3898 + +53971 + +1540 +6936 +1328 +5334 +2123 +4618 +6537 +2609 +5653 +7098 +3316 + +8590 +5386 +8241 +6987 +3924 +6265 +1818 +9420 + +5772 +4715 +1295 +2652 +4765 +7480 +7577 +5010 +7227 +6538 +4707 + +1952 +8437 +25310 + +15936 +11883 +8696 +10347 + +8198 +1014 +1004 +10270 +6566 +9284 +10468 +4297 + +15267 +17919 +16656 +2900 + +3359 +5649 +1962 +5618 +1020 +5969 +7258 +7309 +2926 +3786 +2299 +6614 + +31552 +33941 + +5132 +6793 +3625 +5910 +7575 +2603 +8697 +5588 +3027 +3054 + +2876 +4464 +2819 +7178 +5485 +6972 +6319 +1102 +5341 +3281 +6218 +6124 + +9471 +5155 +1390 +9056 +1916 +3727 +3844 +6099 + +6751 +4444 +10612 +3560 +6783 +7374 +3158 + +11589 +2594 +7521 +8873 +3482 +9678 + +2023 +2438 +1459 +5165 +5927 +4658 +3113 +1489 +2826 +5113 +3540 +4479 +5627 +1006 +4791 + +6965 +9145 +5658 +13566 +4225 +3005 + +8233 +9556 +6895 +7522 +1053 +4909 +4475 +8203 + +6371 +6845 +4501 +8168 +8605 +7805 +4562 +1825 +7172 +8205 + +5165 +1183 +2962 +6412 +3125 +1423 +5257 +1541 +2680 +1459 +1834 +1652 +4339 + +2552 +7801 +15625 +9736 + +4617 +8744 +4576 +13632 + +8073 +7400 +8054 +6318 +5631 +6028 +2021 +2856 +1557 +6371 +7764 + +4259 +2112 +4290 +2650 +6900 +6061 +6765 +2745 +3157 +5283 +5755 +3457 +3872 + +62600 + +32544 +11804 + +1788 +7140 +5592 +12124 +6868 +8209 +2575 + +2533 +2662 +5275 +1751 +5218 +2712 +4346 +2166 +3709 +5848 +5855 +4637 +1644 +3088 +1907 + +8172 +1759 +7682 +6871 +3318 +9522 +7511 +6831 +4015 + +52441 + +6537 +2908 +1451 +6115 +1954 +1099 +5712 +8426 + +1236 +7381 +5167 +6563 +7318 +2436 +1325 +2948 +2710 +6319 +2608 +3591 + +3734 +4626 +1460 +5719 +1715 +1842 +4747 +1875 +2922 +3464 +5489 +5568 +5174 +3365 + +3662 +2200 +4326 +4968 +4482 +5444 +6657 +5091 +2117 +5027 +5595 +3765 + +6974 +2450 +7465 +7285 +6168 +7462 +3116 +4750 +4413 +6386 + +6612 +4050 +11379 +18968 + +63747 + +12307 +7764 +11390 +1859 +9217 +5600 + +7166 +3973 +6159 +6484 +6661 +4646 +5470 +1719 +4798 +2951 +3190 + +2213 +5373 +2129 +1122 +5100 +6373 +5480 +1418 +4490 +3008 +4265 +2939 +6175 +5050 + +3364 +2910 +2761 +4320 +3238 +1077 +2253 +4776 +5965 +3933 +1826 +3258 +2282 +2310 +6098 + +8459 +7811 +11796 +5612 +5306 +1946 +11206 + +1864 +8864 +3044 +3377 +5829 +1790 +9450 +2676 +7701 + +3103 +4985 +6899 +1125 +5296 +4143 +1526 +1579 +6668 +1724 +1255 +5107 +3720 + +13512 +4587 +7594 +14548 +6246 + +54371 + +24950 +7799 + +2613 +1020 +6330 +5597 +5295 +5496 +4732 +1885 +1815 +5758 +4727 +4220 +6374 +6162 + +9551 +13121 +1684 +2595 +8505 + +16528 +1799 +11308 + +1418 +14711 +2147 +4801 +10105 + +1782 +1685 +1395 +2044 +5382 +5480 +3573 +2435 +4070 +1733 +5930 +6195 +1692 +2888 + +1688 +1365 +3200 +7047 +7839 +10228 +5983 +9591 + +5619 +3939 +2610 +4845 +3442 +2821 +2711 +2356 +2747 +1590 +5593 +4981 +5711 +2920 +3485 + +1987 +8420 +8357 +9771 +1106 +2037 +8409 +5252 + +4473 +2256 +4295 +3253 +5912 +5230 +5528 +1421 +2026 +1223 +4933 +5041 +5405 +5195 + +5986 +3142 +4773 +2566 +3557 +2614 +5763 +1462 +1942 +3376 +3863 +1121 +1001 +2506 +1328 + +8899 +32401 + +3826 +4732 +9256 +4515 +1866 +6861 +4562 +7148 + +9787 +4012 +3233 +2360 +1353 +9267 +4474 + +3933 +6957 +3359 +2793 +2137 +1946 +1787 +3257 +1387 +6363 +3830 +7331 + +6606 +3538 +1473 +4664 +3248 +2199 +3458 +2771 +3712 +5024 +7635 + +4009 +2360 +1715 +3068 +5032 +7249 +8362 +1018 + +2848 +6090 +1763 +4889 +2423 +5758 +2886 +2869 +3108 +6094 +5110 +2166 +2701 +5737 +2866 + +3125 +7121 +4234 +5931 +3149 +8701 +6860 +6051 +1847 + +4292 +2447 +5733 +1676 +1638 +4310 +5501 +4375 +4814 +5728 +5735 +2035 +4964 +1828 + +11862 +5538 +10841 +6768 +5855 +2538 +2995 + +12807 +11304 +8668 +11295 +2680 + +7589 +3729 +1859 +5542 +13730 + +2782 +2929 +7461 +5840 +3916 +3574 +5958 +7601 +6122 + +3173 +3044 +4904 +1544 +6463 +5239 +1532 +6951 +5903 +3948 +4742 +5825 +6288 + +6793 +6722 +2365 +8678 +8568 +6098 +4378 +10526 + +7743 +2658 +8311 +9915 +9120 +6152 +7100 +2698 + +3476 +5111 +1201 +4971 +3830 +4158 +4172 +2841 +6041 +1082 +3207 +3050 +4469 +1108 +4274 + +36944 + +34023 + +1962 +8656 +6074 +5546 +1960 +5754 +2000 +5672 +2729 +6064 + +8110 +2537 +4370 +8336 +8927 +3813 +10038 + +5609 +3904 +4523 +6963 +5864 +6166 +3660 +4891 +6953 +2136 +3276 +1712 + +5198 +5254 +2456 +2133 +5835 +6961 +4780 +4041 +3036 +7408 +1156 +4275 + +1475 +2273 +1772 +5900 +5851 +1855 +3375 +5359 +3649 +3862 +6099 +1670 +5600 +4647 +4341 + +46294 + +2287 +2354 +13619 +12330 + +6849 +6447 +2673 +4925 +3479 +2903 +6599 +2637 +1192 +2638 +3227 +2511 + +4905 +2874 +2714 +5883 +1294 +4703 +1253 +1953 +2612 +3925 +5052 +5528 +5792 +1995 + +4126 +3937 +4979 +2042 +6663 +4358 +3326 +2671 +4920 +6420 +1173 +6682 + +6146 +10792 + +5228 +9530 +2288 +6322 +6413 +8780 +2075 +8491 +8592 + +6969 +11615 +4852 +13647 +2478 +2086 + +1406 +6041 +7324 +5281 +1048 +10324 +2467 +9719 + +1130 +6482 +4859 +6020 +1310 +1177 +5693 +6083 +3293 +2918 +4021 +6944 + +40367 + +15216 +23154 +19153 + +2732 +5987 +3554 +5038 +4885 +3758 +3484 +5554 +6351 +5914 +6207 +6271 +1024 +5960 + +4697 +5988 +6690 +2995 +6827 +4316 +3337 +7094 +2862 +6290 + +63498 + +5589 +3523 +1863 +1700 +4449 +7025 +7054 +3637 +2383 +4719 +5384 +1387 + +4577 +3062 +6850 +2126 +6193 +2972 +4998 +3929 +5273 +3607 +7216 + +1426 +6363 +12553 +7710 +7427 +7299 + +12100 +8643 +6472 +12582 +10330 +12994 + +1106 +1185 +1573 +6559 +1967 +1086 +4571 +6671 +2747 +2082 +6384 +1095 +6899 + +22318 +10321 +20543 + +5025 +10184 +4425 +8082 +5629 +5123 +7509 +3100 + +11271 + +5133 +10929 +10907 +3629 + +39333 + +15442 +4322 +5391 +10882 + +1252 +5624 +2407 +1285 +2655 +1530 +5705 +1976 +5795 +5008 +3813 +6850 +2362 + +9416 +3180 +4462 +9918 +8511 +4608 +7612 + +3916 +1591 +1388 +1359 +4867 +3931 +1067 +5182 +2090 +2947 +1294 +2085 +3805 +1590 + +7226 +19778 +11590 +12208 + +3548 +1990 +2859 +4534 +2179 +1744 +1306 +5906 +3215 +3481 +2609 +2419 +4632 +1157 +2905 + +18058 +4750 + +49356 + +16871 +8564 +9745 + +1053 +7954 +7528 +6434 +6002 +3767 +4369 +4096 +6194 +2337 + +6370 +3509 +2154 +6608 +3095 +2018 +4408 +2043 +5681 +4497 +3804 +6079 +3573 + +4693 +7043 +2251 +3734 +5938 +4208 +1597 +4259 +2465 +4080 +3073 + +7024 +1532 +7929 +5973 +6399 +6470 +1448 +1294 +4885 +6496 +7414 + +6637 +6833 +7369 +2115 +7831 +1481 +2643 +4148 +6127 +2478 +3002 + +1639 +5157 +2462 +5910 +2454 +4438 +2088 +3383 +5588 +2774 +3770 +2140 +2121 +3549 +1125 + +14689 +1193 +7130 +14422 + +5902 +8740 +11007 +2637 +4399 +13932 + +8542 + +8006 +3383 +6661 + +3629 +5891 +4089 +4036 +1894 +3724 +4280 +4668 +7766 +7213 +4984 + +2121 +4136 +4122 +4981 +3366 +3487 +5660 +6185 +5341 +3040 +1184 +3292 +3104 +2783 + +4434 +2764 +5501 +2961 +5751 +6443 +7688 +3503 +4029 +3115 +1031 + +6883 +3437 +8649 +3473 +1330 +1610 +2567 +2166 + +24926 +18747 + +5563 +1884 +6674 +5340 +2876 +3261 +5075 +3746 +4940 +3418 +6437 +5463 + +3014 +6235 +7541 +2502 +7472 +8412 +9054 +3331 + +8768 +15514 +12115 +8092 + +3537 +3246 +6697 +1753 +6707 +7686 +4786 +6161 +5616 + +2253 +1839 +3053 +4429 +2569 +4310 +4188 +5145 +4144 +4740 +3299 +4502 +1495 +1925 +2112 + +46591 + +46938 + +3368 +6572 +1033 +3438 +1798 +6177 +4166 +1909 +4290 +4280 + +4748 +12999 +13505 +10698 + +4707 +1446 +2259 +2201 +3459 +1993 +1617 +6531 +3460 +2272 +1754 +6588 +2898 + +8242 +6533 +8501 +9404 +2286 +1011 +1940 +4199 +4995 + +11510 +7982 +10005 +15579 + +3578 +12406 +7940 +11947 +1380 +12643 + +4574 +2465 +2184 +4976 +3793 +1405 +3976 +5843 +4954 +2814 +1596 +5310 +1758 +4990 +5705 + +7945 +5108 +9589 +9098 +3039 +8847 +3776 +8315 +5749 + +26315 + +5415 +1420 +4067 +5821 +7466 +7027 +7916 +6201 +4556 +2711 + +25290 +1682 +5357 + +29197 +35285 + +1112 +8038 +5132 +8695 +7350 +6903 +1253 +5873 +5274 +3940 + +6671 +3196 +9273 +2164 +5533 +7340 +5761 +8737 +5184 + +1281 +2505 +6171 +5617 +1200 +5848 +6105 +4476 +3495 +1808 +5065 +2231 + +7002 +1749 +13548 + +3303 +6583 +3171 +3051 +1036 +7790 +7159 +4326 +4447 +7013 + +5551 +3972 +3022 +5275 +2300 +5675 +2422 +2813 +3501 +3537 +2440 +3393 +5644 +3351 +2454 + +5692 +4309 +4409 +1967 +2068 +6467 +6315 +8051 +6237 +8069 +2213 + +42975 + +11367 +14938 +7848 +15849 +1867 + +2803 +3757 +4045 +1854 +5027 +3637 +5425 +3113 +4754 +1822 +1086 +1024 +1890 +3692 + +4391 +13299 +9709 +4887 +8221 +7477 + +1104 +3085 +1590 +4909 +1787 +4197 +3948 +4187 +1126 +3158 +1919 +4529 +1791 +1510 +5279 diff --git a/data/1_2023.txt b/data/1_2023.txt new file mode 100644 index 0000000..3c83528 --- /dev/null +++ b/data/1_2023.txt @@ -0,0 +1,1000 @@ +rhqrpdxsqhgxzknr2foursnrcfthree +2bmckl +four95qvkvveight5 +2tqbxgrrpmxqfglsqjkqthree6nhjvbxpflhr1eightwohr +7two68 +nine7twoslseven4sfoursix +fivemnjxbrnsvl3 +3qcfxgzsevenone1rv +9four6dk7gvv +nine91threepdcthjkmrthreeeightwonsg +fivetglzqdfthreergnseight2lpphhbd +fourtwohldlr6294 +qkvc7pvsv6rvsxlqzpjdjkd1eightthree +onefourm5qpfvdnbs +ql8jbzzjpsdgmrjtngrkfdmcsix6eightsix +8nl2 +5lfzqhgeightnine +three313eight2zcjnnmtnh +4three77dgjzfj4five +ntr5sixfourznnljvqdr5one +threedlmnd98nineeighteight7 +pzcnnbjjthreefmlf9znfnkdrjs +flbdjkseven7338qxzbcsx6 +six43fourthree2 +one24hndgmz37mjqqm1 +4fiverlgtbr +7hqtlxgngd15qkfl2three +mtcztwo46one +3onefivechmlkgp87clrmmhseven +tvsctqdlns1hhhctpn34cztkqzztpcgtzhgrtt +four8flptk +6zkb +7eight9fivesix75hclgfphhvv +ct53qdjpnkdpxdhvpqqcx8 +144six +kbjtmgfrx3mpmjhncfl78nine +7sgnlbdfivecxz +oneqrbbnrdxgbbfl3 +8ndmrfggfz1six87 +hjkfb8vhrhnlmbhbl59rxplvmgzspfour +3sixjhdn4hckqsnvseven +zmkgmlpfsixxhmv25bqlgm5 +three48eighttwo +rgfzfourbmpxzrh6dfjcdkhqhcdkpfpk +bpccbcqmlstwos8threenineeightg8 +nbcpd2prckbshrbvsmrmlhxdkq +6flfsxv +84xqeightseven +1xf8five8rgplhdvteightseven9 +frtwone34btgz4bxlqbf +three5eight +8xtcsggc +9gtrcffqmxpvccjpsfqsixlcmdfkfgjqc +5svskptp1twothreersjrlnfdbxttzrkkqz +tsdtcfsj5sixfivesxvxxsgxhkhngzl +dgfcrtck2twosxkdq +fivektlxgmeighttwo1 +9661ldh +twobqcfnxbgnd68 +pbsnjqtqhzfrjjtkninexqjbsvrcnnine983 +bfcndjjsqseight81 +rgvxddcs82one62 +oneeightcgseven7 +fivexhvmhjhmzscjpxjgnxpd37 +onefourdxsgvbkttj2zcpvnrcbpnbfonesix9 +four65mrbfjsix +tgbgnqcdrsixone2hsznmgtgtp +3five3 +3vzg7 +five94eight1xrbcgnnq7rknvvfnrgv +mjsmnineone7phrfqseven7 +njtk1one895 +jrpbp7n62zgnrnxlzdvtlt8vqm +135sslqzn +9ninenineeightsix4ljnj1twoner +6nine44mgmvrfhvh4four3 +gvqxreight6 +sqrfkncdk3 +5nine7qkjsdscrvsevenfive +qbxmone9twoninesljzz +qhss364lsscxxdk96six +35bxgcfive8x +eightcmzzdxc853sixsixprnnjknfp +one23pxdgrsbsonegfive8 +41three4 +eightkzpscshdstmnklzthreeqzkftmng46 +2two66 +threeeightninefvmbcfjf2xjsixlrpr +2269qhvrrfp +527 +2onevb +nine7ninefour7threeqsblhrgxvjtwonelg +fourvjdqxnn84szdc +kbgtfcrr6twotwoeightthreeone +5cjlvqhbfivetwo49 +knzgl5cnftwovmffkrgblnjmhhb +6glbpbn7 +fiverfourfivefive1three +121 +eight3one +gxlvnmkpkksixfour6 +k8pmlfgsixninetwo +ldlhsix56one +h1 +5vlcktk +139nine9gtgqkddsixeightcgqv +fivesixsixeight3nsnhcqcfoursix +pfdksfpmonejrbbninethreeqsjsfrv8njfdh +nzltgfsbqpbzcrgvpj5 +eighthtfive5gzmqxhbcdmseven7 +nxfvdgxhxninethreegfqlzqmlc4three6 +hfs524zfive +5fourtflone +4threenndghtkh41 +54bkrhrt2rrptrvcszrskc97 +spfone69nlpgftmslthlqdf +qgtf2pz1seven53nfscpnrf +r4fivehkpthtn +gvd2qshbjjsevenone +47397 +gtzqvvsntvqnhrkxqb6twonebt +3sixninefivekjkgpjvtcqcsix +six7ninefourseventwosix7eight +6fivemgdj +dvbbjrbfjsxffnjlhfdqthree51oneighttsp +seven784mxkxr219lf +6ddjspgcmtkqd4752 +7xlvdtztq +8sevencjsfivethreefour +8rqzng +ninejttfnfzrffnzzbtrbzhsix9fivesix +jhgtblzxbs9klzzztwoxlpsfbvhcl +9ninetwohnvpkkbzklh8 +7threen2zfkphngfkjhvkkz +gqldlljv5 +nineskmdqcqxj16 +9pgbdlfcmbonesixthreep8s1 +4dbjktxcbqh8cvxsnrkdgvjrghcfhx +sevensixsevenhtbhnpcpnqjtpfsix686 +5hkvjlrjbgtsevenhrlone7sfrztpcqjpdn +52nine7ninethree +three1251 +1ghlmpvmmseven1threeghgfrsch +3sixseven7fsdssixdckfvhzrvq8 +jtwoninesevenfour73tspxfxcd +2lxlsninelvnzjvd +nine1zfx +gsmfnbkzqqkczkpgg522 +zoneightone9zlxxrtbxzrh73sixthreesix +twotwoztxzhrlbnlhtqmlzph6g4eight2 +fkqrmjrhmjjnthdt281sevenfour +twodzpjpvx1eightmmkhxtlrfzsevenrnhthree +one72ptwoljccvmmkscflxqv +9nine9kbmlcvn +3ninefivevgvcssvfqhrfvxc6hhlmcllsxpzp +1four7 +vhvlxg5six +sgcdxjqvkrfive3three +sixfivesixvgtrtxs5 +4zsevenfour2 +2onenqjkjxjxcknc52fivethree8 +sixzqtgtdkqm1sksnfgbhtwoseven33seven +4twobq2 +twocxxl6htqlcrlsdskmone6 +731 +5sevendfrgsdjhdnrhvdp11fgpxknxvfvv +pdktwo2eight824tlpmsmflg1 +71sxtsjtff +ninesixeight5 +eightsix3xzrhclnl +twotwo6tmslnxnfdfbdvffgt668 +four54xclbszc +tt6fourzlbcldmffour +fourvnxqfngsz7zkh74fourtwo +twoeightl8five1scfnnbh +one4bjzzckgseven +kcb9five +7five6lgdlmjqblvtfprrfht2 +4fivetwopcnlntseventhreenqrdgrjg +twobkbfkmzdlkcjbrfvnl65onesix5three +73eight7 +nine52jrlrthreez +six8tmxhjxgjm6six3 +635jksvjvndtxbkksznrbnine +zncthreeninefive4seven4pdckvp +one1four +xndfpkzeight5 +7msxkdfzvtkrsdtqz +4onejglhdmnjx5 +1seven1three2 +4nvkv +hd3 +9zbgttprszjmpv +fourzcxeightthree6 +dkkvxvzzktr5vrztgv1 +797cqxvfhtlthdbhvcmrktwo6 +four383twoeighttwo +1lnkzjrlzdtfvgckczfour +onefivesix3ncll3hcrpsdmtpxvnine +3fiversgksrncxh46mzvpzv94 +4eightmzsgftrxjsix637pdjhsds +gz4tgghpmtseveneighteightsix +9sevenmfourfkfscq +hjmbkzznjflhtd3one +eighttwoone5gfzxmptfivemlkfzpnxr +one4txtzkrtzmqtfbzdgnfouronenkcmqdtdgfnjvhc +kljssprljm5nine +z5 +lrmgjltmfive79lhqj9 +vdgvlvhptpprbx16fourgph5one3 +fivenine9two3 +ninemglpslone6 +988seven3seven +twonine6zjhhxsdlglsmpmvmvvztbhhxklzponeeight +3ghmsrggblfngvtt +gdftwone1six +sixxtxkgzqvldsixzzqtfq5bvhlxkxrthreeoneeight +3oneseven +4three6one19five +sixfourseventwo2threetwoseven7 +1fiverltmfpdkkj3nine5 +6mzrdnpnfivebfgbbvtmmj4rqssl +vxjncmpg3twoeightone +fivefiveztghmbgd1 +6sevenljbnlsfjgpsix38 +threeskseven1rqtfrmkkxkkkkbqrqknsfsrfoursix +jh5one +3145hsxsrthree56 +hdxxdz6threenpq68zpqhvrt +qbfxrcfpeight5lqpcfd +seven4hldkmhfbeightonenine +seven9threeeightwocvb +qtdp6grfdn +fourhqp93 +three1tmgpxlqjninenine +mtbvfjkmxr941bct +one61one +ninesqtf872six526 +ncdfhxmgsjseventhree3xvpq8 +1sevenjjnvfjzd1twovpkrsvrdbninestsgzdjfgmfxnc +36sixmxnhfkneightwov +threeeight5sixfive241four +four76nine +oneddcxxggx7tvg +7gstvsclkjsixtwoseveng6four1 +vttsixsrqgmkptdsqbnhvdmhmzxcstxtx3eight +5qckzltb5 +nine943four +hdgbvjtjkc3onetwo238 +q97gghxdgcqdkeight3onethree +sixrsdrdvqlht2sixonexn216 +4nxkbsvninenineqjphghzjqnjqfvhnine +21fivejpqsgktsjczkdps79three +onesixst8 +5ctxhzsvllbseventwo91zhznxqeightrlblc +1178fzjfsevenseven9 +2j5dp +cpxeightwoonethreehgnldljndt8onetwo +thltnonefive8twoeight +cfsthmmztroneqmtwo6 +threethreesixcsfvf7 +dnsskccxfour3 +bdgcdzdvbjninefourhgtwoone1nine +6sixeightfive24 +sixcgkfour5 +ninekbtkninefsbmjgppfive2 +96cgstvtnsix +4two4qqflzdeight4 +1pctd7zmpndjhljt +78two +hjfbdjggrkjbxjtlmcnnfngrgmfsevendtqjsmqx2 +58eightkpxlqmneight +eightninefoursix44txgslt2vvp +5fivefive1one6qskqbldeight +1six3threenine +5fourqzjhzsgbqkczhvhrvr2two +7seventhreeeighttwo4lmkdgkftftwofour +threeeight21fjfxvrcnfive +vkzgjvdjzdpdxdsfiverbgeight3 +878 +9zcthreerhvxsp +hninepjjvvzmfns1pjtbtkoneonenine +lbjxxthreehkcbjv7 +1682seven +3xhbltveightfivethreeln +vdtktf9threesix544 +81sixfournineqshtzqhcp +ninetwomdvdkfm815 +6eight7ninetwosszxkvqmjpdcz9 +twofive3 +ninetwo1vdhjdjd +qpkgszmrndvgn11seventwo +crspcbvbone8h +48one27754seven +5dcfivedrpmdlcbvlbjdthree634 +1fivefour21mxfzlkbjft +7btfbb9twokldmpeighteight +98qpzgfourfivefivefive9 +eight2sixfmsxhvcshrqhpmxj +threetwosix126 +fourfivesix1foursgbzzfnggoneighttbk +2twojnine5ktbjbcgbsdfivefour +njbxmqkn3tdthreeeight58 +4zltkpphfiveqmlteightjbklpkmgbhmzt +fourxx3 +qkgs3eightgnzvnhcdjzjflfsczdonejqbnine6 +3twogqdhbgvqsfour +618 +plknlddeightjhpmhfleightsnszjmsixczhzq6nlrk +onesix1sggfxdtxvlnpjllm21 +91mfcztmvnqrrxqftwoeight7five +2xdthsq +9vlvsrmdsevensix5sxxn8 +jprfqddhp97tbvbtt +jzdpqqrhsmnhtfhbrjdp2 +225ln +three18eight99three +rjsbbkts5zftbxzttrl1 +1hvvhtbgvm95gtcprjgvxcf4 +8sjmrkxxbht +dgcgzff9fivethree9 +8sixkgtfhppcvp562 +kptdxhmdlfrlfml2 +2lkssldqgt +grfkn89ptp36two +sixfhddpztzntwofive3 +kxxcmtseven2 +1lbdhrzdnd89qphjhxqntxnine +grqgmqzfhvksrxgqkb25rjmbllsvzk +eight4fivefivesix1zkbcmhsql16 +dhdpvclbmnine2sixeightchcz +6ninetwonine +onepjonehbzsclh83 +4xxzjsqddfxbc29four +zhdrrgdqkx9hns7three +1zqfkdhhninebstlhseven +5zxnn9eight1fourvjqsvpn +one2kdmrrbjhxddxfjqjlxr3one +nqjghpdmssjbv47zdgbm7 +bvktwonetwothreefive97skqmlv +nd4onedlvthnsrxfxm8 +eight6pcntqp2oneeight79eight +6vjzqcnvksn91khthreesixtwo +kxncx932mmmfqf +93546ctxfbhpgxxnlnx +five52 +ninevtxblcsbqfzqdqz921 +2lqkgmkpcjhsvtnj +v2sixmjktdbtpqgbkcbhvm +rxhvtwo2sixfive +3one7dffhm9 +1twofoureighteightjczpmtfpmxf1tfpm +123 +16eightshkfbchsvrrqhjpj +sevenfoursevennvxthree49tworzzxtvghkn +one1qzskdmrc +two86cqnhvpnsfourtwo1one +lhxcbcqbrnqvjdlt3znmcbjlfh6 +six8289 +three9onetjzqjzdck1jkfive +eight15jrdrjrs5xtdvm +two9fourcnjlvxeightvflxm7eight +pd3nine +746twoshbngs +eight28 +pjztfhmvtsixmbbjxfvmpstfpttfive1 +fivevnncxmbfbtkdqrnmdpdxsqbzprsx2seven +oneljtwo5fivefivethreefour3 +hhzoneightsevenfour5seven9sv +xkhjlkrr6zcnchhmrjh6hngjjzhgq4eightqdpqf +3pxcvxkzxlttpsgpk4six +lpfhfhjshfive96six3 +6rkpkhgjjxrkgldqzvhxmkmfivenine1eight +9djnfrqzcldeightoneightkxn +7fourone +threethreefourr1four +2gcmft +37four8 +7eightbshnvzbzpxeighteight2three +two48pfkmcrkvtfpnine62 +qsix8rfmnine425 +dhssxzlonesixsevennine9three +eightzxdpbdjzfx4pseven6 +threesxgsncfmthreetwos867 +four6lkgjqpvqtvvlkmg +8fiveseven +threevhlkdd3 +twofdgdlhmglf2gjrrnhhhfxpkqjxhspclbh +fivecjcgbdct4 +3mlnbbcgpnvscmg61csix5 +nksxgppxsixsvzxhrqzs9threesix +kghb787jdzpjr68 +ninegpbqfq6ninethreeeightsixseven +3eightblxrqctk1llv +llqzqvmr4dcqtv26threethreeseven5 +6nhzbxeight971fivezmvkvnspj +gvhvninefiveseventwo1bfnvzdc +tz3lhtpftvlgkr7zxqjczcblqcxnbxbvp8 +eightppnmdmnlvcqsmlsvvvhk9onetwo5 +48fourthreesevenbjj1eight8 +5ghflmtwo +nineninethreecprnvsvg3dhxhk +sevenqmmlpdplcmgjtseight5 +sevenksdpnqxfn7vzqg11ninefrrtmncl +162hsvvpjlg76ksbbrxpqnoneightk +2733 +vlhzdjxd55 +three48nine +6mtkftqtmbf +4three3eight3eight4one3 +1glmnzhgzzvfn235four +5seven4hqsjsft9cdfhfccfmbfhteight +bv7eight1skmkdtbx +524blmgfivesixhhpv +57eight79fpmznfjjdckxkjqvk8one +six3ttcnzvqhkltbnrrjm +dpttv5nine4one +three3threejpcpzshhrr31one2njhjb +hlhlclcjnnjfourtgxqsxqtgrprvcslsm2 +6seven257eight +8ksixfflvxzvhmfninepgq3five +lncgmjnx14fourrnpfhfmhqkgkr5five +sixsixseven1seventhreegkjfkznkqhlhk +sevenzbcpkjkcjq2 +smsdpfourgpxnine8five +fxhdt3deight +7htrrjvtworninebtgkdnbt2five +qphmdxgzfiveonemxkx3 +1drgktkjcq7mnnxnsixkfhkrf +two7c +43eighttdcnpqldvd +4onevnfd +fltqvxksjrn7 +six4p5nvfsjdxbfszpxmttcqgqghcczmlz +8twojseven4 +7mcgkthree4nvqqnjkzcqjt +nine5onepjmghlc3one7sixone +4hdone2onezrpnt6 +qcdttnqdtdt6 +tkrztgn1four4eight66 +djvbrczzqj9nine7vfcctvjqdnmsixkeight +44htbnmgvxtznzlzfhtwo93 +3xpmx4 +6sixnine +5hqqspvrzrxqr2eight +ninemgkhcdtfpz2 +3threetwofive4 +6njcmnlkrcf +gnfxzcxhvbxpc4 +pd41seven +91jvrhxgzrzq4fxcqsixdtnnr +fivehspkhfour4threefourseven +8fiveninegcgkpkone4 +6jrk +4one7sevennrtrdltwo +thhsjklkq81eightthreeseven +ltzdlltggeight5eightzrbvrh +sixninem48onespjtjrszk +7hrnvkdslhb +76sixvfcdjhgqpccsksfour2hfjccbplzthree +437ndgtxtwo +5xv5eight +npsmnhzghsrpkrm7 +9four94 +sixpcgj2nine1frhfn8 +51 +sdq8cgphzvqffsljtxlxlc5txqnsfdrmn +ninelxdnzqlsevenj8sixtpxrpfive +7hcczrfthqkthr39six +fivesixdkqdnfq9 +5n9threertlbqxtj +5threeseven +mqdptrrhxz9threefour +two2two6 +vlkzqbztvnbprdc94one4one9 +xxcfhgkbss94four3nineseven +jlnhmvgczmninefives8 +eightoneeightjsixfhkxphlj57 +vpg3fourtwo1 +lnineone31jsmeight +45srsljgdfivezvrdmntmb +three6onelrnmnmqpcn4 +twozcjvvcdv7xdql993 +71fourtwonejpm +one4one56bnhf +twohssdrcsklone8six +7tcjkcchbpggpk1rddpdgvpgzm5 +7eight7fmqpzrjlcctjvhrdcjgm2mgkqrbdcmzlzngbkqlj1 +fvb4four +rvqhqhb7kdsrmcc +pdklstjsevenfive6 +gsglqtpj5lmbcfxchmjnbvhpcvbssx +hgjlmklngdk4zpkfbhmzcmzcjsmfkghdttfb +586ninesixsixvfbveight +hrvthreeninesix58 +pxmg4threevhrrsbfrck654 +1p5eightonesixhbjbxgjb +four6eight2sevenbtgfkkzcm8lxstnvfbz +c4bqc +12mmrlfnsxtpfncc3 +five7eightkvdghfvcrgsevenfivenngqmzh4 +5onefourtwopgnhsfrpfourtwonineqfhrz +sixzpzk1 +five45 +gjfpvjvqhpfrrjpddqfbvdpjj8twoqfvkfkvpqzcjvrqn +czqxtqbxpjt9fourqdcdcfourseven2six +8gmgfsktkxmfourqfshsqvqjx +qjdfggfhtfnine38sevenrvslgljqrpeight +7five6pxhrxcvzsixmcqvjp31nine +drvdnptcltnmxxtjvslq98 +fiveqttmkpkrxzngddzsncjlsevenone6 +crlldnmx9rpx3 +8tqcfour2vbznhzzzl +9vdtxfbgrqzsix16 +7sixrjpcfdv9twothree9dqjlgkbmb +eightfourvzxckjqbm6tdbthhsnjr +9bnqfmkxlkj4 +62tskjsixtwonine +foureight6gqkdstfivef +seventhreesevencqj12 +rqfq6rtcvjjqnmk9gvvttbpnbgvjcmmph8 +5zngdplj93seventqlknninesix +fourgnqdcrgsznk8xknsrmd8qpxxm +vgslbcnlpk74dfskqgsp +qmbnjllvvs1fbjslc4onegthree +z82sdgvgktzfive +fourdmxcqmstvj7jgzjkfxjntt5cxhchtglmfive9 +npnfivep2three1tlcctmfp +mptzvjmfourfive4three +onelkcmzninefbmgnfghsix3cgpzd +jbshqrc5nbjhktdqmtwotwoxpffrlzxbsix3 +9threefive1threenclhfgrzxl9mnlmcckvnd +4231 +1366 +one9blcprdq +two9two2tdmhtcq13gspmmkrb +eighteightfiveeightjthjbgjm5hpqtbtrfour7 +jsjninevmtdscxftwolzfqpbx2gdnflhpvlvtt +fivegjxkbzdtj6four5 +3oneone +8gkmzrfhvchfs78jxbtbvgj4 +5two89fzrvnkmkgt +53four884seven +five5hbxqmfccfivefourfourfour3 +onepbsevenbsgvmgf78875 +4fivempxjjpjdgzfkqhqdrrz +7vqj +twovnnknngstnine8 +four7twofourqddvxkzvvgzrrvlthreekflqh +vcbmfspdq1jone2two1 +eightsixjgfjrsszgmvbdnbqrpzpps6 +6eightwomm +hgjjltvnsd39nbxdgfpgjl +jfour16xmrdzq +1jgrkhmjbeight +lhsdll94kccmdhtwozxlfkrmpxksixthreetwo +zmtdfour8 +9eightqcpmp8threesevenfive +sftwonenrzbrvmqjp6br3 +tgqoneighteightsevenonethreesevennpk4qsffx +dkhqbdnchvfiveeighttwo2fourfthgrgl +brfivefive1mlfxznfourfourfive +dlpqtdpgsevenvzkzljds4three +tzcvrf1srrjxlhszsixsix89l +blbnntbjzsixthree44one +rmppdzntgjtdone1shsevenfive +dpfdbjtv8 +two19nhtbktfk +4hbkvbrnpxsevensix +jccqhkonetwo6twotlmbfmvbz +4fouronegbx9 +6xhfxfnmmoneightp +lnmmkfntxdsghsxzxkf279 +xjdg92ninethreepglp221 +seventhree4xmzxp21bdssnzqnrthreefive +196 +rgd4 +vlmfjrrmpd2two7sevenqrzcrhhvgpvksqh85 +71sixfour +sixnine5jfconesevenfournine +5fourfour96hqphnjrmfhsix +nshzgrhveight8oneightrhg +two5c9 +dgkvzfzd1 +888ninedvdslkfkf +fxmd1qfjnpbhrkhptrp +lnmh48sevenfiveclptstdd5 +zgjbxpgpnlseven6ffjcjjfck +seven2rmcdrsix +jggjjpj4eightczcngxm3nineone +tworrgbm31mbhkfhndvb +szkfqfbknv54fiveninesixsevenseven +three3six27 +rf376 +7clbr1999 +xlmfbvseven71nhddnq +nmpgsvzq2jkfoureight6fourhzhzxkseven +5344two1bkxdtwo +six8dnql4zjd641 +4fourmngrflsix2two +2tthglxfourfivenpvrqcsrzkfkcqq +njrfive4 +633qdvsmlsv2 +seven79oneceightljnkxdsvxrgg +onefourzlrvctmc663 +27jznqcz861 +sixone6twoeight +9fivethree75ffldxglvtone +68onesxzcksgm6 +rpphzspvq8zznrthcdsmvmfbgninefour6six +5drvndprrvh178 +5threeone3eightthreedmtkpjtmq +two9fzfxseveneightthree +6xbqvhlbeightsgsjbtqcg +seven9twofiveseven +sixtwo87pnltrpkndfttxthpkhjninetxqtcdfxkg +fivethree2five4688seven +2fqmcqdbdzfzjn8sixfournrclzsseven6 +9sevensevenxbpljmfsevenone +five98seven3 +threexpnxsveightone5nqqcd +27eight8 +eight1six2one2htb +twoeight4bhlvvksqqgqone2eight +lbroneightthree3ninefournine +4ctwo7 +fhjpvtwo981foureight +pjffszkdkdg3sevencbh4twothreenine +12vljtwo +bldmronetwo33four +jjmcmjmf9fbffcpnp9ptxfptz6vjmbrx +snine9kxkxpkk2two +4eightfive1ftqzsfqgmdcnmrdpthreefivevsdfjt +lfjnvmm9 +ninethpqntwothreeeight4 +8qcplzvqzrlzlznjlvltcbslthree +eighttgqrvm5twoksr37nine +2fourprchr53three +qnmkxnhm5ninetwotwoksbnvtqs +fourdngcgnnfiveonethree8four9 +two3kzmrhsdqtfivefourns48eight +grclfxj4nblzccrfrcctwo83 +llvcskkmhzrbzvfd1five +8sixnine3 +16kpsgmcffhdmrqpnmthree +1qkkpbptccqg5fivethree99 +four5zslbrzjfvcl9trcnkfdkvrthree +kv2 +5pxtjhltvxmczx25dtktone +rsjxvln27cvkk +five88three2fourbhmpcthreehxk +one8six +sevensix5sixlqthreenzsphnxbjtksk +lmq8fivefiveseven8fvt +lrshhmlgcxdtq87 +fivexmgsixsix282 +4sczfdpsix54four +2vxonehqfcvdvxrr +9seven7five +27xkkmp5qone3four +jdjjdjr6lgpgszz +two87sevensixtwofive7qktfvch +86fiveninetwo37 +zjxlcjthree3ninefive76fiveeight +9rczvmthplvpxhxt1vgf2fzgg +4nineplxfourtwoseven1lzh6 +twothreelmvmhkndcrlvggsqfq2xzksfhgsix1 +njfknspt14hfpsxdpninerdzklfg8 +qsbeightwolczzd9vblksgxrxdseven9two +8fourseven8five6cnfrcvpnhvttq +nlstwonevgqvzg3fdllsqktqf7cgsvfjhzmfffntvkln +glvmzeightonesix85xrfvt2 +5cmlnbrtwo +one6mp82twoeightfour3 +six11nqvlrrpxhr +hj95dtrpdkgsevencccfxqlxfour +7frxlq4two4seven6 +four6cpkgghfxgfour9fivefour +lsix1sixthreeeight1cxnnqqhxxk +zkntsdftthreejk16 +nine2c +9czbtsl +5jqxkskkkzdvznine +7two9 +lfssrfourv363vtbjnxj +9fourdpcrxtxnvklltlnsheighttwoqzhnrgheight +twotwo2jh4431nine +57nine19xj11 +8sevencone5seven +xz4sixtnnklcvjfdq +15nine +kqtsqznbctwo7vhzfsf987six +6fournine6rsbdsp2qrrnnvqreight2 +4fr +hpfllcmjjbbtbfive2sevenmgfvrgbhxmjbxrh +8nrsix +mxrgrhtsfvtzxqlt8vspfive9fourgpkpnhsj7 +f6892fourzjgk7three +xzxnlvgbgninenine49two +eightzjtdkvnmnvone2fzhkqzzthree6 +six259mtjninerfourkmlg +sixthreepflrvthree5dsrppdzgb +one882three +mtmb8ninenpxtfkchcztwompfcjkmnh +128sevenbeightsixphngd +qx2 +1flktj7 +six4nine76kcc68one +48lvjfsfmgnine +fmkmvmrrcgeight32three535dl +one7one +5jlscrmvnvtwonine +3ls +eight86 +xphtwonefourspczfive9seven6 +four9g +tmjtfgrddj9seveneightsixninekzqtwo7 +sxvgv3 +qvrsvlfvpg99 +22qztqxlbjtznfdgcngprx3eight +2fiveseven +76jbmlnine1fourtwohsptzfour +p6ffvh6vzqdglghnfgpdd +sixone9 +five6grzlghcztrtjqpncr3lpjstpmcvfvxpnthree +8zkgnine +onedlnmzkzh46sixsix +hcmqknkmzrfnchs5vrjbdqvshvtwonev +twoqnzpmzbgxm6 +89nmgdvvzgmvsfxpbc155six7 +dhqnjmtzh6bhjnrktjh +one4sdcnk +qkrsblxng61fzqfcjrjnfndzg +8fsklvmcsixgdqvkgcqd +onefiveeightpt2 +395lqvmp1 +7htxhxzxkonesixdlpvnfbcrrgmx4lzpnjxj +xdf8seven3223 +cmsfivebtn9vtwojmcsix +92mntfpfseven +2sixdsdlgvrzbseightqzmdghdvc6 +fourgkncjh8onethreemzpnpx +five9pfmbbffcfc9threepdkjxtone +2lrpmpfzceightzrglddshdfour +xhgxmvclgvone2 +dlcrxnsix9onesixszqbqbxqfgjgsgsix +939one4ppp +5onessszzgf9hpzmpjctql +9ninesix79 +szbrmlbzxp8cqsgkqnz2four +vbddlztfkqzb8fivethreeone9 +7four5 +2zccllppptfour6 +2twotwosevennine6fbccsix +7txcxone4onercgzkskvhlfffive +six4ninexzlnfivekgqggbmkcmqeight +27fourone +12ljvnmlzbgfkccmqmgkrlccfgk +twovgvzxzcfxjdrxbj96bbxvnnnine +363 +six1vkcbcpmxtvlksxxjz2btzscsct +5ninetdrhxk6qgfive7 +srlvrshx8one +2oneightg +pvflfr73eighteightprthree +nmeightwo6 +3three858rvdfxvrmpxhn +five8fourtwonineseventnjgmnrjdj +two9ffcstwo5pq9nine3 +79onecscxpbrfoursix5five +fivemlfbzxczbsixkjgrxjxfourtwo6 +nmtqf7onescmbq +jflnldgfknsxhmmvmtvmgprsbrdglmpxsdn5 +hnb4lxnineeightoneeight +ttshkjxgsdqzjvsvq2fivertgmqplkone +bvknfivethree4ninemztfvcszdhdghgc +91sbfbpxhkkndhnhdjsevenonehxglqqfxdkjp3 +qzbqpxvtwo5eight +frcgeight5onefivesix78xltkhzx +248sbtpeighttwozncmmp1vtmndj +mczxcone918ninetwo1two +nvhmdc1prjgfknkc5five +7seven9mdbcjbgx +5fivephqnc +seven1gthg +9xbzmrth +xxhzgnmtv891two2npv +eight171 +9rnjvzmsix3rkjbmdv +93oneightxtk +mkmbfour8 +twoxbnonefiverx6mjkkfktdxx +ninehrvrcpxfxbzvrtwo1zhbzone +three8tps19mqcmchone +m466zcczxcghqzqlshhzhbkxkm6 +vroneight4eight9seven4two46 +seven5sevensixtwoseveneighttwo +snxjjttqxkcs6jvlb +5six8 +pcqpzp6six51 +six2twothree4zjgcsgmjhjsix +tcks16 +4jgprfrphdhp52nssrhkfgzhzbvddbtctk9xv +fivesix8one +6onermrhxdqbbcdh +jst7ldbfkdkzkvzpqbtxvvcfvkzsrf9eight6 +nine3three9 +krmjjfrsixsixfqp2 +7gkdlgbdln9jqvzfjq +eighthfslbhxgcbqbldxn9 +1fivesevenj9 +9trldgsznqlkthreetdmfbxbzhdcskv6kbfour +556qvdmncnkfccnqnkxlslmv +shc27 +knmhrbkpseventhree715vtnrnpmrnb +tsnlnmxg5cnxshnmffive +4fourllsqvbfive254 +stfivezzjhltsfsix83nineq +six4five +four13 +89qcgfqtsdcmktmctwo2seven9tqlbffgrjg +8five6 +4three3 +59twosplbcrzmgtdrjmrhmhthreetwo4 +dlm538nine +pgsixtdtxsrteightnine9fjcvpnxzgfcjggjgmr +9rksix3seven4twoeight +7bzvgmkr5fivezrhpknpkdfournine +cbsdlrqsixtwofour1twonffm +59ndhbj +gblgkrdtffkcsdthreejbbggninesevenzkrsnm5 +kftmd5 +fourdnvkx84clrnbpftqj6rkdvt +fournine76bzf59 +threevhrkzrvbqkfqn26 +one9sevensix32bbpvvvt +8zhnptsl16vkv +vslkvkffs2fdcvtngkgtdvzzgplvs11 +twoqmtnnnftnhqb2sixzqzqfmbrqj6 +nineoneggqtf1l72 +7264eightsrjdmhhlfthmglmvgpthree +eightsixsevenone3 +9rlkvhq1threevnqzkpfive4 +16three +cksqzvzct63fvbcqtr +xlq4three6vfxn8eightwoq +seven3fbhrdgft23onesixpffgmptzxj +fiveone9fmkgxz6thb2 +5vsksrdnrtzqzxkhjxfcsnine +eightfivesix77tnlktpb +threeeight11lhc6fivex +1seven36 +ljhbgqdb9cmpjzzct +sevensdnfvp1 +bzvfsgdhg7p +8z8fivefivefrlfeighttwo +fivelqkmsjstqn93foursnkqthreetwo +bjbnjkpr83 +5sixseven +843lxtfgzrg +19xzqmptgslgfxdlvone8 +qvs9ninetwotfivetwofivefour +3two7177gchxqndqb2 +pclgmslngmhninegktmlrvmvbrb1five +twosix7fivekcstvdpksn6 +one8lgrcj987sixthree5 +3fnjpnhxh +ninefive8slfz4 +threetwonnxdmnpftn9cjkglxp97 +4one5two8 +8h672smmqm6nine +qsddxqjbxvjlrmlsfxqjptp8twofourkddx +eightxdlqtltjbccnqkcsgvbcpvrltjfourone8nine +zvhfiveeightpxmhfsixmfjnsrfncl1 +891 +twospnzhxsix5twopsgxhcpgkdthree8 +twosix4vvznbz34xbglgczpcd3 +bkhgn2 +kggbsfour2kcrfbxcscd9lgmthree2 +sixxbzmknzt7fourhmhnmgfivezclrhtgshtwo +8txhbgvfjfhsjfivegxshndv3nine1 +jeightwosix46splstbtjtthree +55tmflknjjqmrvjtwo +oneqmsxzx8threenine72 +1three8zjdpnclmfive +mvqeight93one1one +qqxvlr5fourthreeeight2 +six82seven +seveneightseven5one3 +4nine59onefivetwonep +fourghdmclp7 +11nineeight +3qx74fxsxdpd +8rlvfhchthree68 +hbtwone2vgxlzdfsthreesixdxmxrhcone +ssgfcpxgmtwoeightzmtqlhqfive15 +sixtwonpgvtn9ninemq +nine3one524 +smleightwoccnpgzqxg2qzvzmnineseven1sshrbzzqmt9 +vzbbxr9fivetwolkzqp +642fivepkkpljsmtwo +2qhvjljhxlxlg8plckhqhpbc +fivesix8xqzfhrkfvqr1eight +eight2onekmfjqzhgthree +sixfiveeight7 +fournine6hhxtwotwo +bncgbbfrfktzrhjkfltn9fourtwonercp +twosixtwojqtcnznfoureight5 +kphpbmlgvxhcqctksjvkrcfsbthree9gfhtkbs +eightvfkbm3pvtwotworjqxrx8 +2kgfcrvtfive1sgk2nbz8six +6zgdkmzfr44 +x7qvmtdnhclnn68foursdkdcvrfrfour +lsrbdckq1 +one7xzmhknhgbfks +hnmkmltwonine729hdf1 +j2fivehttgmfhgzstrcdnvdspxzcxkt +7fourvhrhqtconefive +sevensixfour2ccprddhlxdvxtzshnbqtgmp38 +9twolpshzrpgqonercvlqjglchfour +rcbqcxzlgjlprbcqmjrfourldkgxhsnlb74 +sixtwo6mdrfflbkrone +rxcsh1 +mcnine4sixrloneightspv +qkdpnztwoxjcrfnsmhj4eight1gzzzgkcznine +mkglfvb2vmvrnrfourklnj76onethree +nrqxpfxcgg2fiveceight6 +6three4xsknpdhgchq6hdgblxszbpnnt +xvmnsdvqfrgkb1pmqtjfgdsix +78threexvllvmdgjpck4 +threermvn16nineone5seven +sixjkxjmfl4 +fdvhjb16gvpz +9hnqsix2eight5fiveeight +szxzqzkhbf9lgxfzvnsxjfhhgc +qxlbhrtjlkvsixbhvqdvd91 +6sixfour3 +6two2c528ldpscl9 +6rgceight7five931 +2gkprbninefgn +9vbzhldtxsgmcbst +dbmqtfkst4eight76 +2sevenoneqkhrxdhbkhcbxbhnjxzsevennine +foureight2nine +five9ninethreeseven +one8threefourthreexrrhnpdqcf +mgvq6vrsprdcvjs +vronedb876four53 +2cpv4tbk +jbvrn2 +81blgc8five295 +4threefour7eighteightdcmrckqxqmnpf +nxcbtwo5four66 +5seven3 +hlcrfjjkjqrvsevenbtdkvzqvxgrjdcmhggcqrr7fiveeight +dcjszvn3phczz34qdgfive +fivefourgrkthree2three1 +three28nine8 +eightt4 +sixfour8 +cptkxpzxk138five1sevenone +gsxjbkkg3foursix78fnkvhsddqvxs6 +htkvspn4fourfourtwo +52rlnsspjhrgfnckg +9six27sdgmz +g6ninezrnine +four6eightnjzpmninetkfxqgcqnb +2five8ffgdtrhzqntjzjssckdggqcvbskpdsrclv +3sixninecxghbrnpcx3vj3 +9hpm4qtdjpdnbqknine4 +9twosevenlnjfz +5prpkmbkfq6 +bsltmrpklzhrldlvpj1eightkbnxnfrlc71three +z8 +2sevenlzxone +9l5pxeight6 +ninexhskkhdkgjgvjhrqhrfj9bnrfbtxpp +sixsixsix3twosevenfivekjdkpxch +jkpvm1567seven +dvjdfnqgbsixeightsixqdkfpbc3lcjz +7twonineninetwo +zjtsjvhfldplt33qpgnlflhj +eight9mkqpbddonejtc78eight6 +797ninetwotwo +dfjnzxtlnine9five +gmjknnzrnrpcbcngzqgseven8 +vqplmsqninenbsjvctjfk8one29zrqb +3ljdlfldqtlqxrmxone4 +qbsixfour6six89pqxspnr8 +6vxhzrmcbvthree +four563pllcfonebvnbltn +dxbtmg2three21 +xtfzzr73 +fivessix4 +sixone485pvzxbd +18cfour +xjtctnllkp57seven2jgbjmjbxnpfgone +eight5gmbzbqtxrr27dtgfdbmtc7 +twoggvcnfmtrseven4dx +ssevenhcltwoseven2cxrmxxcr diff --git a/data/20_2020.txt b/data/20_2020.txt new file mode 100644 index 0000000..ca434fb --- /dev/null +++ b/data/20_2020.txt @@ -0,0 +1,1728 @@ +Tile 1753: +..##.#.#.# +#...#..... +#......#.. +#..##..#.# +#..##....# +#......... +#.#...##.. +#....#..## +##.......# +#...###### + +Tile 1699: +.###.....# +#.#......# +.....#.... +#.....#..# +.......... +#.#......# +...#...... +#......... +.###...... +.#....#.#. + +Tile 2297: +####....## +....#...#. +###...#... +...##..... +#...#..#.# +.......... +#......#.# +.........# +.......... +#..##.##.. + +Tile 2017: +#....#..## +.#.#..#..# +....##.... +#...#....# +#.#....... +.......... +#.#......# +....##...# +...#....## +..###.##.# + +Tile 1283: +.#....##.. +###...##.. +#......... +#........# +...####..# +.#........ +....#..... +........#. +#....#..#. +..#.####.# + +Tile 1171: +.#..#.#.## +.........# +#...##..## +#...#....# +.......#.. +####.#...# +..#....#.. +#......... +#...#....# +#..#.#.### + +Tile 2251: +.##.##..#. +.###.##..# +#..##.#.#. +#....#..#. +.#........ +......#..# +.....#...# +.###.#.... +##...##..# +.####.#.## + +Tile 2357: +###...##.# +......#.## +#........# +..#....#.# +..#...##.. +#....##..# +........#. +#........# +#.##...#.. +###.##.#.. + +Tile 2503: +...#...### +..#......# +#......##. +#...#..... +.....#..#. +##...#..## +.......#.# +.#...#.#.. +#.......#. +##..#..### + +Tile 1741: +.#....##.# +#.....#... +...#...#.. +##....#... +.##....### +#.###.#..# +#..#....## +#.##.....# +#.#....... +###.##...# + +Tile 3433: +#.......#. +#.#....... +.....#..#. +#........# +###.#..#.. +#....#.... +.....#...# +..#......# +....#.#.## +##.##..... + +Tile 3947: +.##.##.### +#.#...#.## +...#.##..# +#.......## +..#....... +.#...#...# +.....###.# +####..##.# +.##..#.#.. +..###..#.# + +Tile 1627: +##....##.# +#....#.... +....##...# +##..#..... +#..#....#. +.#..#.##.# +.#.......# +#......... +.#...##..# +#.#....#.. + +Tile 1667: +###.#...## +#..#.##..# +##.....#.# +.#........ +..#....#.# +.##....... +......#... +....###.#. +##.#..#.#. +.#..##...# + +Tile 2287: +##..####.# +#......... +#.##...#.. +#..#....#. +#........# +......##.. +#.##..#..# +...#.....# +.........# +#####..### + +Tile 1787: +.##.#.#.#. +#.##.....# +.........# +...#...... +..#..#...# +##....#..# +##.......# +..#....... +...#....#. +.##.####.. + +Tile 1873: +..#.###.## +.......#.# +#.#....... +#...#.##.# +......##.. +.#.....#.# +...##...#. +........#. +.......#.# +..######.# + +Tile 3709: +..##..##.# +##.......# +#......... +....#..... +#..#...#.# +.#....#..# +...##....# +#..#.....# +....##.... +.##.###... + +Tile 3137: +###..#.#.# +.........# +#....#.... +#.#......# +...#.#.#.# +..#...#... +.........# +.........# +#......... +##..###..# + +Tile 1423: +###.##..## +.......... +...#.....# +.......#.# +.......... +##.......# +##........ +#.#....#.. +#.#.....## +.##...#.## + +Tile 1399: +#.#.#....# +.........# +#..#..#..# +..#....... +...#..##.# +#..##...## +#..#.....# +#.##.#.#.# +.....#...# +####.....# + +Tile 2411: +.##.#.#..# +##..##...# +#..#...... +##..#.##.# +.......#.# +##........ +#...#...#. +.....#.#.. +........## +#####.#..# + +Tile 3323: +##.#...### +.........# +.....#.... +#...#.#..# +#........# +....#...## +#........# +#.....###. +...#.#...# +#.#...#... + +Tile 1213: +..##.##... +.....##..# +#.....#..# +#........# +...#...#.# +#.....#... +.#.#.##... +.....#...# +#...#.#... +.###.##### + +Tile 1619: +#..###..## +#.#.#..... +#........# +.........# +###...#.## +.#........ +.......... +.......... +#........# +##.###.#.# + +Tile 1997: +#....#.... +..#......# +#.#...#..# +#..#.....# +#.....#..# +#.#......# +#......... +.........# +.....#...# +#####..##. + +Tile 3533: +#....#.#.# +......##.# +......##.. +#.....#..# +....#..#.# +.....#...# +.#.#...#.# +#...#..### +#...#.#... +.#..###.## + +Tile 3389: +#..###.... +.#..#....# +#.#...#.#. +.........# +#....#...# +#.#....#.# +......#..# +##.......# +##........ +...#####.. + +Tile 3413: +..##.##..# +#........# +#....#.#.. +#....#.... +.....##..# +.........# +....#.#..# +#.#.#.#... +#....#...# +.####..#.# + +Tile 3833: +##.......# +.........# +#.###...#. +.....#.#.. +#......... +#.....#... +##.#...... +####.##..# +....##...# +.#.#...#.. + +Tile 2273: +.##.#.#.## +#........# +#.#....#.. +##..#....# +....#..... +#.......#. +.#........ +.#...#.... +#........# +.###...##. + +Tile 1987: +...#...### +#..#...... +#...#....# +...##..... +#........# +.....##... +#....##..# +.#..##...# +....#..#.# +##.##..##. + +Tile 3877: +.##...#.## +.......... +..#.#..... +.......... +#..##...#. +#.#.....#. +.#.......# +.#..#.#... +...#...#.. +#.##..#..# + +Tile 3109: +##....##.. +##...#.#.. +.......... +...#.....# +.####..### +.#.##..#.# +#.#...#... +.......... +#.......#. +##......#. + +Tile 3907: +#####.##.# +##.....#.# +..##..#... +.##....#.# +..#.....## +#......... +.........# +#......... +........## +.#...#.#.# + +Tile 1823: +##...#.#.# +#......... +.......... +....#..... +...#.##... +##...#...# +#......... +##....#.## +#...##..#. +#####.#.#. + +Tile 1747: +.#...##.#. +...#.#.... +..#.##.... +#...##...# +...#...... +#....##..# +...#.....# +...##..#.# +#.###....# +#......### + +Tile 3671: +.####..### +#.#......# +.......... +#.....#... +.#..#.#... +.......... +#......... +#......... +.......... +#..#..##.# + +Tile 3541: +###..##### +##....#.#. +.......#.. +....#..... +#.#.....## +#.###..### +...#.#.... +.#.......# +.....#.... +..#####..# + +Tile 3457: +#..###.... +#....#..## +.##......# +#....#..#. +.......... +#........# +.......... +...#...#.. +#.....##.# +.##..#.#.. + +Tile 1721: +..##.##.## +.........# +..#....... +##.......# +...#.....# +...#...#.. +#..##..... +........## +#.#......# +..#.#..### + +Tile 1597: +#.#...#..# +..#....... +#.....#..# +..#......# +..#..#...# +#..####... +...#...... +#.#.#.#..# +....#...#. +#.##...#.# + +Tile 2087: +####.#.### +#...#....# +##.......# +##......## +#.#......# +.......... +#....##... +....#..#.# +####....#. +######.##. + +Tile 2309: +...###...# +.##....... +.....#...# +#......#.# +##.......# +####.#.... +#......... +##.#...... +..#..#..#. +####.#.#.# + +Tile 3797: +##..###### +.....#.... +#.###....# +.#.......# +.......... +#......#.# +#..#...... +...#.#.... +#......... +#.###...## + +Tile 2663: +#....#.##. +.......... +.#.......# +##.....#.. +.#....#... +#......#.. +#..#....## +.#..#....# +........## +....###### + +Tile 3779: +.##....#.# +##.#..#..# +#......... +#......... +..#..#.#.# +.......##. +#....#...# +#........# +###....... +#..##.###. + +Tile 1163: +#####.#.## +#......### +.......... +#..#....#. +#..##...## +#...#..... +#..##.#..# +#....#.### +#....#...# +##.#.####. + +Tile 2683: +....#.##.# +#.....#.## +.#....#... +.#.......# +......##.. +.#.#.....# +.........# +.......#.. +.......... +######.#.# + +Tile 1783: +#.###.##.# +.......#.# +#..#....## +.#..#.#.#. +#........# +#.......## +#....###.# +..##.#.#.# +.....#..## +..######.# + +Tile 1097: +#.##..#... +....#...## +#...#..... +.....#.... +.....#..## +...##..#.. +..#...#... +#......... +#..##..#.# +#.####...# + +Tile 2731: +.#.##.#.#. +......#... +.....##..# +...#..#..# +###......# +#...#.#..# +..###....# +.....#...# +#...#....# +.##.#.#... + +Tile 1433: +###.###.## +...#.#.... +.......... +..#......# +..#....... +#..#...... +..##.....# +.......... +#.#..##..# +##..##.#.# + +Tile 3853: +..##..#..# +#.#....... +.....#...# +....#..#.. +.......#.# +##...##... +##......## +.........# +##..#...## +#.#..#.... + +Tile 3169: +.###....#. +##.#....## +#......... +#......... +..#....... +#.......#. +.#.##....# +.#....#... +##..##.#.. +#######..# + +Tile 3299: +##..##...# +..##...... +###.##.... +...#..##.. +#...#.##.. +.........# +##....#... +.........# +.#...#.#.# +##.#.....# + +Tile 2999: +##..#..... +#..#.....# +#......#.# +.........# +#......... +.........# +.#...#.... +........## +#.......#. +.###..#... + +Tile 1499: +.######... +....##..#. +.#.....### +#...#.##.# +......#.#. +..#....#.# +.#.......# +......#.## +.......#.. +###.####.# + +Tile 2237: +#.#.###.#. +..#....... +#.#..#...# +#......##. +#####....# +.#......#. +##.#..###. +..#...#... +##........ +....####.# + +Tile 3049: +......#..# +...#....## +...##..... +.#.#..#... +.#......## +.#.#..#..# +.........# +.#.#....#. +..#....... +#.#..#..#. + +Tile 1583: +#.#####... +#........# +........## +..#....... +.........# +#.#..#..#. +...#..##.# +....##..## +##.#.....# +####...### + +Tile 2791: +.....###.. +#...##.... +....##...# +.........# +#......... +.#...##..# +#......... +#.#.#....# +##..#..#.. +#.#..##..# + +Tile 1879: +.#.###.#.. +#......#.# +....#....# +......#### +#......#.# +#....#.#.. +......#... +#........# +#........# +#..###.### + +Tile 2633: +##.#.....# +#.#......# +........#. +..#......# +#.....#..# +#.......## +#.....#... +...#.....# +#..#....#. +#..#.###.# + +Tile 3701: +..##.##.#. +.........# +.#...##.## +..#....... +##.......# +.....#.... +......##.# +.#.#...#.# +....#...## +#..#..#.## + +Tile 2267: +.....##..# +...#.#.### +.......### +.#......## +.........# +#.....#..# +.........# +#....##..# +#.#....##. +...#####.. + +Tile 2687: +#..##.#### +.....#...# +#....##..# +.......... +.#.....#.. +#........# +#...#.#... +#........# +#..#...##. +#..##..#.# + +Tile 2113: +##.#.##..# +.#........ +.......#.# +#.##.....# +.........# +...#...... +#.#...#... +.##....... +.......... +.#.#.#...# + +Tile 3319: +...##..### +.......... +.......#.. +#....#..#. +..###....# +.#....#..# +#.#.#..#.# +..##...#.. +.#.......# +#..#.####. + +Tile 1303: +#..##....# +#....#.... +#.......#. +#........# +...#...#.. +..##.##.## +........#. +.......... +....#..#.# +##..#.#.## + +Tile 1709: +###.##.#.# +##.......# +#...#..#.# +.......... +.........# +.........# +#.##....## +....#..### +.......#.. +#.#......# + +Tile 3547: +#....####. +#..##...## +##....#..# +#......... +..#.#....# +#....#...# +...#....## +..#.....## +........#. +.###.....# + +Tile 2383: +#...#.#..# +...#..##.. +##......## +#..#...... +##......#. +#........# +........## +.......... +#....#.... +####..###. + +Tile 3989: +..##.#..#. +#.......## +#.#......# +##.#.....# +#..#...... +.........# +#.##...... +...#.....# +.#........ +#.##.#.... + +Tile 3499: +..##..#... +..#.#..#.. +.##....### +##.......# +#..#.#..## +#....#...# +.........# +##.#.#.#.. +.........# +#..###.##. + +Tile 1049: +###....##. +........## +.......... +.......... +.......... +....#...#. +.........# +#......... +.........# +##.####.#. + +Tile 2467: +.....##.## +#.##...... +..###...## +#..#.....# +..#....### +...#.....# +...#....## +.##...#... +...##...## +#.##...#.# + +Tile 3343: +###...#### +.......... +#####..... +.#..#..### +#....#..#. +#........# +.....#...# +.......#.. +#........# +##.#.#.### + +Tile 2129: +##.####..# +#..#..#... +.#.....#.# +##.......# +##.#...#.. +..#.#.#... +#....#...# +#.....##.. +.#.....#.. +..#######. + +Tile 1483: +.##.#.##.# +##.#...... +#.#....#.. +#.#...#..# +#........# +.......#.# +##...#..## +#......#.# +.......... +###.###.## + +Tile 2393: +#.###.##.# +#......#.. +..###..##. +##......## +.......#.. +........#. +.......#.. +#........# +..##.....# +#####..##. + +Tile 2749: +..#.#.#.#. +.#.#...... +#.#......# +....#..... +.##......# +.###...... +##..#..... +.#..##..## +..###.#... +####.##.#. + +Tile 1453: +#.##.#.##. +....#...## +#.#....... +...#...... +....###..# +...#...#.. +#...#..... +.#..#....# +##.......# +#..###.##. + +Tile 2213: +#.#.##.##. +#.......#. +#......#.. +#....#..#. +......#... +#..#.#.... +....#...## +..#...#... +###.#....# +#..#.##.#. + +Tile 2833: +.#.....#.# +..#...#..# +.##.....#. +..##....#. +.....#.### +........## +.#........ +.##......# +......##.. +#....##... + +Tile 2671: +.##.#.#.#. +.#.##.#... +##...#...# +###...#... +.......... +........## +..#......# +.#.......# +.#.#.#.#.# +#...##.#.. + +Tile 1801: +.#..#.#### +#..##....# +.....#.... +.#.......# +#.#.##...# +#......... +.........# +......#..# +.......... +.#.....### + +Tile 3329: +##.#..#... +..#.#.#..# +.........# +.......... +......#... +#......#.. +#.#...#... +.....###.. +.....##... +#..#...#.# + +Tile 2179: +....#.#.## +.......### +..#....### +#........# +...##....# +..###....# +.##.#....# +#..#...... +.#........ +#.#..###.. + +Tile 2003: +##.##.#### +.....#.... +#...#.#... +#..#.....# +.....#.... +.......#.. +#..#...... +..#.....#. +#..#.....# +....#####. + +Tile 2707: +..#..#.##. +.##....... +##.#...... +.#.#..#... +.###..#.#. +#......... +#...#....# +#.##.##..# +##.......# +..#..##### + +Tile 3847: +..##..#..# +.........# +.......... +#.......#. +........#. +.##......# +.#.......# +.....#.... +#..#...... +#..###...# + +Tile 1289: +#...##.#.# +#.....##.. +....#.#... +.........# +....#....# +#..#.#.... +#....#.#.# +.#...#.##. +#.....###. +#.##..#### + +Tile 1867: +####..##.# +#.##.....# +..#..##... +#...#....# +.###..#..# +....##.... +.......... +..#......# +##.......# +###.##.... + +Tile 1021: +####.##.#. +#...#..... +##.......# +#.#.#..#.# +##........ +##....#... +###...#... +##.##..... +.##..#.#.. +...#..##.. + +Tile 1427: +#..####... +.....#.... +#......... +##........ +#.#....... +........#. +.........# +#.#......# +..#......# +.####.#.#. + +Tile 1307: +#.#.#...## +....#..... +#....#.... +##....##.. +.#.#.....# +#....#..## +.....#.#.. +#........# +#........# +#..#####.. + +Tile 2099: +#..###.### +.......... +#.#..#..## +..#....... +.........# +#.......## +.#.#.....# +..#..#..## +.##...##.. +##....#.#. + +Tile 2389: +#.###.#.## +##....#.## +#...#..### +.#.#...#.# +#.....#... +#......#.. +...#...#.. +#..#.##... +.......#.# +..#.#...## + +Tile 2011: +#.##.#.#.# +#........# +#......### +.#..#.#..# +##..###..# +.#..#.##.# +#.#.#...#. +#.....#... +....#...## +.###.#.... + +Tile 2539: +###.#.#.## +......#.## +....##.#.. +#.#...#..# +#..#...... +##...#.#.. +.........# +#.#....#.# +.##......# +.###..#.## + +Tile 3761: +...#.#..#. +#.....#..# +#..#...... +#..#.....# +##........ +#..#.#.... +#......#.. +..#.##.#.. +.#.#..#... +.....#.##. + +Tile 2549: +.##.####.. +#.#....... +#.##....#. +.#........ +......#... +....#.##.. +..#.....#. +...#..#..# +....#..### +##...##... + +Tile 2039: +#.#.####.# +#.#....##. +.......... +#.#....... +##.....#.. +##....#.## +#...#..... +#...#...## +.#.#..##.# +.###...... + +Tile 2063: +.##.##..#. +..#.##.... +#..#.#.... +.#.......# +##........ +#.#..#.#.. +.......... +...###.... +#......#.# +#.##.....# + +Tile 3181: +#####.#### +#.....#..# +#.#......# +.........# +#....#.... +.#.......# +......#..# +#......#.. +#..#....## +#.....#..# + +Tile 2459: +.##..#.#.. +#...#..#.# +#.......## +#........# +.#.#.....# +#...#..##. +.......### +....#..### +........#. +...#.##..# + +Tile 2953: +########.# +..#....... +#...##...# +........#. +#..#....#. +...#.#.... +.......... +#...#....# +........#. +##...##... + +Tile 1487: +#.####.#.. +.....#...# +#....#...# +..#......# +.....#...# +#...##...# +........#. +.#.....#.. +#...#..... +.#.###.#.. + +Tile 1201: +..#...#..# +#......... +#......... +...#.....# +..#......# +.......... +.......... +#.#....... +#....#.... +#.###.##.. + +Tile 1609: +##.##.###. +#........# +.......... +#......... +........#. +.#.##..#.# +#..#....## +#.#....#.. +.#...#.... +##.#..#... + +Tile 2593: +####.#.#.. +#.#......# +.......... +#..##..... +...#...#.. +#..#.....# +..#....... +#........# +..#....... +..#..#..## + +Tile 3889: +######..#. +....#.#.#. +##...#..## +....#....# +#...#....# +..##.##... +#.###....# +.#......## +#....#.... +#....#...# + +Tile 3041: +###....... +##..#...#. +##..#..#.# +......##.# +###....##. +..#...#... +#...#..... +##...#.... +#......#.# +#...#.#.## + +Tile 1367: +###.##.##. +..##.#...# +....#..... +#........# +###....#.. +#.####.... +####....#. +.###.#.##. +...#.....# +..#...#### + +Tile 2609: +.###...#.# +.......... +#........# +...#.#.#.# +......#..# +#.....##.. +#..#..#..# +.####..##. +##......## +#...##..## + +Tile 3167: +########.# +.#..#....# +..#....... +..#..#.#.. +.#.##.#..# +.##......# +##.....#.# +..#.#....# +#........# +.#...#.### + +Tile 2753: +#...#....# +#....#...# +....#....# +#........# +.......... +.......... +#......... +#........# +#......... +.#....#### + +Tile 3527: +.####...## +........## +#......#.# +#...#..#.. +.#......#. +.#.....#.# +#........# +#..#....#. +..#....##. +#.#..##### + +Tile 1279: +.###...#.# +..#......# +#.......## +.......... +#......#.# +.#...#.... +.#........ +#....##..# +#.##...#.. +####..#..# + +Tile 1291: +#......### +##.#.....# +.......... +#.#..##... +......##.# +.#.....#.. +.......... +#.#......# +#......... +#..#...### + +Tile 1319: +##..##.### +#.......#. +.......... +###......# +.......... +...##..#.. +#.#..#.... +#...#..... +.#...#...# +#..#.#..## + +Tile 1009: +....##...# +#.....##.# +#....##... +.#.....#.. +#...#..... +#......... +##........ +#....#..## +...#...#.# +#######... + +Tile 2659: +....####.# +#.##...... +..#.....## +.#.......# +.#........ +..##.....# +...#...... +......#..# +#.#..#...# +#..#.##..# + +Tile 1543: +#######.#. +#..#.#...# +.........# +##.#.....# +#.#......# +#.......## +..##...... +..#.###..# +...#.....# +##.###..#. + +Tile 1019: +........#. +#....#.#.# +...#...... +##.#.#..## +....#.#.#. +#.###...## +####.#..#. +#....#.... +#........# +.#...##.#. + +Tile 2239: +##..###... +......#..# +##...#.... +.......... +....#...## +...#...#.# +..#....... +.........# +#..###...# +##...#...# + +Tile 2797: +#.#..#.... +#.......#. +#.#..#.... +#......#.. +#....##..# +#...#...## +#.#....... +.#.....#.# +##.......# +#...#.#.## + +Tile 1663: +..##.#...# +#....##..# +....#....# +..#......# +#........# +.......... +#..#.....# +#...#....# +#..#....#. +.#..#.#..# + +Tile 1069: +#########. +.#........ +###....... +...#....## +#....#.... +#........# +#...#....# +.....#.... +#.#......# +.#....##.# + +Tile 1559: +##.###.#.. +##...#.... +..#......# +...#.#..#. +...##.#... +.#..#.#.## +#..#....#. +....#.#..# +..#....... +####.#.... + +Tile 3203: +##.##.#... +##........ +..#..#...# +....#....# +..##.....# +#.....##.. +.......... +.......... +#......#.. +...#.#.##. + +Tile 2819: +.####...## +...#.##... +..#....##. +........#. +...#...### +..#....#.. +#.#.....## +#.#..#.#.. +#...#..... +###....... + +Tile 2027: +..#..##.## +#....#.#.. +......#... +#.#....#.. +.........# +........## +#.#....... +......#... +.......#.# +.#.#.##.#. + +Tile 1091: +..#..###.# +...#.....# +.........# +#........# +..#.#..#.. +#....#...# +....#.#..# +.......### +#......... +#..##.##.# + +Tile 2381: +...###...# +#.#.#...#. +....#....# +#.....##.. +#........# +..##....## +#.#......# +##.......# +.....#.### +.#.####### + +Tile 1381: +######.##. +#.#....#.. +#....###.# +#.#.....#. +#.#.#....# +#....#...# +#.#.#.#... +.#.#.#.... +....#...#. +####.##### + +Tile 3719: +...#.#...# +...#.....# +...#..#.## +#..#.....# +#.......## +##..#..#.# +.......#.. +.##....... +.......##. +.#.#.###.# + +Tile 3593: +##...##.#. +#......... +......#.#. +.......... +..#......# +#........# +.....##..# +.#....#.## +.#.....### +#.#..#...# + +Tile 2971: +..##.....# +#.....#.## +#.#......# +#....#.... +.........# +#......... +#......#.. +.......#.# +##....#..# +#.##.#..## + +Tile 1637: +#.###.#..# +.#..#.#..# +.........# +......#.## +#..###...# +....#.#... +#.#.....## +#........# +......#..# +##..#..... + +Tile 2711: +..##.##... +###..#...# +......#... +#.......#. +#.#....... +#.....##.. +...#.##..# +.......... +.....#...# +##.....### + +Tile 3881: +..#####.## +.#....#..# +.........# +.##..#.... +..###.#..# +...#...... +...#...#.# +..#....... +#.....#... +.#.##.#... + +Tile 1907: +..####..## +.......#.. +.......#.. +.........# +....#.##.# +..#..##... +....#....# +#...#....# +#........# +.#.##..#.# + diff --git a/data/20_2021.txt b/data/20_2021.txt new file mode 100644 index 0000000..a20c4aa --- /dev/null +++ b/data/20_2021.txt @@ -0,0 +1,102 @@ +#....##..##...####...##.#..####..#.#.#.#..##....##....#.....#.##....##..###.#..####.#..#.###...##....##...#.#####..#.....#.#####.##....##..#.#####.....#.....###..#.#.###...###..#..#.#.#####....#.#..#..##..#.####.###.#.#...##.##.#.###...#####......#.........##.#.#####.##.##........#..#.##.####.#...#..#####.####.#.##.####.#.#.##.#..#..#.#....#.###.#.###.#......#..#...#.#..#..###..#....####...##....##.#..###...##.##.####..#..#..#..#.#...###.#.##.##.#..####.#.#..#....####......##.###.####..###.....##..##..##... + +.#...##.#...#.##.#.....#..###...#.##.##...##.##.##.###...##.#.#...#..##..###.....#..##...#....#.#### +##.#####..#.#...##.#..##..#.#.######...#.##.#...#...##.#...#.#.#......#.#####.....#.######.....#...# +....#..###..#.###.####....##.#...#...##.###.###...#...####.#.......#########.####.#.#..###.##..###.. +.#..#.##.###...#.##...#.....#.#.#...##....##.......####...#...####.####.#...#..#..##..###.#..#.#.... +..#.###..##.......#.##...##..#...####.####.##..#####.#..#.####..#....#..##..##....##.##...#.......#. +#.#.#..#.####..###..#..#..##.#...#.#..###.##..#.##.###.##..#.......##.###.#..###.####..#####.....#.. +#.#...#..#.##..#.###...###.#....#...#..###.#.#..####.#..#.#.#.#..###.####.......#.#..#.####...###..# +###.#.##.#..#.##.#.#....###...##..#.##.#.##..####...##.#.#....###.#.###.##.#.#####..#....#......##.. +.#.#..##.#.###..#..#.####.######.########....##.#.#.###.#..#...#.##.##..#.#.##.####.####.#.###...##. +.#..#...#####..##..##..#.#.##.#######...####...#..#.###..#.#####..#..#...#..###...#.##....#.###..#.. +##...####.....###.#....##..#...#...##..#.#..##.####..#.##.#..##.##.#...##.##..##.##.#.##.##.####.#.# +#...#.#.#..#......#.#.##.#.##.#......#.....#####..#.###.##.##.###..#.#.###..#####...#.#....###.#.#.. +..##.##.#.#.#..#######.##..#...##.....#..#.##.#...#..#.....#.#.##..##.#..#.##.#..#.#..##.#.##.###### +#..##...##...###.###..##.#.....#..#.#.#.###..#......#...##.#...####.##..#...##..#...####.##....##.#. +##.#.###.###.#.#.....#.#.##..###.#####.#.#####.###.##.##.##.##.....#...####.....#.#....#.###.#.#...# +.#.#..#.###.##.###.#......#..#..##.##..#.#..#......#.##.#..#......##.##.##...#.##.....#...#.##..#..# +###....####.###.#.#.#...#.###.#####.##.###.#...#.#.#..#.##..#..##.....####.#.##..##..#.###..###..#.. +##.##..####...#......#..##..#..#.#.......###..####..#...##..####..#####....##.#..#..###...#####..... +####..##.#...#.####..#####..#..#..###.#.##.#.###..###.#....#..#.#.#.#..##.#...#..#.####....#......#. +#.####.##.##.####.#..#..#...##.##.##....#########....#.#.###.#.#.#.......#..#####.##...#..#....#.#.# +..##.###..####.#.###.#.#...##..#.###..####.##..#.......##.##..#..#####.########..####.#..###.#..#### +#..##...###....##.#...#.#..###....##..####..#...##.####.###..##......####..#..#...#..#....#.##.#.#.# +#.##..#......##....##.#.#..##..#.#...#.##..#.#.#.#####.#.##...###.#.#.####..###.###.#.....#....#..## +.####...#...####...##..###...##..####.####...#.#.#.....#####.##..#.#..#..#..#.....#.#..##......#.#.# +.....#....#..#.#.####.#.#..#..#.##...#....#####.###.###.####.##..####.#..#####..#...###.#..#.#.###.# +#.###..#....####.##..#.....#...#.#.##.###..#.....#..#.#.#####.##.####.#.###..###.....#.##.##.#.##..# +..##..#..#####..#...#.#.#..###...#.#.####.###....#.##.#...#.##.##...##.#.####...#..###.#..#.#.##..#. +.#.##...###...####.#..##.#.#####.#....#..#..#.##..###..#.#..##.#..#...####.#.####.#..##..#.#####...# +#.####...##...#.##.####.###..#...####.###...#..#.#..#.####.##...#.#....#.#..#.#.###.#.###.###.###... +.#.#.....#....###.#..#.#.##.##....#.#..##....###..###...######.##..###..#####...#..##..###.#.#.###.# +#..#.#.#...##..##.#....#.##.##..##.###.###..###.....#...##..#..#######..##.#.##.##..#.#.#.#.#.#.#### +.#.#.....#...#...#.####.....##...#.##..###.####.#.#..####.#####...#..#.....##..#..##...##..######### +..##.#.....#.#.###.#.#..##..#.#.#..#..###.#.#..####..##.####..#...##.#.#.###..##...#..##.##...#..#.# +.######.####...#.#..#.#.###.##...#.##.#.##.#..##....#..#.#..#.#.##...#.#....##..##...#.#.##.#.#.#.#. +..##...###.#.#.#......#.#.###.##...#.###.#.##.#....####.###..#.##...#..#..###.#.####..#....####.##.# +##.#.###.#.##......##.####.#..###...#..#..#.#..##.#.#..#.###..#..##..#.#...##..##.##.###.##.....#### +#...#..#.######.#.#...#.##.##....###.##..#..###..##.###.....##.#########..##..#....#...#.##.#....##. +#.######.#.##.###...##..##...#..##...####.#.#.....##.#.##.####..###.##..##.#.####...###.#.#.####.#.# +#####..####....#.##..##...#..#...#####...#.#..#...#.#####.#.....####..#..####.######.##.#....###.#.# +##.#.#..####.#.......#...##..#.#..#..#..##..####.####...#......#.#....###.#.#.....##..#.#.#..#...#.# +......###....#.......#.#.#...##...###.#...##..##..#..##...#.#.##.##.###...##....#####...#####.#..##. +.##..##.##..#.##....#..#.###..#.###..#.#.##..###....##.###..#.#.##.#...#.##.#.#.###...#.#...#...#..# +..#.....#.#.#...###.#.##.....###...##.####...##.#.#.#..##.#..#....#.##.##.##..#.#.##..###.#..#####.. +#...#..#.......##..###.#...##..####.###.....###..####.....#..#.####...#..#.#......##..##.##..##.#..# +.#..#...#########.....###...##..##..##.##.###......##.####.####.....#..##.#.###.##...#.#....#.###### +#..#..#....###.##.#...##.#..#...#.##...#.###...#..#####.#.##.#....####..###.#.#.#...##..##.....#..#. +####.#..#.........######..#...#.##.###.###....#...#.#.#.##..#.####....#####.......##....#..#....#### +#....##.#.###.#....####.##...#####......#...#..#.#..####.##..###########..##.##....#...#..####..##.. +#.#..#.#..#.####......##..#.#.#.#......#.##.####.#..###.###..#.#...##.#.#..#.#.##..#....###.#.###.## +..#..##...#####.##.###########..###.##.##...#.........###..#.##.#.###....#..####..###.#....#...##### +...#....#.....###.....##.#.###..#..#####..#.....###.....#..##..#...#.##.###....#.#####.....#.###.### +##.##..#.#.....##.#..#####.####...#.#.#....####.#.###.###.##......#.##...#...#...#.#.#.####..#.####. +##..#...###.#.#..##..###.#.#...##.#.#.....#.#.####.##.##.#..##....#.##.#####.#...#.#.##....###.#.#.# +###.....#.#..#####.#..###...####....#.#..#..#.##.#.#...##..#.#.#..###....#.#.....##.#.#.######.##.## +#####..#..#.#.##..#..##.##..##.####.#.....#....#########.#######.##.###.#..#.#....#....#.##.######.# +#......####.#...##.#...###..##.######..##..#...####....#...###.##..#.###..##########..#.##.##.#.#..# +####...##..#..#.....#..#...##..##.####........#..##...#..#...#####.#.#.......####..##.##.###.##.#.## +.##..##......##.##....##..#..#.#.#.....#####.#...####..######...##.##..#.#..#.##.#.##.##.#####.##... +..#..#####....####.##.###..#...#..##.####.##.###...##.....#.####...#.#..##.#..##.###.##....#.#.#..#. +#.#.#.#.#..#...#.####...##.#..#..###.####..#..##..#.......#..#.##.#...####.####..#.##..##..#.###.### +..#...#...####...#..###.###.....#....#.#.##.####..#....###...###..#.......###....#.#.#.#...#..###.#. +.###...#############.#####.##...#.#.#.#.#..##.....####.###.#...#.####..#....#...#.#...###.#.#.##.#.. +..#.#....#..#....#####.####..##..#..#.#..####.###..#.#.##.########....#.#....#########....#.#.##.#.. +.#...#.###.#.#.#####.###.##.#####...##.....##...####.##.#####....###...#.#.#.#####.###.###.###...#.. +#.#####...#.##.#.##...#....###.#..####.##..#..#..###.#.###..#.#.....#..#.#.#.####.#.......#.###....# +.######.#.##....###.###.####...#...#######..#.#.#...###...#........#.###.#####..##..###.####...#.### +#...##..##...###.#.#.##.##.#....#....#.#.##..###..##.#.#..#..#...#...######.#..###..#.#..#.#..#....# +...####..##.#..###.##.#.#.##.#....#.....#...#####....#..###....#.#.#....##.########..##..##.#.##.#.# +.####.######..####.###...#####.##.####..#..##..##.#.#.#.#.#.###...##......#..#####.#..##.#.####....# +##.#.#.##....#..#.##.#...######.###..#####.....#..#.#..#.#..#..##.#.#.#.##.#..#..##.##.#......#####. +.###......##.#..##.#.....#..##..##....#....########.#.##.####..##..#########...##..#.#..#.##....#.## +.###.#.####.#########....#....#.###...###..#########..#..########.#..###.###.#..#..#.##.#....#..#.## +..#..######...##...#.#...#..#...#.....##...#.#.#...##..#.##.##.#.##..#.......##.....##.#......#.###. +.#..####...#.##.#.....###..##.#.##.....#.#.###..#...#.#...###.#...##.##....#.###.#.####.#..#.....#.# +##.#..#.##.#.#.###......##...#.##.#.#.#.#...####..##....#.##.....###..#.###.#...###.##.#.....#..#.#. +###.##...###.###.###.....#####.#####.#.#..#..##...##..#.#....##..#.#.####.#.#.###.#..##.#.###..##..# +.##.#.####..#......#.#..###..######.#######.###..#####.##.#....##.###.##.##.##.#.####.#..##..#.###.# +.#..#.....###.###.#.##..#.#.#.##....##...#..#..#.##...###.#.###..###.####.#..#..#########..##..##.#. +....#...###.#.#....##..#..###..#.#.####.###.######..#.##.#...#..#.##...#...##.###..............##.## +.##..####..##....#.###......#.##.#.####..#....#..###..#.###..####..##.#.#.....###.#..#.#..#.#.....## +###.####....##..##.#..#######.#...#..#.##..#########.......#..#####..##.##..#..#..#..#..##...#..#.## +##.##.#..#.##..#..###.#..#.####..#.#.#....#.#..####.#...#..####.#####....###.##....#..##..#..#.###.. +.....#.#..###..##....###.......#.######....##.#..##....#..###...#..##.##.#.....#..###...##......###. +..#.#...#.....#...#....##.#.##.#.#.#.###.#..#....###.....#.#......#....##..##.##.####.##.#####.#...# +..##..#.#..###..#..##..##...#..##..#...###..##.#...#..#...##.###.##.##.#.##...#.##......###.#...##.. +.####..###.#..#.###...#.##........#.##.#..#.#..###.##..##.#....#.#.#..##...#..#.####....#.....##...# +#.......###....##..##.#.#..#.#..##.##...#.#.#.#.#.#..###.#...#..###.########....#.#######..#.##..### +#..#.####..#.##.#...####....##.######.####...####..#.####...........#.##..###..#....#.##..#.#...###. +..####....#.#.##.#.###...##..#.###..#......####.#.##.##.#..#.#..###.##...#..#.##.###..###.###.###..# +..#....#.###..#.#...#.####.########.####..#.#.#....#.#.##.##...####.#.##..##.#.#.##.##.#..#..#..##.# +.##.#...###.###..#..###.#..####.#...#.#..##.##.###...#.###.#..##.#.##......#..##..##.#.#.#.#.##.###. +#######.##.#####.#..#....##..#.###..#..##.######.....##.#....###..###.#.#...##.####.#.#....#..#..### +.##.###.####...##.#......#..#..#####...###.###..##..####.#....#...#..###..######..##.##.####....##.. +.#.....#...##...##.#.######..####.....#.#.#####....#..##....#..#...###.#.##.#.#......#.######.#.#... +#####.#....#..#.#.##...##..#.#...#.#.#.##.##.#.#####.#..#.#...######.........###....#.##.###.#.#.#.# +....#...##.#.###..#######.##..####.###....#.####...####.#..####.#.####...#.#....#.##...#.##.##..##.. +#..#.#####.#####..###.#.....#.#.#.##......#.#..###......#...#.####.#..##.#.###...#.#.......###.####. +##..###...#..........#..#.###.##.##..##.#...##..#.#...##.#..#.##...##..####.######.#..#.####.#.##### +..######..#...##.#.#....#.##.#.#.#.#..#..###..###..##..##..#.....#.#.###.##.#.#.#.###..##....#..#### +#.#.####.#.....##..#..#.#.#.##..#.#.#######.#....###.##...##.##.#.#..##..#......######.#....#....#.. diff --git a/data/20_2022.txt b/data/20_2022.txt new file mode 100644 index 0000000..abf5a7f --- /dev/null +++ b/data/20_2022.txt @@ -0,0 +1,5000 @@ +6624 +7325 +6213 +1798 +9065 +-3023 +2228 +5781 +8106 +-1769 +4419 +9584 +-9853 +9030 +-509 +2861 +-9318 +9950 +-6947 +-3741 +-9442 +5010 +-3228 +913 +4187 +2164 +-7370 +4620 +-6913 +2359 +2933 +8865 +6380 +8205 +-3995 +-5111 +-6632 +225 +5830 +3878 +-4605 +8165 +-5659 +1215 +2149 +9425 +-7708 +-8171 +-8149 +-9590 +3667 +-6599 +-5340 +6062 +-3499 +190 +5546 +6787 +3794 +9541 +5662 +-817 +-4468 +-2309 +8034 +2678 +6596 +3902 +6732 +9041 +-9091 +-4509 +-6627 +-9980 +1091 +-6956 +4293 +1893 +-5948 +-9450 +60 +-2821 +-3639 +-6528 +-1218 +1126 +7445 +3376 +-9375 +7269 +9325 +-5345 +5707 +-5010 +9462 +-5106 +-58 +-2809 +-4582 +8002 +4902 +996 +8592 +-3758 +-9995 +1566 +-3997 +-808 +3041 +6971 +2322 +1443 +-5695 +-5052 +-9133 +7994 +-9818 +7837 +750 +8610 +-2360 +-6645 +-247 +-199 +8006 +5526 +-967 +-4468 +6906 +7627 +5344 +-5978 +8335 +8485 +-6011 +5344 +-5186 +-3058 +5340 +-8972 +2276 +778 +9825 +6921 +5464 +2799 +9092 +-1737 +-8107 +-7434 +-3574 +5571 +1806 +3577 +1156 +-9316 +924 +7253 +8038 +1326 +-1629 +2541 +1544 +-1379 +1094 +-8691 +-9215 +5367 +2744 +-8532 +-4137 +-3510 +-7932 +4123 +8883 +-6135 +6790 +-5512 +5810 +-208 +593 +-4863 +-9666 +-4149 +-1358 +-6154 +-6056 +-1942 +-4171 +7720 +6073 +-5738 +793 +3531 +-3119 +6172 +7394 +-6548 +-7197 +-1460 +9203 +3857 +-7129 +5513 +-6718 +-5780 +1151 +-4568 +-7106 +-3775 +6218 +-7701 +-3930 +-7460 +-9912 +2255 +-1408 +1459 +-3368 +3740 +7650 +-6184 +678 +-1641 +2326 +3029 +1987 +3386 +6656 +-8519 +5817 +-1619 +9649 +-1967 +-3260 +-962 +-8628 +-1059 +6275 +5830 +-4399 +-5818 +7652 +4514 +1507 +-2360 +9298 +-5499 +-9089 +6300 +1505 +6985 +-9516 +1212 +-938 +4359 +-1562 +182 +4296 +2561 +2282 +7897 +7650 +-8490 +-714 +1172 +1337 +899 +1899 +-628 +-8475 +-2197 +9151 +-5599 +-5234 +-1272 +7316 +-5727 +218 +2701 +-545 +-6146 +2827 +1558 +-7692 +3563 +5531 +-817 +-6059 +-3484 +-301 +3861 +-593 +1986 +1219 +-3744 +5394 +8466 +8166 +-2384 +456 +5967 +-8645 +6343 +314 +-3525 +-521 +2181 +8328 +4462 +-5318 +4415 +1296 +9318 +434 +-4488 +-4556 +-9242 +4688 +5643 +4804 +8735 +3885 +4766 +3929 +-3794 +7704 +-726 +-2488 +6454 +-1748 +-5579 +-7744 +-765 +4160 +-4479 +4620 +841 +-45 +8750 +-3576 +2505 +945 +-5306 +7905 +-171 +2727 +-4664 +-5846 +-3139 +4053 +-9356 +-6161 +-3984 +8240 +5789 +-962 +381 +-5362 +-6633 +5168 +-2479 +1269 +-9285 +-1887 +-6104 +-8975 +5391 +8157 +2299 +-6209 +5399 +-6571 +-1298 +9457 +2627 +-1260 +3290 +-8564 +-7574 +8308 +3384 +-7896 +1000 +-2754 +2626 +-2938 +6030 +-4149 +-8968 +7407 +8137 +-5339 +-2460 +161 +1504 +6424 +3378 +-9376 +-4841 +1700 +-7159 +6269 +8075 +-802 +6581 +-4811 +3915 +-2516 +-840 +5985 +1090 +2568 +8629 +7821 +-1386 +-764 +-6519 +2051 +-1103 +8003 +2979 +-5858 +-560 +-6105 +-4856 +6571 +-1491 +7083 +2035 +2971 +-9191 +3696 +-6843 +5613 +9431 +7171 +-125 +-8705 +32 +1537 +-583 +3058 +5322 +4931 +7226 +-2215 +372 +9846 +81 +-7040 +-726 +9249 +7453 +2971 +-2265 +2842 +6445 +-638 +-9617 +5466 +7386 +-7588 +9352 +2220 +8685 +-7040 +-3475 +-3116 +2901 +2165 +1861 +7944 +3342 +-6513 +5991 +434 +-6799 +3287 +-8217 +3121 +1810 +3965 +7212 +-7015 +3614 +7717 +-2419 +-99 +-8023 +-2509 +-3338 +-9976 +-829 +7437 +-5460 +3387 +-1230 +5605 +678 +7462 +-8821 +8367 +3884 +-5851 +-171 +-3574 +-4952 +-6195 +-4617 +2017 +6831 +6183 +-261 +3731 +-6575 +6001 +5311 +-796 +-6991 +2290 +9489 +-7926 +-1948 +-7588 +-9887 +-9079 +7546 +766 +-5559 +-1840 +-5793 +8903 +2617 +7256 +-784 +7394 +3458 +1810 +6355 +366 +-2458 +5339 +-3022 +-8706 +7789 +8465 +3587 +-9080 +5065 +8397 +9199 +6061 +-7318 +-8330 +5674 +-3876 +-5251 +4335 +3719 +-7216 +7546 +-9738 +4184 +-3437 +1271 +400 +2505 +3782 +4525 +-654 +-9798 +-5643 +-1932 +-8417 +8157 +-31 +-6284 +-8618 +8954 +-7716 +7925 +-3852 +-5075 +2520 +-7508 +9580 +-5642 +-2524 +4123 +-9134 +5322 +2296 +-6238 +-135 +-2360 +-2645 +400 +7740 +7240 +-5289 +2616 +3914 +8366 +-9152 +6912 +2452 +6332 +-9676 +2182 +-7539 +5051 +-3741 +8229 +-9163 +-5895 +-2492 +-2927 +-4532 +-6577 +-3331 +-2641 +1372 +3058 +8506 +1372 +4269 +8207 +-8633 +1703 +7441 +3113 +-4102 +-7969 +4202 +-220 +-6242 +-3279 +1983 +7654 +7051 +-421 +-9574 +-2156 +-7046 +4004 +-3016 +731 +-2544 +-5776 +495 +3384 +7591 +5235 +7884 +378 +-7184 +9905 +-8930 +-5013 +-5701 +3248 +-3147 +-608 +-5109 +9154 +5568 +327 +-9319 +-8797 +1511 +7227 +-3196 +9436 +7886 +-6964 +3441 +-3830 +-3444 +9811 +8750 +587 +8074 +7927 +-3330 +-5678 +-8577 +-5103 +4043 +4886 +6734 +8778 +-8038 +-6652 +-4940 +-601 +-5256 +4047 +-4278 +8714 +649 +8207 +-4689 +-31 +4521 +-460 +-7190 +9649 +8027 +-4295 +1631 +5602 +3831 +3588 +6169 +8070 +1496 +-5299 +-5813 +-5043 +2521 +-3368 +5050 +-8539 +-508 +-3609 +-3049 +-6991 +2128 +5520 +5333 +6474 +2671 +-4472 +1994 +-9578 +-108 +-94 +6764 +8466 +5695 +-7224 +1564 +25 +2873 +-4758 +234 +1723 +-5430 +-9782 +-4971 +5824 +-4619 +-8666 +-4592 +-3744 +-3443 +5380 +5559 +3255 +3160 +-7742 +-4999 +6502 +9586 +6908 +-6635 +7598 +-2262 +-818 +-1333 +5420 +-7703 +-562 +876 +4433 +2918 +-1831 +-4402 +-4965 +2401 +-5846 +6132 +-8827 +7694 +8771 +-5242 +8012 +7964 +9609 +4620 +3953 +-4519 +-4681 +4480 +-1949 +-9930 +5176 +-7405 +6876 +3108 +-3160 +-1161 +-948 +3919 +3290 +8706 +2523 +-4977 +2745 +4977 +4866 +2943 +-8527 +-4158 +876 +9660 +-6193 +-6535 +-6421 +-3490 +1160 +9692 +793 +-5217 +-8502 +-3337 +-4154 +-706 +-832 +-6567 +-7140 +4497 +-8826 +-3887 +-365 +-4961 +3821 +-645 +1061 +4542 +-3014 +3199 +-6260 +-648 +5456 +-8795 +-58 +5868 +1155 +6877 +-1116 +3836 +7487 +2368 +1504 +-9289 +-4147 +4426 +-1224 +1185 +-3026 +-1669 +5758 +6515 +6343 +-4879 +-8557 +6005 +9605 +3725 +8579 +-480 +-5318 +-2141 +7606 +5049 +-1224 +6490 +1348 +1602 +-7929 +4805 +-5595 +-5196 +8669 +2848 +5698 +-1048 +-4495 +-1996 +3052 +-1283 +-105 +-6038 +-9121 +-9558 +6283 +3198 +-7655 +4986 +-5601 +5676 +-3178 +-6947 +-5026 +6955 +-4154 +-7358 +9312 +-4149 +6946 +-2693 +-9306 +691 +-6932 +-4485 +-7311 +-5466 +3019 +7790 +9161 +1498 +9721 +7714 +1252 +7852 +-5935 +-7235 +-5051 +-3762 +-9187 +-8216 +-1374 +-1673 +-3389 +-1880 +-5847 +-7995 +-2798 +-8695 +-8486 +1117 +8085 +-8916 +-237 +-254 +2842 +785 +7496 +-9835 +-559 +-4811 +5976 +-1168 +9249 +-5339 +-7895 +-9892 +4208 +8113 +3988 +-6933 +6716 +7809 +-2194 +-3712 +1646 +3264 +5367 +78 +3778 +-1677 +4743 +3547 +-2852 +3052 +-1711 +-375 +-4261 +-1268 +1493 +524 +4011 +3264 +-7241 +5615 +-2257 +6673 +1363 +7484 +8478 +7847 +-2779 +4620 +-7017 +-2294 +-5433 +9706 +2565 +385 +-5913 +-2362 +-1929 +-6428 +9458 +-3022 +5352 +1361 +7928 +2109 +2250 +4224 +-126 +-446 +-543 +171 +-2078 +8071 +-9335 +-4400 +5419 +-6242 +4629 +-3876 +838 +-8820 +-4396 +6582 +-5970 +6287 +6045 +-5940 +1017 +-5979 +6361 +4657 +-249 +1339 +5038 +9610 +-6340 +9541 +-2816 +-5627 +-6169 +2943 +-5466 +5789 +-2626 +-5251 +2121 +-1681 +6465 +5482 +987 +-1843 +-330 +-8577 +9298 +-859 +-6792 +4814 +-2448 +171 +-6550 +120 +-5046 +-7112 +-5082 +5435 +-6858 +-9373 +-8004 +-8350 +-4554 +3441 +8207 +5399 +-5599 +8133 +6831 +3662 +-9779 +1998 +4087 +1242 +3649 +9883 +-6687 +-152 +9077 +-1967 +7461 +-5867 +-7556 +1805 +5674 +174 +5790 +7887 +-2374 +597 +-2306 +-8859 +-532 +5390 +8724 +-6892 +-40 +3276 +-5990 +-7399 +39 +-1704 +6529 +3858 +2021 +8806 +9235 +2109 +7399 +2164 +-7781 +8630 +-557 +1550 +-9405 +7498 +-6431 +-5095 +1280 +-4705 +2901 +-3900 +-5436 +2029 +6391 +-40 +-3581 +-7624 +-6461 +-1485 +-1056 +5104 +4686 +-3309 +4964 +-332 +6588 +-3814 +-7124 +9522 +-5753 +-9449 +8615 +-3883 +-6439 +9629 +-7082 +265 +-5013 +-9754 +6718 +1050 +927 +-9212 +2427 +-9194 +4766 +-8972 +3172 +-137 +-5196 +1004 +-7734 +-5567 +-2189 +-4705 +-3809 +3477 +-7051 +-6417 +-6449 +8334 +-2063 +-4149 +9302 +3933 +-2606 +752 +5535 +1846 +-5615 +-7027 +-105 +-9684 +3607 +-1086 +-6156 +3871 +-4090 +-108 +6385 +385 +-7277 +-9672 +-6068 +5385 +9482 +1320 +6001 +861 +7982 +6102 +-270 +-4920 +1937 +-254 +314 +8038 +5526 +9087 +377 +-9878 +-3147 +-175 +3560 +-4461 +-6886 +8409 +4525 +-2160 +-2893 +-7148 +378 +7389 +5303 +-6896 +803 +5299 +8207 +9726 +-5461 +-1991 +-2280 +-537 +-9626 +-3022 +1497 +-3487 +7197 +-2748 +9945 +-6687 +6932 +-4056 +-9513 +6836 +-7171 +-2056 +-3121 +-8139 +-6560 +6831 +124 +-5894 +5559 +-5762 +-2549 +4851 +6305 +8364 +7226 +3983 +6213 +1723 +-6143 +362 +-7677 +-4100 +-8723 +8344 +-1826 +7325 +5330 +2295 +524 +-7782 +-6179 +9132 +-6089 +-1101 +5539 +4928 +-2252 +2164 +-2266 +-2232 +6556 +1555 +2701 +-9231 +4481 +-5132 +1205 +-4585 +8615 +2616 +-6336 +-4452 +-992 +9985 +8433 +-9817 +5196 +3536 +-5111 +1037 +-545 +-9953 +8707 +1683 +894 +5908 +5625 +6045 +-2642 +-7375 +3240 +-4254 +7380 +-4642 +-5306 +6770 +4582 +-9559 +2986 +-8643 +1579 +-2106 +-1408 +-9648 +-5627 +6966 +1616 +8846 +6575 +-7872 +-8253 +-1317 +-3228 +4294 +-9902 +9132 +-6933 +8708 +-2054 +-849 +-2394 +-5395 +-1424 +-6305 +-4026 +-4295 +7047 +-2508 +6852 +-8892 +8694 +-893 +5124 +-19 +6855 +9721 +5118 +4654 +4995 +-5857 +-2723 +-9344 +3863 +8390 +6986 +1447 +7467 +-1278 +-1096 +-5890 +-2946 +2536 +9794 +1285 +-5979 +9424 +6319 +5380 +-175 +-3168 +-2252 +1497 +-4361 +-8347 +3386 +-6118 +3870 +8615 +-1834 +204 +-8977 +-2990 +6234 +6966 +-8373 +3915 +-4483 +5063 +7138 +6131 +-7834 +-608 +3733 +4315 +2986 +5669 +6004 +8366 +1700 +3696 +-1777 +-7269 +7210 +6026 +-6723 +936 +-6495 +-4629 +9637 +-6422 +2305 +2188 +9988 +-6629 +-9188 +-7 +8732 +2946 +1234 +-1095 +1163 +-6193 +-7904 +2472 +-301 +-3474 +-8821 +-1535 +-6859 +-4352 +3120 +5389 +9152 +-4870 +2550 +7306 +-5302 +3056 +-8028 +2256 +3824 +-9798 +3686 +-8078 +-7872 +1326 +-1118 +6122 +845 +7932 +-2875 +-7283 +7414 +1105 +2740 +2521 +4038 +4099 +9811 +2387 +-7580 +5790 +6848 +1409 +-9323 +-9329 +889 +744 +-751 +-7938 +-843 +6588 +-4187 +4035 +5245 +6397 +-1035 +4026 +6995 +-5141 +-8129 +-8963 +-2394 +-6450 +-8587 +4274 +-547 +4026 +-4 +-2644 +-4834 +5041 +9814 +5632 +-4758 +-7532 +670 +-6351 +2546 +-3893 +2969 +5046 +5513 +9726 +6969 +-7522 +7486 +-9198 +-2768 +-2621 +-3771 +1076 +-6822 +-3395 +4080 +-1908 +5934 +-6486 +3019 +-2893 +-5267 +6566 +-273 +6273 +5648 +4834 +-5435 +-8937 +8039 +8526 +1882 +-9087 +-9406 +7240 +-7715 +9612 +-3820 +-5681 +6474 +400 +5958 +-852 +-5940 +-2730 +-2458 +-9999 +-4439 +8510 +-6395 +895 +-2535 +-6852 +6080 +369 +6656 +332 +7690 +-7530 +-4342 +-5815 +3157 +-1400 +3018 +-1726 +7786 +1983 +-7458 +5914 +7971 +-5166 +5420 +1467 +400 +-3492 +-6824 +-3541 +5446 +6098 +5325 +8989 +4999 +-3929 +7998 +-2498 +-1942 +8732 +9873 +-7630 +-7357 +5193 +2773 +-3643 +823 +2036 +8254 +-7729 +3199 +-9598 +-4352 +-580 +-2589 +-5615 +1249 +-9132 +-1118 +-1056 +564 +4094 +5622 +-6070 +-7159 +-7261 +4625 +1683 +3264 +-7882 +-5796 +-2491 +-1237 +-4127 +-9543 +1327 +-5933 +-5807 +-6942 +1557 +6893 +-5468 +-316 +-3490 +-9639 +-512 +7365 +-8291 +160 +568 +7742 +6826 +-795 +4585 +-323 +8622 +6718 +-9670 +9059 +-9233 +9822 +8107 +1150 +-9727 +4336 +-1685 +-7508 +-8438 +3262 +3541 +5010 +-7666 +4839 +4542 +-4728 +3824 +6216 +-5489 +-8644 +-3869 +-9208 +1172 +1845 +419 +3430 +-6055 +3470 +-1945 +-8512 +5375 +-9644 +-2360 +-3611 +950 +8502 +4619 +5945 +7133 +-2204 +1469 +-9695 +2073 +-6730 +2358 +-2266 +-9080 +-6896 +5542 +-4147 +4928 +9724 +7581 +-9693 +9341 +-784 +9692 +9765 +1206 +4284 +3180 +8134 +9814 +-6812 +-3045 +5859 +6901 +5960 +-476 +-2717 +7508 +8157 +120 +6836 +9622 +-2824 +-8216 +4769 +8896 +9517 +6032 +1961 +2790 +-2555 +4327 +-5908 +-3168 +-6093 +-449 +2109 +-2634 +-1221 +3569 +-6838 +-8172 +-9675 +-1870 +-9310 +-813 +-5022 +572 +3870 +-2909 +2457 +1339 +587 +-571 +8062 +4552 +-8668 +6505 +993 +2625 +-9907 +899 +-1571 +-6652 +6524 +-996 +4855 +-8470 +-7790 +-9194 +-8073 +7573 +-3917 +211 +-9157 +9767 +-7907 +8476 +7342 +2119 +375 +-7068 +-8949 +2992 +9295 +933 +4129 +-4468 +-7962 +7295 +2119 +-6034 +4791 +-2873 +-9788 +495 +9406 +1151 +1072 +-5009 +-8763 +-5522 +3237 +9099 +-5868 +-3372 +9337 +-2475 +-221 +809 +-4529 +9726 +-7409 +4116 +-3205 +-8603 +545 +6978 +-6777 +-2025 +-5643 +-5935 +1778 +7538 +-5748 +7847 +6391 +263 +2016 +5269 +-308 +-996 +2151 +8997 +-7953 +-6968 +-3230 +9482 +4301 +6442 +-8142 +-4975 +1233 +-6430 +501 +7914 +-2718 +8294 +2219 +1940 +1409 +-4800 +1226 +6894 +-4931 +-8475 +4037 +1299 +-1055 +-9409 +8286 +-3574 +2610 +6669 +9726 +-8717 +-4977 +-417 +-6408 +-948 +6247 +-7964 +9286 +8903 +5437 +-5881 +-5460 +-221 +-3291 +8145 +709 +5948 +-2964 +9833 +375 +2397 +-1221 +9441 +-9100 +7704 +3809 +-3099 +4298 +-2080 +3022 +-2460 +-5130 +-7138 +8156 +7910 +6948 +-2989 +-7019 +4574 +-7835 +4542 +8668 +-5987 +-9640 +-7573 +-9281 +-4519 +5660 +1987 +-8972 +-4704 +6318 +4706 +8133 +-8833 +1778 +-8174 +-7440 +5559 +-9617 +-262 +6246 +-2809 +-1401 +-917 +-1341 +7776 +-22 +2121 +9592 +4191 +1852 +-1457 +-8249 +9699 +-9952 +9871 +3884 +9754 +-714 +-7325 +-7971 +-9252 +456 +-1042 +9825 +4141 +-2914 +4682 +-4009 +-5857 +9700 +7284 +-6800 +7366 +-6422 +5003 +-4699 +-9111 +3788 +873 +2574 +6116 +-6661 +-1723 +5370 +2530 +1886 +2121 +-6824 +7738 +-4910 +4903 +6618 +-6338 +-1797 +-249 +6857 +-7351 +4094 +-5393 +4713 +66 +-7881 +-1218 +-6205 +4866 +9985 +2254 +5235 +-2479 +3366 +-7109 +-9152 +-5847 +9681 +1987 +1121 +-6025 +9594 +-1141 +-5178 +-3437 +6921 +-579 +-3217 +169 +3066 +5935 +-2417 +3766 +918 +-618 +-5126 +9763 +-1073 +8523 +6361 +-8105 +-9000 +2943 +6343 +5901 +953 +8407 +-967 +5239 +-2543 +-7133 +-7051 +8113 +-8826 +-6132 +-3911 +-962 +-3960 +5993 +-6751 +-8823 +5311 +6712 +-4619 +3383 +-3820 +-2030 +-3083 +3588 +237 +-345 +-726 +2419 +7620 +164 +16 +4381 +-3177 +-7309 +-1217 +9702 +-8681 +-2312 +1895 +-974 +-8304 +-4390 +-6645 +-24 +-7556 +8523 +2919 +5336 +-9375 +5895 +8797 +-4450 +8541 +8019 +-3980 +-7967 +576 +-3200 +8838 +8326 +-3741 +3053 +8363 +7802 +4441 +5459 +-8025 +-9887 +-529 +-5193 +-5215 +-1778 +1784 +-9572 +-1740 +-1213 +8162 +4238 +9300 +1255 +5649 +-1747 +-5091 +-6108 +-9540 +8029 +8523 +180 +7598 +-2189 +-5245 +-2840 +7862 +8997 +-6230 +-2494 +-6557 +2744 +8268 +7291 +1890 +7666 +2446 +-8893 +62 +4326 +8070 +-4982 +-6242 +1991 +8100 +718 +-8833 +-3929 +4096 +-3028 +597 +9305 +5615 +5435 +-6182 +-8512 +-1164 +9263 +-5259 +6000 +-369 +-2991 +-8307 +-7196 +1072 +1496 +-1723 +8815 +7577 +-7262 +6326 +-7068 +-2390 +-8519 +-1640 +-5534 +-1102 +4542 +1505 +-7082 +-4931 +4814 +-5169 +-3437 +8332 +-7513 +-2931 +-8487 +-8817 +8592 +-4191 +9051 +-9790 +-7637 +-6191 +5292 +-5077 +3486 +1004 +-5269 +1836 +6473 +-532 +-6585 +7885 +-6335 +-6166 +-4758 +-6230 +4847 +4712 +-384 +-2398 +-6062 +2730 +-5030 +8246 +-2291 +5528 +8965 +1555 +-837 +7036 +7947 +5390 +-7022 +-9350 +-3121 +641 +-4957 +6876 +-697 +-8498 +9474 +6287 +-4125 +6183 +393 +3106 +9854 +-9376 +9743 +-3335 +3887 +-115 +-4390 +-6154 +-3196 +-3228 +173 +4006 +-9913 +-5867 +-369 +-2627 +746 +-3143 +-6394 +-2573 +-5753 +4415 +-6089 +8166 +2297 +7309 +-2210 +-9798 +-4053 +3084 +-1599 +5278 +4053 +-2268 +-4390 +6893 +4118 +-6675 +-8709 +-9143 +-1702 +-9691 +5477 +-3911 +-2654 +5380 +2904 +7792 +3247 +624 +-5126 +6045 +-2800 +3923 +5952 +7832 +-207 +-1530 +8038 +5503 +-8180 +9611 +-9616 +8753 +7363 +9043 +-4339 +-5317 +-2193 +-675 +6338 +265 +-824 +3943 +-2132 +1138 +7166 +-8661 +-7373 +4381 +4326 +5235 +308 +-2312 +-6389 +-1641 +8137 +1233 +-166 +1176 +-2886 +-2851 +-2055 +-4354 +4266 +-202 +8846 +2471 +-1649 +-8304 +-1168 +-2823 +3805 +-958 +-3929 +6237 +-1094 +-4619 +1845 +-1313 +545 +-9579 +-8174 +-7917 +4094 +1176 +1846 +9965 +9910 +5859 +-5274 +6442 +411 +8893 +8456 +6575 +-8977 +8019 +6743 +6443 +8122 +8343 +8390 +1512 +4490 +5657 +1871 +2314 +3936 +-7612 +-8644 +-117 +-8962 +-5641 +-9202 +-3356 +-8713 +5394 +9348 +2229 +8959 +-5837 +-8348 +9237 +1505 +8891 +-732 +7551 +6562 +9336 +-4808 +-4377 +-7334 +-4461 +-8415 +5569 +1047 +-8269 +-4200 +5928 +-9194 +8003 +-8634 +7156 +-5479 +-1499 +-5537 +495 +-8712 +4224 +9234 +-6843 +6613 +5531 +7068 +8021 +-3402 +-3930 +4410 +-9995 +178 +-7075 +656 +2487 +6297 +1172 +-9761 +6262 +-5804 +3052 +-9702 +-4968 +-2833 +-6822 +1789 +8390 +-9208 +-3224 +-4055 +7583 +5644 +-3585 +4442 +1242 +6853 +6361 +3758 +3932 +2016 +-3911 +8937 +2471 +-3444 +451 +884 +-967 +3060 +9639 +5164 +5705 +-8172 +747 +-5282 +4148 +-4433 +-112 +4968 +-4924 +2881 +4567 +-9727 +-6305 +-1022 +6978 +7914 +-1641 +-6213 +9603 +9272 +9348 +-7775 +-3642 +-6056 +8328 +-7311 +-4353 +-3794 +8343 +190 +-967 +3234 +-7520 +-5264 +2121 +-2249 +-3758 +2191 +-3022 +-6807 +5238 +-6758 +6348 +-1867 +-9648 +-9607 +9241 +-2962 +-5391 +8355 +-7962 +8206 +7487 +8979 +-9383 +2054 +788 +-508 +8895 +-8112 +-7932 +-794 +5304 +6005 +-4078 +-3837 +9965 +1843 +4652 +-2847 +2449 +-7017 +-6319 +1881 +2010 +-9974 +2737 +-1168 +-9332 +-714 +2992 +4678 +-8677 +-381 +-8212 +8893 +9692 +-367 +8990 +-9736 +8605 +-7962 +6457 +6970 +-1407 +-5046 +-112 +-7692 +2797 +-5436 +-1847 +3302 +-4910 +-5567 +5824 +-5636 +3561 +5923 +-4104 +8850 +-9227 +-6687 +5377 +-509 +5511 +5119 +4370 +-3758 +-9825 +-6448 +3052 +8953 +-7991 +-1615 +7053 +-2948 +7000 +-6597 +-4964 +6424 +5942 +-5935 +2299 +2064 +-1436 +-4808 +947 +-5698 +4327 +-4149 +-150 +-5363 +8629 +5879 +-1704 +-5384 +6560 +1672 +5206 +1995 +8097 +942 +1469 +8360 +-9432 +6229 +-4697 +-489 +-1084 +2337 +-1587 +325 +-9975 +-9198 +9968 +-7738 +5978 +-3142 +-9372 +-6321 +6877 +-4246 +-9379 +-9902 +-6083 +3102 +2454 +7104 +2296 +-1485 +9377 +-6336 +-7834 +6636 +-5621 +5567 +9209 +8753 +6707 +7674 +-8585 +8296 +6035 +5660 +-6571 +7541 +-6802 +6066 +-282 +4035 +7186 +-3833 +6734 +6836 +2392 +-1746 +-9277 +4208 +8519 +-5436 +7935 +-9408 +6000 +2157 +3060 +8487 +-1850 +-6038 +9542 +494 +3199 +-3796 +1660 +9079 +1043 +6338 +-687 +692 +9043 +-3911 +-4167 +-3178 +-3897 +2543 +-6389 +5163 +8021 +-4288 +-5660 +-8414 +8592 +-6235 +1293 +4928 +-5345 +-5002 +1707 +-1046 +1326 +385 +-2336 +-3139 +-7948 +9681 +-5570 +-6250 +3172 +9458 +-5720 +7150 +-9423 +5565 +987 +9711 +461 +-9553 +-6652 +-2755 +4410 +-2623 +-402 +-5234 +-3303 +-4607 +9279 +2781 +-4127 +7958 +-6912 +-1110 +-6810 +6321 +1003 +6361 +-3629 +7056 +-3833 +-5821 +1479 +-5348 +-9777 +-7103 +-1706 +1255 +-5639 +1000 +-4693 +1861 +-3248 +5430 +-4845 +-6841 +-6062 +8785 +-8436 +9814 +601 +-460 +-1118 +8925 +6250 +8842 +2489 +-557 +9065 +1111 +9162 +-7408 +-7782 +-6089 +4079 +1065 +5057 +497 +-1759 +736 +-5306 +4315 +8430 +9030 +-4957 +-3997 +-7547 +-7727 +-7380 +1526 +1392 +-167 +-5842 +-4301 +9095 +-6972 +1773 +7487 +-7549 +-8315 +9141 +-2506 +6575 +-8665 +157 +-399 +-9329 +8718 +-9760 +7606 +9224 +-8223 +5847 +-4533 +-9644 +7995 +-5953 +2826 +-3911 +-4082 +3768 +-5774 +4476 +-3442 +-9540 +-809 +2610 +386 +-4421 +2311 +-3461 +9757 +5265 +9576 +510 +-153 +186 +5181 +9087 +9473 +3943 +3702 +3113 +4118 +-7094 +-6341 +-2952 +-1022 +-1306 +8902 +3522 +-7257 +8243 +7218 +-6085 +1647 +5453 +6410 +4908 +3242 +-9801 +-9451 +-383 +4316 +6690 +2598 +-386 +-8158 +3764 +-2551 +2338 +1674 +-1220 +2224 +6950 +-9121 +4304 +-1602 +-4613 +4078 +-7066 +-5431 +-5846 +-6271 +122 +7766 +-9071 +2288 +-1230 +7359 +1210 +3014 +-8193 +8965 +7089 +-1493 +-6011 +6571 +3611 +-5080 +-7959 +1507 +-8725 +6906 +-3928 +-1245 +7031 +1782 +5858 +-3762 +3229 +-1075 +3648 +3383 +-5519 +-1880 +-3762 +8402 +8582 +5610 +-2816 +-6758 +-1358 +-7505 +2866 +8308 +-4306 +6256 +-9041 +-5051 +-9202 +2636 +-7635 +9482 +-9308 +3667 +9240 +-660 +5397 +-1081 +6707 +-9080 +7949 +-9163 +-6577 +9822 +4480 +1830 +5260 +-1460 +-549 +6515 +4441 +-4452 +1845 +-5936 +5287 +-7743 +-4471 +4049 +-2813 +-4473 +-4515 +1369 +7856 +-1408 +6834 +-7702 +-3752 +6906 +8816 +-6968 +-1715 +-6461 +8235 +6805 +9405 +905 +-1673 +-9272 +5380 +171 +1421 +-1264 +-3492 +1565 +-318 +-9676 +3213 +-8576 +-6104 +6694 +-3744 +-2330 +8537 +2629 +-5782 +6955 +-2901 +2439 +5176 +-2132 +-2096 +-4613 +9424 +3516 +-2479 +8475 +9488 +-8894 +-9763 +7056 +4079 +-4387 +1125 +-6893 +1222 +2679 +-8129 +-2722 +9846 +-7508 +6997 +-6998 +71 +-824 +1421 +5791 +-1099 +8600 +-2008 +5096 +4094 +7668 +9 +5568 +6599 +-2503 +9354 +-8347 +-2800 +992 +-3883 +273 +71 +3577 +3988 +5858 +3363 +-175 +-6632 +-1769 +3385 +-4739 +-9864 +8536 +-2929 +3804 +-1006 +-3395 +-6146 +-1765 +7406 +1788 +-9073 +1280 +-8565 +-8928 +-1417 +-9085 +9482 +-8819 +-5307 +2201 +-9308 +-4467 +4785 +9209 +-1612 +6557 +-7823 +5092 +7908 +9286 +1121 +9841 +-98 +803 +-7681 +-8356 +3366 +1007 +8596 +-5604 +805 +7332 +-8611 +2305 +1704 +2151 +5010 +-1870 +-2565 +-859 +1280 +-5130 +6526 +8969 +-7673 +-9501 +9583 +-401 +-7748 +-6557 +-72 +1049 +7704 +4513 +-1267 +-8949 +5648 +6677 +-7197 +1109 +-9771 +-9350 +913 +-4094 +-295 +5010 +3804 +122 +-7302 +5536 +2063 +-1945 +8624 +576 +-5746 +9337 +-5512 +727 +-8187 +-3867 +1672 +-8806 +7999 +-9993 +-2205 +2607 +308 +2973 +-7405 +333 +-214 +9961 +742 +4667 +1531 +-5083 +-3684 +-8890 +9610 +-4844 +-6290 +-5216 +5674 +-1225 +2465 +3592 +2016 +2885 +-1747 +-8962 +3983 +4181 +-6642 +-1875 +6426 +-6840 +1724 +1642 +-1602 +-7134 +-4573 +7789 +6764 +-9063 +1007 +8453 +-460 +2397 +-8641 +-6780 +1947 +-9738 +-7615 +2595 +7885 +9229 +308 +7289 +3898 +7479 +2224 +-8087 +-2946 +-5978 +4775 +-2782 +5867 +-6072 +-2615 +4896 +-6924 +-1331 +-5246 +8301 +6948 +3759 +-5738 +3073 +807 +8528 +5359 +-8276 +4858 +-4725 +1549 +3301 +1093 +4805 +8758 +3441 +-9658 +6492 +8420 +2391 +-254 +2385 +-6264 +-5747 +-4147 +2101 +-2675 +-4214 +5162 +-2699 +-5184 +4497 +2529 +-7172 +-2193 +2366 +5130 +9904 +1631 +-386 +4530 +0 +-4732 +8441 +-1176 +5931 +5747 +8675 +-171 +6697 +-4122 +8079 +5548 +-7996 +-609 +2620 +3713 +-3902 +6300 +4670 +3435 +5239 +-9215 +-489 +-399 +-3642 +5728 +-3468 +-1480 +-2629 +5150 +2193 +9029 +-7103 +1916 +-2209 +2888 +4557 +9048 +-3435 +4617 +-7681 +78 +7363 +-1197 +-7583 +157 +3575 +-7759 +545 +-2392 +-7914 +-8934 +-9836 +-2173 +-3762 +-2030 +-4617 +-7141 +164 +7116 +-1594 +2337 +-4885 +-160 +4064 +2059 +-8766 +638 +-1194 +-7697 +-8329 +-7343 +787 +-6351 +169 +-5460 +192 +-530 +-5050 +8843 +1566 +-9004 +-777 +-796 +3909 +8360 +-9116 +8846 +2971 +9780 +-8225 +5808 +-9540 +5176 +2943 +-5275 +-4420 +8868 +2362 +-8526 +9594 +-593 +6093 +-2141 +9848 +5967 +-9103 +1837 +9985 +3648 +-9750 +-9114 +-2623 +4011 +-1606 +8673 +-9442 +1893 +2499 +-1981 +120 +-4585 +3370 +-1245 +-4410 +-9450 +-6104 +-7921 +-7195 +9036 +2208 +-2781 +-532 +7905 +6649 +6588 +-6283 +-1996 +-7955 +-4529 +8420 +8403 +-6321 +-3998 +1512 +6232 +4025 +-4589 +2256 +-8813 +-8225 +2190 +-3368 +840 +-6737 +9479 +-7775 +4473 +-7391 +-339 +-7335 +39 +1336 +-5337 +7266 +571 +6483 +9003 +3604 +-2884 +4887 +7759 +1330 +-4807 +-7192 +5153 +1043 +2602 +-5461 +7560 +5164 +6356 +-9368 +2969 +-1957 +9709 +6677 +1121 +-732 +9689 +3487 +-7449 +-5043 +-900 +-8415 +7820 +7499 +-345 +-2565 +6893 +845 +-4770 +-2030 +-1261 +-3205 +-100 +-7002 +-7032 +2757 +4157 +-98 +-4147 +-2480 +-9684 +-4318 +-136 +6997 +-6852 +-992 +6876 +5406 +9030 +-4220 +124 +-1891 +1131 +5723 +-9811 +-906 +7585 +222 +-9837 +1469 +-7939 +-4255 +-2777 +-3619 +4045 +-8908 +-9957 +2279 +51 +-1547 +8169 +6385 +5115 +-2347 +4013 +-9621 +6588 +1758 +434 +-532 +-5268 +-9235 +3833 +8070 +-4805 +-8979 +-2229 +-9695 +-9154 +-6807 +-3507 +5528 +7508 +-3389 +-137 +-5753 +9065 +5407 +7596 +9354 +-7775 +-4863 +9681 +5080 +-213 +-6211 +-7154 +2368 +4052 +-1963 +-549 +-5485 +-9957 +-4940 +4497 +9422 +-552 +5749 +-6454 +-3985 +-3762 +-8590 +4839 +-2415 +-9462 +3283 +6183 +5183 +7265 +8021 +-5938 +6503 +-8856 +2178 +7210 +7927 +6203 +-2479 +-2642 +-4282 +8103 +-3828 +5571 +4357 +3878 +-6909 +-3761 +-8742 +8888 +-6271 +8441 +-2210 +-5544 +-9202 +1061 +-560 +8012 +-781 +8490 +-803 +169 +5790 +-3133 +-4122 +2406 +7486 +-1747 +2216 +-380 +7964 +2610 +4376 +-3962 +6872 +605 +5200 +852 +2941 +-4387 +2748 +-5421 +6177 +-5393 +-5081 +5466 +-6239 +8815 +-40 +3567 +-9565 +7669 +9301 +-5002 +-8567 +-3210 +-5177 +3237 +5206 +-6942 +-40 +-8269 +-589 +2790 +7017 +7425 +9726 +-3820 +1961 +-8492 +-7539 +5320 +-7881 +1401 +-5753 +-5460 +9708 +5260 +-2863 +3492 +7499 +1338 +-5394 +3803 +4053 +9286 +-2725 +-8698 +5903 +5855 +6597 +-4940 +-8811 +2314 +-7184 +-8246 +-6084 +-9084 +2997 +7507 +-4607 +-93 +-941 +-1652 +-2116 +1205 +3294 +-925 +-3046 +9174 +222 +-8240 +3142 +-199 +4160 +5350 +8978 +6515 +-1908 +-1224 +4035 +8272 +2822 +-4091 +-7318 +534 +200 +-6792 +705 +937 +171 +2039 +6948 +-6654 +-2713 +6970 +4224 +-9616 +-4884 +5567 +-98 +-9351 +-2768 +6514 +-4425 +4323 +-9826 +-9635 +4316 +-2694 +-1435 +7396 +8485 +504 +-6186 +9841 +-489 +-3260 +-5874 +-8634 +-8414 +3030 +2486 +-8079 +3712 +6575 +316 +3093 +-841 +314 +1046 +-7408 +3761 +-8742 +829 +-6093 +-9445 +-9426 +3879 +5385 +-1056 +-891 +1919 +7055 +-857 +5959 +-3365 +809 +-3333 +-3023 +3939 +648 +2555 +6908 +-1186 +-175 +8169 +-6275 +5836 +4694 +-415 +6966 +-7624 +-5935 +1649 +-2646 +7585 +-1418 +-9308 +-7758 +5559 +-1996 +5219 +2867 +-4100 +9119 +-6573 +-1035 +-9117 +9512 +3623 +9030 +5474 +-105 +2471 +-1230 +4355 +-7407 +-2486 +1010 +-5825 +-4561 +9457 +-342 +-8886 +-1264 +266 +1493 +9272 +-9782 +-4671 +7453 +2520 +-8038 +-5475 +-8350 +148 +7815 +3519 +6121 +-841 +-6672 +2923 +-2597 +-1274 +5559 +-8247 +-9818 +-8007 +-8717 +1465 +9505 +4308 +2617 +3909 +3516 +-8461 +4953 +7150 +-2888 +2252 +-859 +-1660 +7982 +-7085 +2195 +-1921 +3087 +8656 +-8452 +9543 +727 +7674 +6098 +8106 +-1290 +4839 +6306 +-7045 +-4138 +1593 +-1129 +4670 +494 +1867 +-7885 +1830 +-7637 +-8781 +-7701 +-3652 +9341 +-9582 +-7365 +-3146 +-567 +-7983 +-849 +-7391 +-1648 +6223 +-8362 +7963 +5824 +-6786 +1919 +-8787 +8019 +-8851 +2130 +-2229 +8487 +-3995 +-7210 +2997 +-9553 +9743 +-4900 +-1437 +858 +3108 +9113 +393 +5150 +-4673 +-6108 +173 +-9763 +1106 +-7372 +-3568 +-2191 +-3041 +8489 +-8468 +3086 +9915 +-694 +-723 +-4554 +-5317 +-9446 +-772 +-3930 +-8487 +-6596 +-5867 +-9035 +-3410 +-3444 +1537 +5534 +-2657 +-5889 +-9966 +-1638 +-297 +7478 +6979 +-1587 +9770 +-5378 +-489 +4186 +836 +-1681 +5934 +1179 +3336 +634 +-2272 +7706 +778 +283 +5833 +7606 +7326 +-2281 +5466 +-9581 +3954 +-5738 +4704 +5185 +9904 +-5274 +-7034 +18 +-8656 +8510 +8953 +3113 +-6117 +-2587 +5401 +9052 +-5434 +239 +5588 +-2506 +1714 +3972 +-4982 +4047 +7994 +-5109 +-51 +8796 +-3758 +6342 +1212 +-126 +8914 +7151 +9831 +5980 +8328 +-742 +9646 +-6840 +-1231 +-4989 +-7915 +-4036 +2473 +2243 +-8857 +8000 +2536 +1271 +8370 +1773 +218 +-5189 +-4216 +-7513 +463 +-5492 +6631 +8421 +2216 +-7648 +7897 +889 +8978 +-1967 +770 +-5890 +-3044 +8792 +-3342 +-2702 +-1268 +5884 +934 +-4414 +-9936 +-6192 +845 +-4069 +6300 +-7515 +-7498 +-7200 +-6231 +3210 +7456 +746 +-2189 +-340 +-1378 +1672 +-9152 +-6190 +-3538 +362 +2588 +6068 +-521 +-6945 +3536 +530 +-2554 +-8390 +4606 +-7198 +9037 +8574 +-6068 +-241 +-6780 +222 +2181 +4010 +-2030 +-3333 +-1043 +9097 +-5350 +1639 +8267 +-8717 +2849 +5063 +5435 +-3154 +5152 +-4323 +-1940 +2273 +-5953 +-1503 +-4136 +-8326 +-4600 +532 +-1935 +-9761 +-5093 +-5265 +4584 +-2272 +375 +-421 +-8975 +-8519 +8990 +-2524 +-1833 +-6486 +1102 +-415 +-2615 +-840 +-8299 +-5251 +4266 +6831 +4052 +-2484 +-7900 +7394 +4444 +-1477 +-645 +1565 +-8170 +2934 +-4689 +1122 +5928 +-9289 +7925 +-6095 +-1723 +2707 +-399 +-1564 +650 +-8207 +9926 +1 +1228 +5602 +6286 +3744 +-8894 +-123 +8107 +6469 +-4352 +-6796 +7487 +5787 +-369 +2360 +-8356 +-7615 +503 +-9346 +-2573 +-2551 +-4866 +-9961 +8906 +9406 +-2101 +-5701 +3405 +2431 +-2796 +-340 +-5245 +-172 +2678 +1320 +-2554 +-5874 +-5406 +-4105 +7516 +8386 +326 +5770 +5024 +9024 +-1970 +2670 +-508 +-5586 +-8526 +-5540 +6387 +-9293 +7309 +2740 +-8184 +-3554 +-4889 +-56 +9249 +9286 +-6792 +3936 +1244 +2805 +-7503 +6335 +-8356 +1339 +-7624 +-2272 +-1778 +-1165 +-6942 +-3796 +8894 +2384 +4632 +4552 +5069 +-8645 +6458 +961 +-9331 +1557 +-5889 +1565 +2707 +-5455 +-9270 +-8247 +-2279 +-6328 +-5818 +3989 +2743 +9928 +4036 +5423 +-2384 +6882 +5067 +930 +-9883 +9113 +-4125 +1497 +-3333 +-2020 +1789 +-3195 +3867 +1191 +-1920 +-8681 +8206 +-559 +5923 +-6382 +8738 +-872 +-6445 +-8775 +8174 +4600 +-7305 +-3821 +-4347 +7903 +-6512 +7199 +-4448 +9492 +5369 +9902 +-6820 +8775 +-8535 +3916 +8865 +1511 +-8390 +-9073 +-8836 +5019 +-583 +205 +1778 +2121 +316 +-593 +-5738 +1271 +-1096 +1753 +6921 +-1686 +8816 +9147 +6775 +9326 +1648 +5602 +3363 +544 +-7195 +-2894 +7884 +-3014 +528 +3740 +-9266 +9708 +-3049 +5893 +2741 +2565 +2588 +8216 +5790 +9985 +6610 +-9031 +-3473 +5380 +-7737 +8062 +3836 +-8977 +-8053 +-4014 +2078 +-530 +-2866 +1995 +-8167 +4038 +-3960 +-528 +2884 +6336 +8630 +-686 +7521 +7927 +7373 +-3350 +2890 +-563 +4931 +9931 +-6723 +-9964 +-7534 +-9356 +3798 +-2255 +3212 +-4136 +-2533 +9576 +708 +-5119 +355 +8638 +569 +-7147 +-5446 +-2935 +7654 +-5799 +1788 +-7014 +-404 +8831 +4632 +-1610 +-1843 +-6282 +-7866 +-3432 +-4685 +-3886 +-1825 +-3796 +4158 +5824 +1778 +4498 +-5192 +3734 +4810 +3839 +-9501 +-6654 +-2466 +133 +7544 +3630 +-3064 +6032 +-8504 +6930 +3370 +859 +9065 +5399 +5049 +-1424 +1812 +7726 +-2293 +-6205 +8169 +5965 +1097 +6921 +1890 +6051 +-412 +3900 +8475 +2866 +7548 +-2034 +6647 +-5009 +5526 +-4542 +1507 +-7775 +-9408 +7573 +-9574 +4094 +-175 +5474 +7783 +-4109 +-7554 +8865 +5847 +-9223 +3347 +6852 +9454 +5163 +9152 +-4138 +4352 +3541 +2805 +-1193 +5039 +1484 +-9350 +-119 +6588 +-361 +7527 +-9738 +-4644 +686 +-531 +2583 +2890 +382 +8205 +-4801 +6028 +8906 +8134 +-2215 +2279 +-558 +9470 +7837 +7985 +-1359 +-2813 +-9070 +9688 +5691 +2172 +1111 +2548 +-7047 +-4136 +3666 +-3622 +6325 +3198 +-3805 +-4909 +-6766 +-4450 +3440 +-726 +-22 +6389 +-6316 +-1278 +9029 +-1593 +6443 +4958 +5931 +3921 +-7827 +5539 +-9760 +9915 +4415 +-9021 +2620 +6359 +-5479 +-3557 +-8249 +-5339 +218 +777 +5761 +-5680 +1004 +-5442 +2256 +1616 +-2884 +9075 +4218 +-7612 +511 +-417 +-3928 +-4845 +4130 +-6064 +-8253 +-8951 +-2320 +-1629 +-3092 +3451 +4042 +-7919 +-9223 +5648 +9708 +-1073 +-4064 +6000 +8003 +-4181 +-712 +9316 +-9152 +-7572 +2233 +-135 +-2644 +-9637 +-2549 +1746 +-5398 +-9340 +-6822 +2760 +7788 +-6504 +-3576 +4963 +959 +7741 +-9089 +-7855 +9535 +-8086 +-802 +-5119 +6297 +6122 +-3490 +-9940 +-5009 +3782 +-5178 +550 +4848 +5488 +6382 +3333 +-6608 +-5247 +7044 +-2923 +-7701 +9065 +-598 +3108 +1367 +-5678 +8582 +-4811 +-7008 +-6452 +1723 +650 +5835 +-3121 +7577 +-2657 +-2618 +-1323 +-9190 +9635 +-1242 +-7035 +5309 +-4409 +6921 +-3611 +-7793 +-8299 +8908 +-7195 +727 +3300 +6880 +2362 +-4149 +7910 +3999 +3734 +6780 +-7612 +-4891 +845 +9840 +775 +8112 +9027 +-1045 +1191 +2352 +-8108 +-3800 +-3023 +-8821 +3808 +-4886 +-8870 +5752 +7617 +-3781 +171 +8096 +-7129 +-4290 +-4062 +320 +-2487 +553 +9708 +5159 +899 +6363 +-6465 +9147 +-401 +-7466 +-3276 +2279 +-6311 +-927 +-5802 +-7198 +-119 +-1678 +1003 +8092 +4488 +-4379 +8133 +-4339 +-9138 +2848 +-5429 +-7756 +2885 +6147 +-6038 +7877 +-8618 +6474 +8753 +7994 +8024 +3578 +-5935 +3029 +-8077 +2969 +-1970 +-453 +-5697 +7928 +3106 +2058 +-1118 +-4728 +9726 +-3216 +-6441 +7460 +5952 +3058 +3104 +-9088 +6547 +6587 +-714 +-4010 +-8590 +-1244 +-7655 +5051 +5134 +-1679 +3884 +339 +194 +-8356 +-4377 +9473 +-5680 +-3215 +-5470 +3180 +2598 +407 +-967 +4036 +314 +-839 +6806 +-6573 +3569 +3863 +-2336 +-8787 +4038 +691 +6741 +-4251 +1102 +-9781 +-7612 +-3704 +7699 +-6744 +-8893 +-472 +-6991 +9945 +-1408 +-6453 +-2623 +337 +3613 +1391 +-941 +-7109 +-463 +-322 +-5082 +3029 +-9456 +-9021 +-2316 +-906 +7766 +-222 +2881 +-5274 +-8368 +5011 +-8545 +332 +7748 +-362 +6404 +-2800 +9354 +16 +9020 +7319 +6203 +-7863 +8816 +8413 +1846 +2070 +-1181 +7394 +-2460 +-3854 +-8299 +2489 +-4968 +5674 +-5435 +-9060 +-3569 +1919 +-6627 +-6433 +-731 +7017 +-8208 +-6577 +-6678 +-3178 +5447 +2790 +6127 +7928 +-547 +-9684 +-7252 +-6575 +-1887 +-7753 +4382 +1122 +4316 +6572 +2198 +-9071 +3953 +-4147 +-9617 +3667 +-1683 +649 +-6743 +-1553 +3921 +-9874 +-1031 +4321 +-4431 +5309 +978 +-9355 +-9323 +3503 +-5810 +1168 +4829 +214 +6996 +-9873 +7541 +-9653 +4528 +5615 +-521 +-5512 +-7182 +7928 +2406 +3523 +-215 +3692 +1550 +7087 +9274 +3622 +3259 +4686 +-3273 +-1046 +1219 +3925 +-6863 +-524 +6976 +8390 +8709 +-1762 +-5114 +-5913 +2806 +3693 +2041 +-2827 +-4249 +378 +-6700 +-9906 +-85 +-523 +5245 +3550 +-8024 +8898 +-5874 +5193 +3289 +7482 +8254 +-6486 +-153 +-1777 +-7132 +-1400 +-9992 +-5178 +-2255 +9362 +6028 +5571 +-6468 +-9108 +78 +1354 +6000 +4982 +4028 +-8643 +6525 +2290 +1201 +4079 +2226 +521 +8074 +-7094 +2701 +-5078 +6562 +9611 +-4766 +438 +2826 +6326 +-7630 +-5130 +619 +-8956 +6966 +3761 +-3211 +4236 +-9978 +1267 +-3183 +-2025 +-5627 +4637 +-8827 +-248 diff --git a/data/20_2023.txt b/data/20_2023.txt new file mode 100644 index 0000000..166d67c --- /dev/null +++ b/data/20_2023.txt @@ -0,0 +1,58 @@ +%tx -> dx +%nx -> fn, rn +%nr -> cj, mh +%nk -> jt, vk +%mv -> fk, rn +&pz -> kt, pg, mb, vr, hp, jp, tx +&jt -> fb, zb, jq, sv, lp +%vp -> lp, jt +&qs -> gf +%lj -> jt, dt +%jh -> mh +%xc -> nx +%hx -> xb +%kd -> pz, pp +%jq -> jt, qt +%lp -> jm +%ph -> mb, pz +&sv -> gf +%ff -> xc +%th -> mh, hx +%kt -> ct +%ct -> kd, pz +&mh -> bc, qs, hx, xb, nv +&pg -> gf +%fn -> kn +%sk -> hr +%nv -> mh, th +%dx -> pz, ph +broadcaster -> bx, jq, nv, jp +%dt -> jt, zb +%fx -> sk, rn +%rv -> rn +%gv -> mh, nr +%fk -> rn, rv +%cj -> mh, vh +%xk -> jt, nk +%vh -> mh, jh +%zb -> fb +%mb -> jc +%kn -> rn, mv +%jc -> pz, kt +&sp -> gf +%hp -> tx +%jf -> bc, mh +%fb -> vp +%xm -> mh, gv +%jm -> jt, xk +%vr -> hp +%hr -> ff +%jp -> pz, vr +&rn -> fn, hr, bx, ff, xc, sp, sk +%pp -> pz +&gf -> rx +%xb -> jf +%bx -> rn, fx +%bc -> xm +%qt -> lj, jt +%vk -> jt diff --git a/data/21_2020.txt b/data/21_2020.txt new file mode 100644 index 0000000..6c47725 --- /dev/null +++ b/data/21_2020.txt @@ -0,0 +1,49 @@ +chsprq bdghf dtpcd djtblr kggl cvdvd jzlht lkdg nd szvsg drv ptn mhjg dnlsjr rhvglf fmgg prkpfnh tfdl bcthd lmxc hjpv rsvlb hgmq xsvjb cqgqxq vsvmt ccd sqdsxhb vpzhpnx dlj dvqsf mmr bmtn vgqd zfrn zffphr nlmsj xxhf rfdxph ggqlkpr cmfj bfkm stcctv rlnsc snngn xzb zjfb qdccb qxrm jlhv vfpmcdc gbnj srhmt lfrq blcb jcnglmz bhrjc qmvzln nllmj zqhxc xpk drchk pbhthx qks dgvqv tcph (contains fish, wheat, shellfish) +cvdvd lkdg dgvqv czd mjnjq kxkzv bdghf xzb xsxkj bfjlcv sbkq gsmvb cvrzmd prspxdl pbhthx sqdsxhb ppfmb zffphr chmmqq htfvt ccd szd qks qthvbf prkpfnh xdlhgf rqhp fmgg mxqht mdpqq phh xrstpzc chxkn vgqd qmvzln prg vfpmcdc fsgj zgfr cqgqxq hfl csnfnl pcg ghrnk hmrh kdkrhr qldrh rsvlb lczvhs xsvjb qsndg rlnsc djtblr ffpq snngn zbs dvqsf qsvfk hmcc blgxsl (contains dairy) +bmtn ptn pmvgd zffphr cfjqbs chmmqq prkpfnh jzlht mxqht xzb blgxsl pdzqrqq pbhthx vpzhpnx fmgg xpk prg mjnjq kggl mhjg mmr fmgnz msdgp dnlsjr zgcrp bdghf ctfdj dgvqv snngn ghrnk tfdqg hctzvvc ddbss xmnqb htfvt sqdsxhb zbs ccd xsxkj jfzd djtblr tltxb ktgqdf cspz qdms jtl mdrn rvmx jsxqj kdtr xrstpzc cfzcl lkdg zjfb nrsb rsvlb (contains shellfish, dairy, wheat) +dgvqv xrstpzc prspxdl ptbvs kfl vsvmt dsjrv tbfmsnj cvrzmd chsprq jlhv vpzhpnx zjfb pmvgd qklrs kdkrhr kvtlklq jsxqj ptn vgqd sbkq lkdg fmgg sqdsxhb zfrn pbhthx drv txnxdd bdghf rsvlb hjpv cfjqbs csnfnl sdvc chmmqq cspz xdjz fqpjl zrlpbh tnhjq vtjmvd nrsb rnpjxc mdpqq bfkm rfdxph lzbfz ppfmb dptx fmgnz bhrjc qldrh qksrp dtpcd zspn qdms kdtr jzlht xzb nrgcrd (contains soy, eggs, shellfish) +zspn dnlsjr bmtn rdnvlt dlj blgxsl qthvbf qsndg dptx rsvlb bqdbr rlnsc bsnvm cfzcl kggl lcgdsp ffpq sqdsxhb mppxj hmcc pbhthx qxrm csnfnl mpnd fmgnz qdgdsg qklrs blcb cpp ctfdj cfkdn ktgqdf dvqsf jsxqj xtnz cfjqbs zbs sbkq gsmvb hgmq jcnglmz cvdvd kbfqvxf kfl cmfj lkdg pdzqrqq dgvqv xdlhgf qks ndfmx hfl tbfmsnj hmrh xlttl ppfmb zgcrp tsqp djtblr zdkgvxk drvxr xsvjb bbztv qmvzln cqgqxq ptbvs (contains soy) +ktgqdf hnnk fqpjl phh hmrh dnlsjr lkdg qdccb bmtn pbhthx lzbfz nxlq msdgp chmmqq rsvlb kfl vpzhpnx ccd szd bdghf mbbz hfl vbdsgx dvh lcnnf vtjmvd drchk cvrzmd bhpn bqdbr xpk qsndg fmgg snngn qksrp dgvqv csnfnl hgmq fsgj jtl zfrn cfzcl bbztv tsqp drv kxkzv xmnqb mpnd xzb chxkn qks rfdxph prkpfnh gsmvb nrsb htfvt qthvbf pcg xdrm ctfdj dxqbf zdkgvxk dlj kggl srhmt drvxr fbj sdvc tfdqg dxn jfzd cqgqxq cspz fmgnz ndfmx bplgpn rnpjxc (contains wheat, dairy) +blcb sqdsxhb lkdg kdkrhr nd phh sdvc qldrh zspn jcnglmz qsndg lzbfz xdrm rsvlb kbfqvxf cspz gdg xmnqb qxrm chxkn xtnz cvrzmd chmmqq fmgg dxqbf mdpqq vpzhpnx ccg mbbz rdnvlt zjfb ssjpd bqdbr qdgdsg jsxqj fktqdh kvtlklq dnlsjr tcph cmfj tfdl qtkbvr qgxj qphl zrlpbh stcctv rqhp qmvzln fbj prspxdl xzb dgvqv kfl mhjg jtl csnfnl ccd dvqsf dvh vtjmvd vgqd lmxc fsgj zqhxc tsqp zffphr (contains wheat) +stcctv fsgj sqdsxhb hctzvvc mxqht tcph bdghf dnlsjr rfdxph vpzhpnx rhvglf ctfdj czd nlmsj bhpn bmtn vgqd ppfmb xzb msdgp kfl dvqsf sbkq bcthd qdgdsg csnfnl dptx cpp zgfr jcnglmz pcg vfpmcdc hnnk gsmvb qdccb xsvjb rnpjxc zdkgvxk jtl gdg nrsb dcmpb rhqfkmn jgnxfn cvdvd dgvqv mdrn zbs hcgh kxkzv tfdqg dxqbf pmvgd hjpv hmcc srhmt szvsg ssjpd xdrm lcnnf zrlpbh pbhthx tvkvmms ptbvs nrgcrd lkdg (contains fish, sesame) +hctzvvc drvxr dxqbf vsvmt cqgqxq rfdxph zgfr dvh kpbg lkdg vtjmvd tfdqg dgvqv hcgh jzktf chxkn jlhv dnlsjr chmmqq jtl cfjqbs xzb fmgnz ghrnk prspxdl dxn dlj bplgpn hmcc xdjz bfkm szd qgxj zspn hnnk srhmt hgmq fktqdh xrstpzc szvsg mjnjq xmnqb sqdsxhb qdccgvb zrlpbh gbnj ptn ffpq sbkq bhpn ddbss rsvlb lmfccx qklrs rnpjxc cfzcl phh xsvjb qthvbf zdkgvxk czd bdghf tvkvmms fsgj prkpfnh rrjt ptbvs mxqht csnfnl qxrm rhqfkmn xtnz kbfqvxf gjbfmm rqhp bmtn bhrjc drv ktgqdf zffphr hjpv cspz (contains wheat) +nd prg djtblr lrgxlct mppxj zgcrp lkdg kvtlklq zrlpbh rdnvlt rnpjxc xmnqb hctzvvc jfzd tnhjq fsgj vpzhpnx zdkgvxk ctfdj cspz phh zffphr xxhf gjbfmm jsxqj mpnd ggqlkpr qldrh chxkn fqpjl mbbz qdccb pbhthx ktgqdf hfl drchk cvdvd pcg ccg bsnvm nxlq prkpfnh csnfnl jtl qdccgvb jgnxfn tltxb nrgcrd ftzgp sqdsxhb sdvc bfjlcv xzb bfkm bbztv tbfmsnj dnlsjr drv rsvlb qdms cmfj chsprq bcthd drvxr dtpcd kggl ndfmx xdjz qksrp lczvhs gbnj lcnnf vfpmcdc dptx zqhxc qklrs (contains eggs) +bhrjc lkdg vtjmvd ffpq cvrzmd ndfmx djtblr sqdsxhb nxlq gsmvb hfl chsprq dvqsf csnfnl ccd fsgj cqgqxq qklrs xzb qxrm gjbfmm ktgqdf xmnqb zspn tbfmsnj hctzvvc lczvhs kggl bhpn rhqfkmn tfdl ssjpd msdgp txnxdd nd blcb kbfqvxf gdg ghrnk dcmpb kvtlklq phh rlnsc qtkbvr dlj qphl tnhjq zbs mppxj stcctv dnlsjr xtnz jtl zffphr xdlhgf vbdsgx rsvlb hhxrrr blgxsl zgfr dgvqv xdjz jfzd chmmqq bsnvm czd lfrq (contains wheat, eggs) +tvkvmms xzb fbj rhqfkmn qdgdsg rrhsh sqdsxhb tfdqg qxrm rqhp ctfdj qthvbf tfdl czd zbs nlmsj xpk cmfj qtkbvr blgxsl vfpmcdc gbnj prkpfnh zqhxc cfkdn mhjg bsnvm fmgg xmnqb qdms dnlsjr rsvlb hgmq csnfnl dgvqv hjpv dxqbf bmtn pbhthx stcctv qks (contains nuts, wheat) +szvsg zrlpbh xsvjb ktgqdf bbztv xxhf bcthd qklrs ctfdj sqdsxhb xzb lkdg txnxdd sdvc pbhthx mbbz cpp dsjrv xdrm mdrn hmcc rdnvlt xdjz mhjg ptn kdkrhr rrjt xdlhgf qdccb rsvlb qmvzln qdccgvb jzktf zfrn lczvhs kfl dnlsjr xmnqb csnfnl bdghf ppfmb (contains nuts) +jgnxfn zdkgvxk prg dxqbf mxqht kdkrhr mhjg pbhthx dgvqv tcph zffphr cfzcl qthvbf xxhf bfjlcv hmrh mdpqq ccd cspz mppxj nllmj lkdg qmvzln zgfr fmgg qtkbvr bmtn hhxrrr nxlq xzb ccg dptx sqdsxhb gdg gjbfmm prkpfnh ktgqdf qdccb tvkvmms mbbz qks lrgxlct dnlsjr cfkdn bfkm ppjrrm csnfnl rhqfkmn lzbfz jzktf szvsg (contains dairy, fish) +fktqdh zspn gjbfmm bmtn ccd hfl ftzgp zrlpbh bhrjc lfrq rrjt rvmx pbhthx sbkq jfzd zdkgvxk xdjz srhmt sqdsxhb dlj rsvlb qmvzln vbdsgx drvxr xmnqb sdvc mbbz bplgpn blgxsl hnnk zgfr ptn hcgh xlttl dnlsjr qthvbf lzbfz qtkbvr rnpjxc qsndg ktgqdf dtpcd gdg kfl csnfnl rdnvlt zjfb tbfmsnj ddbss dptx gsmvb lcnnf szd bqdbr lczvhs cmfj drv tqgd kvtlklq mmr ctfdj zgcrp prspxdl fsgj zffphr ccg blcb qdms jlhv xzb dgvqv zqhxc (contains sesame) +sqdsxhb tfdl dgvqv xpk xzb csnfnl ftzgp mbbz xrstpzc nlmsj rvmx ccg fmgg xlttl dtpcd qphl nrgcrd rdnvlt lxfbmt dnlsjr drv fbj bfjlcv htfvt lkdg nllmj lcgdsp cvrzmd qthvbf hmcc hfl prkpfnh dvqsf hhxrrr cpp kbfqvxf xsvjb kvtlklq rqhp pcg lmxc jgnxfn nd lrgxlct ppjrrm djtblr sbkq ffpq qdms prspxdl qxrm zffphr cspz chxkn rlnsc pbhthx tsqp nrsb mpnd xxhf (contains dairy, eggs) +dsjrv zbs zfrn lkdg hfl tfdqg lcnnf rrjt cvrzmd qdgdsg tvkvmms hcgh fmgg dxn ptbvs xsvjb xzb gsmvb nrsb rsvlb zrlpbh hmrh vbdsgx prg bbztv zspn pmvgd srhmt cfzcl ppjrrm rrhsh cmfj rhvglf csnfnl prkpfnh hmcc mppxj pbhthx dtpcd mbbz zffphr rfdxph dnlsjr sdvc sqdsxhb ktgqdf (contains soy, eggs) +htfvt rsvlb qthvbf txnxdd cpp jtl bbztv lrgxlct chmmqq qdccgvb bfjlcv zffphr xzb jgnxfn hctzvvc dvqsf kpbg rnpjxc dgvqv lzbfz zspn zfrn sqdsxhb blcb jzktf xdlhgf dxqbf pdzqrqq ftzgp xpk sdvc djtblr kxkzv xdrm pbhthx csnfnl qsvfk snngn jlhv vgqd vpzhpnx jcnglmz nd lxfbmt drv mpnd cmfj cspz pcg bfkm dnlsjr qphl qks bsnvm bcthd (contains eggs, fish, shellfish) +kbfqvxf tnhjq kggl vfpmcdc prg zfrn jcnglmz tvkvmms fmgg rsvlb zdkgvxk qsndg vgqd tltxb ndfmx dgvqv bmtn gjbfmm dnlsjr dxqbf szd lxfbmt drvxr sqdsxhb rfdxph nrsb ppjrrm mdpqq zjfb pbhthx bhrjc rqhp qmvzln vbdsgx ccg csnfnl blcb hcgh mmr cfkdn gsmvb xzb (contains wheat, fish, shellfish) +nrsb jfzd lcnnf rsvlb bdghf cvdvd cpp ggqlkpr xpk xlttl hjpv cvrzmd mdpqq mhjg htfvt ftzgp zffphr djtblr rfdxph qxrm pmvgd fmgg tbfmsnj bqdbr qgxj hmrh nllmj qdms sbkq qphl lczvhs stcctv drv lfrq fsgj xtnz dnlsjr csnfnl gjbfmm vtjmvd ccg qdccb phh lcgdsp prkpfnh hctzvvc tsqp qldrh jzktf tvkvmms dgvqv pbhthx chsprq ktgqdf mmr hmcc xsxkj sqdsxhb dxqbf xzb cqgqxq jlhv mdrn blgxsl bplgpn szvsg ctfdj ptn bcthd ddbss kdtr zrlpbh fbj gbnj qsndg kdkrhr gsmvb tfdl (contains nuts) +cmfj jzktf rdnvlt ftzgp qtkbvr lcgdsp prspxdl htfvt drv rrhsh qdccgvb zdkgvxk msdgp vfpmcdc fsgj nd lmxc zgcrp cfkdn dxn tltxb mmr dlj nlmsj bfkm hcgh dsjrv qgxj hjpv vsvmt lzbfz xxhf zspn qdccb xzb drvxr pcg dnlsjr chsprq kxkzv lfrq tfdl gsmvb csnfnl ccg pbhthx blcb lkdg dvqsf sqdsxhb xdjz lcnnf dptx xsxkj jlhv gdg rrjt dxqbf dgvqv (contains shellfish) +tsqp jgnxfn rvmx rhvglf szd qdccgvb gjbfmm rdnvlt xpk ssjpd fmgnz bqdbr vbdsgx fmgg pbhthx dvqsf ptbvs blcb kbfqvxf bfjlcv hjpv msdgp gbnj kfl vfpmcdc cfjqbs pmvgd fktqdh csnfnl xzb qdccb qdms ffpq bhrjc lrgxlct rhqfkmn ggqlkpr jlhv qklrs mxqht tvkvmms kpbg prkpfnh mmr nxlq nrgcrd chsprq djtblr rlnsc ccd sqdsxhb drchk vpzhpnx cfkdn mppxj lkdg ktgqdf cpp prg srhmt xdlhgf kdkrhr xmnqb rqhp qthvbf zrlpbh gsmvb lxfbmt ndfmx sdvc ddbss xlttl dnlsjr hhxrrr tfdl qxrm qphl dxn rsvlb tbfmsnj qksrp bdghf xdjz qgxj xsvjb mpnd qks jzlht (contains dairy, soy, shellfish) +txnxdd kdtr szvsg xsvjb bbztv lkdg vsvmt bqdbr qdccgvb blcb sqdsxhb stcctv xzb jtl qphl csnfnl nrgcrd mjnjq lcnnf xlttl zgfr gdg vbdsgx drchk mhjg bhrjc mxqht fqpjl rrjt nrsb lmxc qks dvh pbhthx kggl jcnglmz dnlsjr dtpcd hhxrrr vpzhpnx fsgj tnhjq ktgqdf rsvlb tqgd rrhsh kpbg chsprq gbnj dptx ghrnk msdgp qdms hmrh kvtlklq mdrn zbs tltxb zfrn nlmsj zspn kdkrhr xsxkj ppjrrm cqgqxq lrgxlct kfl jgnxfn (contains sesame, dairy) +jzlht lmfccx gdg bqdbr cmfj jlhv bcthd ccd lzbfz vpzhpnx hnnk fktqdh zfrn chxkn bfjlcv xmnqb chsprq ssjpd qklrs qdms ccg hhxrrr kggl vbdsgx nrgcrd xzb cfkdn mppxj lkdg lfrq dnlsjr ffpq bsnvm xsvjb dgvqv qphl rhqfkmn dptx rsvlb szvsg dcmpb mdpqq bfkm rvmx dxqbf zrlpbh bdghf cvdvd drvxr kdkrhr stcctv qdgdsg htfvt lmxc tsqp bmtn xdjz pbhthx blgxsl dtpcd ndfmx qdccgvb zbs tcph drv rrhsh tbfmsnj djtblr qsvfk bbztv sbkq prg kpbg sqdsxhb (contains dairy) +zgcrp dsjrv blcb kfl bqdbr rvmx jsxqj ssjpd lmxc rnpjxc rsvlb kvtlklq zffphr zfrn qthvbf czd mbbz ndfmx xpk chsprq nrsb vsvmt dcmpb cvrzmd lczvhs nxlq gbnj rrjt bplgpn pbhthx hjpv ffpq rlnsc xzb fmgnz dnlsjr blgxsl csnfnl zqhxc hcgh sqdsxhb ccg tsqp fbj rdnvlt mxqht vtjmvd dgvqv xxhf chxkn zspn (contains shellfish) +sqdsxhb ghrnk bfkm rdnvlt bbztv hgmq kdtr rvmx cvrzmd rqhp dxqbf ptn kbfqvxf vpzhpnx dcmpb xdjz pbhthx qphl qdms jfzd pcg ffpq ctfdj hfl dnlsjr qmvzln zspn lfrq ggqlkpr bfjlcv cpp tnhjq bmtn csnfnl mbbz qdgdsg fmgnz ptbvs jzlht mdpqq qdccb ccg rnpjxc msdgp kdkrhr lcnnf gbnj jgnxfn xzb snngn qgxj qklrs bhpn czd kpbg rsvlb dsjrv ftzgp zqhxc hmrh fmgg phh szvsg prg jcnglmz ddbss zrlpbh djtblr tfdl pdzqrqq qks vsvmt nrsb xxhf fqpjl jzktf xdlhgf bcthd qdccgvb zfrn dgvqv chmmqq chsprq chxkn (contains shellfish, fish, eggs) +dgvqv qthvbf kfl bsnvm dvqsf nd qdccb ssjpd lczvhs lkdg xdjz vbdsgx vgqd cfzcl kdkrhr cvrzmd kxkzv csnfnl bfkm xmnqb qsvfk fsgj ktgqdf vtjmvd bhrjc ggqlkpr gbnj dnlsjr vpzhpnx hmrh hgmq ftzgp rsvlb drvxr jgnxfn qdccgvb snngn ccd rrhsh sqdsxhb lmfccx lmxc zgfr ppjrrm jcnglmz nrsb bdghf xzb ptn ddbss xpk (contains wheat, eggs, shellfish) +dvqsf prg xdrm fqpjl fktqdh qdccb nrgcrd xpk lkdg bmtn ndfmx ghrnk szvsg pbhthx qklrs mdrn djtblr zfrn chxkn nlmsj srhmt jsxqj gdg jtl qmvzln blgxsl hfl sqdsxhb lrgxlct drvxr lfrq rfdxph jzlht ccg vsvmt csnfnl hmrh xzb jcnglmz mppxj rlnsc tltxb rdnvlt fmgg vfpmcdc ccd dgvqv hhxrrr mpnd rrjt zjfb pmvgd tsqp dvh ggqlkpr vbdsgx tfdl gjbfmm dnlsjr tbfmsnj zdkgvxk qxrm mhjg (contains fish) +tnhjq ffpq vgqd hgmq qdccb vtjmvd mppxj kvtlklq xdrm gdg ppfmb ghrnk dgvqv dxqbf czd drv xzb xsvjb rhqfkmn dtpcd kfl jgnxfn zgfr nd hctzvvc dlj cfkdn dptx xmnqb txnxdd hjpv msdgp zdkgvxk zjfb ggqlkpr cspz rrjt cmfj hcgh ssjpd sdvc nllmj qthvbf fktqdh dnlsjr fmgnz xrstpzc rdnvlt snngn lmfccx qksrp kdkrhr qklrs mhjg kggl ddbss szvsg sbkq blgxsl lkdg pbhthx ccd lczvhs xpk xtnz stcctv sqdsxhb mpnd rsvlb zrlpbh zffphr hmcc lcnnf hfl hnnk dvqsf cpp (contains eggs, dairy, wheat) +bmtn tnhjq dnlsjr cfzcl kdkrhr gsmvb ddbss xdjz jgnxfn ghrnk zrlpbh pbhthx qsvfk sdvc pcg cfjqbs gbnj vgqd xsvjb qsndg pdzqrqq zdkgvxk sqdsxhb rdnvlt tvkvmms szd bhrjc xzb dlj lkdg vtjmvd ggqlkpr vpzhpnx nxlq qphl rlnsc bplgpn rsvlb kxkzv qksrp cfkdn mdrn xdlhgf csnfnl tsqp msdgp lcnnf xlttl qdms prkpfnh hmcc mjnjq lczvhs sbkq xdrm tcph ffpq dxqbf ppfmb phh ctfdj nlmsj kvtlklq fbj jcnglmz vsvmt hhxrrr lmxc srhmt hjpv cspz kbfqvxf zqhxc rhqfkmn dxn xsxkj fsgj qklrs nllmj kggl hfl jzktf zffphr lfrq (contains dairy) +djtblr qdccgvb qphl mpnd mxqht lxfbmt csnfnl chxkn blcb lfrq cspz tcph ffpq mbbz nlmsj fbj kdkrhr sbkq qxrm rsvlb zqhxc qsndg pdzqrqq zrlpbh xdrm xrstpzc lkdg hmrh gbnj lczvhs kvtlklq rrjt rnpjxc hmcc xzb kggl jfzd ppfmb txnxdd xtnz dnlsjr mmr pbhthx bfjlcv nrsb vpzhpnx dxqbf sqdsxhb drchk (contains dairy, soy, eggs) +qks ddbss hhxrrr kpbg xdjz fbj sdvc fktqdh cpp prspxdl vtjmvd tvkvmms rdnvlt tltxb txnxdd ccd tfdl vpzhpnx dvh rvmx bbztv fmgg bhpn phh pmvgd sqdsxhb pcg bqdbr rhqfkmn ctfdj xdlhgf rlnsc prkpfnh dnlsjr nlmsj cvrzmd srhmt qxrm csnfnl mjnjq ptbvs jzlht lrgxlct dgvqv ggqlkpr prg drchk qtkbvr hjpv jtl rsvlb lkdg mmr qphl lcnnf hfl kbfqvxf vbdsgx jgnxfn vgqd nllmj xzb chxkn szd zgcrp blcb vfpmcdc szvsg hcgh djtblr xtnz tsqp snngn ndfmx (contains soy, wheat, shellfish) +vbdsgx sqdsxhb xdlhgf tltxb fmgnz zgcrp hcgh xtnz blcb lmfccx qks ffpq dlj qklrs jfzd chmmqq jzktf tfdqg xzb dgvqv ptbvs qdccb gbnj prg drchk ctfdj lczvhs xsvjb kpbg msdgp blgxsl kggl tqgd kdtr fsgj nd cpp drvxr rsvlb xxhf dcmpb csnfnl zgfr cvrzmd lfrq tvkvmms nxlq bfjlcv ggqlkpr kvtlklq vfpmcdc dnlsjr pmvgd kbfqvxf jgnxfn cvdvd bhrjc mppxj jcnglmz lkdg szd gjbfmm xlttl gdg hfl prkpfnh rrjt zjfb bhpn bbztv lrgxlct zffphr cspz vgqd mbbz lcgdsp ccd chsprq (contains eggs, wheat) +gbnj vpzhpnx kxkzv lzbfz phh hjpv qklrs mhjg zbs hhxrrr qxrm ddbss mdrn lxfbmt vfpmcdc qmvzln hnnk fbj pcg cqgqxq lkdg dvh srhmt cmfj hcgh nllmj rrhsh cfjqbs nrsb ptbvs qthvbf ffpq qsvfk bmtn bplgpn tvkvmms ctfdj chsprq ktgqdf mmr ghrnk dgvqv gdg lrgxlct hmrh kpbg blcb chxkn xzb vbdsgx tbfmsnj bbztv qdms pbhthx rsvlb nd sqdsxhb csnfnl rnpjxc kvtlklq (contains eggs) +jfzd prspxdl dcmpb fsgj pbhthx vpzhpnx kdkrhr ddbss zdkgvxk ppjrrm blgxsl jzktf qsndg zjfb dnlsjr cmfj qdccgvb nrgcrd lkdg ndfmx hfl bbztv nllmj kbfqvxf drchk xzb lcnnf cfjqbs csnfnl lxfbmt cpp ssjpd rdnvlt kvtlklq rsvlb tsqp lmfccx szd mmr vsvmt nrsb jtl gdg qtkbvr lmxc kdtr dgvqv (contains fish, shellfish) +cfjqbs cqgqxq dxqbf xpk lmxc sqdsxhb dnlsjr fsgj bbztv gsmvb csnfnl hjpv dvqsf tnhjq ndfmx xdjz lxfbmt lkdg szd vbdsgx qklrs rfdxph jtl mppxj mdrn xdrm pcg bdghf tvkvmms szvsg mmr ggqlkpr txnxdd cfzcl prkpfnh lczvhs nd hmcc bmtn bhrjc dgvqv ccd snngn dcmpb qgxj tsqp qsvfk mjnjq dtpcd drv cvrzmd qtkbvr kvtlklq hnnk hfl bplgpn ptbvs hmrh tbfmsnj rhvglf vsvmt ccg cfkdn tltxb zfrn nlmsj fbj ctfdj msdgp zspn prspxdl qphl xzb rlnsc ftzgp nrsb qdgdsg cvdvd qdccb vtjmvd pbhthx (contains sesame) +lcnnf bfjlcv zgfr stcctv rhqfkmn prkpfnh ddbss ktgqdf xzb dtpcd zffphr cpp jtl zfrn ghrnk xmnqb dcmpb qsvfk qdgdsg cspz bcthd fktqdh qtkbvr ctfdj dgvqv csnfnl mbbz fsgj cfzcl tfdqg hnnk nrsb bfkm rsvlb qdccb djtblr hcgh nd dxn mxqht qklrs nrgcrd gjbfmm srhmt xtnz hfl lkdg tcph vfpmcdc zspn dnlsjr bhrjc xpk chsprq ndfmx mhjg jzktf prg ggqlkpr qphl dsjrv zqhxc nllmj lmfccx hmcc xrstpzc sbkq ffpq dlj zrlpbh xdjz kpbg sqdsxhb drvxr ccg pcg szd rrjt (contains shellfish, sesame, nuts) +ffpq sqdsxhb tcph rsvlb prspxdl bmtn rrjt lkdg prg rhvglf dnlsjr chmmqq lcnnf fktqdh qks bsnvm mjnjq zrlpbh bfkm kdtr ptn bcthd qsndg mmr pbhthx zdkgvxk cfzcl xzb bhpn ccd xxhf vfpmcdc dxqbf fmgg jgnxfn gbnj vpzhpnx mdpqq htfvt nllmj csnfnl prkpfnh qdccgvb xpk dptx drv dxn tltxb pcg zspn pmvgd lfrq rdnvlt drchk rlnsc xsvjb lrgxlct (contains nuts) +dlj rhvglf mppxj qklrs qphl kggl sbkq rsvlb blgxsl tsqp dvh lcnnf xdjz lczvhs csnfnl lcgdsp cvdvd qdgdsg rqhp cspz ktgqdf xrstpzc xlttl hmcc fbj chsprq pcg ftzgp cmfj vsvmt fsgj xmnqb cfkdn vbdsgx dgvqv pbhthx srhmt ptn zqhxc xdrm sqdsxhb rrhsh tfdl rhqfkmn hnnk dnlsjr qdms prspxdl cqgqxq czd djtblr dptx zfrn zjfb kdkrhr bhrjc qdccb dxn xzb qthvbf jzktf bbztv mpnd qxrm kbfqvxf vgqd szvsg xsvjb fktqdh jcnglmz mjnjq szd rdnvlt (contains wheat, fish, eggs) +dvh rvmx prspxdl lmfccx lczvhs qtkbvr csnfnl qdms stcctv nd vtjmvd lkdg mdpqq tltxb mhjg fmgnz qksrp kpbg kggl ghrnk htfvt jcnglmz xdjz ctfdj xlttl zspn hgmq jsxqj dgvqv ssjpd bmtn hjpv bsnvm dnlsjr czd sqdsxhb msdgp xxhf jtl ggqlkpr sdvc tsqp snngn vfpmcdc jzktf rfdxph xtnz chmmqq bfkm mppxj vsvmt ccg dcmpb nrgcrd kxkzv pbhthx prkpfnh rsvlb bqdbr rrjt zbs jgnxfn vbdsgx mbbz qklrs jlhv rlnsc zffphr xdrm mxqht (contains dairy) +sbkq mmr jlhv msdgp dgvqv rhqfkmn hhxrrr rnpjxc xsxkj rrhsh mpnd fmgnz xdrm nxlq fsgj qldrh qgxj djtblr chmmqq lkdg ghrnk bqdbr tfdl bbztv szd ftzgp txnxdd ggqlkpr bfkm kxkzv zspn qdgdsg rsvlb nlmsj tltxb cvrzmd dptx jzlht bhrjc xrstpzc kdtr zrlpbh ctfdj ppfmb dnlsjr mppxj rvmx tnhjq jgnxfn sdvc rrjt cfzcl vfpmcdc rfdxph ccd dxqbf lcnnf lmfccx cpp ffpq xsvjb pbhthx xzb cvdvd dxn zfrn dsjrv sqdsxhb vbdsgx hcgh (contains wheat, sesame) +dptx hgmq lkdg ktgqdf rhqfkmn hmrh dxn ndfmx phh djtblr lxfbmt xmnqb dxqbf qmvzln zgfr zdkgvxk fbj dlj rhvglf hcgh mbbz dsjrv lczvhs zfrn msdgp gbnj qklrs pdzqrqq pbhthx sbkq dnlsjr hfl sqdsxhb xtnz nllmj xzb ghrnk hhxrrr ptbvs csnfnl qdccgvb rsvlb dvh bmtn vbdsgx jsxqj ccd szd rnpjxc dtpcd snngn bqdbr drvxr lcgdsp xdjz (contains eggs, sesame) +jsxqj hmrh tltxb xlttl zqhxc tcph pbhthx cvdvd ppjrrm ccg bsnvm qmvzln mppxj jlhv rqhp vpzhpnx qtkbvr zgfr fktqdh gdg hctzvvc lcnnf rsvlb djtblr blgxsl fmgg dlj dgvqv qgxj zjfb chsprq qxrm sbkq rrjt jzktf zfrn fbj qdccb jfzd rhvglf xdjz lkdg czd qsvfk pcg rvmx dxqbf snngn bbztv szd chmmqq mhjg sqdsxhb csnfnl srhmt mjnjq fmgnz dnlsjr jzlht kbfqvxf gbnj hmcc ftzgp ssjpd xrstpzc lrgxlct drv cpp kggl (contains fish, sesame, nuts) +fqpjl phh dlj vtjmvd lmxc ddbss xrstpzc qsvfk jzktf qphl xmnqb ktgqdf qks ccd zrlpbh qdccgvb rlnsc szd nd ndfmx lkdg mjnjq zspn xpk pcg vpzhpnx rnpjxc xsxkj sqdsxhb dnlsjr zffphr lrgxlct lfrq lmfccx ppfmb hhxrrr srhmt fktqdh blgxsl pbhthx qgxj lzbfz ccg rsvlb chmmqq hcgh dgvqv ghrnk lcnnf mdpqq jzlht qtkbvr xdlhgf bbztv gsmvb rhvglf jsxqj hmrh cfkdn xzb (contains eggs, dairy) +xdjz csnfnl drv rsvlb bmtn bplgpn lcgdsp cvrzmd bfjlcv pmvgd mhjg jtl zspn jsxqj qthvbf fktqdh mjnjq ggqlkpr sqdsxhb qldrh bdghf dvqsf rqhp ffpq zqhxc prkpfnh cfkdn gsmvb vtjmvd qsvfk vpzhpnx tqgd ptn xzb qks hctzvvc xlttl drvxr rrjt cvdvd lkdg hmrh cspz xpk cmfj kggl zgcrp mdrn kpbg tnhjq dnlsjr ndfmx chsprq tfdl qmvzln stcctv htfvt zrlpbh fmgnz dgvqv (contains sesame, shellfish) +pmvgd lkdg fktqdh sqdsxhb xsvjb rrhsh ptn drvxr qsndg tqgd hctzvvc cqgqxq dlj ppjrrm fmgnz mhjg szd nrgcrd tvkvmms lfrq zfrn hmcc szvsg ddbss qdccb lczvhs stcctv gdg cvrzmd xdjz dxqbf bdghf qmvzln dnlsjr rsvlb lxfbmt vtjmvd mbbz qthvbf ndfmx csnfnl qdccgvb xdrm sdvc dgvqv cvdvd xzb qklrs rhvglf qks kfl czd fbj rnpjxc cfkdn zgfr ppfmb bcthd qdgdsg jgnxfn pcg (contains soy, fish, eggs) +srhmt vtjmvd bhpn pcg rrjt jzktf tsqp cfzcl qdms vgqd dgvqv qxrm zrlpbh tqgd ssjpd lrgxlct bplgpn ptbvs hmrh lkdg szvsg rfdxph bfjlcv hjpv pbhthx nllmj nrsb prg ghrnk pdzqrqq zfrn qthvbf lzbfz kpbg phh kxkzv vsvmt ppjrrm vfpmcdc xmnqb dlj prspxdl htfvt xsvjb ddbss dtpcd hgmq jzlht xlttl dsjrv chsprq blcb tvkvmms sqdsxhb vbdsgx stcctv gsmvb qks dnlsjr jfzd bfkm qdgdsg msdgp csnfnl dvh mxqht zbs rsvlb cvdvd qdccgvb gdg cspz xdlhgf (contains wheat) +mpnd dnlsjr nlmsj ptbvs xdlhgf jlhv rqhp blgxsl bhrjc rsvlb mbbz pmvgd rhqfkmn zgfr hmcc hnnk bfjlcv pbhthx xdrm dgvqv bdghf rvmx jgnxfn phh lkdg fsgj mdpqq hjpv rrjt lxfbmt tqgd qgxj ppjrrm jfzd bbztv qks gsmvb xdjz mmr csnfnl hfl chxkn cvdvd vgqd xzb txnxdd hhxrrr lfrq snngn lczvhs ftzgp hctzvvc nrgcrd ctfdj (contains fish, soy) +ghrnk jsxqj qsndg xdlhgf mxqht vfpmcdc pbhthx mjnjq mppxj chmmqq xsxkj qgxj dnlsjr kfl csnfnl hcgh pdzqrqq hgmq vsvmt dvh vtjmvd xzb kdkrhr zgfr gjbfmm dxqbf qdms hmrh jcnglmz bqdbr rsvlb lkdg hhxrrr ffpq cfkdn dptx prspxdl gbnj xtnz qsvfk nrsb mdrn qksrp jzlht mdpqq jzktf cspz dxn jtl bmtn lzbfz ppfmb hnnk tltxb rrhsh bhrjc hfl kbfqvxf vgqd cvrzmd lmfccx rrjt hmcc qdccb lxfbmt qthvbf tcph tvkvmms rdnvlt hjpv ftzgp sqdsxhb drchk (contains eggs) diff --git a/data/21_2021.txt b/data/21_2021.txt new file mode 100644 index 0000000..b2f61cc --- /dev/null +++ b/data/21_2021.txt @@ -0,0 +1,2 @@ +Player 1 starting position: 4 +Player 2 starting position: 3 diff --git a/data/21_2022.txt b/data/21_2022.txt new file mode 100644 index 0000000..8896250 --- /dev/null +++ b/data/21_2022.txt @@ -0,0 +1,2193 @@ +jqtv: sgqw + ldhr +zzvc: rrwv * gggt +fnsb: lmjw * rszr +gwzg: lshd / jsgr +hsbm: 18 +hwln: 2 +jjfp: nzwt + zjcj +slmj: qswf * jjnw +wcwv: 5 +bcwl: 1 +rncw: 4 +zzlb: wbww * vrwh +rcqs: jcpb * swcp +sbvf: nfms + sztj +wsww: 6 +sdjz: vztc * crnw +spzr: wndq * lbgp +nfcv: htdd + zjll +lwqd: qvhw / vthg +nrcf: scjn + zfzg +vjsn: 1 +wndn: 2 +vhrc: jwfn + mspt +cfbn: 4 +sdhj: 2 +gmph: 5 +fsrm: vmlj * tgfq +rjgw: hngl + jcrj +bwcd: bhdz * mbsw +nprt: 4 +tcsz: hccw * pbwr +gpgc: jdmm + sjls +npmg: jcnz + ldlc +qfww: gwsn * trwp +lcqh: 3 +qcrh: vsng * tsbh +whcv: dbth + wnwm +btwg: qnrg + twfd +qbzh: mvqb * vzvd +sgns: 2 +gpvb: 2 +llsw: bmhg + wcwv +dvpp: snqf - hqjl +rchb: vhvl + sqcq +wlcg: cdbl * lvlj +fsdl: 7 +pwpr: 4 +jplc: 5 +zbwj: 2 +vwzq: 2 +shmr: 2 +ldlp: 2 +fmpb: 7 +cjmm: hdzq * vjwn +jfmq: lvgg * gpdw +qzqt: sljt + mcdz +bzbq: 4 +swcp: 3 +drjj: cfbn * nnld +rntn: wqdg * czrg +gzfw: 2 +jvct: 2 +hbqf: ptrt / dlcr +gqtn: 2 +rbvj: jfmp * lblh +mzmb: 5 +jcmd: qdsp + chng +mpvh: 5 +vjwn: 5 +jnss: 2 +hrbh: cqmw - fpjc +cgmw: hvlt * jdlm +ndcv: rssv * smdz +hjjj: 2 +jlgh: 3 +snbq: 5 +zvsp: ghzw + qjbs +jdmz: rjgw + llrp +tsbw: 6 +lthg: 5 +qmcq: glzc * fmrv +cgtz: 2 +rndp: 2 +tghl: 9 +zhcg: 4 +bstc: sppm * pprt +lljb: nwds - tcpl +rrrh: sjcz + jlrq +gzss: qrjt - pwpr +gqrd: 1 +cddp: 17 +vdlv: gfqv * chrw +hczn: 5 +psct: ghns + rsjs +zsbf: mwrm + tndn +nbgd: 13 +vfjv: 2 +vzbg: 6 +dtfb: zgvb + gzgl +vcbv: bnbc + hfff +rsjs: lzds * fvbf +wtlw: 2 +qzgp: gmqp / djdr +rscv: dfjm + fwfc +chhp: hvqw * cjff +fmfs: gvrq * hpsd +vmlj: 3 +zqdm: 3 +fhzp: 1 +gzdc: 5 +mhpv: qhvm * wlcg +rnnw: 3 +hslq: 3 +qfjs: tnbs * nprt +gfvj: 3 +bzgr: 5 +cmld: gpfj + scbn +cldz: tmzj - jplj +tfhz: twlq / pcpw +qmdh: 2 +mttp: 4 +dcrw: qrhl + twgz +sgps: 2 +wwrn: dgvn * qmwv +pwch: 2 +qwvl: 9 +hqbb: 17 +qrcj: 4 +bhfz: 3 +vhcq: hsbm + ffzz +jqln: 6 +pmnj: rcfb - jmtn +znnc: cbqz * pphv +jjdg: 5 +nszd: 4 +dhbt: 14 +mwpl: 2 +vgmc: tlqj + fhbv +bnwl: rlmq + tvbw +gmqp: wbld - psgb +ptqp: bjzz / phjb +qmrq: gtrr + zppb +cvzt: 2 +vgrw: 2 +gplp: 17 +frdl: 3 +zfnf: 1 +nssj: 4 +lngs: dfcl * mzgg +pzsm: 9 +lszv: fdpq * dqwj +qnrg: 13 +nlmb: 2 +vznr: rvhv + hgtn +fcps: fqmz * mqzm +gljv: fnsb / gfst +wncs: chhp / fcrh +ltzb: lwqd + rtww +mhsc: mhsn / gscj +mgbf: hcdj - gfsl +nczs: bfdn / mvmh +dnnm: bfcg + cbqn +mrhq: zthf / vfjv +hpjc: llsw * tfnb +ftsw: fqlh * lqbt +dlrm: 2 +dcqg: psrd * wbsl +fztl: wfzs * fmvz +bnlz: tjsc * thlh +pcjc: gshw * wmvl +ctfg: 3 +qqtb: gtmd + cdtm +zmcs: 2 +zjbr: jmqm + jtfz +jprp: zdwc * zmdt +bjwv: mqrs * nrrc +zbnc: hpcp + tfdc +sscn: gbqm - npfh +gmcd: czfr + twvb +lrcl: 3 +vpcj: snqv * bfqb +szws: 3 +wtvw: 3 +rpmw: 2 +gtsb: 3 +ftpv: mllt * ltzb +smdg: 2 +hpsh: 4 +gplr: 2 +zffg: rtzz + vplq +qfzd: 2 +hvct: 7 +psvj: rljf / wjcr +dwbn: qbjp / hvct +lgdz: 1 +cwtl: 18 +mhnm: 3 +pzzf: rchf + dwlf +rvfw: hwpw + pvpt +qmwv: 2 +cjhc: ftfv * dwwq +mjhf: 2 +hngl: 8 +chwr: 2 +gchg: 13 +httv: phvs * nvdj +qwqz: wjsd + msdj +cwds: 2 +fcrh: 2 +tlzz: vnwn + dldr +dmgj: 12 +bhhq: qpdj + czzr +pcrj: twhz + cshd +tbcl: hbwn + mrsb +lglt: djsv / vjbm +ndng: lthg * srfq +lpvp: pcdj - qglm +lqbt: 3 +vndr: cprd + whhg +qfhb: 5 +vssr: tvvs + gtqb +frlz: 3 +dhsw: hslj + zqrl +jmzt: pnbb / lggf +mbmm: tpgt * gqtn +zmmg: tgmc * fscm +lpvq: 2 +pprt: 3 +qrzg: 4 +njqg: tfpl + lrpt +fnvh: jnts * clhp +ddvd: tjtg * vptb +nzng: 2 +qdcc: nzcs / zrtp +stqr: zlwb * qgjb +rszr: qcrh + lngs +vwhs: 18 +wzhd: 2 +wddc: 7 +jtfz: rnnw + lmvd +slrp: twqq + qstf +wlwv: hngp * slrp +pqws: 18 +mhnw: 9 +fdjw: 11 +vqll: 5 +lhbr: nqjv + vhrc +gnbp: 12 +fmgt: 4 +gccf: 5 +jrfz: 4 +mvqb: qdcc + bslg +htgh: drzs + bwcd +tcpl: zzjj * sgwc +trwh: dnfp + zfnt +cnbc: gbvv + hmdd +vmth: wsrp * bqgv +lfrw: 2 +dflz: rdrs * lfqs +qcrb: mrcv * bggh +wjwg: 2 +gzbb: 2 +dvbp: ndtw + gtsc +gvrq: pbfq + tzfn +sbnf: 2 +dlwp: jmpq / pmht +csgc: 3 +bdvm: 3 +zbhg: rchb + qjpm +vbbr: tbfv * ztmc +vllh: zgwd * cpvl +gtzl: 1 +ntvh: 7 +vzvr: lqwm + tzwn +bhnj: lzvw * tpgw +tbtw: 2 +ftpw: 3 +dswt: 3 +ssgq: 2 +cpqt: rqsc + rwjv +zhvd: 3 +fbbz: jjvr * ljst +ptrt: fjvb * cvzt +vjnr: 11 +hjph: 3 +pcdj: dnnm * rjqg +fmtd: mpwl * fjrr +bdpd: ngjl * tbhf +gczj: bzvc + hzgn +qvhw: 20 +sgmt: pjgb * pznf +qvvl: 5 +jjwt: 15 +qrvs: lrcl * dwcz +vrvg: qszv + drzr +dmwm: 2 +chmb: gfzs + tfsg +mrqf: fjqv * shzc +vtfd: 13 +pwgc: 2 +zbzs: 2 +flzr: 10 +cmqn: 5 +btvm: 2 +dhll: vgmb + jmpr +drng: pgnj / zjwz +hfft: lvgb * pwgc +wjwt: 2 +ljth: 2 +srsl: 5 +fcng: 2 +cbvf: bvzs * qrzg +fcmn: jmvq * mhdt +llcl: 5 +bgbl: ndcq * zqsd +smdm: zvwh + rgnn +lrhz: 2 +jfsh: 4 +svjq: mclr - zltp +tdfj: 2 +lggf: 2 +zhlc: 3 +btgg: 2 +zzjj: gghd + jhdv +cpjg: qwvm * sbvf +sgdz: 12 +glbm: dpjz * psct +tnnl: 2 +fsvh: lgnr + vtjv +pzrp: nlll * wgbc +psft: 3 +gfwt: 4 +jfbd: nncb + bnlc +rwzl: jpzv * vztw +grbp: dtfb + tnws +cqzs: qpdz * bfmn +btnm: 1 +mdqb: 2 +gbpl: 5 +sjls: rsmg * bwpc +gghd: smdg * chzq +hlmj: 10 +vrwh: 5 +hslj: 3 +dpqj: 7 +sspc: 4 +fsbf: fgmm + pplm +dnqh: tcdv * hczn +gjlc: 3 +cdmj: 19 +cnqz: btdt - nhzd +wclp: smbs + ddlh +scjn: 2 +qwvm: 11 +vtfz: 5 +mwtn: qzqt - dtpw +mwtv: 4 +nvrh: 2 +tpgt: 3 +npnf: wbtm + bqmp +zznq: lttm * qjjt +rngc: 3 +cbqn: jhbz * qjbg +ghzw: wwrn * vhqg +qtjz: rgrc + swrs +mpcd: lqdp + rnns +jgnc: 4 +mtlp: 2 +qqbc: bhnm + gwvv +pznb: 3 +trhv: bzpl * nthd +hzqw: 5 +wqdf: 4 +blsp: bjtz * wcmn +qmmc: vdlv / ccsm +vsmw: lnth / jhwf +jjfl: 3 +lnhh: bgbb - nmtv +mpwr: lfrw * qstn +psrd: cgjz / clrs +zzdc: jwgp * wcmf +lsjh: 3 +mrnp: cjmm * dmwm +zfhp: zcgr - ccnh +qvwq: 11 +bcdz: 2 +dmzc: 2 +tcdn: dnrm - stvs +hwbs: 6 +pnwf: wgpr + sztp +sztp: 6 +gbbl: 4 +wwgj: bqpt * slhp +hnqr: sdjz + tnwl +ttfn: hrnh + fffg +humn: 922 +rbrp: cfmr + dtct +wlgf: ddvd + vzvr +sgwc: 7 +bmtn: lnsp - snvl +qjbs: dlgl + htrq +dzrn: 7 +vgdz: 5 +fqfb: gfhv * mtcc +wwqs: 3 +mbsw: qrtl * rvmw +pjzl: zhsc * fqjs +ncfp: 3 +lqjr: mtjc + tbcl +qgnt: 4 +cpvp: hsgd * snbq +ddlh: 4 +wggd: 2 +lfsn: 4 +vbln: zzwp + thrv +vbtf: 2 +tnws: ftgn + flsh +pcpw: 2 +prmm: hqwr * fsmg +swnb: hdsv + mpsz +gtqb: wzcg + fqfr +dfjm: 6 +rtst: jqln * dhll +fpjn: pvnr * nszj +pfvq: 4 +pwhq: 3 +wfqg: 19 +ccdb: qhmh / jjfl +qpjd: qmdh + tjfl +cgvd: rvjf + lgdm +dldh: 3 +lngq: 2 +mfmd: lrhz * fcsg +zfzg: 4 +shzc: sgns * pjtr +sltq: zjsq * wrwp +zzht: 5 +dqqh: 8 +ndzm: 4 +wwwr: rntn / jcmj +pvpt: pwzl * zzst +cvhh: 2 +wqdg: dhmw + cgpq +wbjr: 2 +scdg: gndg + cpqn +ccnh: 3 +gnzf: 3 +smbs: 3 +zhct: 3 +zgtg: 4 +bqpq: bjwv + hvsg +ncpd: ptmn + mzst +zltw: vndr / mpvh +sdlh: rdjc * rwjz +fpvf: 2 +dtds: 7 +jcnz: slmj + fttg +crqh: 9 +pgtg: mjqt * rnqn +cpcz: pbjs * hbqf +mqrs: lwqz + rhbf +sqgp: jshp * sfvf +chzq: pttz / vlpn +btwt: 2 +npfh: ntmd * fmtd +crgv: 18 +ncnm: lsqd * vglv +clns: 10 +scsn: spzr - hhvl +pnpn: hgsg * tfdt +nvzg: 6 +nzfs: cswv * cnqz +znsm: 2 +ncnf: 3 +flnm: tsmz + hslq +wgmt: mnrf - hrpz +tgvl: sprc * gbwz +cbdq: rhvv / cntw +nsnh: 3 +gtwf: 3 +jshp: 3 +lsws: 2 +twvb: 9 +gcvs: vcbv * npff +gshw: 2 +mzqc: dqqh - mjfb +fsjd: 6 +gnqz: 2 +zwwn: 14 +fgdz: hcfl * pzzz +zslr: 3 +mvvh: 2 +dbtg: vgbd + rwrn +tqrh: 5 +zqfs: btgg * lfgw +bwcf: 2 +nbdb: 4 +btct: 2 +zdnt: chmb * ggwm +vnhd: 3 +trvb: dhbt / lgwt +thqf: tzrw * mdqb +rslg: 2 +bfws: qfgl * nldb +jbrb: hltl + llhv +bhlj: 1 +jqpp: 5 +wwnz: hnhg + vqht +gsbv: 4 +llpl: ljfm * jsfz +fsrs: 3 +rvvh: ptqv * mqhj +jlqc: 14 +gdps: 2 +hdzp: dncl + bvqh +bjdn: 3 +mmdh: 2 +wbsl: llpl + fntf +fhdw: 18 +dswp: 3 +ffdm: tqgs * vhds +cmpm: 3 +ffcz: lmcr * npnf +wcmf: lgbz * zpzs +gnww: vgvl - rbbc +wwgb: rgnt / jbhb +vhgl: 8 +hcws: 5 +mljb: 3 +hdzq: 13 +fdpr: 9 +wssl: ggfl * ctnl +lvmc: mdff / lrzr +gvfg: zzdc + mgvm +mzln: 2 +rljf: bpdl + ppfl +djhz: bscq - tdth +vhsg: 4 +bsrd: 3 +wlfb: 14 +vpjh: 20 +tjsc: 6 +mngp: 13 +lzpw: 3 +fttg: nszd * ltbg +wrcb: 2 +mfzc: 1 +bcdr: 4 +vglv: 3 +bmhg: 2 +sdrb: 1 +mwvf: hhsc + cbpp +zsrq: 3 +hmdd: pcwr * nfvn +bgbb: lzrv * ncpd +mwjq: 13 +dwcz: ljth * dswp +pffb: 2 +dgdm: 16 +chzf: mbmr * vjnr +cgjz: wzqd * htms +mlgq: qzdp * hhdg +vglz: wdjv - llgl +vwfq: ctcr * cfwl +gnrj: 2 +hzdm: dhrb / dgcb +ncps: ptqp * wgbt +crft: znnb / ssgq +dmtb: gppw + gczj +vlnv: 3 +sdww: zwlb * zgnh +lddn: qqbc + wlgf +tqbt: 3 +ppfl: chzf + gbcl +jlfd: tmlw - hjjj +lsqw: thqf * wtsj +cddz: hwqz / tzrv +lfjc: rvgv * gdps +gswj: vvlv * vmjb +tbvn: fztl / jnfn +ccqj: 9 +hnmz: 3 +rnpp: fmwn + vmps +jgpj: 2 +cvqw: sjnv + ttvf +dpjz: 2 +bsht: hqld + dmtg +swrs: 14 +cprd: fpvf * nnmc +bbrh: gmcd * gtcg +lqzm: 5 +wrwp: 11 +zgvb: rdjr * lcpl +qfjz: 2 +bhvr: 7 +qqtm: 4 +fgfs: 2 +sjvp: llvn - jwwj +trqf: 2 +vjhf: hngj + plnd +nhzd: 5 +srgg: 4 +qgsv: vssr + fccc +dcjj: 3 +hrnh: 2 +sqsb: 2 +ppth: jbbt * tmrj +hqld: 1 +hhdg: 2 +vdzd: 5 +tmrj: dlbw + njjn +rjdg: rbct * pdnj +wfnn: rchh + zlqp +rvcl: vvst * whnl +wjnf: bzbq + lzdq +qrff: cdnw + dnpq +qhvm: gqjf * mtlp +llrp: vzwm * sbhb +qljr: 6 +tfdc: ttfn + cccc +fnlh: zdnt * qfrg +dfqv: zltw - bgwj +dgcb: 4 +hbrr: 7 +hhhl: gplp + sqbz +szwj: frjm / htdh +prgc: 3 +rmff: 4 +nsvs: ptzm * rmzt +lglv: 2 +vmpw: 1 +qnsd: 2 +mvjj: ldlp * lvmg +rbvs: 2 +tzfn: gbbj * dbgm +trpz: gtzl + fvgz +mjnr: 2 +bcrn: zqff + scht +cndc: 13 +qtfr: 6 +wmpt: lbzh + ptmb +mcbt: 2 +vffr: 7 +qsnj: 6 +gldv: 2 +qfqr: 5 +qwvh: wbpf * mblb +mtnf: 4 +qrhl: 3 +jhbz: qlmb + jbgp +rtww: pggz * ftpw +rgwr: jppv * wpmr +wbpf: zptz + zjwf +vdzr: 2 +gnqn: jwhg * bzgr +fjrr: 5 +nlld: 12 +zmdt: 2 +rchh: 2 +fsdb: hhrh * rmff +ltgw: 4 +bwhc: 2 +rzhf: bwcf * hqbb +pwqj: 4 +zlwb: 7 +jpvb: 2 +mhgv: 10 +wnwm: 3 +drlb: lcsq / mmdh +gzbm: ndwg * rngc +lcpl: rfbr * qwds +ffzb: jnss * dlrs +dbmt: zmcs * nbgd +bmtb: 3 +jmpv: 18 +jtvq: wbjr * lrph +pjtr: 3 +dpgf: 6 +vsng: zjfp * bsrd +lvqd: qdwv / zwmg +tnwl: zzlb + gnsl +brrn: 8 +vvhl: dwgq * gpzj +njjn: 1 +jmss: pnpn / wtlw +twvv: 2 +jbph: 13 +rhvv: sdhj * brmc +pnjc: 2 +fpjc: 2 +pwbw: hlwh + zbvn +tsbh: 3 +ltbg: 16 +vjcm: vffg * fsdl +rsrv: qcrb + npmg +zvtn: 2 +sgtm: nvdg + llct +tfpl: stpw + gmtj +pqtf: 4 +zsfh: zlpj * lhzr +bqjb: svbh + crgv +dvdc: hwth + jgnc +vgsw: trvb + zpnd +fctq: 9 +jdsl: whcw / zcsl +jlpd: mjwq * jzfv +pmwt: lddh / mslg +jjds: 2 +rdrs: zfhp * npvr +sjbf: 3 +bzvv: 3 +gvsv: dbhc * dcgz +lmcr: 2 +zhsc: 7 +qdbc: jpvb * twwt +lnqt: 3 +qnmd: tfhz - vwch +ltdz: 19 +twqq: 1 +vnwn: lpvp * shqp +cdvw: 2 +dqvn: rnqq + pcjf +vdpj: 4 +mvmh: 2 +wwgg: 3 +fqtb: 2 +mtcc: 3 +lwqz: dglw * mqmf +wjcr: 3 +rlnp: 7 +zqts: nbdb * srgg +snqf: sgdz + tpmb +cbwd: 20 +mzpj: chwr + jjwt +qfrg: rhzf * vssn +mzqn: 8 +nfgq: wgsz * pnns +rprr: 4 +nvdg: jzrl * rbht +sglt: 5 +pdzb: bzjc * lpcs +llms: dhnw * zrzs +lhzr: 3 +bzqr: ftsb / tnnl +hzvh: gfjn + nfld +qbfc: 2 +qqpq: 7 +dbth: tdfj * bfws +hssv: 2 +zfnt: 1 +cnsl: ppns / rgpp +jtst: 4 +gjlq: 3 +rchf: 4 +lnrd: gtdp * zbzs +shsr: lmhh * pmhn +gtdp: 4 +fcsg: 14 +jppv: lwsv * gmph +plnd: phqn * ttfd +hhvl: mcjs / wrcb +fnhv: 2 +jfmp: zgrs / rpqj +mgjb: 6 +qtws: ndzm * qtjz +ngft: rwzq * bqds +jzsc: 2 +mcdz: mljb * qwbz +dnfp: 6 +zzst: rnbv + tmwd +nwds: gfzf * gsbw +rnbv: mjsf * cqzm +gphq: 1 +gcwb: 5 +hgjt: bttf * dnqh +dhms: 5 +ldhr: 11 +stpw: vjsn + zqfs +qrjt: fdjw * mjrh +jcrj: trpz * pwhq +hmpd: 3 +rmzt: 2 +vmgh: 6 +rfbr: 2 +ptzm: 15 +qpdj: ddql * ctdd +rhdb: vbsf + bstc +cdll: 2 +tqfj: 2 +dtpw: fqfb * mdrg +bhsh: 5 +qwvt: 11 +mcsj: qvvl * vdzd +nwzt: 3 +nthd: 7 +bwsg: 6 +fhlv: gvsv + tbvn +gtmd: mzws * cgdj +sqlj: cpvp * ndcv +jqhq: 20 +vwcp: jlrc + btnm +wbgd: gjgd * vdpw +qhmh: sqlj + scsn +fgrc: tqvg + qwbr +fvgz: 16 +lzfz: httv / tswd +bcfp: wspr * snzq +mjwq: 3 +qzdp: sglt + vgcd +ghcs: cmqn * srsl +pwzl: 7 +gtnq: vzsn / qlwg +fwgc: sltq + jlpd +sqcq: ffzb + pbcl +drcj: 1 +qfhh: 2 +nfnr: cbsn * gbbl +qstn: 5 +trpc: 1 +gbgp: 2 +sstl: wwgb * mcbt +jrns: phtz + sbtg +zpmc: bbff + mfzc +mqzm: 5 +fgqf: rppb * frnn +pwgl: blhh + gnww +grqw: nvbj + tvhc +jmdp: gbfg * lqzm +qshd: 8 +tpqw: 2 +cfmr: 2 +wqgd: slsg - qssb +twwt: htmf - mlfj +gvlv: 2 +rgrc: zfnf + nqbp +zjwz: 4 +ctdd: 2 +vwch: wjvs * cnbc +vvlv: 7 +hbmb: qtws + cpcz +lgnr: tfcr * mztl +bhgm: lvmc * jfsh +ntsd: ldmc * vnhd +qglm: dhng * pfms +qgzw: 2 +zcsl: fgsh + pqbn +tmpj: vsmp / dbdz +pbbn: cnsl + mrvp +rpcr: 4 +vbns: cddp * bvfh +tvvs: 1 +clrs: 3 +vdgb: bhvr * grqw +bqpn: 2 +hngp: 5 +bhzz: 5 +fdpq: cjmj * bhzz +tcvt: dmtb / mzqc +zwlc: srjt + nsqp +zpvc: 11 +cbqz: 2 +wqrh: ghrg + mmcr +cspn: mzpq - cbnb +lqlj: plcf + fdfr +dglw: 7 +rjqg: tdgt * wmnw +jhdv: wfnn + hlln +hgml: nqpq * bhgv +jvnd: 3 +rnvf: 13 +qlzb: bjpv + brrn +slzr: hbms - wrsm +nnsg: sznz * lprw +qpnr: llms + zqrt +hsfw: mwtv * dmzc +zcsw: 2 +dhmw: 3 +pmmd: 5 +mdff: qnzn * bcbq +root: pdzb + bhlw +dtqm: vsmw + qzbc +chzd: 11 +ttgc: 2 +mhsn: gbwt - lszv +vzwm: 2 +cnmf: 4 +gfzs: dlvl * hcws +rtzz: cdll * smrp +lmgv: 3 +lnth: czvw + dtfc +mqhj: 4 +wjsd: 2 +hhrh: 12 +tsqj: jmwh + mhfr +cccc: prdm - vvpd +zczl: svmr * zjnd +czfr: 4 +dgtr: 7 +mpvl: zprp * gwtn +wdjv: vjhf / clns +lntt: fhhv * mngp +mghq: wttc * frdl +gblp: mwvf * mdzg +tzwd: 7 +mpcj: 3 +prfj: 4 +tfbb: pbfh - qcvl +pnns: vznr + tcps +zjwf: jprp * cnfc +tjwq: 6 +bpdl: nfnt * cwnt +bqpt: hhhl * pljn +pbmg: 5 +whvf: 5 +mpzb: nqlv + svln +lnpg: rbhf + cdmj +jbbt: 2 +mhqj: 5 +mclr: 19 +jbbn: cqzs - zvlj +mstw: 3 +rdml: wrfr * gbgp +gbqm: gldv * qhjn +dtqg: 16 +hpqj: 3 +zcrc: chzd + lwlq +lzvw: 2 +jmpr: dntm / mjhf +mgdn: wzdv + rvnn +lhph: 14 +tgfq: 3 +pltd: rsvr + ggcg +rhhw: trwh * dddd +cvbl: lbpl / pvnd +hwcz: gpnb + wlrl +phzm: 2 +hfqb: sdww + qrtd +cjbf: 2 +jglj: 5 +glff: 2 +pbfh: zmhz * mclp +sznz: 3 +mrcv: cpqt - qbhq +vdwc: vznb + ntsd +rsnz: 2 +pjwt: gjsr * tncm +zmhz: 5 +lttm: vgfq - ffdm +svln: prfj * dpgf +pmhn: 5 +npff: qzfd * wjnt +ztbj: 9 +slhp: 2 +rnzs: 7 +crnw: grzh * gfdb +fcjl: 16 +bdcz: pmrf + vdgb +rwjz: 4 +cqts: 4 +bfhm: pjpz * lwdf +dtct: 5 +jsfj: 2 +pnbb: bgrp * rfwd +wzlq: pndc * tshv +gpdw: grhm / zvtn +cmvw: 1 +twhl: 17 +gwvv: ggvw + svgf +pbfq: 2 +prdm: mmjj + qpjd +smrp: dvbp - nffr +bhlw: bldz * mdbz +drwc: mznh + wlbd +jjlv: 9 +bfvb: pcrj + tctv +htdd: jdqs * pqgv +vztc: jczn + trpc +jjms: nfrh * mfwg +tqqg: 17 +mjnj: dgmm + qlzb +nslg: ptrn * pffb +jwwj: fznv * lfjc +rwrn: rblr / hclf +fphv: pbbn + fnqm +tctv: cvhh * wpss +svjw: jjlv * dswq +ljst: 3 +tmlw: 10 +jghj: nsjz * wsbp +bvqh: hrpj * drlb +fvbf: tcsz / zcsw +qzmv: tgvl / ttgc +pndc: 3 +hlvv: dbhp * gcwb +lmmp: nwgh + bmbg +vhqg: 5 +bttf: wnmj * zqdg +pzdn: 11 +nltw: 6 +ghhz: 3 +hfff: 5 +bzvc: dctv * bqpn +dbgm: 3 +jmtn: 1 +vjht: 3 +cdbl: 2 +mqmf: zslr + vmgh +zjsq: 5 +gwwv: 2 +zdzc: scdg / lfns +qcvl: rhnq + ptzb +gscj: 3 +bwdm: 2 +znnb: sdlh + gnbp +rbhf: 18 +vznb: mfmd + vcqd +bmbg: clqr * csgc +fscm: 11 +jbcd: 2 +jwfn: zzvc * vjbf +jnts: 7 +gpnb: 3 +fvmf: jcmd * ncnm +nfrh: bpfw + gthr +wmvl: 7 +qdwv: lqjr * vrml +ldlw: 16 +pbcl: 1 +mznv: 2 +qmzz: tdvq - dznn +fhhv: 2 +vffg: 3 +nwzn: 3 +clqr: 3 +qwdt: vmdv * mzln +hvsg: jpzl * gpvb +wrvg: 7 +rvmw: bfqg + zzjw +tvbw: 2 +bjpv: 15 +ghtw: 2 +lsqd: 2 +flsh: tzwd * ngfj +pqjp: zsbf * qtfr +wbld: zgtg * dfqv +dcgz: 3 +svbh: pbmg * bmlf +ggwm: bgtq * jlgh +dlmj: 5 +nqsr: 1 +hhzl: dljm * cjpq +dbhc: szws + sgnm +hhcc: ftpv - zcbs +jzfv: jphs * tsqj +mgvz: mpcd * gsbv +frjm: sbrq * qfjz +zlqp: 4 +gfzf: fszm * pfgd +njnq: 6 +ndcq: rtst + rrrh +wfwl: 5 +qstq: cgmw + lwtl +rwjv: frrl + jbtj +gdqb: ngcl + qdbc +rjjs: ncls * hbqs +mlfl: jjms * vdlz +pjqw: 3 +qbjp: lrsw * twhl +sztj: 3 +fdfr: lqvp * qbbp +twfd: zhlc + vrvg +ccsm: 2 +cpnv: 5 +hqwr: 2 +dlhs: nsvs + ldfw +rbnz: 2 +gscl: zqts + dzrn +nrdj: zmnl + rzhf +vrct: mcmq + fght +hctw: 2 +dlvl: 4 +nldb: vjcm - ngnc +tlfd: tcdn + mrqf +qvtt: bdvm * mpcj +vhcg: 3 +tqgs: qjvm * hdwn +nbzn: 6 +qswf: cgcg / frwb +gwsn: qshd - dwlw +rgfs: vllh + vwzq +bnww: 3 +wrsm: 1 +vvbj: vtsl * jtvq +mjrh: 3 +frwb: 4 +bfqb: sqzj - bwgg +vdpw: 4 +rblr: vglz + djhz +lmfb: 4 +cmwv: hjpp * fdbz +csms: 7 +dswq: lnqt * cjbf +zrdm: 2 +rgnn: 14 +lwdf: fctq + jnfq +tdrf: 6 +whss: gtqg + rjjs +czvw: vbns + gswj +qdjj: 3 +crdr: nfgq / fcng +sjcz: hgdw * pnjc +vgbd: fzrl * gljv +wlbd: rbgw * gjlq +gbfg: 3 +gjdt: 2 +lcwm: wlfb * wsww +ghns: hhcc + lmsj +fzpq: 3 +hccw: 2 +zgjz: 7 +qwds: 8 +ztjv: jthz * tqrh +dwlf: 2 +gpzj: 11 +hqjl: chgw * ncfp +dldr: rslg * hrdc +ztmc: 5 +dplc: mswh * qfjs +cvpc: drwc + bnlz +zwrm: 5 +vdfv: 3 +wfqv: jglj * mbmm +brst: 5 +rqsc: jjnc + dvsm +cdtm: gzss * tsqd +ljfm: 3 +pfms: lhgm * zrdh +tcdv: 5 +mgvm: plgv * nplj +lvgb: hwns + cbbd +fmwn: 3 +dzqr: jjfp * hctw +smbq: 5 +cbgn: nwzn * zwvc +hmzq: qbtn * hsbs +drtb: 3 +nmtv: flzr + gphq +vzww: rlbb * qrvs +tnbs: dtqg + hnqz +ngwc: jplc + cgvd +qgrp: 7 +mrtq: 1 +fsdj: dzdh + shsr +vplq: 11 +dlrs: 5 +bzrm: gdqb / spvz +tndn: 3 +lwlq: ltgw * dqvr +gmtj: hqsm * swnl +fpzw: hnhz * hwln +tsmz: 4 +rrzb: 5 +gtcg: 2 +wsrp: hvlv + flgs +mclp: dtqm - fmbv +hvqw: 2 +djsv: jqtv * sbsb +jbhb: 8 +jdlm: 5 +nffr: 17 +qdhg: 3 +zzjw: vgsw * shqf +fvlr: pgjp + dbnq +ptmn: gzfw * jlqc +vjbf: 4 +zcbs: qbzm - hpcw +vflv: 16 +ttvf: 5 +zzdz: 4 +svsj: phhg * cvpc +wgbt: 2 +nqbp: ncmp * vpnv +mzrt: 11 +ddnf: 2 +jmvq: 3 +jjnw: 4 +rcfb: tncr - tshh +gfqv: bfhm + vstq +lqdm: tjwq * cnqp +bzpl: 7 +mltt: 4 +zdwc: ctfg + jqhq +jdht: 2 +wvgl: 4 +zrzs: 5 +mnhr: 2 +wjnt: wncs + pzsm +nbhs: 6 +fmrv: 2 +vmdv: 10 +pwgd: cmpm * bwdm +vfzl: 5 +fwfc: 16 +tfnb: 2 +gfdb: vhdl * dztc +cpwh: 5 +gwtn: zbnc / ttvg +ptrn: 4 +vgpc: 4 +nqlv: 19 +sppm: bnww + qpnr +bzgt: 2 +pdnj: 2 +pgjp: mfrf * wpcw +plbv: pmmd * nztc +lblh: 2 +hctd: mhnm * gtsb +hctr: 5 +bfcg: tffr + tmhp +plgv: fgqf + rhdb +mzst: gnqn + fbpv +dfvq: 3 +fqlh: 5 +rtjh: pjrw * ncps +tvhc: wvsn * wwdd +wzdv: bwsg * phcm +lgbz: wcch + jnls +spmn: 2 +tshh: 3 +jbgp: 15 +srfq: 6 +pbjs: 2 +fszm: rpmw * jrfz +snqv: mhnw * sbvd +jjnc: 16 +hsfc: fsvh / ddnf +pdcm: 3 +hnhz: gfwt + shhp +zpff: 3 +jwgp: fnlh + qbzh +bnlc: wlvh * cnpp +fzqz: 5 +pvdl: hpqj * jqpp +gpfj: 3 +zpnd: 16 +bcbq: 2 +lbcg: pcjc / mggr +htms: lgdz + mlfl +pjgb: vtjj + nssj +glzc: wwgg * lprd +jhrp: 3 +dhnw: 5 +mmjw: 2 +nztc: bcfn + glcz +nszj: lztl * mwtn +hdlr: 3 +twgz: 10 +cgpq: 8 +gppw: qmzz * lfgs +ttfd: tlcl - dflz +mhdt: 3 +hddr: 15 +rdrg: 4 +mggr: 2 +pfgd: pzrp / qhvz +dvsm: 1 +rbct: vpcj + thfm +czzr: dszq * cvbl +wghn: 11 +dvtv: 2 +hdwn: fdpr + vgrw +qfgl: 3 +fwrq: tqrq * dghg +glcz: ncnw + vtfd +bnrh: 2 +bvtv: 14 +cgdj: rdvt * zzht +ngjl: 5 +trcb: 18 +lfns: 2 +tbhf: 5 +qssb: 3 +sbvd: 2 +pbwr: cslj + whss +zgnh: gccf * vgdz +fjqm: 5 +rlmq: 20 +jdsh: 5 +szdw: 9 +pplm: nbzn + vwfq +rlht: brvs * gnrj +mtjc: jmdp + tbhg +cpcw: vszp * crdr +ftfv: 4 +svvv: vvhl + fgdz +lgwt: 2 +gfhv: 3 +cswv: 10 +pvnr: 2 +lmvd: 5 +wcch: 1 +zgng: 3 +zpmp: 2 +zqff: 4 +rpsg: 3 +qqnl: jnms + fmff +wpmr: 5 +zcfm: 2 +ljnr: wwnz + wmpt +qszg: 2 +cntw: 2 +fght: zppw * vzbg +jltc: 3 +hjht: 5 +fjqr: vmth - tzrb +hwpw: gcvs + lhlf +wmnw: 5 +cgcg: dlhs * mmzc +wjmm: sqgp + cbdq +zqrl: 4 +grhm: cpsz * rsnz +mnrf: ghhz * fbmn +lmsj: rgfs + dplc +wnqq: gzbm + jmzz +mjfb: 1 +hlln: 3 +qnzn: drcj + pqjp +vggf: 2 +rvtw: frlz * rmrb +cmng: 3 +gtrr: sznt * lpvq +jczr: qwrp * hvfc +trwp: 4 +qbsj: rjph + vpjh +mdjs: vmsr + hwcz +btdt: fpzw + nslg +rmrb: 2 +hhqc: zggz + wwwr +svnz: tsbw * qbcn +sjdz: 17 +hjpp: 10 +qlwg: 3 +crhl: 2 +fqjs: 12 +tncr: zgbd * mzmb +tcgv: jlqz * csrh +tnfh: 4 +mmvq: 17 +pqbn: 2 +bwgg: nwrc + hzqw +wfmd: vhsg * mttp +nznz: hddr + qszg +qjbg: 2 +mztl: spzz + hmzq +mcmq: mrnp - bbrh +bslg: pwbw + jchr +ncnw: jbrb * dfwq +pppw: 3 +mvzn: 3 +ldfw: pfvq * pvdh +cpqn: 12 +wvsn: btvm * csms +dzlw: 2 +wcmn: ngwc + grbp +csrh: jczr / wjwt +jptp: mpzb * cldn +rppb: brjg / trqf +hwqz: scfh * vwjd +lrft: qmrq * zvsp +lgdm: 2 +fmql: zzsn * tmpj +rwzq: tqqg * sgps +vhvl: vzhr + fqtb +hnqz: hzdm * ncnf +cwlv: 2 +pttz: cpfz * cjfh +dgvn: 3 +nwrr: cjww * gvlv +lhgm: 3 +jcmj: 6 +bqmp: 3 +qtwp: 3 +phqn: 2 +mswh: 4 +qjpn: 2 +zzhv: rndp * drng +qjjt: 2 +thfm: jdmz * mzpj +rrwv: 5 +vfqw: 5 +lrph: 3 +ngcl: nlmb * dbnf +wgsz: 2 +mlfj: 4 +ftsb: lcwm - csrl +gwml: gnzf * cgtz +qstf: hrbh * crhl +vlpn: 3 +wndq: rvfw * tcvw +jjqj: 1 +dfwq: 5 +ldlc: cmwv + nfcv +mfrf: 17 +pjgq: 2 +wbww: lqvb + zrpw +gngd: gjrc + lljb +gthr: 5 +fnqm: 3 +fwsp: 15 +qdsp: bqpq / jjds +gfst: 5 +tsqd: 2 +ggfl: ncjc + dtds +jthz: 5 +dntm: zbzd + prgc +zsmw: 3 +qjvm: 3 +jsjl: 10 +sbtg: fzqz + jvzh +sqbz: rbrp * pjgq +wgzd: 7 +gnsl: jmpv * nfnr +ngfj: 3 +dmsj: pltd * jvfs +fmff: 12 +lqwm: rwzl + cqtz +mjzl: jsfj * lddn +nnld: 2 +bjzz: dvjg + smbq +cjff: sbnf * rbfg +prcg: 4 +hwzw: 2 +srpp: 2 +vtjj: 5 +tfsg: rghm * pjtz +smdz: rprr + hthm +ngvv: fsct - qvwq +ngqr: 4 +dznn: jdsh * fnpt +dgdf: zmmg + dwbn +wfzs: 4 +fmbv: mpwr + bdpd +nsjz: 3 +fnqj: 2 +cjmg: 5 +jnms: wznq * qgrp +dnrm: ljnr - mdjs +gsrm: mpnb + tmwl +tqsn: 6 +tdth: jvct * wvqj +srjt: hscj * btwt +zjcj: 7 +jdqs: gjlc + ldlw +vhfn: 2 +wnmj: 6 +psnf: mgjb * nznz +jhjm: 4 +nhgg: 2 +cbpp: fsrm + twzf +dlbw: 10 +ghrg: gpmv + hnmz +wpcw: 2 +cjww: 3 +jnls: 5 +scfh: 2 +htrq: vfqw * zqdm +cfwl: svjw - wjnf +vptb: qqtm + brzt +dljm: 3 +cnpp: 3 +trnz: bzqr * fphv +qbtn: 6 +wmsl: cwlv * wbgd +phtz: mstw * crqh +jczn: pwch * fsrs +pcwr: 7 +pjpz: 2 +zptz: 17 +hwnn: njnq + wjmm +dlcr: 2 +nsqp: bmfs - lbrw +bltp: mvjj - lqdm +fqmz: 3 +vmps: 3 +scbn: pznb * fmpb +cqzm: zppc * wvgl +rzwq: 2 +cpvl: 5 +rvnn: qfhh * jfbd +rnqn: 7 +dzjh: hctd + fwln +ldmc: 8 +jmzz: qvtt + dmsj +hgtn: gbpl * vffr +twzf: zpvc * nzng +zrtp: 2 +dmtg: fcmn * ghtw +vcch: qwqz + pvdl +tldh: pqtf * dhmt +vtsl: 2 +tmwd: vdwc + qwdt +brjg: vzww / gzbb +tqrq: 3 +dbnq: thft * gvrt +fdcm: vbbr * pdcm +lvmg: ngmw + whcv +dhlj: 17 +lgsf: 2 +zcjm: pmvq * tqbz +lnsp: rdml * mmjw +jmqm: 15 +lfqs: 5 +chng: 9 +bvsl: 2 +mspt: dlwp * dzlw +mfvt: 9 +sjlw: nvzg + zgpl +jphs: 2 +cvqp: 1 +llgl: lglt * lsqw +wzqd: 3 +rsfq: vgmc * fgcg +dqwj: 5 +mlvs: 3 +pznf: bcfp / jzsc +qlmb: fqwz * prfv +twhz: 15 +pcjf: 5 +gnjr: 3 +pjrw: 4 +vcqd: 17 +vjqp: 2 +llvt: jrns * fslr +nwgh: pzzf * cgfq +zwmg: 2 +cvgd: 2 +dwgq: mvzn + tnjm +jcpg: qsnj + zphz +sbsb: hfvp * lgjq +rpqj: 3 +chrw: vhcg * qrcj +bvfh: 6 +fhsd: fcjl + vmpw +hcdj: bnwl + zjfd +ssvf: 7 +czrg: vjqp * lmgv +nqjv: fjqr * bzgt +qbbp: pgvh + rpsg +qdfh: 3 +lqvp: 4 +vpzp: 5 +brvs: fwsp - sgpn +cpfz: jvnf - mzrt +rbgw: fnvh + ncld +fngq: ztbj + bcdr +djdr: 5 +vzvd: 4 +lqjw: zjbr * dcjj +wsbp: nvln + vwjh +zppc: rscv / jbcd +rssv: 2 +nvbj: 1 +dwwq: 2 +mdls: zwlc + bsvn +pggz: njvg - jhjm +wlvh: 12 +spzz: nltw + nczs +nfnt: rvvh + jtvh +hgdw: qrnq * vrct +vthg: 2 +dlgl: 2 +nlll: 6 +dbhp: 4 +dfcl: 2 +svgf: 5 +lwcm: 18 +qrtd: fpjn + bzth +tfcr: qtwp + jtst +jsgr: 2 +mqlh: 5 +cslj: hsfc * zhct +qrnq: 2 +mbfr: bssz + gqrl +cbsn: 2 +zggz: 18 +jnfn: 3 +tbfv: vwcp + dbmt +zmnl: jltc * qjvs +zrpw: qzmv + mcsj +bpfw: 1 +bfmn: fnhv + wgzd +wzcg: 1 +wspr: 2 +dzdh: 3 +jsfz: 3 +lbzh: 4 +rljt: 11 +fgmm: 15 +zqdg: 2 +dgmm: 1 +fgcg: lggb + cbwd +dddd: hwnn - cjhc +vqht: sgtm + hdqs +hqqb: dgtr * zwrm +bnqs: 8 +dmvg: bhgm * qzfj +mzws: 5 +mbmr: pmwt - mpvl +dhsr: 3 +dhng: 12 +rdjc: 10 +stvs: mflc + blsf +phjb: 4 +jcpb: 7 +shhp: zhvd * cmng +vnjf: nsbp * cddz +tshv: 4 +rttz: 5 +flgs: pgtg * llch +gjrc: qbsj * dcrw +bzjc: ccdb + pnnj +wvch: 2 +gqjf: 4 +zwlb: 2 +vstq: 1 +lgwh: zpff * dprq +fqwz: 4 +cqtm: 1 +cmzf: jbzm + wwdw +fslr: 2 +mjqt: jptp / vlnv +tdvq: lhbr / btct +mdrg: 3 +vzhr: crsn + ssvf +shqf: 3 +nzwt: hbrq * qwvl +lwsv: 5 +tmzj: srpp * wfwl +pljn: 2 +mmzc: 2 +jbtj: 4 +pmht: 7 +vsmp: hdlr * lmmp +vsdq: lgwh + jgjg +bcfn: bngb / qnsd +smlt: bcrn + vflv +tdcq: 2 +thlh: 5 +cgfq: 2 +fwjl: 2 +zjfp: 9 +jqtj: dmvg + zznq +qjvs: dgdm + fcps +wnhq: pjwt + fsjd +tjtg: 4 +rvjf: 4 +vgvl: bzvv * dqvn +zqsd: 13 +jlrc: bnrh * ntvh +vpnv: 8 +ncjc: lwcm / hjph +vvst: 2 +fhbv: zgws + dhlj +svmr: 2 +smvj: tqjw + hctr +nnmc: psvj - hnqr +mrvp: jlfd + hpsh +rhnq: zffg + fsdj +tffr: cbvf * dzqr +jgfs: rgwr * cdvw +thft: 5 +qwzw: 4 +lhzh: tcvt - qwvh +cjpq: 3 +tmwl: zbwj * tldh +bhgv: vdzr * nwzt +nssq: dbzt - nnsg +wpss: wrvg + dvdc +bsgb: mhqj * mlgq +nqfl: dfvq * ztjv +mflc: pjqw * lngq +ddql: hqqb + wcvd +qhjn: vbcs * vnjf +rnns: zsmw * vgpc +gbwt: vbln * glff +mrsb: fwnm + rcqs +gscw: 9 +nrzt: vjht * gfvj +lvgg: 2 +pvdh: 4 +bjtz: 3 +vgcd: 2 +zphz: lmfb * zsfh +bzth: zdjv * lnhh +cbsv: grqg * rqrm +sftq: 4 +chgw: 2 +jmwh: 18 +mhfr: 5 +pjtz: 9 +lqdp: 4 +ttqz: 3 +gpmv: 3 +csrl: sqsb * wghn +tcps: 12 +qbhq: mvvh + rdtt +zbbj: cpjg * wwqc +bhdz: 2 +lpcs: 3 +fbmn: 3 +bvzs: 2 +ptmc: 8 +tpvb: 19 +rhzb: 4 +vjbm: lsjh * znsm +zcgr: jsjl * fmgt +wwdd: 2 +dbdz: 7 +mjsf: 7 +dncl: htgh * bgbl +spph: cvqw * tbhm +dvjg: vsdq - pqws +fmvz: ttqz * bmgh +nsbp: 2 +mzpq: bvmn + jmzt +dhrb: mjnr + crft +bgrp: 2 +zpzs: pmnj - nvrh +fccc: 2 +lggb: 17 +hlwh: svsj + mdls +tlcl: gngd / gdqm +shqp: pzdn * smvj +mftb: 4 +whnl: cwtl + qstq +ndwg: mnhr + lnrd +vwjd: hcbq + smtz +fntf: 2 +dvtm: 5 +dbnf: humn - trnz +rhbf: zzhv + jghj +mpsz: 4 +vwjh: 3 +wgvl: 16 +bjzh: 1 +jvnf: pwgd * hsfw +jlqz: 4 +whcw: qtnp * btgb +pvjj: jhrp * rnpp +mhpf: 3 +zvlj: mjzl + llvt +hbwn: vqll + tdrf +npvr: 3 +hdqs: llcl * whvf +hrpz: 2 +jnfq: 2 +bldz: zsrq * hdzp +tmhp: qgsv + jgfs +hwth: 18 +jngb: 3 +sgqw: 6 +tpmb: bjdn + drjj +cbnb: 6 +jvqm: psnf - mwjq +mdbz: jmss * bfvb +frrl: 6 +gtsc: cnmf * psjv +bngb: twvv * svvv +tcvw: 5 +gtqg: bltp + lvqd +hdsv: wqcz * vvbj +svwp: 6 +tpgw: 11 +dqdj: 19 +qwrp: 4 +gfjn: lzfz * bwhc +frnn: fnqj * qwvt +dtfc: wlwv + jcpg +hscj: rzwq * bhhq +tqvg: vggf * fjqm +wtsj: 2 +qzbc: rncw * tpvb +ggvw: 15 +cgtp: 2 +rfwd: gchg * bmtb +wttc: bcwl + trcb +lrsw: mtnf + pppw +ncld: ctsf * mpdv +zgws: 6 +jchr: hhzl * cbgn +jlrq: mfvt * ccqj +rpzc: 3 +zwvc: wzlq + cbsv +jpzv: 3 +njvg: dlmj * vdfv +cshd: wqgd + cjmg +ncmp: 2 +wgbc: 20 +lfgw: 3 +wlrl: ghcs + rzbm +vgmb: 1 +bsvn: sgjs * sscn +scwh: 13 +cbcv: cmvw + hgml +qtwr: smdm + zbhg +fgsh: 4 +cbbd: 9 +hltl: qfhb * mhgv +zgwd: 7 +gqdd: 10 +fsld: 2 +wcvd: lntt * fbps +hsbs: 3 +qzfj: 5 +vztw: jjqj + sbdc +ngnc: 4 +hpsd: bjcw + wwqs +fdbz: pmwb / vhgl +ftgn: mzqn * wbzb +ncls: fhsd * qslv +rjph: ngvv - lbcg +pgvh: 4 +qwbz: wnhq / gnqz +ptmb: hpjc * wndn +bjcw: 8 +gqrl: rpcr * fgfs +gdqm: 2 +hwns: 14 +vbcs: 2 +vhdl: 2 +lbmf: 2 +gjgd: vdpj + pwqj +lqnw: sstl / hssv +hpcp: rnvf * ptmc +nvdj: 2 +wgpr: qwzw + njqg +rbht: 10 +mwrm: 4 +dprq: rpzc + tnfh +lhlf: qtgd + fsmz +ggcg: 2 +fhnv: qnmd * gnjr +zzsn: zpmc + qrff +bhnm: mzjn + hcfd +zjnd: 7 +pvnd: nbtd + wqdf +bfqg: gjdt * dgdf +cqtz: 2 +lmjw: 5 +sfvf: 2 +fznv: dswt * btvj +sljt: mgdn / lbmf +rzbm: nwrr + snsv +cdnw: hpmh * dpqj +hrpj: zbbj + fmql +psgb: scwh * lnpg +qhvz: 8 +fwln: 10 +jgbm: 3 +zprp: 9 +vpmg: 2 +fzrl: 2 +zphg: 17 +rgpp: 2 +hvlt: cqvp + sftq +ttvg: 2 +cldn: 3 +ctsf: 5 +rlbb: 8 +fffg: tghl * qfqr +wrfr: 13 +blsf: 13 +ppns: qwrh / tpqw +bvmb: rzql / zpmp +mblb: 3 +hnhg: tcgv + wmsl +hmvh: zcrc + pjzl +tzrw: csll * zcfm +jgjg: hwbs * nrcf +nwrc: jvnd * lgsf +grzh: 2 +hthm: 3 +gndg: 10 +wwhp: 2 +ftlt: 2 +rvhv: rbvs * drtb +hsgd: vfzl * rbnz +fbpv: 9 +nplj: rjdg + plbv +gzgl: mgvz + smlt +prsn: 2 +hzgn: sdrb + fbbz +pnnj: tlfd * vbtf +vzsn: tfbb * qdfh +jpmg: wcqt * gplr +dwlw: 1 +fsmz: sjvp - fpwf +tzrv: 2 +ntmd: 3 +jftp: 3 +mdzg: 2 +cjfh: 3 +zlpj: 3 +phhg: 4 +lshd: flnm * gwml +gbbj: 3 +slsg: fwjl * wclp +hcfd: 1 +pmrf: cndc * wggd +vbsf: hlvv + mjtn +bscq: jpnm + ngft +vtjv: jfmq + lqnw +pqgv: 2 +phvs: gscl * nhgg +wjvs: rqpj + wtvw +rsmg: 3 +wwqc: zhcg * jgbm +fpwf: znnc + jpmg +hvlv: jbbn / wzhd +mznh: 7 +cnqp: crfb * fsld +fccj: ndng + dcqg +nbtd: 3 +ntqr: 7 +drzs: rsrv * rdrg +sjnv: vwhs + ftsw +wznq: 5 +vmsr: zdzc * wspm +clhp: svwp + cpwh +llch: 3 +qslv: nrzt + hwzw +tmsh: 4 +zgbd: 3 +sqzj: tdrv - tmsh +bggh: 4 +lddh: sgmt + mhsc +zppb: vpzp * hbrr +lprw: 12 +dfdn: pvjj + bhlj +fqfr: cqtm + bnqs +pmwb: pcht + nssq +qgjb: 7 +nqpq: 2 +vgfq: fwrq * dbtg +qtnp: 9 +nfms: cpnv + zdnq +dqvr: nwrn * cfqv +rbfg: 11 +lqvb: 4 +snzq: brst + wssl +lwtl: 6 +vmjb: 5 +jbzm: 7 +jwhg: 2 +zrdh: glbm / tbtw +hclf: 4 +mfwg: 2 +psjv: 3 +qwbr: rnzs * wqrh +gggt: 2 +zdjv: 5 +lcsq: hmvh * qmcq +rqrm: 5 +dghg: nbhs + nqsr +dfvl: 5 +lvlj: 3 +zvwh: hbmb / bcdz +cfqv: 2 +fsct: fvlr - fhdw +tzwn: wgvl + cvqp +hfvp: 3 +pmvq: 2 +wbtm: 4 +lgjq: 2 +jplj: 3 +zzwp: jqtj / rhzb +qbcn: 6 +sprc: 4 +qzfd: wwgj / jfld +gbwz: 6 +fjqv: 19 +sgpn: 4 +jjvr: 11 +mmcr: 1 +cnfc: 2 +tcss: 4 +bssz: 11 +cqmw: 13 +rsvr: 9 +gzrq: dmgj * rdms +btgb: sspc * shmr +zjll: 3 +hpcw: tqfj * svjq +pzzz: dvpp * wvch +vhds: 4 +tlqj: mwpl * zslm +llhv: 3 +brzt: qfzd * hlmj +rbbc: 1 +cwnt: zczl + mjnj +llvn: dhms * hfqb +bgwj: jssp * qqpq +btvj: 7 +smtz: 2 +rdjr: 4 +nrrc: 2 +vdlz: 3 +thrv: mgbf + pwgl +tnjm: 4 +fsmg: 13 +brmc: fwhb + prcg +sbhb: jgpj + cbcv +vrml: lfsn * dqdj +hngj: fwgc + lqjw +crsn: cvgd * wgmt +cjmj: bhsh + nlld +fnpt: pnwf * bhfz +twlq: fvmf + jzcs +bmlf: 5 +grqg: ffcz + dvtm +nfvn: 11 +tdrv: hmpd * dzjh +ndtw: qljr * ntqr +gfsl: 9 +sbrq: bqjb - cwds +hhsc: hzvh - fngq +phcm: prsn * mlvs +sgjs: tcss * gtwf +zgpl: lqlj + wfqv +ngmw: rbvj * gwwv +rqpj: 4 +rdtt: cqts + qbfc +lrzr: 2 +vssn: 5 +qjpm: zphg * ngqr +jpnm: rhhw + hgjt +bmfs: zcjm / vhfn +mpdv: phzm + rljt +bbff: gsrm + dfdn +jtvh: 3 +mzgg: bdcz - prmm +bgtq: 3 +dqmp: lcqh * dhsr +zqrt: mghq / qdjj +jzcs: lhzh * mznv +csll: 4 +zjfd: 17 +spvz: dhsw - bjzh +hcfl: 3 +jshb: 3 +mzjn: dlrm * dfvl +fnsf: 5 +rnqq: 2 +tqjw: 8 +ptzb: trhv * cgtp +tjfl: 4 +hcbq: fzpq * gscw +hbqs: rlnp * jftp +jdmm: 14 +qtgd: svnz * vcch +lbgp: tlzz * qdhg +zgrs: jbph * ftqr +lbrw: rlht * dldh +gsbw: bzrm + jvqm +bvmn: 4 +zslm: 3 +wqcz: 4 +nzcs: fsbf * swnb +nncb: zwwn - gqrd +qwrh: dvtv * bhnj +dhmt: 4 +gbcl: fnsf * cpcw +rdvt: 7 +rzql: cspn * gqdd +lprd: jngb * tzlm +hbms: ltdz - vpmg +tgmc: 4 +wvqj: bvmb / gzdc +mllt: hfft - gfhs +prfv: 4 +scht: 3 +htdh: 2 +bfdn: qqtb * bvsl +wbzb: 5 +zthf: bvtv * wfmd +jpzl: 3 +hpmh: 5 +rghm: 3 +crfb: 3 +bmgh: 11 +hvfc: 3 +tswd: 4 +ctnl: 2 +htmf: cmzf + fsdb +tncm: 4 +hgsg: lrft + gzrq +nwrn: zmjp / zrdm +sbdc: sjbf * qgzw +rgnt: nrdj + fmfs +lzds: 2 +lmhh: 2 +vvpd: 4 +snvl: lglv * mqlh +dctv: wnqq + rtjh +cqvp: szdw + mltt +blhh: gwzg + jdsl +cpsz: mmvq + bmtn +zmjp: wjwg * sjlw +lfgs: 2 +pqwp: 2 +bnbc: mftb + pqwp +dnpq: fccg + fhzp +vszp: 2 +lzdq: 9 +bqds: rvtw * zgng +lrpt: 18 +jzrl: 2 +jvzh: dqmp * psft +nvln: 4 +mcjs: fhnv + nzfs +fwhb: 15 +fjvb: qfww + nqfl +gvrt: 5 +tdgt: rvcl + qtwr +tbhg: 14 +fwnm: 8 +lztl: 2 +plcf: 3 +rdms: gpgc + zzdz +wcqt: gblp / qjpn +tfdt: 2 +zbzd: cmld + sjdz +zltp: mhpf * spmn +ffzz: slzr * jjdg +zbvn: stqr * szwj +lzrv: 2 +gbvv: frtm * tqsn +dbzt: hhqc * rttz +zppw: ftlt + glbv +drzr: jdht * jshb +jssp: 16 +zdnq: 3 +nfld: vhcq + bsht +sznt: 4 +mslg: 2 +fccg: 5 +hrdc: gvfg * zgjz +swnl: 3 +dszq: 3 +tzrb: fhlv + fccj +hbrq: 4 +rvgv: 8 +tqbz: rsfq - spph +fbps: 6 +bqgv: 2 +jvfs: 2 +gthb: tdcq * lzpw +sgnm: 4 +whhg: gtnq + bsgb +ftqr: 3 +qszv: 1 +wwdw: btwg - mrtq +frtm: 9 +pgnj: pzwt * ppth +glbv: lsws + hjht +tbhm: 2 +gfhs: 5 +mjtn: 8 +mpwl: 5 +hqsm: 8 +lbpl: wfqg * cldz +ctcr: 2 +snsv: 1 +ptqv: 4 +jfld: 4 +mpnb: 2 +bwpc: 5 +pzwt: 2 +qrtl: 3 +jhwf: 3 +jmpq: qqnl * wddc +pphv: mbfr + mrhq +llct: qgnt * wwhp +dztc: qmmc / gthb +wspm: 2 +qpdz: qzgp + blsp +gjsr: 2 +rhzf: lhph + tqbt +tzlm: 3 +mmjj: mhpv + rrzb +pcht: fdcm / vtfz +qbzm: fgrc * nsnh +msdj: 4 diff --git a/data/21_2023.txt b/data/21_2023.txt new file mode 100644 index 0000000..b79c9e4 --- /dev/null +++ b/data/21_2023.txt @@ -0,0 +1,131 @@ +................................................................................................................................... +....#....#..#.#..........#..#...................#..#..#..................................#........#..#.......#.#.................#. +.................................#.#...#.##................#.........................#.....#...#.....#..#....#..#...............#.. +.............................#.#.##..#..........#........................#.....#...#..#.........#...#......#...............#...##.. +............#........##.#......#....#...............#..............................#......#.##...#.....#........#.......#.......... +.#.......#...###............#...##...#............................#.........#.#...#.....#.......#..##.............#.....#.#....#... +........#.....................#........#.......#......#.........#.............##......#.....................#..#.......#.......#.#. +....#.............#.....#...#..........#.....#..#.......................................##.................#............##......#.. +..............#........##.........#............#.............#.....#.#.............#..............#.....#...................#...... +..###...#..................#..#...#...#..#....#.....................#.#.........#.............#....#.#..##............#............ +..#...#..............##....#..#...........#..#...............#.#....#............#...................#.#....#....#..##............. +............#..#.............#...#......#..##..#............###...#....#...........#..#............#...##.##..#........#........... +..#.###.....#.......##..........#.##......................#.#...#.#.................#.#..#...#......................#........#..... +........#............#...........#..#......#....................#.....#...#...........#.#..................#..#..##.........#...... +....#...#..#..........##.....#....#..#....#...#........#.....#......#......#..........#......#........................##....#...... +..#.#...#.##............................#....#........................................#.......#..#........#......#.....#...#.....#. +.........................#.......#.......#.............#.............#...#..............#....#......................#.......#...... +.....##..................#......#......#.#.#....................#....##.......#.................#........#..##...............#..... +.#....#.......#.................#...................#...#.........##........#.................#.##.........#......#...#...#.....#.. +................#.............##....#.......................##..#...............#............#........#.....#..#.#....#..#......#.. +......#.......##...#......##........................#........#........#.....#............##....#.##........#....................... +....#..#.....#.#.........#....#......#..........#....#....#..#....#.....#...#....#...........###...##......##......##.......#...... +.#........#...#........#.............#..........#...#..#.......#...#....#...........................#.#..#....#...#..#......#..#... +....###..#....#.#..................#...............#.##......##..........#..........#..........#....#...#.......#..#.............#. +...##.#.................#......#.#...........#..#.......#.#...#......#..#..........##.................#..#.#..#............#..#.... +......#.......#...........#..#...#................#....#...#...........#...............................#...#....#.......#...#....#. +...#.#.#.........##......#....#....#..........#...#.##.##.......#..##..............................#......#.........###.....#...... +...#.....##.##..#.#............##....................................#.#.................................#.............#....#...... +............#............#..#.............#........#.......#.......##.#..#.....#......#.......................#.......#............ +....#.........#.....#....................##..........................#...........#.....#.#..........#........#.#................... +.....##....#..##.....#........................#..#....#................#.##.#.........#................#........................... +................#...#.......##.......................#.#..............#........#...#.......................................##...... +.#...#..##....#.....#.#......#........###.........##..#........#......#.....#........................#.##..#......#..........#..... +......#.#................#...........#......#..##..........#.......................#..................##...........#.........###... +...##.............##.......#..................#....#.#..#.#.#..................#.#..###.#..##..................#..##.....#......... +..#..#.#....#.#.#.#.#.....#.......#..#..#.##...#....#.....##.#.#..#..#....#...........#.##..................#......#...#.......#... +.....#................#...................#.....#..#..#...#.....#..................#......................#...............#.....#.. +.#..............#.#..............#..............#.......#...#.......#...............#.#....................#..........#....#...#... +.........##.##.......#.............###................#...#..#.#....#.#..#..........#.#.#....#...#............#.................... +...................#..#.......#..##....#........#....#..#.........#..........#..#.....#.#................................###....##. +.....................#..............##..#..#..................#..............#.........#.....#.#..............##.......#........... +..#.......#.##................#......#.....#.......#..............#.........#...........#.......#........................#.#.....#. +.#..............#...........................#...#.##...........#.......##........#........#......#..#.#..........#............#.... +...#.#..#.#.#..................#....#...#................#.#.#.#.......#.....................#........................#............ +...............................#.........#..........#...................##..#..#....#.##.......#...##...#.............#........#... +....#.......##..................#...##....#.......#...#..#..#......#.#......#...................#..............................#... +..........#...#.............#..##.........#............................#..##......###......#........#...#..............##.#........ +...#.....#.............#.#......#.............#.#.......##........#....##...................#.........#.............##....##....... +.##........#...........#..........#..........##...............#............#..#..#........#..#.......#..#.............#............ +..........................#....#......#.......#..#.....#.#.#........#................##......#.#.#..##..................#......#... +.#.###.#................#..#..............##...#........#.#.........#....##........#...................................##.......... +....#.#...........#.................#..#.................#.....##........##..........................##.....#...................... +...................#.......###.....................#......#.......#...##..........#...........#.........#...#.#.#.................. +.....................#..#.....#........................#.............#...................#........###.##........................#.. +......#.............#..................###...##...........#...#..........#................##..............##................##..... +...................#.......#.................#.#...#.....#.#...#.....#.#....#......#.....#..#...#..#...#.##...#................#.#. +.##..............#..#...#....................................#........#....#.#.#...#...#.....#................................#..#. +...#.................#......#..#...#...###.#..##....................#...........#..###..#.#...#.....#.##.#.....................#... +..................#.#..........###........#..#.#........................................................#.......#.#..##........#.#. +.......................#......#..#.#......#...#.........#....#..#...#..#........#...#..#...........#............................... +...............#...............#..#..#....#..##.....#........#..#...................#.#.........#...........#.....#...#..........#. +.....................#...................#.....#...#....#...........#...................##.......##....#.....##...#................ +..............##...#..#...#....#..#......#.......#......#..#.................................#..#...#...##..........#......#....... +................###...................#..#...........#......#.#.#.....#...........#.#.#....#...............#.........##............ +.....#............#.......#.......#......#..............#...............#.#..............#..........##....#...##......#....##...... +.................................................................S................................................................. +.........#.......#......#..##................#......#.............#.###.............#..#...#......#...........#......#....##....... +..........#......##.#......#...#........#...........#..............#...##..#.........##.........#....#...#......................... +......................#....#......#..#.....#..#...........#....#..#...#........#.#...........###.........#..#.##..#..#............. +........#.#..............#.#.........#.....##..#.......#...........#............#.....#......#.#.......#....#.......###............ +.............#......#...##..#...........#...........................#.#...#..#....##.........#.#.#.............#........#........#. +..#.......#..#..#..#...............#.#..#.#........#...#...........#...#.#...#........................#.....#.......#.#............ +.....................................#..#...#....#..#....#.....#..#.#...#.................#...#.#..#.#.....##....................#. +.#.................................#...#...#.....#.##..............##.........#........#...........##......#..#..................#. +.....#........#................#......#.#.......................#.....#.........#......#.......#................#............##.#.. +...#.....................#.#.....#..#........#..#..#...##....#..............##.......##........#......#...###.................#..#. +......#...........#.......#.......................#....#....#.....#..##....#...##......#.........#.........#.#.#...#.........#...#. +..................##........#....#.#.#......#....#..#.#.....#......#........................#....##..........................#..... +.....#..#..............#..##.........##.....#................#.##......#.....#...............#..#.##......#...#.#.................. +...#................#.........##......#.#...#.....#....#...#....#.............#..#.............................#........#.......... +.###..#.............#.......##..............##..............................#...............#.....#.....#....#..................... +......#.............................................####..........#.............#.....................##................#...#....#. +......#...#..#.......#..#....#........#.......##..#................#.......#..#..#......#.#..#......##......................#...... +........##...............#.....#.....##..##........###........................#.#......#...#.....#........#..........###.......#... +..................................##..........#.........#....#.....#........#......#.......#....#...#.............................. +..#......#................#..........#...#.#.#..........##...#....#...........................#.....#..............#.#.........#... +.....#......#....#...............#.....#........#.#......#..#..............#.#..........##............###.............#...#......#. +......#...........#.......#.....................##.#..#..#...........#......#........##.......##.#..#...............##..#.......... +...#........................#........#.......#..#......#...#...#..#......................#...#.#....#..................##.#.#....#. +...#.#..#.....#....#.........##....#..#..#.....##.#......................................#.#...................#.........#.#...#... +............#.#......#.........#..........##....#...................#...#.....................................#....#.........#..... +.#.........#.#................#..............#.......#...............#..........#....#..#.....#....#...............#.#...........#. +....#.....#.....#.#..................##...#.###.............#..#................................................#.....#..##........ +....#.....#....#.....#...........#.....##........#...#.....#....#..#..#...................................#........#.......#.#..... +..##....#...........#..#............#................#......#.....#...........#..........#.......#........#.............#.......... +........#..#.......#.....#....................##...............#............#....#......#................#.#....##..#.#......#...#. +........#.#..#..........#................#......#..........#......#..#.#....#...#.........#..............................#......... +....#.....#..#...#..#.#..#...........#..#.#.#.###....#.#...........##........#.........#.#...............#.#....................... +........#........#....#..................#...........#..............##.........#.#...................#.........#.............#...#. +.##..........#.......#.#..............##..............#......#....#.............#.........#.#..........#...#.#........#............ +....#....#........#......#................#...##...#..............#.................#.#............#.............#......#.......#.. +...#...........#...#...........................#....#......#.####.......#.....#.........#...........#..#..#...##.#.......#......... +................#....##..#.#.#.#...............#.......###..#................#...................###.......#...###.#.#......#...... +....#.#..#..#.......#.........#.............#..##........#..........#.....#..................................####...#..#...##...... +......#.#........#..##.............#..........#.........#.#.##......#............................#....#.................##.#....... +.#.....#...#.......#.#........................#..#.#.........##............#....................#.##..#........#........#..#....... +.......#..#...#.....#...........#............#....#.#.#................#.........#...............#..##.............#....#....##..#. +......#.....##...##.#.........#...#...#.......#....#...#..#..##.#...................#..............##.......#....................#. +....#.......................#........#.#..........#....#.##.#.........#............#............#..........#.........#...##........ +.#.....................#.........#..#..............#......#...#.....#........##...#.........#.#...........#.....#.............#.... +.#.##.....#..#...........#..#.#....................................#...#......#...........#...#...#.........#....#........#........ +...............#.#...#...............#.#............##...#.........#....#..#........................#........#....#....#........... +....#....#.....................#....#..#...............#.....#..................................#.....#...........#..#...........#. +............##.......................#................#...#.#.........#..#...#..........#..............#.#..#.......#.............. +.##........................#........#..#..##..............#.........#......#.........##...............#.#......#......#............ +.....##....#....#....#...#..#.#.#...#..#.#.##.#.......................#..............#.....#.#....................#....#......#.... +..........#.#...##........#..#...#.........#..................#.#.....#....#..........#.........#....#.#....#.....##.#.#.......#... +..................................#...#....##..............##.....................#.#.#.#.........##.......##..#.....#...#....#.... +..................#..........#........#........#..............#.#....#.##.........#.......##....##.........##.....#....##...#....#. +.............#...............#.#...........................#........#...#.......##..##......................#.#..#.....#..#........ +..............##....................................................#.............#.............#....#..#..#.#.#................... +......#...#............#...........#..#..............................#..........#.......#....#..#...###.#........#....#.#.......... +...##....#........#...#.#..#.........#.#........#.................................#........#....#....#.......#..................... +.........#..#.........#....#..........#..#...........#................................##...........................#......#....#... +.#...#.........#....#....#..#.#........................#........#.#..........#....###..#................#.#.....#..............#... +...........................#.......#......#...#...#...##.........................#...##...#.......#..........#..................#.. +.......#....#.....#.........#....#..#.......#........##....................#...........#..............#...............#............ +....#...........##......#....#...#..........#....#........................#.....#.........##.......#............#.......#.......... +.....#.........#............####.....#............#.#.#..................#....##..#...#....#...............#..........#............ +.................#...#........#....#..#...#.........#.......#..........##....#.....#..........#...#..#.....#......#.......#..##..#. +................................................................................................................................... diff --git a/data/22_2020.txt b/data/22_2020.txt new file mode 100644 index 0000000..e8ba6e2 --- /dev/null +++ b/data/22_2020.txt @@ -0,0 +1,53 @@ +Player 1: +41 +48 +12 +6 +1 +25 +47 +43 +4 +35 +10 +13 +23 +39 +22 +28 +44 +42 +32 +31 +24 +50 +34 +29 +14 + +Player 2: +36 +49 +11 +16 +20 +17 +26 +30 +18 +5 +2 +38 +7 +27 +21 +9 +19 +15 +8 +45 +37 +40 +33 +46 +3 diff --git a/data/22_2021.txt b/data/22_2021.txt new file mode 100644 index 0000000..7018845 --- /dev/null +++ b/data/22_2021.txt @@ -0,0 +1,420 @@ +on x=-33..18,y=-35..11,z=-49..2 +on x=-14..32,y=5..49,z=-42..5 +on x=-28..18,y=-38..10,z=-14..33 +on x=-40..6,y=-22..32,z=-32..13 +on x=-14..37,y=-37..12,z=-31..19 +on x=-24..30,y=-40..6,z=-19..27 +on x=-29..15,y=-44..7,z=-22..22 +on x=-49..2,y=-29..15,z=-1..48 +on x=-1..45,y=-6..39,z=-16..37 +on x=-15..30,y=-35..14,z=4..49 +off x=20..39,y=29..46,z=-30..-15 +on x=-36..9,y=-8..38,z=-38..10 +off x=-22..-4,y=10..19,z=-4..10 +on x=-43..9,y=-37..16,z=-24..23 +off x=10..29,y=1..10,z=-2..16 +on x=-18..34,y=-39..8,z=-31..23 +off x=-2..7,y=-41..-23,z=4..23 +on x=-18..31,y=-27..27,z=-23..25 +off x=17..33,y=5..14,z=-26..-7 +on x=-29..25,y=-1..44,z=-5..44 +on x=-2089..22263,y=63383..83317,z=1521..34560 +on x=16324..26707,y=-76181..-51644,z=27623..60727 +on x=-95252..-74929,y=-36262..-8635,z=-14014..-4726 +on x=26087..56689,y=13866..33100,z=-77678..-54222 +on x=-58261..-34558,y=-52429..-39076,z=-46433..-17880 +on x=38567..59604,y=66243..73633,z=-4724..7559 +on x=-76223..-52004,y=-4022..17420,z=-56813..-31010 +on x=-28531..-6777,y=52497..78911,z=39320..53754 +on x=-1705..20943,y=71494..92397,z=2586..17205 +on x=43970..50168,y=-44993..-18711,z=-68417..-46597 +on x=-2878..23564,y=41697..70518,z=42674..68678 +on x=22987..51001,y=-74194..-62557,z=-40942..-24407 +on x=10735..33969,y=26636..35170,z=62555..84961 +on x=-87260..-58460,y=-25011..9170,z=-40488..-16433 +on x=-41317..-19098,y=55028..74495,z=9284..32979 +on x=57730..86394,y=-5618..4073,z=8825..29287 +on x=70498..95095,y=-26060..-15204,z=-11673..3577 +on x=-12181..6283,y=-76734..-56136,z=-41358..-26351 +on x=55479..68566,y=-65998..-51191,z=-388..13824 +on x=-7142..9719,y=17804..41523,z=-73454..-51015 +on x=-6780..13903,y=64955..76512,z=-35477..-12220 +on x=8140..17232,y=-84619..-62523,z=-28417..-860 +on x=-59883..-49433,y=-65970..-42610,z=8348..17483 +on x=-46361..-34652,y=-77141..-58593,z=-32375..2092 +on x=18682..23347,y=-70715..-62353,z=15488..48836 +on x=13625..33572,y=-53090..-39232,z=38313..62732 +on x=-7845..8128,y=72275..83684,z=9204..44598 +on x=30099..52396,y=-37319..-13384,z=-65551..-51334 +on x=66812..86665,y=-12147..-8315,z=-14456..18299 +on x=-80768..-62714,y=12166..32801,z=9298..28465 +on x=32917..51529,y=-39942..-11579,z=-77830..-58654 +on x=6795..30180,y=-52748..-23421,z=-79235..-66193 +on x=41104..59365,y=-65904..-44389,z=-58998..-32127 +on x=46835..68448,y=-13278..-4034,z=47409..74764 +on x=61812..89996,y=-11979..17125,z=-42861..-30521 +on x=36211..58568,y=65204..73638,z=-2374..22331 +on x=24752..29245,y=68946..77065,z=21993..33524 +on x=64234..90251,y=15294..35642,z=26838..33725 +on x=-19948..6112,y=-38109..-27877,z=62697..87704 +on x=-45769..-27330,y=-76264..-42424,z=34120..46556 +on x=-64655..-37560,y=32027..51779,z=36246..55408 +on x=46729..77810,y=30499..52592,z=22011..48493 +on x=-59194..-47087,y=61036..63539,z=-9127..12439 +on x=31894..45260,y=56306..80190,z=-39056..-4346 +on x=-28505..-11114,y=76279..91855,z=-17517..2342 +on x=-29827..357,y=-55982..-33070,z=53295..78681 +on x=61904..90365,y=-45148..-26196,z=-31689..-11315 +on x=-63745..-30029,y=-60515..-23200,z=-53318..-41274 +on x=35857..48971,y=-18159..16867,z=-83848..-48218 +on x=-58426..-37407,y=47038..72640,z=2498..22588 +on x=40878..41799,y=-86884..-48581,z=2168..20716 +on x=-26137..-535,y=60867..81985,z=-60883..-30553 +on x=-49390..-18873,y=19679..41934,z=64209..74274 +on x=-13205..4850,y=-54788..-33129,z=-74136..-52452 +on x=34452..69258,y=-18117..-14331,z=53496..73956 +on x=-26084..-6353,y=-28975..-2494,z=57753..84222 +on x=-55087..-32324,y=-62117..-47889,z=-36986..-26405 +on x=-49256..-42251,y=-58341..-32455,z=35370..57488 +on x=-29709..1208,y=44395..60836,z=44943..75568 +on x=9674..39186,y=-85531..-68265,z=11474..22020 +on x=-54733..-30617,y=-57541..-41688,z=44653..71542 +on x=58013..78420,y=-31202..-19242,z=18818..28322 +on x=-68634..-53973,y=-58009..-31614,z=-5131..5865 +on x=-16576..3952,y=63366..90574,z=8992..37515 +on x=-7386..14817,y=-14155..5703,z=66136..88553 +on x=19106..54924,y=-12140..15434,z=68415..80932 +on x=7336..31425,y=65432..82588,z=8047..29593 +on x=22525..33599,y=-68372..-39358,z=-68143..-43500 +on x=5213..21274,y=-39249..-27045,z=-91831..-72038 +on x=-31642..-16632,y=-2869..8672,z=66852..81506 +on x=70305..84886,y=-41625..-15439,z=-29089..-2340 +on x=-60096..-54846,y=-46888..-14091,z=-57849..-36369 +on x=-44911..-23725,y=-22548..198,z=55411..76767 +on x=-57512..-33022,y=-64054..-54691,z=22591..39559 +on x=535..39401,y=56745..78405,z=23560..28326 +on x=-56374..-39060,y=-77520..-41804,z=-7273..13316 +on x=7013..28554,y=32070..54196,z=47529..70955 +on x=-76288..-56876,y=-56665..-25593,z=-16778..-6302 +on x=-37510..-11747,y=61094..74622,z=-2370..18659 +on x=-58709..-30616,y=-33464..-11638,z=50961..72748 +on x=-55454..-27679,y=-82741..-59621,z=-9194..15631 +on x=13172..40388,y=11138..40063,z=-82760..-65315 +on x=14388..27772,y=-67554..-46788,z=-70583..-43179 +on x=15748..48411,y=-58853..-46690,z=45719..67485 +on x=-64826..-42121,y=-69677..-41462,z=-19124..10506 +on x=-38968..-4505,y=21318..56103,z=53808..76243 +on x=52992..73842,y=-45007..-30798,z=-40845..-17070 +on x=-72448..-52368,y=-13003..12727,z=-51653..-39744 +on x=-89717..-56812,y=-11429..11004,z=-33713..-29320 +on x=-82797..-68105,y=-907..18442,z=-48479..-36446 +on x=-52400..-36160,y=-2729..11358,z=-73134..-48314 +on x=-25713..-1239,y=45923..57024,z=-64104..-48955 +on x=-24274..3585,y=-91301..-60004,z=-36996..-8396 +on x=-72952..-55266,y=-33277..-2819,z=-34959..-11204 +on x=-66793..-46197,y=50987..54931,z=-27353..-16284 +on x=43392..52101,y=-14627..12623,z=-71060..-48522 +on x=-77723..-72809,y=6362..11492,z=9252..30717 +on x=32463..54093,y=18767..32223,z=-79630..-54627 +on x=26726..36372,y=-18434..723,z=54237..77721 +on x=62209..80598,y=-43071..-26185,z=11647..20283 +on x=-12408..8805,y=-82322..-75005,z=-7927..12271 +on x=66471..72381,y=-1981..28059,z=27987..48109 +on x=-80370..-49201,y=-61716..-49683,z=-30867..-7453 +on x=37596..66737,y=-68892..-60777,z=-33858..-8114 +on x=17321..30730,y=-52278..-42302,z=54029..68729 +on x=-77142..-71446,y=7200..27046,z=-14711..12602 +on x=-22544..-1958,y=-33075..-2255,z=-86145..-70682 +on x=55145..79591,y=-11592..16417,z=-30690..-11963 +on x=-13258..8815,y=64606..98004,z=-8762..6548 +on x=11099..20143,y=57055..77284,z=-23767..-18751 +on x=52489..83696,y=15746..31820,z=8280..43534 +on x=-66484..-41050,y=-57811..-31218,z=24204..41390 +on x=60564..85343,y=-27885..-15572,z=-28159..7052 +on x=-317..14600,y=68181..76576,z=-39440..-13155 +on x=-75121..-51737,y=-40321..-29860,z=15647..37621 +on x=-54204..-41260,y=5051..35207,z=53197..81544 +on x=36998..51680,y=51159..76975,z=5399..12759 +on x=-16863..16337,y=-80953..-58351,z=-59967..-35458 +on x=31744..60271,y=-14750..10965,z=49476..82924 +on x=-2256..18179,y=-73825..-67358,z=-34072..-25314 +on x=17732..43807,y=62479..77780,z=13938..28034 +on x=1622..28357,y=-82169..-57048,z=-25837..88 +on x=-40461..-9223,y=62104..86603,z=14710..22383 +on x=-81227..-61564,y=-42653..-23629,z=29983..44317 +on x=20880..48206,y=41863..67134,z=32598..46063 +on x=-96416..-62247,y=-18355..6029,z=-5981..7217 +on x=-57869..-30585,y=56288..73456,z=16646..22837 +on x=75450..92466,y=-20645..12847,z=-25402..-14103 +on x=-5465..14054,y=-35719..-4050,z=71849..89372 +on x=-61081..-25279,y=-66905..-48434,z=23859..40935 +on x=-7800..10807,y=71020..85725,z=-15915..7901 +on x=53985..76201,y=20582..53668,z=-1323..23345 +on x=-85787..-63425,y=27676..42137,z=-9285..-3133 +on x=48336..68487,y=-38490..98,z=41624..59831 +on x=-78012..-53039,y=30299..67166,z=19090..40584 +on x=5113..13878,y=-78897..-73837,z=11134..18475 +on x=41756..68743,y=-155..35498,z=50442..64705 +on x=-81270..-68840,y=-17576..-3690,z=-32135..-14787 +on x=8219..40862,y=8918..25218,z=-77252..-54208 +on x=39105..44578,y=66714..83921,z=15354..22292 +on x=46189..61321,y=43841..68088,z=19301..53413 +on x=-62770..-57542,y=-20733..14047,z=-67275..-32150 +on x=65480..84873,y=3073..19647,z=6345..23441 +on x=46867..47491,y=46506..52780,z=26672..40094 +on x=17013..41829,y=-11136..13219,z=-82179..-70797 +on x=-34036..-23731,y=33357..53053,z=51260..72738 +on x=31113..47177,y=-66933..-39151,z=-61354..-38916 +on x=34145..51166,y=-3683..10926,z=52987..77874 +on x=41954..65645,y=-56607..-45672,z=-4255..10356 +on x=-68089..-55495,y=46167..65284,z=-2384..10704 +on x=7890..33438,y=37201..73446,z=-61118..-42873 +on x=-7504..12073,y=-76259..-56952,z=29469..62400 +on x=13684..21664,y=-31197..-1820,z=68848..89615 +on x=-85435..-60015,y=-25411..-2834,z=-13167..8182 +on x=-76535..-58434,y=-29534..475,z=-33953..-16134 +on x=-59255..-45581,y=42904..53487,z=-44277..-36999 +on x=24422..52934,y=-69287..-47156,z=27348..40808 +on x=-77855..-49832,y=-40133..-15312,z=-44484..-35346 +on x=-41154..-18246,y=4608..24334,z=73408..80625 +on x=-49987..-14202,y=25483..46341,z=-72668..-53755 +on x=13538..18051,y=23397..42374,z=64790..80510 +on x=54955..79143,y=-54794..-41945,z=10831..26883 +on x=-18711..-1344,y=-66328..-31191,z=59213..66700 +on x=-42306..-25865,y=-84072..-59112,z=-10635..13499 +on x=-78607..-56882,y=28422..42754,z=-42069..-4658 +on x=70330..93330,y=3485..16587,z=-2226..11978 +on x=42999..75014,y=-73237..-35809,z=-16684..5008 +on x=14380..47360,y=-7768..2171,z=-75135..-69101 +on x=56578..76847,y=-38598..-29395,z=-32815..-15926 +on x=-12748..8540,y=15488..35223,z=54552..86464 +on x=3158..16552,y=-24454..1647,z=-80496..-74467 +on x=56473..73209,y=-3433..12083,z=-54506..-38799 +on x=51012..77530,y=30088..48866,z=8772..24396 +on x=17665..25364,y=39750..62592,z=46640..74482 +on x=-28714..-6773,y=9347..31266,z=73840..78208 +on x=8925..38027,y=59998..85715,z=-24137..-10466 +on x=53001..66549,y=-4287..21472,z=-73164..-44211 +on x=-54149..-45881,y=-28052..-10796,z=49458..62599 +on x=-21963..6658,y=66148..91598,z=-21298..6962 +on x=-11782..161,y=-91012..-60861,z=21515..30530 +on x=-76804..-69730,y=13746..32487,z=-23642..-13658 +on x=963..15271,y=-71045..-39328,z=-71381..-47851 +on x=67896..74688,y=-32914..-22017,z=12647..33400 +on x=12634..39919,y=-66590..-50495,z=50004..68679 +on x=8442..27410,y=9042..25167,z=68135..95195 +on x=-25776..-14278,y=-29280..-10089,z=69100..90070 +on x=64423..65336,y=3388..18317,z=-63336..-39916 +on x=35919..66955,y=14633..25424,z=55317..61335 +on x=-73286..-65915,y=-44128..-28250,z=22971..40421 +on x=15859..26558,y=-56047..-29767,z=42976..66388 +on x=-6917..5955,y=65260..87252,z=-24846..4318 +on x=-65972..-29473,y=32115..66783,z=35787..53459 +on x=-67248..-44667,y=33707..64039,z=-31788..-18880 +on x=45484..66247,y=38595..43467,z=4589..29393 +on x=13889..18349,y=66828..91044,z=14198..32527 +on x=54724..85550,y=-30589..-5424,z=35166..56213 +on x=-42965..-21638,y=-60889..-33965,z=43998..65167 +on x=-35930..-32769,y=-78331..-56047,z=-14735..9050 +on x=-24860..-8877,y=-80975..-43953,z=44660..63576 +on x=-14165..8370,y=-22173..-12379,z=57378..77093 +on x=71416..77554,y=-27428..6152,z=-49013..-27924 +on x=-93105..-68413,y=-35230..-13620,z=-20316..293 +on x=18417..29118,y=-86664..-54984,z=-36954..-22621 +on x=55918..67650,y=-41116..-22359,z=-41830..-26146 +off x=46522..78165,y=-65457..-45507,z=6815..36492 +off x=47885..74001,y=-31398..-10975,z=28012..47043 +on x=-91510..-71175,y=-16528..11618,z=-12499..8654 +off x=-84874..-61512,y=8619..38028,z=-54298..-34830 +on x=-83118..-51007,y=-45381..-31920,z=-23725..3021 +on x=10327..15960,y=-81856..-71010,z=-33630..-17410 +on x=23031..50754,y=-44713..-23633,z=-63299..-46320 +on x=-46257..-28480,y=-49238..-30841,z=47755..73142 +off x=20153..42123,y=-1222..5657,z=-77756..-63549 +off x=-61474..-57812,y=21117..35860,z=35705..60812 +off x=-79310..-66078,y=30244..44852,z=-9818..11212 +on x=71346..88869,y=-31928..-3884,z=-24256..-2336 +on x=-14150..11801,y=-57201..-51842,z=40079..61755 +on x=-40978..-28089,y=-42914..-23485,z=55939..67185 +off x=-23863..-13907,y=-536..10465,z=-90190..-61663 +on x=-5454..24659,y=-79999..-64557,z=27835..52330 +on x=72970..84571,y=10891..31328,z=-6227..5365 +off x=-29582..-11617,y=15192..35976,z=-79544..-70922 +off x=31030..48464,y=53376..61684,z=23041..44016 +off x=-10069..14806,y=35482..66322,z=-63854..-56881 +on x=53051..84557,y=-15724..16551,z=42287..54722 +on x=14308..26815,y=-13886..-3319,z=-79479..-57838 +off x=-59590..-50887,y=24924..38221,z=-57585..-33212 +on x=-63473..-31750,y=-64527..-52962,z=3041..21881 +off x=-31812..-7489,y=-22611..5463,z=-94027..-61918 +off x=-82927..-54190,y=-9326..-491,z=20413..40734 +on x=17422..42553,y=8312..32307,z=-71649..-69485 +off x=-78294..-58360,y=35412..45701,z=11726..40925 +on x=-21097..-3642,y=-8835..14381,z=-99475..-68222 +off x=-84402..-69432,y=-14573..10548,z=14300..22158 +on x=48734..68681,y=-34310..-26273,z=-52329..-23613 +off x=-35075..-15047,y=-46105..-25811,z=63394..85781 +on x=-86314..-54848,y=-46805..-24845,z=3445..37489 +on x=-63351..-50251,y=1886..23129,z=49969..56775 +off x=9515..27274,y=50806..72697,z=-49477..-25800 +on x=-35588..-13052,y=15904..42770,z=-81932..-66144 +off x=-46532..-36208,y=52000..73477,z=1265..25986 +off x=-87317..-63208,y=-17777..9520,z=-23859..-3922 +on x=-6728..4683,y=-95124..-75630,z=-29826..-12203 +on x=18636..43049,y=-80651..-64046,z=-24566..10269 +on x=34590..45757,y=-60461..-41469,z=-61769..-39386 +off x=69352..98422,y=4474..7247,z=-13318..-2831 +off x=-8443..8104,y=-47359..-17553,z=61091..78345 +on x=36926..56794,y=-55435..-27634,z=31804..55162 +on x=-43184..-19362,y=-73702..-61346,z=-50469..-12904 +off x=-12667..10577,y=9915..24867,z=-88319..-68574 +off x=-41812..-19280,y=-50846..-20974,z=-73207..-56898 +on x=25317..48114,y=45115..64793,z=-34388..-8697 +on x=-7572..26486,y=45477..70127,z=50627..71118 +on x=-65568..-53227,y=46928..71092,z=-13475..-291 +off x=-79123..-55369,y=-24021..-16788,z=17459..45068 +on x=26906..52136,y=17854..35117,z=-79712..-60188 +off x=73240..87023,y=-12287..13613,z=10048..23682 +off x=-2039..1086,y=20152..33227,z=72963..88128 +off x=-16444..-292,y=35253..51124,z=49972..79032 +off x=-31142..73,y=52811..81568,z=35320..52590 +off x=-45280..-38826,y=32419..56574,z=34445..72131 +off x=-76025..-59111,y=14..8694,z=-60123..-35050 +off x=-15911..3734,y=-23253..-9645,z=-88648..-77200 +off x=47880..75437,y=28421..53226,z=33581..53756 +off x=16705..55995,y=-22513..-5765,z=-79544..-52799 +off x=43351..73267,y=-30268..-23880,z=-69607..-39884 +on x=-49229..-24544,y=40180..60627,z=49877..77312 +on x=-67421..-46871,y=30102..60244,z=16607..38923 +on x=52711..81149,y=-10627..-8351,z=-48619..-22583 +on x=29102..45238,y=-70802..-50027,z=16042..39140 +off x=-87363..-61250,y=-1811..4566,z=-48295..-31466 +off x=52765..72819,y=-38051..-27751,z=22516..53729 +off x=-95898..-76590,y=-4285..-1522,z=-7096..27186 +off x=39546..65197,y=59713..74511,z=-14000..15914 +on x=27920..58905,y=-11677..424,z=-79346..-62053 +on x=-28804..-11775,y=72541..86610,z=-12598..7458 +on x=11013..13476,y=62070..76490,z=-39383..-17081 +off x=39439..48894,y=-72648..-38252,z=-48344..-12634 +on x=-70559..-52651,y=27489..46016,z=9134..42011 +on x=-20036..2910,y=-22525..-6028,z=-87710..-68411 +on x=-57816..-32833,y=51432..68426,z=-20978..2045 +off x=-79019..-59736,y=15304..30243,z=-45210..-32477 +off x=-90119..-75160,y=-24706..8541,z=-26255..-2577 +off x=-6777..14477,y=-71771..-33912,z=46706..60930 +off x=61137..75324,y=31584..49892,z=-26327..-14848 +on x=1100..22606,y=28697..54124,z=-81504..-52509 +off x=-71074..-58799,y=27675..44853,z=-58966..-20807 +off x=-71600..-42287,y=8542..25589,z=56065..61233 +on x=-45251..-35045,y=38191..54768,z=44757..67534 +off x=54620..79108,y=-56141..-42099,z=12070..29484 +on x=-13747..5593,y=-70633..-59152,z=35086..48154 +off x=-6784..14050,y=-65722..-55419,z=44065..49503 +off x=-2302..33895,y=7082..27279,z=-77945..-63272 +off x=-19701..-7304,y=-76198..-72082,z=28958..48047 +on x=12815..40193,y=37433..74447,z=-56868..-48723 +on x=16409..41021,y=-5541..8042,z=-75386..-63309 +off x=17361..35839,y=6486..33733,z=71504..85138 +on x=9825..32255,y=-68518..-48749,z=-80039..-57545 +off x=-62298..-50656,y=-1852..19142,z=44967..61407 +off x=-65488..-40004,y=-59621..-37464,z=-48950..-23715 +off x=-21676..-990,y=-79126..-51600,z=-55573..-22384 +on x=16547..46077,y=59890..75234,z=-23757..-11399 +on x=-87743..-69823,y=-36681..-16284,z=-11987..20192 +on x=-41729..-18632,y=-35288..-5409,z=-69092..-63322 +on x=40240..53567,y=51071..76567,z=-32328..-14382 +off x=-62904..-45149,y=32738..63897,z=-19593..-15038 +on x=21216..24135,y=-75210..-50944,z=-44984..-16166 +on x=-69562..-35055,y=58744..70823,z=-15501..-9281 +off x=-68150..-52172,y=26975..39630,z=-53507..-17045 +on x=51169..78842,y=11583..29490,z=29644..52457 +on x=-15373..4253,y=-97690..-61806,z=1940..31386 +on x=73779..78637,y=5371..23397,z=-27149..-10358 +on x=19250..44620,y=-7232..11656,z=-82542..-70642 +on x=39149..61967,y=-16335..12372,z=52676..65415 +off x=-23056..-4050,y=-38844..-16159,z=64555..74496 +off x=45322..60654,y=-64033..-45875,z=-6345..6738 +off x=54100..90830,y=-34444..-21517,z=5118..19759 +off x=-231..8241,y=-54245..-31025,z=62160..90247 +on x=-10127..-4636,y=-83774..-49558,z=30741..56326 +on x=-61249..-36895,y=58338..75723,z=-15361..7006 +off x=18751..41594,y=49217..65051,z=35222..37374 +off x=-19037..-9828,y=-67561..-45441,z=24792..52641 +on x=40827..72676,y=-15481..-1454,z=37617..66011 +off x=-64739..-34793,y=-25699..-17432,z=-67453..-38858 +on x=-18058..5742,y=-23939..-5488,z=-94889..-71764 +on x=35519..41049,y=-27602..-9277,z=49488..82039 +on x=9331..32089,y=-17498..8315,z=-80543..-76033 +off x=-34327..-11605,y=11327..29037,z=-77519..-64466 +off x=-71841..-43926,y=16818..21609,z=-69739..-45874 +on x=-56990..-48349,y=-68324..-43481,z=3016..7811 +off x=9304..25782,y=30245..56041,z=51315..85795 +off x=32607..48888,y=3690..28091,z=52295..84881 +off x=-2404..31293,y=58151..81212,z=-31998..-25149 +on x=-63323..-36977,y=54027..77083,z=-26641..8719 +off x=60302..80800,y=35514..54303,z=12123..40785 +off x=47486..64483,y=7507..25137,z=-73417..-59938 +off x=2177..22958,y=73828..91348,z=20624..37806 +off x=-68778..-38496,y=-15625..6286,z=50357..61804 +on x=42481..65067,y=414..25425,z=52357..76953 +on x=21032..42183,y=-46797..-14635,z=-74998..-57422 +on x=-57819..-39759,y=37245..65409,z=-31057..-9476 +on x=29358..58776,y=8103..20134,z=-73101..-67091 +off x=-26017..-15663,y=-53499..-40680,z=-81777..-63642 +off x=-75822..-54570,y=-54832..-37673,z=-36225..-20978 +on x=-30274..-12377,y=62717..73698,z=-51083..-18953 +on x=25463..45515,y=-79814..-55158,z=15540..44754 +off x=-58176..-42144,y=-44091..-18834,z=49801..63998 +off x=40488..54727,y=-80750..-51881,z=-8037..3647 +on x=66133..82929,y=-13321..9855,z=-45192..-21257 +off x=3029..23415,y=-78534..-62743,z=-50610..-16058 +on x=63368..74974,y=104..20701,z=37152..63545 +on x=40949..74694,y=-62178..-38585,z=2610..19835 +on x=-472..15977,y=64084..84976,z=-24559..2476 +off x=49194..76848,y=-47174..-24042,z=-33508..-8663 +off x=67399..78692,y=-28620..-16523,z=-19377..4508 +off x=56630..74700,y=-14438..20792,z=36581..74432 +on x=21015..41464,y=-9104..15645,z=-88506..-73629 +off x=-43920..-26879,y=14492..28620,z=59594..70987 +on x=-35951..-21806,y=7254..24763,z=54493..72173 +on x=3336..22348,y=-15737..-3592,z=60764..78216 +off x=56117..66807,y=20737..31533,z=-44715..-23712 +off x=13306..42710,y=68250..78199,z=-32910..-17468 +off x=-87878..-53833,y=18415..53070,z=-16577..2999 +on x=33630..50999,y=-67779..-48804,z=30503..55076 +off x=57002..86011,y=-10279..10607,z=19904..42650 +off x=18927..33193,y=-16636..-1801,z=-88904..-63937 +off x=21167..45110,y=-67846..-46840,z=-67041..-43159 +off x=15448..29805,y=-69142..-47763,z=-56592..-41006 +on x=-31981..-15095,y=-20248..3871,z=63022..87403 +off x=-50574..-43927,y=-45935..-22203,z=-54205..-39534 +off x=23509..30725,y=-59187..-39824,z=-55008..-29804 +on x=-6893..10692,y=-4433..17662,z=-79958..-63043 +off x=52839..82867,y=-54135..-43532,z=5074..22443 +off x=-19801..2279,y=-45316..-18060,z=-73077..-53175 +off x=-34124..-23489,y=-77318..-57778,z=-10644..21309 +on x=-62168..-39417,y=46644..71553,z=-12633..-2688 +on x=-50071..-22810,y=-45081..-19082,z=-71537..-54243 +on x=-3347..16680,y=71919..95169,z=-26699..-14243 +off x=-57262..-44366,y=32309..66254,z=-33394..-21315 +off x=71646..96656,y=-8202..21856,z=-6535..-796 +on x=-27944..-5589,y=47496..68996,z=51465..59779 +on x=8322..20036,y=-71459..-51821,z=28654..53172 +off x=-1130..11235,y=-72111..-54015,z=38692..55881 +on x=-69102..-39230,y=21462..55716,z=-47827..-41441 +on x=51340..80906,y=-52377..-19741,z=-34853..-23124 +off x=-37865..-22986,y=-62050..-50913,z=-69238..-43924 +on x=28721..62342,y=-8593..21244,z=52533..83625 +on x=52746..80495,y=22003..40732,z=-40093..-20844 +off x=35892..47834,y=-67866..-46589,z=34299..53539 +off x=18277..20309,y=-15322..3925,z=-94574..-68257 +off x=23509..40977,y=-81126..-48154,z=-21..33400 +on x=13627..46617,y=-2537..25688,z=-74686..-56092 +off x=4445..25422,y=1276..13484,z=-78843..-67185 +off x=-12411..9686,y=-80652..-50914,z=-61600..-42810 +on x=-18060..-1885,y=16610..43651,z=67414..76707 +on x=30774..44990,y=-6499..11812,z=-87416..-59474 +off x=-59552..-40954,y=48890..63902,z=-39700..-21599 +off x=12390..31538,y=65013..80718,z=-15195..9149 +off x=-82717..-58814,y=9792..34867,z=31729..41188 +off x=-62226..-36572,y=-17931..-2307,z=64240..74646 diff --git a/data/22_2022.txt b/data/22_2022.txt new file mode 100644 index 0000000..bf20636 --- /dev/null +++ b/data/22_2022.txt @@ -0,0 +1,202 @@ + ............#..#..................#............#.......#..............#............................. + ...#...#...#.......#............................#.#.....#..#...........................#......#..... + #.....#....#....#...............#..#.........#..................#......................#.##......#.. + ...#........#.....#...........#.......#.......###....#.......#.............##...........#.#......... + ..............#.......#............................#.....#..........#....#.........................# + ...................#.#........#.......#.......#.........#......................#......#.#...#.....#. + ......#.#......#....#...........................#..........##..............#................#..#.... + ....#...#..#...............................................................#.............#.......... + .###.#........#.................#............#....................#....................#............ + .........................#....#............#.....#.......#......#........#.....#..........#......... + ..............#....#.........#...#...#...........#..............#....##................#........#... + ..............#......#.#...................#.....................................#......#....#...... + ..#......#.#................#........#...........#...#...#....#...............#.....#............... + .#..#...##................#......#..........................#.#....................#...............# + ......................#..#............#..#...............#..............##........#..............#.. + ......#..#........#.......#..........#.........#...#.....#............##...#.##...#...............#. + .......#....#..#.............#.........#...........#........#........#.........#..#...........#..#.# + ...................#............#...............#.....#.............#.#......................#...... + ...#..........#.................#..........#..#.................#.......#..#....#...#............... + ...#..##...#.....#.....................##...............#.........##.#.......###......###.#.#.##.... + .............#.....#..............#...............#..........#.............................##....... + ...#......#....#.............................#..................#.#....#...............#....#....... + ....#..................#................#......#..................................#..##...#......... + ...#.......#............##...#..#...#...##.....#..#....................................#............ + .#.....#...#..........................#.........................................#.#......#........#. + .........#.......................###..........#..............................#......#..##........... + ..................#.#...#.#..............##...................#........#....................#.#..... + ........#...........................#.........#.....#...#......................#..........#......... + ..........#........#........#.........................#................#.................#......#... + .......................#.#.........................#.....#....#......#.....#..#......#.............. + ....###.........#......#..........#...............#......#...........#.....#....#.......#........... + ................#.#...#............#..#.........#..................#...................#...#........ + ....#........#.............#..........................#...#......#.....#.#......#..............###.. + ...#...........................#..#...................##.....##......#.#.......#..............#..... + ...#.............#...#..................#........#........#......#...#..................#....##.#... + .#...#.......##......#.....#................#..#.....#...........#.......#.......................... + ..............#......##......................#.#.......#............................................ + ...............................#........#..........................................#......#......... + ..#..#...........#..#.......#.#..........#......#.........#...#..................#.#.......#..#.#... + ........#......##.#......#.........#...#.........#................#...............#................# + ....#..........#..........................#..#................................#......#....#......... + ...#.............##........#......#.........#...................................#.......#......#.#.. + ..#....#......##.#.............#................#......#....................................#......# + ...............................#........#.....#.#.............#.#......#........#.............##.... + .......#..........#.........#..#..........#.............#.............................#..#.......... + ......#....#...#.##.................#...............##..........................#................#.. + ....#...........................#.....#....................#.......#.....................#.......... + .....####........#.....#...#.....#.#.#.....#............................#.....................#..... + .....................##..................#..........#.........##......#....................#....#... + .......................#...........................................#......#.#....................... + ....#........#...................................# + ...#........#............................#..#...## + #.....#.............#..........#.......##...#..##. + .#.#.#..#......................#........#.....#... + ........................#..............#.......... + .............................#................#... + .#........#.....................##.#.#.....#...#.. + .....#.#....#.........#....#..............##...##. + .#...................#...#..........##............ + ....#........##.......#.................#.....##.. + ....#....##.....#...#..#..##....................#. + .............................##......#............ + ..............#.................#.............#... + .......#...#...........#..#....#........#...##.... + .......................#......#...........#...#... + ........................#.........#.............#. + .....#...........#................................ + ....#..........#.#....#..#........................ + ......#.....#..##.....###.................#....... + .........................#........#.......#.....#. + ........###..##.##.........#...........##....#.... + ....#...#................##.#..........#.#........ + ...........#...........#..#...#.......###......... + .........................#.#...#.....#....#.#..... + ..##..#............#...........#.....#.#.......... + ..#...........#..#...........#...#.......#.....#.. + #.......#.........#.....#.....#......#....#..#.... + ..#..#.....#.#.................................#.. + .............#.................#..#............... + ....#..............#............#................. + ..#.#......###..........##........#............... + .......#.............#...#........................ + .#.......#..........................#.....##...... + ...........#.....#...#.............#.............. + #...........#.................##......#..##....... + .##....#..............#........#...........#...... + .#...........#.#...#..#.......#.....#............. + .........#............#...............#........... + ....#.....................#..................#.... + .#........#......#...........................#..#. + ..................#...#..........#...............# + .....................#..................#......... + ............#.....#.....#......................... + .........#........................##.............# + .#..#...........##.........#.....#....#.....#..... + .................................#....##.......... + ..##.............#.....#..#...#...........#...#... + ..............................#.#.........#....... + ..................#......#..#..................... + .........#.........#...#.....#..#...........#....# +#.........................#......#...........#..##.#................#.................#...#......... +.................#............................#..............#...#..#.........#....#.......#.#.#.... +##................##.......................#......................#.........#....................... +.........#......................#...........#...#......#..#........#...#....##........#.#......#.... +..............#.......#........#..#...#........#........#..#........#.............#.#.#......#...#.# +.#.....#...#..............#.#.............#.#...#.....................#....#............#........... +...#................#..........#.............##.........................#.........#..#.........##... +.....................................##.#...#.#................#.................#.................. +...........................#........#...................#.............#......#............#.#....... +....#.................#....#..#......................#.............#................................ +........##.....#......#.#...........##................#....................#........#......#.....##. +#...................#.................................#....................#...#......#....#..##.... +...................#....##..#.................#........#.........##.....................#...#....#.. +..........#...#..............#.......#................#...........#..........#..#..#..#.........#... +.............#..#....#.....#......#...........#...........#........#.......#..#.#.##.....##......#.. +....#.....#..#..............#...............#.......#.....................#.................#....... +...........#..........................#.........#.#....#.............................#.....#........ +..............#........#....#.........#........#..#........#....#................#................#. +.....#............#.............#.........................................#.....##....#..........#.. +.........#..........#...............................#..#...........#...#....#.................#..... +..#...........#.....................#....#..........................#.........#..................... +..............#.#....#.......#.....#..#.................#............#......#..................#.#.. +...#...............#........#............#....#........#..........##.#....##...........##........... +.....#......#............#.........#.........#............#..............................#.......... +...........#.#........#....#.....#.............................................#.................... +........#......#..............................#.#...................#.#...........#.#............... +.#...#............#.......#......#...#.#...#...#....#........#................##..#................. +...........................#..........................#.....#..................#.........#.......... +#..#..............#.#...............#..........##..........##......................#....#........... +.#................#......#.................#..............#.................#....................... +............#............#...#.........#.#.............................#...................#.....#.. +.......#.............#.....#..................#.......#..............#.............................. +.....#.......#.#.#..#.....#.....#.#.#.......#.#.....##..........................#................... +......##.......##.....#....#........................#..#...........#............................#... +........#..##..#................#.............#..........#..#.....................#..............#.. +........#..........#..................##............................#......#..................#...#. +............#..................#...........#....#....#.............#.....................#...#..#... +....#.............##.#.........#.#......#.#.##..............#.....#......#.............#....#......# +......#.............#.......#.....................#.....#......#..#................................. +...#................#....#.#............................#...#..#...........#............#..#........ +......#...................#...#......#........#.........#.........#..........#......#...#.......#... +.#.....#...................#.......#.....##......#................##.....##.#......#................ +...#............#.........................#...................#...#..........#.#...#..#.#.......#... +......##............#.#............#..#............#.......................#........#.#...#....#..#. +.............................................................#.....................#....#.##........ +..#................#..#....#....#.........................#.#.....#......................#....#.#... +.........................#...#.....................#.........#..........#.#......#................#. +..#.#...#........#....................##.............#...............#.....#.................#...... +........#.......#.#...........#.................#....#..............#..........#.#.#................ +........#.#.###............##............#........#...........................#...#................. +........................................#......... +..........##.#......#............................. +..............#........#.....#.#.#..............#. +....#...........#.#.#................#..#.......#. +..#...#.##...........#............................ +..#.....#..#............#....................#.... +.........#....#................................#.. +............#.......#.......#...............#..... +............................#...#......##......... +......#.#...............#......................... +...............#...............#............#.#... +...#.#.........#....#.....#......#................ +......#.....#..................................... +..........#....#....#..#.....#..............#..... +.............##.................#................. +...#..#.#................#..................#..... +........#.#.#....#......................#......... +..#................................#..#.......#... +#..........#..##.................#................ +.#..........#..##...............##....#........... +..................##...........#.................# +..#..........#...........................#........ +.......##...#.#...#.#...........###............... +.....#..#...#....#..#.....#................#...... +..#........#...................................... +..#.............##................#...#........... +............#....#..........#.#................... +.......#............#..#.....#.......##.......#... +............................#..................... +...#..#......#..................#................. +...............#......#...#...#...........#....... +......#...........................#...#.#..##.##.. +.....#..........#..........................#...... +...#...........##..#.........................#.... +...#........#................#.............#....#. +.......##.......##.#......#................#...... +.#........#........#...........#...............#.. +..#............................#..#............... +...........................#.......#.....#........ +.................#....##.....#..#..#....##..##.... +.....................#.............#.....#........ +..#..........................................#.#.. +.........#..#.#..#...#................#..#.#...... +..................#...#.#.......#................. +...#.........#.......#...###...........##...#..... +........................................#......... +......##......#............#.....#.......#..#.###. +#.....................#.......#.....#............. +...##..#..........#........#.....#.#......#....... +...#..#..#......#...#.............#.......#...#... + +15L3R31L27R6R16R11L19R4L15R3L42R22L43L11R43L39L46L2L23R39R9L35L22L6R23L24L11R44L39L18R12R27R42R8R20R45L23L22R49R24R28L12L2R9R45R7L38L32L20L20L27R1R27L36L10R11R20R41R24L50L22R6L45L34L39R15R16L11L16R13R1R24R39L23L10R16R15L42R26L36R41R34L48R5R28L4R45R46L24R7L19L10L48L15L2R8L4L22R4L8R35R2L7L16R41L14R19R40L15L35R50L13L47L24L21L37R14L28L5R6R10L3L14L22R5L27R2L45L38L19R29R13R9L18R41L16R6L24R11R8R30L40R20L30R43L4L42R12R14L12R38L8L12L48R32R11R44R34L36L2R40L23L6R22R41L43L36L10R45R38R10R4L2R19R27L45L16R39R40R36R26R33L44R10R37R45R32L16L24L18R43R43R31R3R47R12R2R29R11R22L35L41L16R5L33L35L28L14L15R20R8L14L22L7L48L38L1R36R40L28L16R47L46R44R32L9R50L13R43R13R15L4R49L27L47L33L44L2R40R3L32R8R49R33R11R19L9L32L15R25R3L3R22R35L6L16L10L24R2L43L12L13L28L36R12R25R40R19R50L48L45R15R11L35R37L3L17L15R21L3R38L2L43L27L5L7L32R42L38R22L42L6R45R19L27R38R2L39L24L27R48R44L11L35L7L20L34R12L21L9L40R47R2R43L40R4R36R38L7L18L11L38R42L50L5L8R17R40L32L43R49R44L19R42R20R23L16R49L29R41L11L46R17R26L33L15L11R42L43R45L27R13L32L5L39R46R47R14L21L23L28L49L25R31R35R26L19R38R8L13R25L42L50L34L46L15R47L42R13R18L38R45R1L43R4L47R46L15R36L18L31R19R34L28L32R34L38L27R21R11R35L13L6L32R1R39L22L3R4L40L50L43R39R27R13R3R42L46L8L32R33R44L26R18L18L2L34L14R25R48L24L35R39R25L1L46L21R32R17R15R22R8L5R48L22L32L48R10R36R6L37L33R39R20L4R46R45R36R11L29L49L5R47R19L32L28L24R1R11R17L12R39R11L36R16R22R20L1L31L16L40L40L44R38L7L2L17R3R15L11L1L42L30L30L22R1L33R45L12R29R30R1L44R20R11L23L33R27R45L33R26R28L14L19L47L38R13L12R27R7L12R40R4R29R29L30L48R26R18R46R40L17L27L41L19R17R50R8L26R11L19L2R50R40R30L30R31L40L38L31L25L11L9L13L4L8L39L18R15L38L38L16R37L10R28L49L30L20R6L16R10L45R15L45R48R33L48L47L30R31L16L16R4L25R48R39R43L24R28L2R31R29L40R27R23R26R40L6L45L30L41L11R30R13R16L2L28L27L39R16R10R47L44R21R5L2R21L17R17R5L10L33L22L5R11R35R1R40L17L47R3R2R39L16L9L25R30L27R19L8L39R3R26L9L50R32L18R38R19R4L33L19L10L23R32L15L24R32L20R21L34R47L23L3R14R46R14L30R25R10R25R12L2R3R36R21L31R17R48L36R44R7R22R6R8L20L46R41R4R7L40R36L34L31R30L25L24L50L25R2L18L4R8L14R20L10R26R33R49L35L47R26R30L32R22R10L37L48R22L46L7R32L20R21L23R38L36L22L2R18L24R34R34R27L21L47R7L4R1R9L37L13L48L6R31L44R20L37L44R6R33L44R4L43R12R4L42L3L36L48L45R49R42L45L23R15R9R13L42L47L37R16R23R28L26L37L17L47R9L13L16R34L28L26R33L5R18R50L42R46L24L13L25R33L24R49L44R45R25R24L28R41L43R17L15L9L10R10L37R17L1L9R15L43R43R48L19R15R14R16L22L31R11L4L48L45R47L38R1R18R2R44L13R3R42R39R44L46L12L15R38R4L13R36L31L46R43L35L39L40R28L11R36L30R7L13R36L2L12R26L8R50L44R2R18R46R8L37R27R12L20L31L5R44L5R39R42R17R8R46L22L4R42R35L6L3L27R30L24R28L41L5R50R38L23R6R40L28R19L35R35R5R49L23R6L35L35R12L37L3R44L1L42L39L47R11L49R43L42L50R5L40L36R17L20R23R44L34L49R13L20L23R30R37R8L8R5R23L32L27L7R48L49L21L37R5L12R46R20L27R5L40L5L41L6R34R7L24L22R26R16L38R2L14L9R4L29L24L33L5R21R19L43L36R49L29R32L15R22L42R11R37R38R20L8R23L4L5L5R39R16L43L44R1L39R19R15R5R8L20R26R38L16L37L47L38R38R18R30L27L17R29L22R34R25L5L49R39R20L9L31L45R33R41L11R9R45L35L9L28L8R4R19R15L27R11R9R32L38R26L10L47R9R3R31R9R24L12L19L32L49L29R6L24L38L50L27L34L32L36R50L1R27R7R11L4R28L21R41R26L16R26L45R44R45R35R43R28L41L26L30L33R15L31L47R43R32R25L7R37R40L38L46R48R22R1R38L48L35R42L29R44R16R30R24L31L44R31R33R6L10R35L46L11R49R11R25L2R39L49R1R3R28L23R12L20L6R47L2L24L49L42R46R37L3L50R45R50R41R15L22L36L46L15L26R48R48R49L31R38R6R10L41R34L24R20R41L23R47R31L29L24R13L46R23L36L23R32R12L30L49L22R45L28L1L45L24L15R31R32L10L49L16L32R46R15R40L3R35L23R37L36L21R37R27L8R40L37R15R40R3R3R24L47L50R16L37L17L11R19L14R33R1L25R14R20L43R30L50R7R8L2R17R11R36R2R33R8R24R36L1L9R40L29R2L14L41R25L11R21L50L11L45L8R47R44L45L20R2L50L27L42L40L34R23R11L16R21L49L42R10L32R24R15R36L36R46L7L4L1L25L38L41R49R5L3L8R29R4L41L25R28R47L36L50R23L35L43L44R32R33R46R19L41L9R45R39L30R50R9R26L2R30R42R24L34R18L20R47L19R48L37R11L9L4L27R31L47L45L29R47R46L45R12R40R20L28R42R50R1R13R5R40L5L4L23R44L3R28R4R20R2R23R3R19L2R36R28R44L21L37R33R23L1L31R35L37R12L35R8R47L11R21L1L28L20L34R14L36L34L30R34R35R11L3R35L6R15R12L46R30R21R26R43R25R22R11L7L2L43R9L14R25R26R42L1L32L23R13R34L10L16R21R33L17L31R36R2R17R1L41L18R29L21L11L23R11L45L40L34R37R35R11R32L46L24R38R1L37L47R1L45R10L30L15L35L40L19R11L25L48R17R29L10L17L39R43L26R2R5R20R11R41L37R2L22R4R10L31R40L7L34R47R20L29L42L12R19L23R36R34R29R11R47L9L26L50R47L4R14L7R38R32L11L2L11L26L36L1L45L38R19L41R9L25L22R39R10R37L50R34L45L11R47L18L38R33R32L23L1L45L50R9L43L32L35L19L36L6R34L34L33L18L26L37L1R27L50R30L4R38L41R5R18L4L46R29L43L18L40R42L19L41R44R11L5R1L24R20R19R44L7R1L30R29R32L20L43L30L41R22R34R46L22R19L6L40L5R4L33L17R6R10R34L10L15L47L34R15R38L3L24R48R23L7L2L49R44L31R23R11R38R22L48L3R16L1R19R40R15L28R17L43L39R22L5R38R16R8R15L27L41R31L9L11R22R47L11L10L18L31R49L35L26R10L34R45R41R20R28R2L36L40R31R7L26L21L39L19R20L23R22R6R6R1L31R1L40R42R2L40R44L17R36L5L18R29R44L50L14R16L17R7R18R30R29L22R18R26R26L13L21R13R39L43R23L11L7R25L28R40R4R29L30L48L39L16L15R39R19R4L19L21R4R28L39L46L47L19R22L10L42R10L43L44L3L21R30R3L42L43L46R31R1R42R12L37R16L33L21R34L37R18R43L11R27R7R42L14L20R19R18L1L4R7R18L6R47L44L47L11L18R50L15L22L5L5R20L3L39L22R28R21L20R23R17L4L38R42L4R19R24L27L29L37L49R50R17R48R22L28L29L22L44L22R32R26L49R3L1L35L30L48L4R13R49L10L23L37R10L39L49R1L15L35R3L41R14R40R8L23L12R7R32R1R24L24L46R13R43L35L19L22R45R37L50L34L48R49L18L40R5L25L36R16L43R29R17R3L42L44R8L2L29L2R31L30R28R25L50L25R32R37L3R42L37L45L21R31R30L7R11R32R15L20L4L48L23L27L32R27R37L29L13R44R9L49R18L4L38L31L32L1R33L12L14L16L17R47R3R10L45R36L10L26L46R29R32L49L19L7R18L42L39R50R36L36R27L45L45L48L42R34R39L17R20R30R27L21L40L28R7L22L10L27L29L1R37R40R6R30L40L19L40R19R11L5L1R34L20R47R42L37R6R10L7L33R28R36L20R20L39L50R26L24R30L13L7R27L22R40L7L22R2L42R2L10R36R47R10L32L27R46L40R36R42R47R50L15R22L14R29R2L37L19L49R37L1L48L41L13L17R35R7L39R49R17L11L40R31L20L13R28R35R46R13R49R6R21R9 diff --git a/data/22_2023.txt b/data/22_2023.txt new file mode 100644 index 0000000..6a6e390 --- /dev/null +++ b/data/22_2023.txt @@ -0,0 +1,1329 @@ +7,4,60~7,4,61 +2,7,296~5,7,296 +4,5,21~7,5,21 +8,0,273~8,3,273 +8,9,210~8,9,210 +0,8,102~0,9,102 +6,3,306~9,3,306 +0,0,295~0,2,295 +0,4,51~2,4,51 +0,8,5~2,8,5 +4,2,134~6,2,134 +1,2,22~2,2,22 +6,8,199~7,8,199 +2,7,7~2,9,7 +9,3,206~9,3,208 +5,8,165~5,8,167 +0,7,71~2,7,71 +6,6,177~7,6,177 +8,4,308~8,7,308 +5,2,224~7,2,224 +1,6,120~3,6,120 +2,7,159~4,7,159 +3,3,163~5,3,163 +7,2,214~7,3,214 +1,9,115~4,9,115 +1,2,215~1,5,215 +3,0,21~5,0,21 +3,9,201~3,9,203 +0,7,226~3,7,226 +9,6,169~9,8,169 +3,0,230~3,0,230 +3,6,28~3,7,28 +5,0,297~5,0,299 +9,2,1~9,2,1 +7,0,287~9,0,287 +7,2,275~7,3,275 +4,8,191~8,8,191 +5,4,130~6,4,130 +8,0,9~8,2,9 +3,0,102~3,0,103 +7,4,161~7,6,161 +2,7,266~4,7,266 +3,6,21~3,9,21 +1,7,93~4,7,93 +4,5,163~7,5,163 +1,9,26~3,9,26 +9,3,106~9,6,106 +3,4,262~3,6,262 +4,7,141~7,7,141 +0,2,113~0,4,113 +4,1,78~4,4,78 +4,9,92~6,9,92 +3,8,61~4,8,61 +7,9,288~7,9,290 +8,4,198~8,7,198 +0,6,91~2,6,91 +4,3,95~4,5,95 +1,3,209~1,4,209 +8,6,176~8,8,176 +4,1,70~7,1,70 +6,3,287~6,4,287 +6,5,99~9,5,99 +3,1,91~3,2,91 +1,5,211~1,5,214 +2,8,18~5,8,18 +4,1,160~6,1,160 +1,4,75~3,4,75 +0,7,243~0,9,243 +3,1,154~6,1,154 +2,7,87~4,7,87 +0,0,274~0,2,274 +2,2,54~2,3,54 +5,3,223~5,5,223 +1,5,256~1,7,256 +2,7,91~4,7,91 +5,0,183~5,3,183 +0,9,181~1,9,181 +5,3,154~7,3,154 +7,9,206~9,9,206 +2,7,185~5,7,185 +6,0,96~6,2,96 +4,7,103~4,9,103 +6,5,234~8,5,234 +5,0,115~5,0,116 +3,9,2~5,9,2 +0,7,25~1,7,25 +1,9,112~4,9,112 +2,4,117~3,4,117 +2,9,92~3,9,92 +7,2,241~9,2,241 +1,7,109~4,7,109 +8,4,184~8,7,184 +3,6,174~3,8,174 +7,2,40~9,2,40 +6,3,229~8,3,229 +6,6,58~6,8,58 +0,7,76~0,7,78 +4,8,121~7,8,121 +0,2,253~2,2,253 +5,4,261~5,7,261 +4,6,32~4,7,32 +3,5,241~3,6,241 +6,1,48~7,1,48 +5,3,70~5,3,72 +8,1,38~8,3,38 +6,5,64~6,8,64 +3,9,3~5,9,3 +7,9,166~9,9,166 +8,4,57~8,6,57 +3,9,95~3,9,98 +6,1,159~6,3,159 +0,7,132~0,9,132 +4,6,112~5,6,112 +9,0,246~9,2,246 +0,1,117~2,1,117 +6,0,16~8,0,16 +5,5,75~5,6,75 +0,4,15~2,4,15 +5,3,150~7,3,150 +0,4,225~2,4,225 +7,8,175~9,8,175 +6,2,75~6,5,75 +5,8,164~7,8,164 +3,7,6~5,7,6 +3,6,24~3,8,24 +0,1,132~0,3,132 +0,6,115~2,6,115 +8,0,3~8,2,3 +2,7,250~2,9,250 +5,6,306~6,6,306 +3,0,99~3,2,99 +8,5,75~9,5,75 +1,5,22~1,7,22 +5,0,74~5,0,76 +5,6,60~6,6,60 +0,5,68~2,5,68 +7,1,7~7,3,7 +9,5,247~9,7,247 +4,2,62~4,4,62 +2,6,194~2,8,194 +2,5,177~3,5,177 +3,6,65~4,6,65 +5,5,209~5,7,209 +1,6,254~3,6,254 +7,4,307~7,7,307 +4,3,159~5,3,159 +9,8,259~9,9,259 +9,4,112~9,6,112 +4,3,297~7,3,297 +5,3,206~5,6,206 +3,6,105~3,8,105 +2,0,231~2,1,231 +5,3,277~8,3,277 +5,7,159~8,7,159 +3,1,169~3,3,169 +8,1,8~8,1,8 +4,7,22~6,7,22 +0,8,271~1,8,271 +2,7,74~4,7,74 +4,1,264~6,1,264 +4,3,166~5,3,166 +8,4,152~8,6,152 +6,2,118~7,2,118 +8,8,22~8,9,22 +7,5,174~7,7,174 +1,5,6~2,5,6 +9,6,103~9,6,105 +0,5,24~1,5,24 +2,3,20~2,3,23 +6,4,34~6,6,34 +3,8,88~3,9,88 +4,6,57~4,8,57 +1,1,289~3,1,289 +7,6,116~7,8,116 +0,4,121~3,4,121 +1,3,35~4,3,35 +3,6,115~5,6,115 +0,8,22~1,8,22 +4,0,36~4,3,36 +7,8,35~9,8,35 +2,8,165~2,8,165 +7,4,177~9,4,177 +7,4,112~7,4,114 +9,6,302~9,8,302 +9,4,190~9,6,190 +4,1,82~7,1,82 +5,4,143~5,6,143 +4,2,221~7,2,221 +9,9,91~9,9,93 +8,3,64~9,3,64 +7,8,1~8,8,1 +3,4,230~6,4,230 +5,7,186~5,9,186 +7,3,276~8,3,276 +3,6,72~3,8,72 +2,4,163~5,4,163 +0,4,239~2,4,239 +9,4,77~9,6,77 +6,4,110~6,6,110 +7,2,43~7,3,43 +0,0,56~0,1,56 +2,9,11~4,9,11 +7,8,69~9,8,69 +9,7,172~9,9,172 +3,6,238~6,6,238 +6,5,175~6,8,175 +6,2,116~6,5,116 +4,1,72~5,1,72 +6,0,221~8,0,221 +8,1,240~8,2,240 +4,4,100~4,7,100 +4,0,226~4,3,226 +2,8,69~5,8,69 +0,1,90~0,5,90 +1,5,180~3,5,180 +1,1,101~1,1,103 +0,8,279~0,9,279 +5,6,279~5,8,279 +5,2,30~5,4,30 +8,2,114~8,4,114 +4,8,280~5,8,280 +2,0,101~2,2,101 +7,5,26~7,6,26 +3,9,85~5,9,85 +3,4,187~3,7,187 +5,5,286~5,6,286 +9,1,158~9,1,159 +4,8,257~4,8,260 +3,1,58~6,1,58 +0,9,188~2,9,188 +4,8,78~5,8,78 +4,8,32~6,8,32 +7,7,177~7,7,178 +2,1,90~4,1,90 +3,4,227~5,4,227 +7,4,231~7,6,231 +1,2,127~3,2,127 +7,2,121~8,2,121 +1,0,256~1,2,256 +2,0,226~2,2,226 +1,0,229~4,0,229 +5,1,152~5,5,152 +6,5,102~7,5,102 +6,1,100~6,3,100 +6,6,94~8,6,94 +0,4,197~3,4,197 +3,1,195~5,1,195 +6,0,115~6,2,115 +5,0,56~5,2,56 +0,1,233~0,3,233 +1,7,98~1,9,98 +3,3,39~3,3,41 +2,0,16~2,1,16 +7,6,234~7,8,234 +0,6,219~0,8,219 +0,0,181~1,0,181 +6,6,286~8,6,286 +4,3,54~7,3,54 +7,1,171~7,3,171 +4,6,240~5,6,240 +3,4,60~4,4,60 +4,1,217~6,1,217 +7,7,110~7,9,110 +0,6,35~0,6,35 +4,6,275~7,6,275 +9,5,9~9,8,9 +5,5,74~5,8,74 +1,0,230~1,3,230 +6,6,278~8,6,278 +4,4,102~4,5,102 +2,5,285~4,5,285 +4,9,159~7,9,159 +6,8,235~6,9,235 +6,9,18~8,9,18 +7,6,244~9,6,244 +5,9,203~8,9,203 +8,8,11~9,8,11 +6,9,145~8,9,145 +2,2,289~2,4,289 +0,4,98~2,4,98 +8,1,199~9,1,199 +2,6,26~4,6,26 +5,0,107~5,3,107 +3,0,70~3,1,70 +1,5,60~4,5,60 +0,1,87~3,1,87 +4,2,113~8,2,113 +7,4,179~9,4,179 +3,1,265~5,1,265 +4,0,198~6,0,198 +8,7,81~8,9,81 +2,6,219~2,8,219 +0,1,291~3,1,291 +2,5,174~3,5,174 +4,1,80~4,3,80 +5,5,299~5,7,299 +4,6,307~6,6,307 +5,6,131~7,6,131 +2,3,168~2,3,170 +2,7,265~2,9,265 +1,5,260~1,7,260 +6,5,173~8,5,173 +3,0,24~6,0,24 +3,3,208~3,3,209 +8,5,59~8,8,59 +9,0,3~9,0,5 +0,4,241~0,4,241 +4,5,211~6,5,211 +6,4,37~6,6,37 +7,3,240~9,3,240 +7,9,86~9,9,86 +5,3,208~7,3,208 +0,1,67~2,1,67 +6,5,269~8,5,269 +3,1,213~6,1,213 +4,4,305~7,4,305 +3,0,11~5,0,11 +4,7,12~7,7,12 +1,8,222~3,8,222 +7,6,89~9,6,89 +2,9,181~5,9,181 +9,4,264~9,6,264 +9,3,203~9,4,203 +7,6,15~7,8,15 +5,2,194~5,4,194 +2,1,303~2,3,303 +3,5,153~3,7,153 +2,2,176~2,4,176 +7,7,284~7,8,284 +1,6,185~1,8,185 +5,2,265~5,4,265 +3,2,291~5,2,291 +0,2,76~2,2,76 +5,2,268~5,4,268 +5,3,34~5,5,34 +1,9,86~2,9,86 +2,1,287~2,4,287 +2,2,73~2,2,75 +6,0,267~6,1,267 +3,1,277~3,3,277 +9,5,258~9,6,258 +2,1,85~4,1,85 +0,1,55~0,4,55 +1,6,295~4,6,295 +7,4,258~9,4,258 +5,8,72~6,8,72 +8,4,195~9,4,195 +5,3,285~5,5,285 +4,5,172~4,7,172 +6,1,209~6,3,209 +6,8,105~9,8,105 +5,3,8~5,5,8 +2,7,66~2,9,66 +1,7,178~1,8,178 +4,0,200~4,0,202 +2,6,95~2,9,95 +4,7,175~4,9,175 +0,2,270~1,2,270 +0,5,156~3,5,156 +8,7,208~8,9,208 +1,1,63~3,1,63 +0,2,7~0,2,10 +1,8,57~3,8,57 +0,5,189~0,7,189 +4,6,211~6,6,211 +6,2,246~8,2,246 +1,4,39~1,5,39 +0,4,101~2,4,101 +8,1,39~8,1,41 +5,8,97~5,9,97 +9,7,304~9,8,304 +0,0,204~0,3,204 +9,2,58~9,4,58 +0,9,81~2,9,81 +2,0,65~2,1,65 +0,3,2~0,3,4 +8,7,173~9,7,173 +2,8,196~6,8,196 +2,6,162~4,6,162 +6,0,313~6,3,313 +7,5,33~9,5,33 +6,9,232~8,9,232 +5,1,192~8,1,192 +6,2,308~8,2,308 +2,0,27~4,0,27 +1,4,278~2,4,278 +3,9,198~5,9,198 +7,1,211~7,4,211 +7,5,115~7,6,115 +2,2,154~5,2,154 +6,3,170~8,3,170 +1,2,57~3,2,57 +5,0,302~5,2,302 +0,5,38~1,5,38 +5,9,285~6,9,285 +7,0,188~9,0,188 +0,0,92~0,3,92 +5,0,6~6,0,6 +7,7,146~7,9,146 +1,5,292~3,5,292 +4,0,69~4,1,69 +6,4,160~6,7,160 +6,6,17~8,6,17 +1,3,179~3,3,179 +0,8,93~3,8,93 +6,4,237~6,4,239 +7,1,189~7,1,191 +3,5,242~5,5,242 +4,6,246~4,8,246 +9,4,107~9,5,107 +8,4,250~8,6,250 +3,5,297~5,5,297 +1,0,178~4,0,178 +3,6,190~5,6,190 +3,0,8~3,3,8 +7,6,155~7,8,155 +5,4,129~5,7,129 +0,7,17~0,9,17 +6,4,73~9,4,73 +0,8,129~3,8,129 +2,0,30~2,0,30 +7,1,17~8,1,17 +2,9,91~4,9,91 +6,9,17~7,9,17 +1,4,302~3,4,302 +2,2,26~2,2,28 +1,7,247~3,7,247 +9,1,107~9,3,107 +2,5,38~2,5,39 +6,6,75~6,8,75 +3,4,114~5,4,114 +6,4,2~6,6,2 +4,3,102~7,3,102 +7,5,143~9,5,143 +3,5,164~5,5,164 +4,5,132~6,5,132 +2,2,225~4,2,225 +1,3,28~1,6,28 +0,4,34~3,4,34 +0,0,120~0,1,120 +0,3,226~3,3,226 +4,0,278~4,2,278 +6,0,8~6,0,9 +2,2,271~5,2,271 +5,7,137~7,7,137 +7,1,285~7,2,285 +5,2,266~7,2,266 +3,6,251~7,6,251 +1,1,223~1,3,223 +4,6,214~4,8,214 +5,5,169~5,6,169 +2,0,113~4,0,113 +2,7,264~3,7,264 +3,0,35~3,0,37 +5,5,78~5,6,78 +7,1,65~9,1,65 +0,1,206~0,1,208 +7,6,3~8,6,3 +8,3,145~8,5,145 +2,6,63~2,8,63 +7,0,216~8,0,216 +9,6,266~9,8,266 +0,5,161~2,5,161 +0,7,68~2,7,68 +2,3,7~2,5,7 +2,4,284~3,4,284 +3,5,291~5,5,291 +6,1,63~8,1,63 +6,0,187~8,0,187 +8,6,24~9,6,24 +2,7,190~4,7,190 +2,1,13~2,3,13 +6,6,284~6,8,284 +7,5,189~8,5,189 +9,2,192~9,4,192 +2,1,155~4,1,155 +7,2,16~7,3,16 +6,4,148~8,4,148 +9,5,102~9,8,102 +1,7,176~3,7,176 +1,1,58~1,2,58 +8,6,27~8,7,27 +7,7,29~8,7,29 +5,1,162~6,1,162 +1,6,258~3,6,258 +7,7,70~8,7,70 +4,8,55~6,8,55 +1,9,61~3,9,61 +1,8,227~2,8,227 +3,1,272~3,3,272 +9,2,176~9,4,176 +7,5,299~9,5,299 +1,9,178~4,9,178 +1,0,11~1,2,11 +5,3,226~8,3,226 +1,4,41~1,5,41 +0,8,131~0,9,131 +5,0,242~5,3,242 +3,1,121~3,3,121 +4,4,284~4,4,286 +6,5,39~7,5,39 +9,2,150~9,4,150 +2,8,75~4,8,75 +5,2,217~7,2,217 +3,2,279~5,2,279 +4,2,179~6,2,179 +5,2,99~8,2,99 +4,1,59~4,1,62 +6,5,138~6,7,138 +5,8,118~7,8,118 +1,1,27~1,1,27 +2,6,114~5,6,114 +3,8,176~6,8,176 +3,9,82~5,9,82 +4,1,302~4,3,302 +1,7,8~2,7,8 +6,3,111~6,4,111 +0,4,36~0,4,36 +1,7,293~1,9,293 +3,3,239~7,3,239 +9,0,189~9,0,189 +9,7,4~9,7,6 +7,1,264~7,4,264 +5,6,201~5,8,201 +2,1,267~4,1,267 +7,2,174~9,2,174 +4,6,68~4,9,68 +7,8,192~7,8,193 +1,5,96~1,7,96 +3,2,97~4,2,97 +9,2,41~9,5,41 +7,9,175~9,9,175 +3,5,52~5,5,52 +7,2,34~9,2,34 +0,8,87~2,8,87 +1,8,132~1,8,134 +3,5,100~3,5,102 +7,6,33~7,8,33 +9,3,63~9,4,63 +8,3,45~8,3,47 +4,4,135~5,4,135 +2,5,10~2,6,10 +9,5,145~9,8,145 +0,5,21~2,5,21 +8,5,113~8,7,113 +4,7,293~5,7,293 +9,4,36~9,5,36 +0,0,115~0,3,115 +2,3,206~2,5,206 +2,6,163~2,8,163 +7,2,236~7,5,236 +2,2,275~2,4,275 +1,0,5~1,2,5 +2,5,262~2,5,262 +1,5,158~3,5,158 +4,3,161~4,4,161 +4,4,262~7,4,262 +2,4,96~3,4,96 +8,3,110~8,3,112 +2,7,98~2,7,100 +5,5,112~8,5,112 +0,1,259~3,1,259 +2,5,263~2,5,264 +0,7,216~1,7,216 +1,2,4~1,4,4 +3,6,27~4,6,27 +8,5,1~8,6,1 +1,4,180~3,4,180 +0,7,2~0,7,4 +5,7,187~7,7,187 +1,6,196~4,6,196 +5,5,191~5,7,191 +4,5,122~5,5,122 +0,0,259~1,0,259 +5,0,27~5,0,29 +5,4,168~5,6,168 +0,4,83~2,4,83 +6,6,92~7,6,92 +7,2,164~7,4,164 +7,4,86~7,5,86 +3,0,13~6,0,13 +0,9,14~3,9,14 +9,0,247~9,0,249 +5,0,184~7,0,184 +4,0,72~7,0,72 +5,7,231~5,9,231 +6,8,169~6,8,170 +4,0,257~4,3,257 +7,0,162~8,0,162 +0,7,274~0,9,274 +1,1,19~4,1,19 +2,0,3~5,0,3 +6,6,236~9,6,236 +3,5,220~5,5,220 +2,9,121~3,9,121 +0,5,160~1,5,160 +2,2,190~4,2,190 +1,4,31~1,6,31 +8,7,80~8,9,80 +0,2,129~2,2,129 +8,7,88~8,7,89 +8,5,147~8,7,147 +0,8,24~0,9,24 +9,4,297~9,6,297 +5,5,243~7,5,243 +4,1,231~4,4,231 +1,6,58~1,9,58 +3,6,149~6,6,149 +7,4,181~8,4,181 +4,2,285~4,2,285 +8,6,7~8,8,7 +8,1,218~9,1,218 +5,6,8~7,6,8 +6,1,110~9,1,110 +7,3,56~7,4,56 +1,3,77~1,5,77 +3,6,287~3,7,287 +1,5,201~1,7,201 +6,3,121~7,3,121 +7,0,274~7,2,274 +1,8,202~3,8,202 +7,5,83~7,7,83 +6,5,272~6,6,272 +4,9,165~7,9,165 +2,7,297~3,7,297 +0,4,205~0,6,205 +7,5,66~7,8,66 +3,5,250~3,6,250 +2,1,77~2,3,77 +5,5,259~7,5,259 +2,1,103~2,3,103 +1,6,284~3,6,284 +7,5,64~7,7,64 +0,1,24~2,1,24 +0,1,118~2,1,118 +3,1,65~5,1,65 +5,9,256~7,9,256 +7,5,294~9,5,294 +6,1,167~6,3,167 +6,1,283~6,4,283 +3,0,29~3,1,29 +4,3,249~6,3,249 +0,0,71~3,0,71 +5,1,186~7,1,186 +1,3,300~4,3,300 +8,3,56~8,5,56 +0,9,84~2,9,84 +5,0,105~5,2,105 +1,5,163~1,5,166 +5,6,41~5,6,43 +6,6,253~6,9,253 +3,5,17~3,9,17 +5,7,229~8,7,229 +0,9,101~2,9,101 +1,2,229~3,2,229 +2,8,201~4,8,201 +1,2,48~1,4,48 +2,9,38~3,9,38 +1,1,7~1,3,7 +6,1,5~6,4,5 +4,4,72~6,4,72 +3,6,146~6,6,146 +6,2,304~6,4,304 +6,0,101~8,0,101 +1,0,97~3,0,97 +4,8,298~4,8,298 +6,4,303~6,6,303 +6,6,126~6,8,126 +3,0,180~3,0,182 +8,5,87~8,8,87 +5,5,226~5,8,226 +6,5,291~9,5,291 +5,7,32~8,7,32 +8,6,253~8,8,253 +1,1,221~4,1,221 +6,3,57~7,3,57 +2,4,260~2,6,260 +8,5,76~8,7,76 +3,2,258~3,2,258 +6,2,164~6,6,164 +4,7,52~4,9,52 +0,9,23~3,9,23 +9,4,182~9,7,182 +2,2,254~5,2,254 +9,6,38~9,8,38 +5,5,254~8,5,254 +0,3,106~2,3,106 +6,1,289~9,1,289 +9,1,201~9,2,201 +8,6,169~8,9,169 +0,5,3~1,5,3 +9,7,1~9,7,3 +8,5,20~8,7,20 +9,0,8~9,0,10 +4,6,145~5,6,145 +0,2,102~0,2,102 +1,9,80~3,9,80 +4,5,170~6,5,170 +2,4,94~5,4,94 +9,4,113~9,6,113 +5,4,97~7,4,97 +6,0,196~6,2,196 +3,4,245~3,7,245 +3,5,214~7,5,214 +8,2,42~8,3,42 +4,4,207~6,4,207 +9,1,153~9,3,153 +1,4,43~4,4,43 +3,8,87~5,8,87 +0,4,126~0,4,129 +1,5,176~3,5,176 +4,7,282~4,9,282 +5,9,17~5,9,18 +0,4,118~3,4,118 +0,3,238~0,5,238 +3,1,83~5,1,83 +6,1,131~6,4,131 +5,7,91~5,8,91 +8,9,88~9,9,88 +6,3,56~6,4,56 +4,0,187~4,3,187 +5,3,156~8,3,156 +1,2,210~1,6,210 +3,3,267~6,3,267 +4,7,54~6,7,54 +1,4,104~3,4,104 +4,9,237~7,9,237 +8,6,189~8,8,189 +2,3,46~2,6,46 +5,3,203~5,6,203 +1,0,110~3,0,110 +5,9,15~5,9,16 +2,6,286~2,9,286 +2,9,291~5,9,291 +2,7,207~3,7,207 +1,3,258~1,4,258 +5,3,231~5,6,231 +5,8,296~6,8,296 +4,6,62~7,6,62 +1,4,45~1,5,45 +4,8,153~4,9,153 +3,7,108~3,9,108 +8,6,80~8,6,81 +3,6,267~3,9,267 +3,0,295~3,2,295 +1,4,207~1,7,207 +1,7,225~1,8,225 +3,2,241~3,3,241 +5,3,216~8,3,216 +0,2,3~0,2,6 +3,3,190~6,3,190 +7,6,175~8,6,175 +0,6,32~2,6,32 +3,6,213~3,7,213 +1,2,212~1,4,212 +6,4,117~6,7,117 +4,3,276~4,4,276 +1,1,197~3,1,197 +2,5,66~3,5,66 +4,3,18~6,3,18 +1,5,198~3,5,198 +7,1,158~7,4,158 +6,6,19~8,6,19 +6,2,149~6,4,149 +5,2,245~6,2,245 +2,8,209~3,8,209 +5,1,106~7,1,106 +7,7,16~8,7,16 +3,7,81~3,7,84 +1,9,266~3,9,266 +8,0,35~8,2,35 +2,7,31~3,7,31 +4,2,272~8,2,272 +4,9,13~6,9,13 +3,8,295~5,8,295 +5,2,239~8,2,239 +8,3,281~8,4,281 +8,5,305~9,5,305 +9,8,208~9,9,208 +8,0,109~8,3,109 +4,5,151~4,8,151 +2,7,210~4,7,210 +5,5,89~7,5,89 +3,1,281~5,1,281 +3,8,124~6,8,124 +2,5,293~2,5,294 +6,5,181~8,5,181 +8,5,301~8,5,303 +4,2,235~6,2,235 +2,0,60~2,2,60 +1,3,33~1,5,33 +6,4,86~6,6,86 +3,7,200~4,7,200 +9,7,108~9,9,108 +7,5,24~7,7,24 +7,5,219~9,5,219 +5,5,141~8,5,141 +0,5,105~3,5,105 +5,0,167~5,1,167 +2,6,282~5,6,282 +0,7,118~1,7,118 +2,3,200~4,3,200 +4,3,16~4,5,16 +2,0,105~2,2,105 +3,7,197~3,9,197 +9,4,10~9,6,10 +1,7,294~1,8,294 +7,6,246~9,6,246 +0,7,188~1,7,188 +6,0,180~6,2,180 +8,3,267~8,5,267 +9,0,155~9,1,155 +7,6,252~7,9,252 +3,3,6~5,3,6 +9,4,95~9,7,95 +5,2,307~5,4,307 +5,2,295~5,3,295 +4,5,254~4,7,254 +1,3,260~1,4,260 +2,0,114~2,0,117 +7,7,143~7,9,143 +0,2,175~0,3,175 +6,2,220~6,4,220 +3,5,86~3,8,86 +0,2,110~2,2,110 +8,4,280~8,7,280 +7,2,109~7,4,109 +3,2,310~6,2,310 +0,0,260~0,0,260 +6,3,104~8,3,104 +6,3,153~6,5,153 +6,3,134~9,3,134 +2,5,188~2,7,188 +0,6,233~0,7,233 +4,1,68~4,3,68 +1,6,99~3,6,99 +4,0,305~6,0,305 +4,8,23~4,8,25 +1,4,162~1,7,162 +7,3,40~9,3,40 +3,5,59~6,5,59 +2,7,180~2,9,180 +7,6,6~9,6,6 +6,5,188~9,5,188 +4,6,164~4,9,164 +6,2,68~6,4,68 +6,4,27~6,4,29 +9,2,151~9,5,151 +4,4,48~4,7,48 +8,4,156~8,6,156 +0,4,124~3,4,124 +0,5,91~0,5,94 +5,6,294~5,8,294 +0,4,200~0,4,202 +4,6,153~7,6,153 +4,3,199~4,4,199 +3,2,223~4,2,223 +4,7,96~7,7,96 +3,2,242~3,3,242 +4,6,156~4,8,156 +3,2,203~3,3,203 +4,5,115~5,5,115 +0,2,107~0,3,107 +2,2,72~2,4,72 +0,3,89~0,6,89 +0,8,88~1,8,88 +8,4,39~8,6,39 +7,0,64~7,1,64 +5,1,126~5,3,126 +2,1,182~2,3,182 +4,3,279~4,5,279 +6,1,61~8,1,61 +4,2,75~4,4,75 +4,3,162~6,3,162 +5,3,257~5,6,257 +7,9,83~8,9,83 +5,4,181~6,4,181 +6,3,183~6,5,183 +1,7,217~1,9,217 +4,6,30~4,8,30 +9,5,257~9,8,257 +0,5,241~0,8,241 +1,3,36~1,4,36 +7,0,111~7,1,111 +8,1,196~9,1,196 +2,9,109~4,9,109 +4,4,134~6,4,134 +5,6,310~5,6,313 +9,2,109~9,4,109 +6,2,278~6,5,278 +3,7,90~6,7,90 +3,0,255~3,3,255 +6,1,43~9,1,43 +5,1,74~6,1,74 +5,8,208~5,9,208 +4,5,134~7,5,134 +4,4,270~6,4,270 +7,0,45~7,2,45 +4,5,217~4,5,219 +2,5,27~2,7,27 +5,4,281~5,6,281 +0,8,230~2,8,230 +1,0,107~2,0,107 +8,5,247~8,7,247 +1,6,33~4,6,33 +6,4,58~8,4,58 +5,4,27~5,4,29 +6,7,2~6,7,4 +6,8,106~7,8,106 +9,3,15~9,6,15 +7,8,161~7,8,163 +6,6,9~7,6,9 +3,5,118~3,7,118 +5,9,95~6,9,95 +4,6,85~7,6,85 +2,0,218~2,1,218 +5,0,232~5,3,232 +5,3,165~5,5,165 +0,4,292~3,4,292 +7,2,151~7,4,151 +3,4,182~5,4,182 +4,1,109~4,1,111 +5,0,251~6,0,251 +5,6,109~9,6,109 +8,5,78~8,7,78 +6,8,108~8,8,108 +3,7,78~3,9,78 +7,7,243~7,8,243 +6,1,195~8,1,195 +7,3,19~8,3,19 +7,3,238~7,5,238 +2,2,178~2,3,178 +6,6,89~6,6,91 +4,7,291~5,7,291 +3,6,261~3,7,261 +5,4,225~5,6,225 +4,4,26~6,4,26 +6,1,286~8,1,286 +6,5,292~6,6,292 +3,8,14~4,8,14 +0,5,296~1,5,296 +0,2,99~0,4,99 +1,3,129~3,3,129 +8,7,230~8,7,230 +4,5,223~4,7,223 +0,1,105~1,1,105 +0,8,21~2,8,21 +4,6,276~6,6,276 +1,9,8~2,9,8 +0,0,235~0,2,235 +9,6,12~9,8,12 +2,4,70~4,4,70 +1,7,114~1,7,116 +4,2,218~6,2,218 +1,3,55~4,3,55 +6,7,288~6,8,288 +1,0,191~3,0,191 +3,3,119~6,3,119 +1,2,24~2,2,24 +7,5,136~7,5,138 +3,9,209~3,9,211 +4,2,31~8,2,31 +5,2,114~7,2,114 +0,3,243~0,4,243 +6,8,129~6,9,129 +2,1,10~2,4,10 +8,6,238~9,6,238 +8,1,42~8,1,42 +3,5,73~3,8,73 +5,2,53~5,5,53 +1,0,33~3,0,33 +1,1,72~3,1,72 +9,5,97~9,7,97 +2,7,205~2,8,205 +4,1,135~4,3,135 +0,2,294~0,5,294 +7,3,298~8,3,298 +3,6,201~3,7,201 +2,0,259~5,0,259 +5,9,189~5,9,192 +0,6,38~0,9,38 +6,0,218~9,0,218 +2,1,12~2,4,12 +0,2,271~0,5,271 +5,2,12~5,5,12 +0,5,169~1,5,169 +0,3,75~0,7,75 +5,8,232~5,8,234 +8,6,153~9,6,153 +8,1,165~8,1,167 +5,5,175~5,6,175 +3,3,286~3,5,286 +2,3,124~5,3,124 +5,4,208~5,4,208 +2,3,195~2,7,195 +1,2,9~1,2,10 +4,3,82~5,3,82 +9,1,245~9,2,245 +7,0,163~7,2,163 +6,9,19~8,9,19 +0,3,222~0,6,222 +3,0,58~6,0,58 +4,7,128~6,7,128 +6,5,76~6,5,77 +7,0,8~7,1,8 +0,8,41~0,9,41 +8,0,279~8,0,282 +5,4,31~7,4,31 +1,6,164~1,6,165 +4,8,127~6,8,127 +1,4,80~3,4,80 +9,3,104~9,5,104 +3,4,89~6,4,89 +0,5,86~2,5,86 +1,0,99~1,2,99 +0,0,265~2,0,265 +6,8,167~9,8,167 +0,5,41~0,7,41 +0,9,182~1,9,182 +1,6,116~2,6,116 +6,1,40~6,3,40 +6,0,104~8,0,104 +2,3,128~5,3,128 +1,8,9~4,8,9 +5,3,67~5,5,67 +7,4,75~7,4,76 +3,8,62~3,8,64 +3,9,200~5,9,200 +5,3,13~7,3,13 +7,3,60~9,3,60 +5,1,151~5,3,151 +4,8,256~6,8,256 +6,9,15~8,9,15 +0,2,52~0,4,52 +3,2,205~3,3,205 +1,2,301~1,4,301 +2,3,18~2,5,18 +2,8,200~5,8,200 +1,7,213~2,7,213 +6,4,78~8,4,78 +1,0,233~1,2,233 +6,0,276~8,0,276 +7,5,18~7,5,18 +2,1,198~4,1,198 +1,0,180~2,0,180 +1,2,292~3,2,292 +0,1,18~0,4,18 +9,2,43~9,4,43 +5,3,266~9,3,266 +2,0,64~2,1,64 +6,7,82~8,7,82 +1,6,70~2,6,70 +0,2,86~0,4,86 +1,5,46~1,6,46 +4,7,224~4,7,226 +9,9,2~9,9,5 +2,7,204~2,8,204 +7,5,253~9,5,253 +2,0,188~5,0,188 +6,8,267~9,8,267 +0,0,34~2,0,34 +1,7,111~3,7,111 +5,4,65~5,7,65 +6,8,61~7,8,61 +3,7,102~5,7,102 +3,0,172~3,2,172 +3,5,61~3,7,61 +4,0,110~5,0,110 +5,1,86~5,4,86 +6,4,281~6,6,281 +8,4,158~9,4,158 +3,4,53~3,7,53 +5,1,283~5,3,283 +3,9,118~6,9,118 +0,7,230~2,7,230 +6,7,92~8,7,92 +8,2,106~8,4,106 +5,5,216~7,5,216 +2,1,185~4,1,185 +5,2,185~8,2,185 +8,4,37~8,8,37 +3,0,94~3,2,94 +6,2,192~6,3,192 +5,5,119~7,5,119 +3,8,127~3,8,128 +5,1,215~8,1,215 +6,7,285~6,8,285 +6,1,307~6,2,307 +1,1,269~1,2,269 +9,4,35~9,5,35 +6,3,300~6,4,300 +7,5,145~7,5,148 +1,6,216~3,6,216 +4,3,113~4,6,113 +6,3,38~6,6,38 +3,2,259~3,4,259 +4,9,154~5,9,154 +3,0,124~3,2,124 +4,1,212~6,1,212 +3,3,172~3,6,172 +2,0,6~4,0,6 +3,0,175~3,1,175 +2,6,62~2,8,62 +6,1,6~8,1,6 +0,2,21~2,2,21 +4,2,282~7,2,282 +3,4,175~3,4,177 +3,9,205~3,9,208 +4,3,193~5,3,193 +4,3,191~5,3,191 +3,2,37~3,3,37 +4,3,288~4,5,288 +0,4,221~0,7,221 +7,7,282~8,7,282 +7,0,198~7,4,198 +4,9,229~6,9,229 +1,7,290~3,7,290 +4,1,164~7,1,164 +2,4,85~2,8,85 +6,0,285~8,0,285 +4,5,61~4,5,63 +3,7,98~6,7,98 +1,7,184~3,7,184 +6,6,154~6,7,154 +3,4,45~5,4,45 +4,3,9~4,3,10 +3,5,98~5,5,98 +7,6,238~7,8,238 +2,5,247~5,5,247 +6,9,26~8,9,26 +7,3,55~9,3,55 +8,8,307~9,8,307 +3,9,284~5,9,284 +3,5,74~4,5,74 +5,4,91~7,4,91 +0,1,20~0,1,22 +7,5,220~7,6,220 +6,2,110~7,2,110 +7,6,289~7,6,291 +7,8,240~9,8,240 +8,5,73~8,7,73 +3,6,246~3,8,246 +2,7,35~2,9,35 +2,4,196~4,4,196 +5,5,23~5,7,23 +4,0,106~4,2,106 +0,6,227~0,7,227 +4,1,104~4,3,104 +6,3,265~6,5,265 +1,8,268~2,8,268 +1,3,304~1,5,304 +7,7,36~7,7,39 +2,0,98~2,0,100 +6,0,36~8,0,36 +7,2,11~8,2,11 +1,3,3~4,3,3 +8,6,239~8,6,241 +0,2,53~2,2,53 +3,1,283~3,4,283 +7,3,105~7,3,106 +7,4,310~7,6,310 +1,3,166~3,3,166 +1,1,13~1,1,15 +3,5,152~3,6,152 +9,6,299~9,9,299 +0,6,2~1,6,2 +3,5,244~5,5,244 +0,7,273~0,9,273 +9,5,261~9,6,261 +0,4,25~0,5,25 +4,0,293~4,2,293 +7,4,149~9,4,149 +0,4,72~0,4,73 +3,5,50~4,5,50 +1,4,306~3,4,306 +4,1,275~4,4,275 +5,5,288~8,5,288 +2,5,64~3,5,64 +0,7,33~2,7,33 +8,1,162~8,2,162 +4,6,49~4,9,49 +3,9,184~5,9,184 +6,6,167~6,6,169 +0,6,276~0,9,276 +6,0,37~6,0,39 +9,0,243~9,2,243 +6,1,75~8,1,75 +1,8,90~4,8,90 +9,5,184~9,7,184 +0,3,235~0,4,235 +7,3,281~7,6,281 +2,1,232~4,1,232 +8,2,122~8,2,123 +3,6,154~3,8,154 +2,2,248~2,5,248 +1,8,100~3,8,100 +1,7,181~3,7,181 +7,0,199~7,2,199 +5,5,10~6,5,10 +7,1,1~7,3,1 +7,7,287~7,9,287 +1,3,256~3,3,256 +3,5,56~3,8,56 +9,8,15~9,8,16 +3,2,67~3,6,67 +1,1,98~3,1,98 +2,8,3~4,8,3 +8,6,40~8,8,40 +5,0,248~5,3,248 +8,4,22~8,7,22 +2,1,273~2,4,273 +6,9,3~8,9,3 +4,5,3~4,7,3 +2,4,23~4,4,23 +8,0,159~8,3,159 +5,7,145~7,7,145 +4,4,282~4,5,282 +3,8,206~5,8,206 +5,1,66~7,1,66 +3,2,182~5,2,182 +1,6,244~4,6,244 +5,7,61~6,7,61 +6,3,65~6,6,65 +0,2,70~0,6,70 +7,8,4~8,8,4 +8,5,293~9,5,293 +5,3,173~5,5,173 +0,4,58~3,4,58 +8,4,85~8,7,85 +5,7,227~5,9,227 +2,4,20~3,4,20 +0,0,19~3,0,19 +1,5,36~4,5,36 +1,6,204~1,8,204 +6,6,134~6,7,134 +6,3,308~9,3,308 +5,6,243~6,6,243 +9,2,202~9,4,202 +8,7,114~8,9,114 +7,4,282~7,4,283 +0,3,201~2,3,201 +7,2,62~7,3,62 +6,4,233~6,4,234 +1,5,25~1,6,25 +7,7,162~7,7,165 +3,7,9~5,7,9 +7,8,158~9,8,158 +3,3,289~3,5,289 +2,6,159~5,6,159 +1,8,12~3,8,12 +5,7,204~5,9,204 +6,1,7~6,3,7 +4,6,20~4,8,20 +1,6,119~4,6,119 +9,4,256~9,7,256 +8,1,14~8,4,14 +4,1,96~5,1,96 +8,5,23~8,5,24 +5,2,288~5,4,288 +5,2,103~7,2,103 +3,1,177~5,1,177 +8,5,186~8,7,186 +0,3,283~0,5,283 +6,4,167~6,4,170 +6,1,108~6,4,108 +1,3,183~3,3,183 +4,6,40~6,6,40 +2,1,21~4,1,21 +4,5,173~4,7,173 +8,0,77~8,3,77 +4,9,286~4,9,288 +0,3,228~0,3,230 +4,2,166~6,2,166 +5,0,112~5,1,112 +4,7,289~6,7,289 +1,2,234~1,2,237 +0,4,279~0,4,281 +2,0,263~2,2,263 +1,7,192~3,7,192 +4,5,37~4,5,39 +9,5,92~9,7,92 +1,1,215~4,1,215 +2,2,250~4,2,250 +8,2,177~8,3,177 +2,5,69~2,6,69 +5,0,294~5,2,294 +1,6,89~3,6,89 +7,7,25~7,9,25 +2,8,88~2,9,88 +6,3,179~7,3,179 +5,3,286~7,3,286 +5,7,85~6,7,85 +2,0,67~5,0,67 +5,8,257~5,8,259 +3,1,95~6,1,95 +7,5,68~7,7,68 +0,2,176~0,2,176 +0,3,130~3,3,130 +2,5,75~4,5,75 +1,6,155~3,6,155 +4,9,117~6,9,117 +5,5,228~7,5,228 +7,0,214~7,1,214 +3,4,229~5,4,229 +3,2,33~5,2,33 +1,1,261~4,1,261 +2,3,198~5,3,198 +0,4,277~3,4,277 +6,2,178~6,5,178 +2,1,174~4,1,174 +1,9,187~4,9,187 +2,8,59~4,8,59 +1,1,268~4,1,268 +0,3,173~2,3,173 +3,1,57~5,1,57 +4,4,294~4,6,294 +4,7,176~6,7,176 +4,5,15~7,5,15 +3,6,63~4,6,63 +7,4,108~9,4,108 +5,6,156~5,9,156 +1,3,219~1,6,219 +5,2,226~5,2,226 +7,4,32~7,5,32 +6,3,228~8,3,228 +3,0,275~3,3,275 +2,3,204~2,4,204 +4,0,98~6,0,98 +7,1,241~8,1,241 diff --git a/data/23_2020.txt b/data/23_2020.txt new file mode 100644 index 0000000..17f006f --- /dev/null +++ b/data/23_2020.txt @@ -0,0 +1 @@ +364289715 diff --git a/data/23_2021.txt b/data/23_2021.txt new file mode 100644 index 0000000..0a608d3 --- /dev/null +++ b/data/23_2021.txt @@ -0,0 +1,5 @@ +############# +#...........# +###C#C#B#D### + #D#A#B#A# + ######### diff --git a/data/23_2023.txt b/data/23_2023.txt new file mode 100644 index 0000000..d358ec2 --- /dev/null +++ b/data/23_2023.txt @@ -0,0 +1,141 @@ +#.########################################################################################################################################### +#.#.......#...###.....#.........#...#.......#...###.......#...###.......#...#...#...#.....#.....#.....#.........###.....###...#...#...#...### +#.#.#####.#.#.###.###.#.#######.#.#.#.#####.#.#.###.#####.#.#.###.#####.#.#.#.#.#.#.#.###.#.###.#.###.#.#######.###.###.###.#.#.#.#.#.#.#.### +#.#.#.....#.#...#.#...#.#.......#.#.#.#.....#.#.#...#...#...#...#.....#.#.#...#.#.#.#.#...#.#...#.#...#.......#...#.#...#...#...#.#.#.#.#...# +#.#.#.#####.###.#.#.###.#.#######.#.#.#.#####.#.#.###.#.#######.#####.#.#.#####.#.#.#.#.###.#.###.#.#########.###.#.#.###.#######.#.#.#.###.# +#...#.#...#.#...#.#.....#.#...###.#.#.#.###...#.#.#...#.#.......#...#.#.#.#.....#.#...#.#...#...#.#.#.....###...#.#.#...#.#.......#.#.#.#...# +#####.#.#.#.#.###.#######.#.#.###.#.#.#.###.###.#.#.###.#.#######.#.#.#.#.#.#####.#####.#.#####.#.#.#.###.#####.#.#.###.#.#.#######.#.#.#.### +#.....#.#.#.#...#.....#...#.#...#.#.#.#...#...#.#...#...#.>.>.....#.#.#.#.#...>.>.#.....#.#.....#.#.#...#.###...#.#...#.#.#.#...###.#.#.#.### +#.#####.#.#.###.#####.#.###.###.#.#.#.###.###.#.#####.#####v#######.#.#.#.#####v###.#####.#.#####.#.###.#.###.###.###.#.#.#.#.#.###.#.#.#.### +#...#...#.#.#...#...#.#.###...#.#.#.#...#.#...#...#...#####.......#.#.#.#...#...###.###...#.......#...#.#...#...#.#...#.#.#.#.#.#...#.#.#...# +###.#.###.#.#.###.#.#.#.#####.#.#.#.###.#.#.#####.#.#############.#.#.#.###.#.#####.###.#############.#.###.###.#.#.###.#.#.#.#.#.###.#.###.# +#...#.#...#.#...#.#.#.#.#...#.#.#.#.>.>.#...#.....#.....#.........#...#.#...#.#...#...#...#...........#...#.#...#.#...#.#.#.#.#.#.#...#.#...# +#.###.#.###.###.#.#v#.#.#.#.#.#.#.###v#######.#########.#.#############.#.###.#.#.###.###.#.#############.#.#.###.###.#.#.#.#.#.#.#.###.#.### +#...#.#...#.#...#.#.>.#.#.#.#.#...###.......#.#...#.....#...........###...###...#...#...#.#.#...###...#...#...###.....#.#.#.#.#.#.#...#.#...# +###.#.###.#.#.###.#v###.#.#.#.#############.#.#.#.#.###############.###############.###.#.#.#.#.###.#.#.###############.#.#.#.#.#.###.#.###.# +###.#.###...#.....#...#.#.#...#.............#...#...#.........#...#...#.............###...#...#...#.#.#...#...........#.#.#...#...###...#...# +###.#.###############.#.#.#####.#####################.#######.#.#.###.#.#########################.#.#.###.#.#########.#.#.###############.### +###.#...#.............#...#.....#.......#####...#.....#.....#...#.....#.....#...#...#...#.........#.#.###...#...#...#.#.#...#.....#.......### +###.###.#.#################.#####.#####.#####.#.#.#####.###.###############.#.#.#.#.#.#.#.#########.#.#######.#.#.#.#.#.###.#.###.#.######### +###.....#...............###.......#...#...#...#.#.#.....#...###.........###...#...#...#.#.#...#...#.#...#.>.>.#...#...#.....#...#...#.......# +#######################.###########.#.###.#.###.#.#.#####.#####.#######.###############.#.#.#.#.#.#.###.#.#v###################.#####.#####.# +#.......#.....#.........#...#.......#.....#.#...#...#...#.......#...#...#...............#.#.#.#.#...#...#.#.#...#...#.........#.#...#.#.....# +#.#####.#.###.#.#########.#.#.#############.#.#######.#.#########.#.#.###.###############.#.#.#.#####.###.#.#.#.#.#.#.#######.#.#.#.#.#.##### +#.....#.#...#...#...#...#.#.#.......#.......#.....#...#...........#.#.###...#...#...#...#...#.#.....#.....#...#...#...#.......#.#.#...#.....# +#####.#.###.#####.#.#.#.#.#.#######.#.###########.#.###############.#.#####.#.#.#.#.#.#.#####.#####.###################.#######.#.#########.# +#...#.#.###.......#.#.#.#.#.#...#...#.#.........#.#...#...........#.#.#...#...#...#...#.....#.#...#.#####.....#...#...#.......#...###...#...# +#.#.#.#.###########.#.#.#.#.#.#.#.###.#.#######.#.###.#.#########.#.#.#.#.#################.#.#.#.#.#####.###.#.#.#.#.#######.#######.#.#.### +#.#...#.#...#.......#.#.#.#.#.#.#.....#...#...#...###...###.......#.#.#.#.............#...#.#.#.#...#.....###...#...#.#.......#.......#...### +#.#####.#.#.#.#######.#.#.#.#.#.#########.#.#.#############.#######.#.#.#############.#.#.#.#.#.#####.###############.#.#######.############# +#.#...#...#...#...###.#.#.#.#.#.#...###...#.#.#...###...#...#.....#...#.........#...#...#...#.#.#.....#...#...#...###...###...#.............# +#.#.#.#########.#.###.#.#.#.#.#.#.#.###v###.#.#.#.###.#.#.###.###.#############.#.#.#########.#.#.#####.#.#.#.#.#.#########.#.#############.# +#.#.#.#.......#.#...#.#.#.#.#.#.#.#.#.>.>.#.#.#.#.###.#.#...#...#...#...#...###...#.....#...#...#...#...#...#...#.....#...#.#.#.............# +#.#.#.#.#####.#.###.#.#.#.#.#.#.#.#.#.#v#.#.#.#.#.###.#.###v###.###.#.#.#.#.###########.#.#.#######.#.###############.#.#.#.#.#.############# +#...#...#...#.#...#...#.#.#.#.#...#...#.#.#.#.#.#...#.#.#.>.>.#.#...#.#.#.#.###.......#...#...#.....#.#.....#...#...#.#.#.#.#.#.............# +#########.#.#.###.#####.#.#.#.#########.#.#.#.#.###.#.#.#.#v#.#.#.###.#.#.#.###.#####.#######.#.#####.#.###.#.#.#.#.#.#.#.#.#.#############.# +#.........#...###.....#.#.#.#...#.......#...#...###...#...#.#...#.#...#...#...#.....#.........#.......#...#...#...#...#.#...#.###...#.......# +#.###################.#.#.#.###.#.#########################.#####.#.#########.#####.#####################.#############.#####.###.#.#.####### +#.............###.....#.#.#.#...#...............#.......#...#.....#.#...#.....#...#.............#...#...#.........#...#.....#.#...#.#.......# +#############.###.#####.#.#.#.#################.#.#####.#.###.#####.#.#.#.#####.#.#############.#.#.#.#.#########.#.#.#####.#.#.###.#######.# +#.............#...#.....#.#...#...........#.....#.....#.#...#...#...#.#...#...#.#.#...#.........#.#...#.#.........#.#.#...#.#.#...#.#...#...# +#.#############.###.#####.#####.#########.#.#########.#.###.###.#.###.#####.#.#.#.#.#.#v#########.#####.#.#########.#.#.#.#.#.###.#.#.#.#v### +#.........###...###.....#.....#.....#...#...#.........#.#...#...#.###...#...#.#.#.#.#.>.>.#...###...#...#.#.....#...#.#.#.#.#...#.#.#.#.>.### +#########v###.#########.#####.#####.#.#.#####.#########.#.###.###.#####.#.###.#.#.#.###v#.#.#.#####.#.###v#.###.#.###.#.#.#.###.#.#.#.###v### +#.......#.>...#...#...#.......#.....#.#...#...#...#...#.#...#...#...#...#...#...#...#...#.#.#...#...#...>.>.#...#.#...#.#...###.#.#...###.### +#.#####.#v#####.#.#.#.#########.#####.###.#.###.#.#.#.#.###.###.###.#.#####.#########.###.#.###.#.#######v###.###.#.###.#######.#.#######.### +#.....#.#.......#.#.#.#...#...#.#.....#...#.....#...#.#.#...#...#...#.......#.........###...###.#.....#...###.#...#...#.......#...###...#...# +#####.#.#########.#.#.#.#.#.#.#.#.#####.#############.#.#.###.###.###########.#################.#####.#.#####.#.#####.#######.#######.#.###.# +#.....#...........#.#...#.#.#.#...#.....###...........#...###.....###.......#.#...............#.......#.....#...#####...#.....#.......#...#.# +#.#################.#####.#.#.#####.#######.#########################.#####.#.#.#############.#############.###########.#.#####.#########.#.# +#.........#...#...#.....#.#.#.#...#.......#.......................#...#.....#...#.......#...#.###...#.......###...###...#...###.........#.#.# +#########.#.#.#.#.#####.#.#.#.#.#.#######.#######################.#.###.#########.#####.#.#.#.###.#.#.#########.#.###.#####.###########.#.#.# +#.........#.#.#.#.#.....#.#.#.#.#.........###...#####...#.........#...#.###...###.....#.#.#...#...#.#...........#...#.#.....#.....###...#...# +#.#########.#.#.#.#.#####.#.#.#.#############.#.#####.#.#.###########.#.###.#.#######.#.#.#####.###.###############.#.#.#####.###.###.####### +#...#.....#.#.#.#.#.....#.#.#.#.....###...###.#.#.....#...#...#...#...#...#.#.#...###.#...#...#...#.#.........#...#.#...#...#...#.....#.....# +###.#.###.#.#.#.#.#####.#.#.#.#####v###.#.###.#.#.#########.#.#.#.#.#####.#.#.#.#.###v#####.#.###.#.#.#######.#.#.#.#####.#.###.#######.###.# +###...###.#.#.#.#.#...#.#.#.#.#...>.>...#.....#.#.........#.#.#.#.#...#...#.#...#...>.>.#...#.#...#.#...#...#...#...#...#.#.###.......#.#...# +#########.#.#.#.#v#.#.#.#.#.#.#.###v###########.#########.#.#.#.#.###.#.###.#########v#.#.###.#.###.###v#.#.#########.#.#.#.#########.#.#.### +#...#.....#.#...#.>.#.#.#.#.#.#.###...#.......#.#.........#.#.#.#.#...#...#.#.....#...#.#...#.#...#...>.>.#.....#...#.#.#.#.#...#...#...#...# +#.#.#.#####.#####v###.#.#.#.#.#.#####.#.#####.#.#.#########.#.#.#.#.#####.#.#.###.#.###.###.#.###.#####v#######.#.#.#.#.#.#.#.#.#.#.#######.# +#.#.#.......#.....###...#.#.#...#...#.#.#...#...#.....#...#.#.#.#.#.....#...#...#.#.###.....#.#...###...#.......#.#.#.#.#.#.#.#.#.#.#.....#.# +#.#.#########.###########.#.#####.#.#.#.#.#.#########.#.#.#.#.#.#.#####.#######.#.#.#########.#.#####.###.#######.#.#.#.#.#.#.#.#.#.#v###.#.# +#.#...#...###...#.....#...#...#...#...#...#...###...#...#.#.#.#.#...#...#.......#...#...#.....#.#.....###.#...#...#...#.#.#...#...#.>.###.#.# +#.###.#.#.#####.#.###.#.#####.#.#############.###.#.#####.#.#.#.###.#.###.###########.#.#.#####.#.#######.#.#.#.#######.#.###########v###.#.# +#...#...#.#...#.#.#...#.......#.........#...#...#.#.#.....#.#...###.#...#.............#.#.....#.#.......#.#.#.#.....###.#...#.......#.###...# +###.#####.#.#.#.#.#.###################.#.#.###.#.#.#.#####.#######.###.###############.#####.#.#######.#.#.#.#####.###.###.#.#####.#.####### +###...#...#.#.#...#.......#.............#.#.###.#.#.#.#...#.......#...#.#.............#.....#...#.......#...#...#...#...#...#.....#.#.......# +#####.#.###.#.###########.#.#############.#.###.#.#.#v#.#.#######.###.#.#.###########.#####.#####.#############.#.###.###.#######.#.#######.# +#.....#.....#...#...#.....#...#...........#...#.#.#.>.>.#.#...#...###...#...........#.#.....###...#.........###...###...#.#...#...#.........# +#.#############.#.#.#.#######.#.#############.#.#.###v###.#.#.#.###################.#.#.#######.###.#######.###########.#.#.#.#.############# +#...........###...#...#...###...#.........#...#...#...###...#...#####.....#.........#...###...#.....#.......#...#...###...#.#.#.............# +###########.###########.#.#######.#######.#.#######.#################.###.#.###############.#.#######.#######.#.#.#.#######.#.#############.# +#...........#.........#.#...#...#.......#.#.......#...#.....#.........#...#.........#.......#...#...#.....###.#.#.#.###...#.#...............# +#.###########.#######.#.###.#.#.#######.#.#######.###.#.###.#.#########.###########.#.#########.#.#.#####.###.#.#.#.###.#.#.################# +#.........###.#.......#.#...#.#.#...#...#.#...#...###...###...#...#...#.#...........#.....#...#...#.......#...#.#.#...#.#.#.........###.....# +#########.###.#.#######.#.###.#.#.#.#v###.#.#.#.###############.#.#.#.#.#.###############.#.#.#############.###.#.###.#.#.#########.###.###.# +#.........#...#.#...#...#...#.#...#.>.>.#...#...###...#.....#...#...#...#.#.......#...###.#.#.#.......###...#...#.#...#.#.###.....#.....#...# +#.#########.###.#.#.#.#####.#.#######v#.###########.#.#.###.#.###########.#.#####.#.#.###.#.#.#.#####.###.###.###.#.###.#.###v###.#######.### +#.....#...#...#...#.#.#.....#.#.......#.#...#...#...#...#...#.....#.....#...#.....#.#.###...#...#...#...#...#...#.#...#.#.#.>.###.........### +#####.#.#.###.#####.#.#.#####.#.#######.#.#.#.#.#.#######.#######.#.###.#####.#####.#.###########.#.###.###.###.#.###.#.#.#.#v############### +#...#...#.#...#...#.#.#.....#.#.......#...#.#.#.#.....#...#...#...#...#...#...#.....#.....#.......#.....###...#.#...#...#.#.#...#.....#.....# +#.#.#####.#.###.#.#.#.#####.#.#######.#####.#.#.#####.#.###.#.#v#####.###.#.###.#########.#.#################.#.###.#####.#.###.#.###.#.###.# +#.#.....#.#.....#.#.#.#.....#...#.....#...#.#.#.#...#.#...#.#.>.>.#...#...#...#.#...#.....#.#...........#...#.#.#...#.....#.###...#...#.#...# +#.#####.#v#######.#.#.#.#######.#.#####.#.#.#.#.#.#.#.###.#.###v#.#.###.#####.#.#.#.#.#####.#.#########.#.#.#.#.#.###.#####.#######.###.#.### +#.#...#.#.>.......#...#.........#...#...#.#.#.#.#.#...###...###.#.#.#...#####.#.#.#...#...#...###...#...#.#...#...###...#...###.....#...#...# +#.#.#.#.#v#########################.#.###.#.#.#.#.#############.#.#.#.#######v#.#.#####.#.#######.#.#.###.#############.#.#####.#####.#####.# +#...#.#.#...............#...........#.#...#...#.#...#...#.....#.#.#.#.#...#.>.>.#.....#.#.#...#...#.#.###...........###...#...#.......#...#.# +#####.#.###############.#.###########.#.#######.###.#.#.#.###.#.#.#.#.#.#.#.#v#######.#.#.#.#.#.###.#.#############.#######.#.#########.#.#.# +#.....#.................#.............#.......#...#...#.#...#...#...#.#.#.#.#.....#...#.#.#.#.#...#.#.#...#...#...#.#.....#.#...........#...# +#.###########################################.###.#####.###.#########.#.#.#.#####.#.###.#.#.#.###.#.#v#.#.#.#.#.#.#.#.###.#.################# +#...........#...........#...........#.........###.#.....#...###...###...#.#.#.....#.....#.#.#...#.#.>.>.#...#...#.#.#...#.#.................# +###########.#.#########.#.#########.#.###########.#.#####.#####.#.#######.#.#.###########.#.###.#.###v###########.#.###.#.#################.# +#.........#...#.........#.......#...#...........#...#...#.......#.......#.#.#.#...###...#.#.###...###.........###...#...#.....#.............# +#.#######.#####.###############.#.#############.#####.#.###############.#.#.#.#.#.###.#.#.#.#################.#######.#######.#.############# +#.......#.#.....#.......###...#.#.#...#.....#...###...#...............#.#.#.#...#.....#.#.#...#...............#.....#.....#...#.............# +#######.#.#.#####.#####.###.#.#.#.#.#.#.###.#.#####.#################.#.#.#.###########.#.###.#.###############.###.#####.#.###############.# +#.......#...#...#.#.....#...#...#...#...###.#.#...#.................#...#...###.........#.....#.....#.........#.#...#...#.#...#.............# +#.###########.#.#.#.#####.#################.#.#.#.#################.###########.###################.#.#######.#.#.###.#.#.###.#.############# +#.#.........#.#...#.#...#...........#.....#...#.#...#.............#.#.....#.....#...###...###.....#...#.......#.#.###.#.#.#...#.....#.......# +#.#.#######.#.#####.#.#.###########.#.###.#####.###.#.###########.#.#.###.#.#####.#.###.#.###.###.#####.#######.#.###.#.#.#.#######v#.#####.# +#...#.......#.....#...#.#...#.....#...#...###...#...#...........#...#...#.#...#...#.#...#...#.#...#.....#.....#.#...#.#.#.#.#...#.>.#.#.....# +#####.###########.#####.#.#.#.###.#####.#####.###.#############.#######.#.###.#.###.#.#####.#.#.###.#####.###.#.###.#.#.#.#.#.#.#.#v#.#.##### +#...#...###...###.#.....#.#.#.#...#...#.###...#...#####...#.....###.....#...#.#.#...#.#.....#.#.###.......#...#.#...#.#...#.#.#...#...#.....# +#.#.###v###.#.###.#.#####.#.#.#.###.#.#v###.###.#######.#.#.#######.#######.#.#.#.###.#.#####.#.###########.###.#.###.#####.#.#############.# +#.#.###.>...#...#.#...#...#.#.#.#...#.>.>.#.#...#####...#...###...#.....#...#...#.....#.......#.#...###.....###.#.....###...#...#...........# +#.#.###v#######.#.###.#.###.#.#.#.#####v#.#.#.#######.#########.#.#####.#.#####################.#.#.###.#######.#########.#####.#.########### +#.#.###...#...#.#.#...#...#.#.#.#.#.....#...#.....#...#.......#.#...#...#.#...#...###...#.......#.#...#...#...#.......#...#.....#.#.........# +#.#.#####.#.#.#.#.#.#####.#.#.#.#.#.#############.#.###.#####.#.###.#.###.#.#.#.#.###.#.#.#######.###.###.#.#.#######.#.###.#####.#.#######.# +#.#.......#.#.#...#.......#.#.#.#.#.........#.....#.....###...#.#...#...#.#.#.#.#.###.#.#.###...#.#...###...#.#...#...#...#.#.....#.#.......# +#.#########.#.#############.#.#.#.#########.#.#############.###.#.#####.#.#.#.#.#.###.#.#v###.#.#.#.#########v#.#.#.#####.#.#.#####.#.####### +#.#.....#...#...#...###...#.#.#...###.......#.....#...#.....#...#.#.....#.#.#.#.#.#...#.>.>.#.#.#.#...#...#.>.>.#...#.....#.#...#...#...##### +#.#.###.#.#####.#.#.###.#.#.#.#######.###########.#.#.#.#####.###.#.#####.#.#.#.#.#.#####v#.#.#.#.###.#.#.#.#v#######.#####.###.#.#####.##### +#.#.###.#.....#...#.....#.#.#.#...#...###...#.....#.#.#.....#...#.#.#...#...#.#.#...###...#.#.#.#...#.#.#.#.#.......#.....#.###.#.....#...### +#.#.###.#####.###########.#.#.#.#.#.#####.#.#.#####.#.#####v###.#.#.#.#.#####.#.#######.###.#.#.###.#.#.#.#.#######.#####.#.###.#####.###.### +#.#.#...#...#.#.....#...#.#...#.#.#.......#.#.......#...#.>.>.#.#.#...#...###...###...#...#.#.#.#...#...#...#.......#.....#...#.#...#.###...# +#.#.#.###.#.#.#.###.#.#.#.#####.#.#########.###########.#.#v#.#.#.#######.#########.#.###.#.#.#.#.###########.#######.#######.#.#.#.#.#####.# +#.#.#...#.#...#...#...#.#.#.....#.........#.#.....#...#...#.#.#.#...#...#.#...###...#...#.#.#.#.#.#...#.......###...#...#...#.#.#.#...#.....# +#.#.###.#.#######.#####.#.#.#############.#.#.###.#.#.#####.#.#.###.#.#.#.#.#.###.#####.#.#.#.#.#.#.#.#.#########.#.###.#.#.#.#.#.#####.##### +#.#.###...###...#.....#.#.#.#...........#.#.#...#...#.......#...###.#.#.#.#.#.#...#...#.#.#...#...#.#.#.......###.#.###...#...#...#...#.....# +#.#.#########.#.#####.#.#.#.#.#########.#.#.###.###################.#.#.#.#.#.#.###.#.#.#.#########.#.#######.###.#.###############.#.#####.# +#.#.###.....#.#.......#...#...#.........#...#...#...#...#.....#...#...#...#.#...###.#.#...#...###...#.#...###.....#.......#...#...#.#.......# +#.#.###.###.#.#################.#############.###.#.#.#.#.###.#.#.#########.#######.#.#####.#.###.###.#.#.###############.#.#.#.#.#.######### +#.#...#...#...#.........#...###.......#...###.....#.#.#.#.#...#.#...#.......#.....#.#.#...#.#.#...#...#.#...#.............#.#.#.#.#.........# +#.###.###.#####.#######.#.#.#########.#.#.#########.#.#.#.#.###.###.#.#######.###.#.#.#.#.#.#.#.###.###.###.#.#############.#.#.#.#########.# +#.#...###.....#.#.......#.#.###...###...#...#...#...#.#.#.#.....#...#.....#...#...#.#.#.#.#.#.#...#.###.#...#.#...#...#...#.#...#.#.........# +#.#.#########.#.#.#######.#.###.#.#########.#.#.#.###.#.#.#######.#######.#.###.###.#.#.#.#.#.###.#.###.#.###v#.#.#.#.#.#.#.#####.#.######### +#.#.#.........#.#.###...#.#...#.#.#.....#...#.#.#.....#...#.......#...###...###.#...#...#.#.#...#.#...#.#...>.>.#...#...#.#.#.....#.........# +#.#.#.#########.#.###.#.#.###.#.#.#.###.#.###.#.###########.#######.#.#########.#.#######.#.###.#.###.#.#################.#.#.#############.# +#...#.....#...#.#...#.#.#...#.#.#.#...#...#...#.#...###...#.#.....#.#.#.....#...#.......#.#.###.#.###.#.#.................#.#.###...#...#...# +#########.#.#.#.###.#.#.###.#.#.#.###v#####.###.#.#.###.#.#.#.###.#.#.#.###.#.#########.#.#.###.#.###.#.#.#################.#.###.#.#.#.#v### +#...#...#...#...#...#.#.#...#.#.#.#.>.>.###.#...#.#.#...#.#.#.#...#.#.#.#...#...#.....#.#.#.#...#...#.#.#...#...#...#...#...#.#...#.#.#.>.### +#.#.#.#.#########.###.#.#.###.#.#.#.###.###.#.###.#.#.###.#.#.#.###.#.#.#.#####v#.###.#.#.#.#.#####.#.#.###.#.#.#.#.#.#.#.###.#.###.#.###v### +#.#...#...........#...#...###.#.#...#...#...#...#.#.#.#...#.#.#.#...#.#.#...#.>.>.###...#.#.#...#...#...#...#.#.#.#.#.#.#.###.#...#.#.###...# +#.#################.#########.#.#####.###.#####.#.#.#.#.###.#.#.#.###.#.###.#.###########.#.###.#.#######.###.#.#.#.#.#.#.###.###.#.#.#####.# +#.................#.###...#...#.....#...#...#...#.#.#.#.#...#.#...###...###.#.........###.#.#...#.....#...#...#.#.#...#.#.###.#...#.#.#.....# +#################.#.###.#.#.#######.###.###.#.###.#.#.#.#.###.#############.#########.###.#.#.#######.#.###.###.#.#####.#.###.#.###.#.#.##### +#.................#.....#.#.#...#...###.#...#...#.#.#.#.#...#...........#...#...#...#...#...#.#.....#.#.#...###...#.....#.#...#...#.#.#.....# +#.#######################.#.#.#.#.#####.#.#####.#.#.#.#.###v###########.#.###.#.#.#.###.#####.#.###.#.#.#.#########.#####.#.#####.#.#.#####.# +#...#.......#...#...#...#.#.#.#.#.#.....#...#...#.#.#.#.#.>.>...#...#...#.#...#.#.#.#...#.....#...#.#.#.#.#.........#...#.#...#...#.#.#.....# +###.#.#####.#.#.#.#.#.#.#.#.#.#.#.#.#######.#.###.#.#.#.#.#####.#.#.#.###.#.###.#.#.#.###.#######.#.#.#.#.#.#########.#.#.###.#.###.#.#.##### +###...#####...#...#...#...#...#...#.........#.....#...#...#####...#...###...###...#...###.........#...#...#...........#...###...###...#.....# +###########################################################################################################################################.# diff --git a/data/24_2020.txt b/data/24_2020.txt new file mode 100644 index 0000000..f462ece --- /dev/null +++ b/data/24_2020.txt @@ -0,0 +1,406 @@ +neneeenenesweneswneesewenenwneew +eswswenweeseneseswwsenewsenw +seeweswwneswnwwwenwwwwwnenwwsesw +swsweseseseswswsenwswseswswsese +eseseseswsenweseseneseswnwneeewww +sweeeeeenweseenesweee +nwnwsewenwwnwnwsenwwnwseswnwnw +swswswwwswweswswswswswenenesesewwwe +swnwenenesenwsewswswseeeswnwwnewwsese +senwweewnwweswnenwwsw +ewneswswsweenwwnwsenwswnewsenwnwsw +nenenwwneenwnwnwwnesewsenenwnwnenwnw +nwnwwsenwwnwnwnwnwwnwnwewwnw +wnwnwnwnwseswwnwnwesewsenwnwnwnwnenew +seswewwneweswnwnwswwsw +neswesenenenewwswnenwnenenenwnenenenese +nwwswsenwnenwnesenwnwsenwnwnwwnwsenenwse +senwswwswwnweswswneswswwswnweswseswew +neeeeswnweswseeeeeneeeeenwwnene +nwnewnwnwnwswnewwsewnwwseenenwnww +eeseeeeeswneenwewee +neseseseeenwwseseeseneswnenwsewswse +wswswnwnwwswswneswwweeswswswwww +swnwnwneswswseswseswswswswswnwseswsesenesw +swneesenwnwnwwnwnwnenwnwnwnwnewnwsese +wswswswewnewnewsenewnwswseswswwse +swenwnwnwnenwnenwnwswnenenwswwnenwsenw +ewnenwnwweenwneesewnwwwwnwswse +eeewnweneneeesweesweeeneeee +nenwnwnwnwswwnwsewnwswswenwweswenw +senenenenenenwneneewnenenene +neneeneswnesewneneneeneneeenenenwe +nwswenwseswnwswenwnwnewnwneww +wnewwwweswwsww +seseswsewesesenesesewseewseseenenwe +neneseswnesenewwenenwneneneneneenew +swswswswwsweswseswsewwneswswswswneswswsw +sesenesesesenwsesesesenwsewnw +nenenenenenewnwswnwnenwsenesenwneswwne +swwnewweewwwwnwswnewwweswew +swnwwswesenewwwswwswwweseswswnesw +weeseseseneseseewwseseseseseseesese +nwenenenwwnenenenenwneneneseswnenwenesw +nwsewswswwswsweswnwwwnwswswsew +nwewnwwwewnwwnwnwwnwswwnwwsewnw +eesesesesesesewseseewneseesesesesenw +nwwenwweswnwswenwnw +sewseswswneneswnwenwneeswwnwwesenw +eseswwnwnwwenewneswnwsweenwseswne +wsewwswnwnwewnewswwwwswseswnew +eswnenwnwnenwswnenwnwnwnenwnwnwnenwsewne +neneewswnenenenenene +nwseeseseesesesesesesese +eenweneeeswswseeseeneesese +sewneeneneswseeewnwswsenewswenwwenw +nwwwweswnenwsenwwswnwwnwwwnwwnew +nwewwneswnwwwnwswswsesweswswwseww +neseswseweseeswsenwsesesesesw +nwswswseswswseeswswseswnewneseswswwsw +eweseeswseeeeseneenwenweeee +nesewwwwneeseweswwseneeseseswseswsw +nwswnwnewnewneeenwneeswwnwse +swwnwsesewneneeneenwseswseswnww +nwnwnwnwsenwnwnwnwnwnwnwnw +wwnewnwsesewwwwwwnwseewsenenew +swswswswenwswseswsweeswnwswswswswswswswnw +nwnwseeswnwnwswnenwwnwnewnwnwwnwnw +wnenenesesenwnwwnwsenenesewnewnenee +senwswnwnwwenenwnenwnenesewswenewnene +neseseeseneswswswswswwwswswnwswwsenesw +neswwsesenwnwnwneswseseseseswnesenwsese +eeweesenesweenweeneenwneeswse +wwnewswsenwnwsesenwswseneeswswseswnese +wnwsewnwnwnenwnwnwnwwnwnwwww +wwswswewwwwwwswwwwnewnwnenw +eeneseswswnewneneneenenenenenenenew +wswwnwswwswneneneswnwnwnwswseneneswsenene +nwswswewswsewswsewswsenweswswneswnwsw +wwwwesewnwnewwwnewwwwsese +nwnesenwnwnwnwswswnwwswwnwnwwwwneeenw +swseseswenwswswnwswwnenesenesesesesesese +nesewswswswsewswswnwswwswwswsw +wnwwwnwnwnwnwsewsenwsewwwwwww +wwwwwwwwswwswwwewwnw +swseseseseeswsesesenwseseswseswwsenwse +sweeeseeswnwenwneeenwneswenwneee +nwswseswswswswwsweswnesesweswswswseswse +nwnwenwnwnwnwnwswnwwnwnwwnenw +wseewnwnwnwenewnenenesenewnenwnenwne +nwsweswswswswswswswswsw +swswwswwswswswswnenewenwewweswnw +nwseeswnwnwseseseswneseswseseseenewsw +wseswseseesenweeeseeeewnwenene +newnenenwswnwnenenwneneseneneneenenesenw +wnwnwswseenwnwnwnwenwwwnwnenwnwswne +esesesesewneseswswsewswseswswneswsesesw +wsewwwnewswwnenenwnwwnwwnwnwwwsew +wsenwenwnwnwewwsesenwwwwnwnwnwnew +nwnwnenesenenenwnenewnenenwneneswswnene +eseneneewneneneeneeneneee +nenenenwnwseswswnwwnwnwwesenwsenewswne +neenwnwnenenwnwnwwnwnenwnwnwwnwswsenw +swwwswwswswwnwwwnenwseswswwseswsenw +nwsewneswnwesweeswnwwwnweswnwne +neswsewswseswseswswswneswseswneseseswsww +wsewwwnwnenwnwewwseenwwwwswnw +neseseswseswwswswswnenwsesewswswswswsw +swwsweswneseswswwswswswswweswwsw +nenwneneswneeneenene +eneweneseneeneeswswswenenesenenew +swseeseswswesenwsesenwswnwnwseeesenwswsw +nenenwnenwwwnenenweneneneseneswnenenene +neneenenwswswseswwwnweswnenesesewnewse +neneseneneseneenenenewswneeenenewnene +swsweesenesenenenwnwnwswsweneseenww +swnewwnwsewseswewsewsesenwneewnww +enenewnenenenwnenenenw +seseesesewwseseseseseswswseesesenese +eeenwneeeewneneeeeewswneneee +eswnwenweesenwseeswsweenwsenwnwesw +eesweeeneneeneeeeewnweeewe +seswswseseswswswsene +newswnewswwwneswwwse +neeswnenwewnwnesewsweneeswnwenesww +eswwwwwwswnesewwwnewwnwwww +ewsesenwseswsesenwsesesewesenwsenenese +nenwnewswneneneneeeneneseneneneenee +wwseseeeenwnwweseneewnweeeewsw +nwneswnwnwnwwwnwseenwnwnwenenwnw +swswswswswneswenwwweswswsw +swenwwwnwnewswnenwneswnwesweswwe +neswseenwseseeenwsesesew +seseeesesenwnwseeseseseswnesese +sweeeseseenwseeweesee +swneswsweswnewwswseswswsw +nwwwewsewwwwwwwwewswswnewsw +nenenewneswsenenenenesenenenenenenenwneenw +sewwwnesewswwnwwwwswewswwswew +swswseswnwnwswswswswswswnwseswenwseswswsw +nwnwnwnwnwnwnwnwnenwnwsenw +nenwwewnwwsewnewwnwsewwwewseswe +seseseswweewnwneneseseseesewsesesw +swswesenewswswswwewswsesweswsw +seseneneswwsewneeenwenenwseenwsee +nenwenwwneewnwneswnwnenwseswnwenwnwnw +sweswswswseswswswseseswseswwnesesesenw +nweeesweeeeneseeseeenwenwwe +sweewneneeeseeewswneeenwneenene +swsewseseenwsenesewseseseswswseswnese +wwwswseseswwnwwnwnenenwwswnwsenesene +seswswswseeseswseseseswnwsenwseswswsesene +nenwesenwswneneseeewsesesweeseeswse +nwseswswnwseeswnwswsenwnwnenwnenwnwnenwnw +neswnenwweesenwneswwneneswnwenenesw +nwneswnesesenwswenwsesewewsweewsw +neseeenenenewnenenweswew +eenweesweewneneseneeswee +weesenwsweenenenwswenenwneswenee +nwswswsweseswwsweswswswswnwswswswswsw +esweweseeeeseneeenweeeeee +swneswswswwswnenwewswenwswswwnew +eesweswnwseeeeeeeeneseeenwsee +senwwswnwnwnwnwnwnenwnwnwnwnwwnenenwnese +swwseeswswnwnenesewnenwsenweeeene +enenwnesenenenenwnenewneneneewswswwne +nwwneseseeseeseeseseeseseeseswnwsese +sewwswsewnwwswnwnwnewenweneswesw +eneeneeneeneewneeeeeeenwsesw +wwenwwnesenwnwnwwww +nwneneswnesenenenenwnwnenenenwnene +sweneseseswewnwswwneneneneseneesenwnw +nwewenwnwwwnwnenwsesenwnenesenwnwwwnw +nwenwnwswsenwnwnwnenwnwnwnwnwwesenenw +swswwnewweweswswnwswsenesewwwnww +nenewneswnenenweenenenwswsenene +swswswwswswswswswswswswswne +eeswswenwswneenwenweseenwnweeese +swnwnwnwwwsewnwnenwwwnww +wswwwenenwwwweswseswnwswweswsw +enewneneweseeswswenewnenwwnesene +swsenesweswswswswwswswswseseseswwsw +nwwseswnwsenwsenenwwnwnwneewwwwww +wwsesesenwnwnenesenwenenwswneneenesw +seseneweseeswseseneeseseesenwesese +nwnwwswwwweenwwnwwswsewwneww +eneneneeneswnenweneswenewneeseenenew +eseewneesenewesenwsewewwwsee +nwnwnwenenenwenwnwnwsenwnwnwswnewnenwne +neseeeesewneseseweeseseswseseesese +newwnwswwewneswseewsesweswneswwse +seseseseseeseenwseeenwsesesesese +eseswnesewseswswswsenwwswseswneswsee +eeseseseneeeeeseeeseeew +nwesweeneenwnwseneeeneeeneneneswse +swswswswseseswnwneswswseswsewse +senwnweswwnwwnwweseenwswsenwnwwse +wneneneenenesenewnwswswenwnene +eswseswneseseneseseeeeeewsenenwnew +sewseeeeenwseese +sesenwnwseseseswseseswswswseesenesesesenwse +nwwneewseswneeeneneneseenenwewneese +wwwswwnewwneswwwwwsewwwsw +seswwwwneswneswwneswswswswswseww +eewneenwsweseseweeeeneneneneesw +swswsewswswwswswnewwswsww +nwnwwswnenwwnwnenwswnwnwwsenwseeswwnw +swswsenwnewseeswseseneneswsewnwsesesenwsw +senwnwnwnwswneswnwenwnwwnesweswswnwnenw +neenenewswnwswnwsewwewswsenwnwwsw +senwnewnewnwwnwwnwseseswwnw +seeseseeneswneeswnenwwswswwswnwswwe +seswenweeneeneneneeneneneee +nwwnwwenwwwwwwwnw +swswswswwswwswwswsenenwsewnewneswswne +newswnwnwswnwenwwnenwnwnwwwwsewnwnw +eneewenweeeweeseenwseneeeswse +seseseswenwseseweseseenwnee +wnwwnenwswnwnwweeeswsw +senesesenwswseseseenwseswseswswseswsesw +seseseseseseseseseseseseenwsese +seenwnwnwswsewweeweseeneesewswene +wwwseswsesenwnwnenenwse +nwwewnwnwwneswnwwnwnwnwwnwewswne +neewneneseneneswnene +wswwswnwwwswwwewswswsww +wswwneswwswnwwnwnewseswsewswenwsw +ewnwwwwswwnwesweswswwsw +wswnwnwwnenwnewwsesewwseenewswenew +wswwnenwwswnenenwnenenenenweswseseswe +nesesenwswsweeswewwswneeneeeee +nwswwwnewwwwwwneewnwsewsewsew +nwwweswwswwwnwneswnwswenwnwneew +nwnwswnwswenenenwnwwnwnenwnenenweew +neswnwneseeneneenewswwnwnweseneene +nwswswwwwseeswnwswwsweswwnwseswww +neneseneswsesewenwseswneneswnenwwenew +neneneeneneneseneeneseneww +sweenenwenweeenesweeeenwesee +seseseseseseneesesesesesesesew +senesweewneeswenwseswseseeeesee +nesesenwwswnwnwwnewsenenwswnwnenwsee +neseewnwenenwwnewnenwnwsenwnwswswnwnw +eswnenenwswnewsweseswseewsesenwsee +enweeswenwewsweeeneenweeseesee +senwswswwswwswswwswswswswseswswswneswne +sweswwnwewseneeeenenewenweee +newnenwnwswwseseseesenwsese +enweeswseenwneeenenesweeneswenewsw +nwnwnwnwnwswenwnwnwnwnwnweswnwnwnwnwnw +nenenenweneswnesenwneswneneneneeneese +seseeenwswnweeeewswseeeswwnwsenw +esenwsewseseesewneseeseseseeeenese +seewnwsesesenwesesesesewneeeseee +eneseneewneneseweeneneeeneeee +nwwnwenwswsenwnwnwnwnwwnwswwnwnwnwnew +wnewwwwwwnwwwswnwww +wnwenwsenwswnwnwnwwnenwnwnw +eeneneswnwwneneswnwneeeneneneneewne +wsewnwwwwewwwwwwwsenwwnwwe +wwwseeseswsewsewewneswnwsewnenenw +seseneswsewneswswseswseswswswseneswsesesw +nwnwnwsenenweeneneeneswswneswneseeesw +eswseswwnwswseswswswswneenwswseswsese +eenewseneeeseneneeswwneeeenenee +nweeeeseeeseeseeswenwnenweswee +swswwneneneswenenwsenenenenenwnenwnwe +nwenwnwnwseswnwnwnwnwnwnwsenwnwnwnwnwnwnw +eswnwnweswsweseseswwswswnwseneswnenwswe +wnesewneswwneswwwwnwwwwsese +nwnenwnenenenenenenwneswnenwnenw +neswenenwswneneswnwee +wwnwwwwewwnwswnesewww +esenwnwswenenwnewswneswwenwswwnwswnww +swswwswnenwwswswnwseswswswwswswewsesw +nenwsenewnwswswneeswnwnenwnwnweenwnwne +neswwnwwwnwwwnenenwnwswwnwsenwnww +neneeneswenenenenenenee +swseweseneeeswwnenwswnwnwe +eewswweneweeneneeenenenenenenene +nwnwneneneneseneseswnenwnenwnwnenwnenene +enwnwenenwswswswnwsenwswswseswseenwe +eneneneneeeswneneenenenene +enwnenwwwsenwwwswneswnwwenwewww +neneneswnenewneneneeenwnenwnesewnene +seswsenwsesesenwewseswseseseseswsesenenwse +neneenewsesewneweeewseseenwneeene +nwwswwwsesenwwwsenewwnwnew +seseenesesesesesesesewesesee +nwwnwswswswseswwswseneswswswswswswswswe +wswwnwnwnwnwnwnwwnwnenwnwenwnwenwnw +seseswseneeswneswnewwswwwnwneesenene +nenwnwnwnenwnwnwnenwsenwnwnwnw +eswwwwwsewwnewswswwwswswneswww +esenwnwnweeewswneneswnwswnwswnenwnwnene +nenweseenwneenenwseeeneseene +newnwwsenwnwenwwwnwsewswnwnwenwww +newenenenenenenwenwswswswsene +nwsweswnwwnwewewwwenwwwwwnwwnw +sewnwsewwnwsenenwwww +swswnenwnwnewneswnewnweswsweswenwsenwse +wsweseeswnwseenewseneenee +eeeeeseeswnweeeenwseseewsese +sesesesenewsesesewesesesenwseseseene +sesewswseswsewseseseswweseeseseenese +esenwswwseseseseesesesenweseseseswe +nwnenenwnenwnwnenenesw +nwnenweneenwnenwnwnwswnenwneneswnenwnw +sewswswswswswnwswneeseswswswsw +swwswswswwwwneswneswwswswswnweswsw +neseswswesesewswwswswseswswnwseswnenese +nwswnwneewneweeseeseewewneneew +swseenenwwsenwnwnewneenwwewnwswe +swsweseswswswwwwswswswnewswsw +swnwwneneswswnwewwnwsenwenwnenwee +ewswseseneesewseneswsenwswseseswsese +eneeneeseswenwsewneeweenwnwese +swnwswswseswswswseseeswnwswswsweswnwsww +wwnwnwswnwsewwnwwnwwnwwnwsenwnee +eeseeeswneseneseeweneweseee +senesenwsesenwwsesesesesesesesesesesese +nwnewesewneswneeeeneeneeswnesenene +wesenwseswsweweenwnenwwnesese +nenwnwneeswneneeneneneswneneswneneenwnee +nwnwwsenwwnwnwwnwsenwnwenwnwnwwnwne +nwnwsenwnwsenwnwnwnenwnwwnesenwnwenwne +sewswweneesenenwneseswseswnweeeene +nwswnwnwnwnwwsenwnwwnwnwenwnwesenwnw +wwwwwwnenwwwwnesewwwse +swnenenenenenenwneneswnwneesenwnenewne +neneneswneneeneneneene +wswneseswswnewwnewswwwwwwwswsww +neeneseewnenwnwneseewneenenwwnenesww +enwseswseesesewnesweeeeneswsesenese +nwnwswnenenenwnwnwnenene +wswswswneswneswwswswsweseswswseswseswsw +sewseseesesweseneseseseseseswnwwsw +swseswswwnesenewnwwnweenweswwsenw +seseseswswseseseeseesesesesenwnwsesese +nenewnenwneswnwnese +seseneswseswswseseswswseswnwwswse +nwneeeeseseneseseeseeeeeeeeww +nwnwneenwswswnenwnenwnenwwneneenenwnwnw +nwnwenwnwnwsenwnwenwnwwnwnwnwswnwnwnw +wwnwwenesesewwwnewsesewnewwwe +wnwnwwwewnwseswwwwwnewnwswnwe +nwwwwswnesewwsewsenewnwnwsewnwnww +nweeeenwseeeseee +eneenewnwenewnwsesenewewswenenese +eswwsweswseswnwsenewnenwswseswwww +neswnesenenenwnenwenenwnwneneswneswnwne +enwseswnwnweesewnwseeseseeseseseseesw +wenwwwswnewswsesewwnwwnwnenewnw +nwwseseswswewwswwsewneswnenwnwesww +swnwnwnwswenenwnwnwnwsewenenenwnenesw +weneswwswswnwsweeesenenwsenwwwsw +eeseesenesesewnweseeenesweeeeew +eseweseseseesenwwsesenese +eneneneneneneneneeenenenenenwsw +esenwnweswenenwnwswnwwnewneenewnww +eeneneneeeeswneneenwsew +seweeseesenewswsenwewwneeeeee +newnwnwenwwnenesenewsenewswnweese +neswwwswswswneww +seswseswseneswseswswnewneswswswswsenenw +eneeneeeenwswneneeswnweenwseneswnene +neswseeswseseswswsewsese +wnewwswwneswswwenewswswwwswwnene +newswseswnwnwnwnenwnwnwnwnwnesenwne +neewswseswswnwswswseneswswswswswseswsesw +nwwneenwwwwsenwwseswenwnwswwnenw +wwwenwwnwnwwnwnwnwe +esesewsesesesesesenwsenwesenwswswswee +nwsesesenweseswseseseseswsesewseseenwse +newnwnwnenwswswwwnwwwnwwnwwnenwsw +swsewsenwseseseswwseseneesweswswsese +neeenweseeeeneswneeeeweee +nwenwnwnwnenwwnwnenenwnw +wwsewwenewwwwwwwsewwwnww +neneenesweneeneenwnenwneneseseeee +eswseneseseseeeeeeeseenwsewsese +nenenwswneeswnesenenewwnenenenwenwsese +nwwwwwewwswwswwnewwwwseeww +swswswswswswswseseswneeswswseneswwswwsww +nwneneswneeswenwseenweeneneewwwnee +swswswswneswwneseswwseswswswsw +swswseswneswwwswswwswsw +nwenweseesweeeeneeseeswseeesw +swswswsweswswnewwswwwswswwwnwswse +sewneseseswsesesesesewseseswnwseneswse +enenweeswsweswenwnwe +nenenwnwnenwnenwwnwswnwnenwsenenwne +neswseneswswnwwweneswnwseswswneewnese +nenweswsweeneeneswnweeneswneswee +wsenwseseseseeseseseseseseeseneswnese +swnenwwnwnwenwnwswnwnesenesesewnwnenenw +sweneeenenwenenenweeenenwsweeeswe +sewewnesesewnenwsesesesweseswswsesesw +neswswnenwneseseneneneneneneneswnenwnene +newnewweewwwnwseswwseswwewswww +senwseseseswswnesenweseswsewswsesesewsw +senenenenenenwnwnwsewnwnwenwnwnwwnene +nwnwenenwnwwneneswneneneneenwnwnwnese +seseseseseseswwneswseswesewswseswnwse +nenwnwnenwenenweswneneswweenwneneswnwnw +swnwseswewnewnesesesesesesesee +seswnenwwwewseneswswsenweneswnenenwe diff --git a/data/24_2021.txt b/data/24_2021.txt new file mode 100644 index 0000000..f00d2cf --- /dev/null +++ b/data/24_2021.txt @@ -0,0 +1,252 @@ +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 10 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 2 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 10 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 4 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 8 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 11 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 7 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 12 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 7 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x 0 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 10 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 10 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 14 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -10 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 2 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 13 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 6 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -12 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 8 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -3 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 11 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -11 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 5 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -2 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 11 +mul y x +add z y diff --git a/data/24_2022.txt b/data/24_2022.txt new file mode 100644 index 0000000..ae28458 --- /dev/null +++ b/data/24_2022.txt @@ -0,0 +1,37 @@ +#.#################################################################################################### +#.<><^^.^..^v>.v<>v>><^<v>.>^<v<<>^v<^<<^>^vv<>.<^vv<^^v..<v^^.v><vv^v>.^.>><>vv^>^^>>.^v^<<^^^^>^.><# +#<>>v>.<<vv.><^<<>v>^<>>.<<v^<<^<<>><^^<v<^>.><<<><>>^^^>v<^>v>v^>^v>>vv<<v>^<v<<>vv..>vv^.<^^<<vvv><# +#><<.<>v<v>^.v^<^v>v<.>>v^vv.v<<<>>><v<>^v>v<>v.v<.^^^.^<<v^v.<^^<v^^^.^^>^^><.>.v^<^.^<<.><^^^v<^><<# +#<>^>vvvv^.<^.<v<<v>v>>^vv>^.<v<^><>.v<<^^^>^<<v>.^^<.>^.><<v<v^v^vv<v<><^v<vv..<^.^^>^>vv^^<^v>v<<^<# +#.<>>^<^>.^^vv^vvv^^<>><.^v<>^^<v^v^^v<<^^>^<.<.^<v><v^^v>v>^><^>vv>>..^<<>^v.>^<v.<v<>^v<<<<^<>.^><># +#.<><^<v<^>^v^vv.<^><<v<^<<>^.<..v<v>.>>v>^.<^v><>>.v^<>v>vv>v>v<^v>><v<>^<.<<.><v.<v><<<^.>>v^<.v>>># +#<^<>>^v><<>>v.vv^>^<^vvv^>^<<^>..v<^^^v>>vvv<<>>^>v>^vvv^>v.>v><<^<<.vv.>>^.^>v<<<v<^^^^<<v><^<v.vv># +#.v><^^<><>v<>><.^^<^^<v<<>v^>><><v^^<<<.^v^><>^<^^>><>v>>><.<^<v>^.v^^>^^>><>^<vv<^><>^>^>^^v<>vv>v># +#<^^v>vv^v^vv>^<<^^^^>^>><<<<>.^<^^v<^^>>vv<>^>^^^>>>>v>v<..v>>.>vv^v>vv>v>>.<>v>><>vv<>v<.>.^v^<v^^># +#<^^v<^>^><>^v>^><.vv^vv><^<v^<>>^<<v<>v>>..^<^vvvv<<><v^<<^v>>..>v.^^><v>v^v^<<<^v.>^<>^v<>><<>>.>..# +#<v.>^^v><.>>v<<>^v>>>v><<<>v.vv^^<vv<v>>>^<^vv>v><<>v^<^^<vvv><v<^v.^>^v^^<<^v.<>>.>>>^vv>.v>v.v<^>.# +#>>v<vv^>>v^v>>><v^^><v><>^<^<<^^<vv>vvv^.^^>>>^<>v<v.^>v><>>^<vv.<><v...^^v>>^v>^v>.>^.>^v<>>.v>><<># +#<.^^vv<v^.^>><>>v<^<v.^>>>><>>^>>v^vv^v^<^<>^>.^>v><.>>v<v.v>.>v><.^<v.^<<<>v<<^vv<<^<>.^>>^.>.>>^><# +#<^^v<^<>>>v>>v><^v>.>v^.^v^v>^<<>v^^>v^^><v<v.<v^v><<<>v><vv>vv^.><^><.<<>v.>v^^<^<<v<<^><><^v>>v.<<# +#<^v<v^<.^v^><^v><^>>v.v.<<^vv<.^^>.^>^.<..<^^^^.^<^<v^>>v^^.<<^^v.>>^v^>v<v^<^>><<^^<>.><>v..<>^v^.<# +#><<><<v^^<>v>v^v>v^v>^<>.v<^vv<<^<>^>vv<<^v<^v<>.<v>.vv^<>.vv<^.<>v><>^.^^v^v^v<^^.<.^<><<v<v^>>...># +#>^v^.>^<<v^><.<vv>>^^vv>.<<^>vv^>.<vv^>.^<v^v>^>v^>.vvv><<^v<><<^^^^v^vvv^^^vv^v<v>>v^v><v^<^vv>><.<# +#<>><<.v.>^^^<>^v^^>>^<>v.^<><.^.vv>.>^>^<v<vv^<<^<>>^<.v>>v>><<.vv^vv.>>^v>.^vv<.v>v>vvv>>vv>^><v>^<# +#.^.^^>>^^v>>><>.><^v>>v^^v^.vv><vv<^<<>v>v>>v^v^>v^^<>^v..>^.v^^<^><^v>><>^v>v>>vv^<v<.<>vv.<<<.<<<># +#>>^<<.v<<<v>>v><^v^vv<<>^vv>^v^v<^v^>>^^^^<^<<>..^>>^^^<v^v<>>vv>v<^<>>.<^<.>.>v<><>>.^>v<.<>^<>>v.<# +#<<v>>>.v>>.^>..<>v^v^vv>>v^<v>^v^v<<^vvv<..><^>>.<<<<>>v.<^^^><v^^<<v>><v^^>>^v>><v>vv^vv>.>^<.><><<# +#<>v<>v>^<v>vvvv^<v><>>^>v<^>^>^<^vvv..^^v><^<^v^<^v<v.<<v.vv>v.>v<v>^^>>^.<v<^^v<^<v^<<>vv^<<.><.^><# +#<.^^v<v<><>><<^>.>^<>><vv^<^^><<>v<v^vv^v^>^v<<v<v<>^>^.<v^..>vv<.^v><.^^>.v>..^..v>vv^>^v>>v^^v>.^># +#<v><^<v<>^.<<<<><<>v><v.v<^>>.>^v>^>>.^v.<^^>v^<^<^>^<>^>>^^>v<v<>^v<v.^vv^>^<<><>v^<>.v^<<^v<>>^><># +#<>vvvv><<>^>.>^^^v<<<^v<><<.<^<^.<^^><<v<.<v<vvvv^v^>v>^^<v^>>^v<>^>^^>vv>^^v>^v^><<<>>v>>^.^^>vv..<# +#>^vv>v^^<vv>v^<^.^>v<<^<^^>^.<v>><^^^<>.^<..^<<>v.v<>v>^>^v<.^^<>v>>v^<>v><v<.v>v^vv<.>.<>vv>>>.<>v.# +#<^^vv><<<.<^^^<^v>^<v^^^>>.vv>vvv^.^<<^>v>>^v.>^v><.^v<vvv>v^^v<v<v<^<<^^^<.^<v.^v<<^^v.<v>>^v>vv<>># +#<><^><><>v>..v^<vv^<^><<>v.>><<^^^^..v^^>>v><^>v>^<<<^<.v^<>v^v>>><..>.v<^>vv^^<^v^.<<^>><^^^vv.^>>># +#<>>>vv..v<>^>>v^<^v>^.^^<^^^<v>^^>v<<v..<<>v<^>..<>><<>>>>v^v^^v<v>.<<^^^^v>><>^.^<^^vvv><vvv^>^.<..# +#>^><^>^>.>>^^vv.^<.^^>vv<v><^>v^>^vv^v<>^.<<.><^<^<^v^^>^.>^>v<v^^>.>^^vvv^v>>>>v<v<><..<>>><^^^>^<<# +#>>v^.<<^v^.>.v<<<^v>>^.v^<<<<>>v>>><v>...^v^v<>vv.vv..^<vvv^..<.^>v<^<>v.^^v^>.^<v>.v^<>vv.^><^>^^<># +#>^.^v^<^v<vvv><v>.^<^<^^v^^<<>v^^^..><^v>><.^>v^>>...>^<<>^>^^<v>^v<>v^^>>^>vv^><vv..<>^v.<^^<>^>^<># +#<>vv>>v^^^>>v>v<^>^v.><<<>v^<<>vvv>^v^^>vv<<^v<>^v...><.<^>^^>v<v>v^<v<<<^>v^<^^v<vvv><.^v>>vvvvvv>># +#>^v>.vv^vvv>>><<><v^vv<vv.<v><v><^>>>><.v^..>>.<>>v>>>>^<<^<>^^.<v^v<<vv>^v.>v>.<^^^.^<^^<v>^v<><.>># +#>>.<.vv>.^<v>^.<vvv^^>^^<>^><v>^^^>>>v^v<>^v<>>v>^v>v.^^vv<.<>>.v.v><v^.>v^>^<<.v<><^v<^>v^v>^vvv.<<# +####################################################################################################.# diff --git a/data/24_2023.txt b/data/24_2023.txt new file mode 100644 index 0000000..c720bfc --- /dev/null +++ b/data/24_2023.txt @@ -0,0 +1,300 @@ +194592040768564, 332365743938486, 196880917504399 @ 160, -81, 182 +119269259427296, 151358331038299, 32133087271013 @ 320, 350, 804 +137316267565914, 280950442046082, 163349784223749 @ 252, -89, 298 +156784243533036, 239107035457244, 225936623290041 @ 43, -98, -76 +321769272453694, 324937275314713, 420778403813678 @ 42, -28, -69 +204814986025924, 237908862805026, 274364047444843 @ 52, 43, -34 +333027566352680, 89887889274820, 426837656966891 @ -57, 292, -175 +147291187869291, 176591814445512, 244033006247870 @ 141, 805, -405 +236268629660353, 289057626760187, 260610739172231 @ 63, -38, 66 +164410288824386, 286208852663572, 210705833149481 @ 56, -400, 132 +273161387532794, 273878751925386, 222888807806499 @ -58, -29, 130 +356353709190834, 131308503961606, 496168973459609 @ -57, 212, -234 +346296827868374, 328216483521434, 357918726952129 @ 32, -23, 13 +239213578517828, 179111262937711, 145725447469709 @ 144, 128, 228 +259576781321898, 276543072765882, 243990103643330 @ -50, -45, 75 +263359092904370, 399330848050006, 453386292077045 @ 35, -212, -249 +159016686684041, 58290485987122, 153212541374054 @ 195, 507, 303 +166636658074410, 5217870351550, 256902756939367 @ 180, 605, 47 +224613837886664, 222046446202438, 280338992917109 @ 27, 89, -22 +243512471484168, 380540650808944, 446878830823205 @ -17, -310, -438 +201232882839174, 395199378872156, 341345960569729 @ 138, -210, -64 +148477759743232, 255670686373024, 180670149058146 @ 168, -211, 407 +317413746352115, 127017744115204, 269305412683311 @ 35, 197, 94 +149944965125582, 301448789473072, 185860854881565 @ 230, -16, 194 +133765828474994, 46582475528146, 283604514918089 @ 251, 317, 66 +443984894132948, 435554256713062, 307670535614441 @ -212, -233, 16 +317552070085532, 243455935482874, 270442812731321 @ -55, 51, 60 +178192066418733, 202666031638573, 393001029985771 @ 133, 146, -374 +318106714182566, 240386718498424, 242733891074687 @ -102, 52, 97 +158589521202559, 321631322115311, 55207956904364 @ 183, -236, 663 +140604613634294, 257756663459476, 217953521418859 @ 242, -190, 71 +156238157047268, 215762540573168, 209088305076919 @ 59, 184, 133 +224734796156530, 372297178297748, 313974888121040 @ 118, -135, 9 +177592868881709, 114735442697521, 212972206654244 @ 129, 418, 147 +213089881169878, 173008927872570, 377677334114641 @ -74, 307, -580 +325737613249818, 271711880603062, 317344121446681 @ 19, 26, 34 +228272147885042, 347526968312218, 204090629656565 @ 111, -101, 171 +175898718770910, 220406071348070, 269143801562370 @ -6, 111, -275 +155341724218414, 235475759804958, 220450947333745 @ 12, -90, -56 +341349366286042, 294405408305978, 355973112067945 @ -125, -45, -106 +435925655471414, 173632585604191, 518031133553147 @ -78, 138, -170 +218053166067755, 71840710634341, 137255125394057 @ 143, 278, 256 +164168066315094, 215421575423706, 211723107301009 @ -68, 201, 94 +212387567125088, 264921400824612, 177775757245573 @ -52, -83, 284 +204192294330338, 166501029824802, 255783280932537 @ -37, 337, -50 +229984105434500, 253630277322058, 270890108023619 @ -27, -5, -27 +188648071555718, 240194658723046, 256038193320485 @ 166, 58, 89 +148979137973576, 218263188933886, 291783965071928 @ 160, 143, -671 +167004459104420, 203943950531319, 228615798366620 @ 140, 162, 81 +179345516801094, 185236382554746, 219057873495889 @ -39, 367, 74 +267915762923903, 242993432031898, 373521164370257 @ 23, 51, -120 +258788204520200, 427890445574080, 397010237620691 @ 73, -208, -105 +208349284553122, 207454721940239, 253986757382895 @ 126, 112, 86 +329555432976074, 348715051961494, 403812039003653 @ -103, -144, -193 +556131001350959, 520072787312301, 474274887951104 @ -181, -218, -105 +189655319558899, 261847792376008, 256932651070916 @ 187, 41, 111 +292073313628042, 154688479053354, 427269393723029 @ 16, 187, -162 +305954953780324, 339265862824030, 320102991318636 @ 52, -49, 37 +284754365669054, 181290838182166, 473028854091629 @ -156, 202, -569 +186725953231058, 237798255831796, 429733150692347 @ 70, 33, -666 +286146205193446, 275684917640650, 292005354348177 @ -107, -40, -38 +161887883588998, 239427982572726, 214657859072733 @ 58, -47, 94 +239553976468993, 368423690009212, 247083226298659 @ 73, -163, 98 +150994721274003, 224547131890092, 217347722963201 @ 109, 81, 24 +234333607450270, 206408001321532, 279119708527461 @ 70, 116, 34 +348552551289794, 321433260575846, 261055952350214 @ -178, -113, 57 +201666998248578, 244873841470940, 218851819139723 @ -74, -23, 102 +502432891143082, 435610442530406, 381502346575071 @ -152, -147, -23 +151366968247590, 327875068643946, 271914220940153 @ 190, -417, -150 +408298066577054, 210607215941186, 164747261926409 @ -127, 102, 225 +484431672442499, 246463737889732, 240905466843890 @ -163, 57, 127 +52883757158229, 76114345174920, 42541331360542 @ 397, 345, 457 +416449089098504, 405449300519911, 391697343764534 @ -244, -236, -159 +175350105318010, 316763050487630, 240420049288067 @ 160, -135, 87 +298854963330554, 323064637127614, 228439508952161 @ 72, -23, 144 +221832346492139, 201465989455711, 64869576854624 @ -45, 164, 667 +119220945656986, 62922376371906, 180350601262461 @ 291, 453, 227 +312457113713982, 400805845503962, 276816347304773 @ 16, -149, 75 +275626627690758, 275383246042334, 389958046934257 @ 54, 12, -88 +195158716907378, 228539490679306, 314376769456985 @ -21, 63, -354 +472243086252642, 284872070086666, 393589942404521 @ -87, 23, -18 +399765970959515, 239157918577366, 465259640437910 @ -109, 63, -183 +110999402534782, 137296489574870, 82857985744953 @ 328, 336, 526 +263562453820660, 307770025933662, 486315506885051 @ 9, -75, -363 +142194037062798, 203927063027957, 278615727038184 @ 234, 186, -197 +274964020546493, 339932452476795, 369437169947127 @ -115, -224, -266 +314360979197674, 325644599098966, 371729351005839 @ -36, -79, -97 +228943159959594, 244245481515046, 284365659661489 @ -65, 14, -104 +363435793314360, 330469205745187, 148055430920576 @ -92, -76, 255 +302228359717220, 129037647143146, 444004623217055 @ -97, 283, -331 +337907092264556, 188265083723560, 392285129144063 @ 29, 122, -33 +153611038780589, 269232088745744, 216751164661083 @ 137, -279, 82 +147743200191354, 251468286955346, 206098283112689 @ 126, -357, 168 +212268958457294, 237290471738086, 266296332764009 @ -8, 38, -42 +434697144176079, 270041073515238, 500190813654474 @ -93, 31, -167 +159725595458220, 239273715728775, 234385508800662 @ 48, -68, -119 +219885712798374, 251418537112246, 268712333020684 @ 66, 23, 29 +236806616843034, 228774778423762, 200496647482813 @ -153, 65, 191 +330844475446508, 206054517447082, 189289941908397 @ -7, 107, 190 +173622309101864, 229282400109586, 261127775558639 @ 80, 59, -102 +219181468793084, 156872999311282, 283511036713571 @ 107, 199, 35 +214012796248074, 275390258643730, 191223467162002 @ -138, -181, 245 +154728556272596, 191463384844507, 281312531861237 @ 76, 470, -716 +206879193025518, 237366334430276, 255604595429025 @ -90, 18, -80 +256537961873990, 284215470011584, 194579264537591 @ -70, -78, 199 +216592162082504, 264435121550590, 270265546246733 @ -73, -83, -98 +178498568878649, 219617615101891, 205903455579299 @ -147, 132, 170 +200999110034798, 173269563976606, 304774330381229 @ -12, 298, -247 +206804497214834, 273305248093345, 209408277291716 @ 62, -50, 159 +225362580767540, 152903109310087, 467221313169659 @ 44, 250, -442 +176108476811174, 206300826051250, 173299476177857 @ 32, 190, 362 +348389318168510, 359030199773114, 428123683907817 @ -79, -125, -175 +272759789596990, 168746605054074, 274784196935406 @ 90, 147, 89 +183905492088072, 254884466045846, 212196998387869 @ 100, -17, 148 +262469685158204, 271262071025296, 355461114365071 @ 47, 8, -71 +218514671916736, 382664866338214, 195362645160384 @ -12, -433, 203 +383809554484388, 466135140184604, 114805137147939 @ -91, -248, 293 +208044537569270, 310095793003978, 308663167430465 @ 146, -39, 22 +366979533039998, 266221037821000, 334869523499267 @ -34, 32, 11 +223186938096188, 321929068168246, 213901337392553 @ 115, -67, 156 +87470490102904, 137444142073126, 175183883967153 @ 352, 263, 232 +248212110584339, 395939073213496, 323998671075347 @ -103, -467, -210 +219486311582326, 251361470218354, 246119144571617 @ -30, -10, 30 +236783298769050, 121301161291974, 343743227706741 @ -92, 441, -310 +322186826109518, 350031107392702, 327153091429505 @ 44, -54, 36 +331419514588878, 282746903068678, 288537730612485 @ 36, 20, 79 +317682922119372, 244350583400923, 322273936367350 @ -104, 44, -59 +174605643877940, 239107753506748, 273846604568312 @ 108, 25, -99 +237936295121672, 148134965984953, 339450350662325 @ -12, 282, -180 +375902565070565, 209971516601428, 227071916666897 @ -117, 105, 136 +369191841468281, 266001330670459, 329848815438890 @ -181, 6, -61 +355876424562770, 225430850109214, 402650806134341 @ 35, 82, -21 +171731096097150, 290211712269266, 218401240607889 @ -11, -452, 68 +268465561549904, 229785866375246, 265443026870989 @ 5, 73, 58 +195201526729362, 189623987463181, 189873728749532 @ 30, 218, 231 +407534357819094, 319980595357746, 348581051968089 @ -54, -23, 10 +351927245183504, 316946925968631, 317493158658009 @ -16, -30, 32 +209831696736070, 276820224666144, 203044147093493 @ -30, -123, 180 +442784186678942, 378190806892222, 411390683634053 @ -204, -144, -135 +162803147059574, 250231369985311, 242170899928769 @ 114, -66, -40 +211028895801663, 304576953523881, 361589519977276 @ 141, -32, -55 +199603752116521, 336058786968925, 283835345404722 @ 9, -358, -139 +507504675605472, 372917172962436, 267917330753347 @ -215, -102, 91 +204282928099077, 309418003203847, 222293923785813 @ 69, -148, 124 +407228477106134, 351078626040106, 366735020732369 @ -80, -70, -26 +178285829987366, 228823973946778, 258187023365465 @ 106, 67, -20 +322298441925114, 157606131163050, 37172129242305 @ 57, 151, 340 +192708194919521, 237321705463360, 315249581133566 @ 105, 49, -119 +160394496375896, 233057047471824, 218450791621336 @ -64, -51, -23 +495718520512280, 328073782189066, 232019006242469 @ -169, -37, 138 +342562452644958, 191360401981286, 428818142956225 @ 28, 118, -68 +217519783124059, 372497309059540, 293388056859213 @ 27, -331, -76 +453751601569358, 133277500524998, 165406866601353 @ -112, 186, 214 +133718863989821, 3063222526171, 247412780979527 @ 263, 758, 42 +295483731132839, 409307169350027, 292455124384605 @ 77, -114, 76 +262281968042673, 46476102551812, 405485544538184 @ 123, 257, -27 +267882149806214, 272019904778306, 213702915777049 @ -76, -36, 149 +228441177964039, 318228709947686, 143357880020014 @ 81, -89, 283 +215620039528328, 183166196160612, 337882139413019 @ 131, 144, -27 +230863779167754, 281359661681974, 216882495098505 @ -143, -160, 122 +498559811515694, 422800342209922, 552803460489245 @ -108, -111, -171 +205012084127876, 245790114394198, 206098283112689 @ -65, -19, 168 +436061054260858, 327384508057375, 349665145107287 @ -42, -16, 30 +206521766061731, 199552542378448, 243355804049936 @ 35, 161, 51 +290450430271133, 364442862082155, 394140092225585 @ 89, -60, -24 +175466983449398, 245998295961599, 227524114561555 @ 50, -36, 50 +223336167208334, 466150874002974, 379374925876095 @ 62, -443, -209 +196453907208044, 244198772457436, 225012577202999 @ -133, -50, 41 +139028457329500, 37616367551857, 77641544271978 @ 244, 320, 331 +225394876600626, 236503784379422, 247392242349539 @ -66, 39, 18 +222664230907919, 247002873096456, 320617037885659 @ 17, 21, -146 +277975020706532, 241728902213044, 238773768290066 @ 36, 57, 119 +281195371996334, 112438989492766, 377931432221849 @ -82, 341, -228 +377094235141690, 360688343286804, 369474701024287 @ -20, -68, -13 +444798262357424, 363343544024956, 353312987186105 @ -163, -102, -28 +308376375182204, 273431866122412, 366126732589157 @ 47, 26, -18 +265626794671837, 297380717905737, 245845219280694 @ 69, -18, 113 +200175627321557, 199951499439274, 308438229703628 @ 125, 131, -33 +178082737130366, 185283282543610, 262315468356797 @ 196, 131, 99 +400391641164904, 373129058282031, 558762538102429 @ -144, -138, -356 +169363531913114, 228225412107122, 235815832000803 @ 212, 79, 137 +218512520117536, 256887235689694, 288172387803591 @ 55, 5, -29 +163043361100763, 235683592643267, 219444204808432 @ 89, 6, 77 +219259584293234, 262323783321066, 299535925562139 @ -40, -53, -167 +306929801496016, 126940449204708, 313073954600845 @ 15, 216, 22 +472719759257630, 559402388307439, 393395778028175 @ -102, -264, -26 +141278788412130, 268886425007122, 168344495553873 @ 240, -49, 280 +246957199050706, 282832161854212, 423015437526361 @ 40, -28, -244 +372348027627984, 228347484543009, 292578142481066 @ -168, 76, 15 +271032616039160, 250288146465136, 294148956216335 @ -35, 28, -19 +206536773329094, 221423942483680, 259503332465477 @ 42, 92, 6 +295028712387190, 455671221903546, 522774430324849 @ 25, -242, -277 +371539695623214, 233376690525546, 414568862962609 @ -15, 73, -64 +257255425687670, 145282867702714, 130342295974577 @ -106, 319, 394 +188117938624139, 25835205238699, 271616657572370 @ 147, 480, 37 +193624435284158, 283876543228330, 252005689663181 @ 160, -9, 97 +161560944228851, 224188413045844, 223814987721614 @ 35, 85, -7 +302065658815894, 278883992418736, 370586722891444 @ 82, 29, 5 +195982335687151, 316374224605200, 254905766955885 @ 183, -15, 116 +249772012962944, 150492957816706, 230954860190597 @ -83, 303, 94 +335214669324500, 320423956366747, 340926164832701 @ -64, -68, -44 +213642106361294, 255650936557102, 264236127323381 @ -8, -24, -31 +405690793518014, 266683841446266, 161539637491209 @ -109, 27, 227 +159862419005406, 273410757887322, 291664213795698 @ 154, -141, -223 +169318892280910, 246733179515768, 242233105679217 @ -114, -194, -280 +248881260889431, 261682544615824, 198247408387241 @ -89, -31, 192 +139080613222519, 275597303505586, 278945502795534 @ 247, -85, -71 +178673998509764, 187515838437628, 205650407996507 @ -13, 330, 171 +226748056297526, 213056226161626, 219133146147257 @ 90, 103, 145 +234838879769347, 305385630810818, 178840437536434 @ 121, -21, 203 +300258700656269, 186378011807571, 220718620752064 @ -31, 148, 143 +194484281587548, 304080048915493, 333073444652875 @ -44, -340, -506 +281712517826078, 408444677746186, 1594074139089 @ 104, -97, 368 +222094380157809, 28937991015801, 218352383341789 @ 109, 402, 148 +173569941925637, 230067038912164, 261331581508118 @ 91, 57, -85 +282367432093634, 345071032563538, 345680135134193 @ 47, -83, -24 +296984669832342, 173060031528602, 130295736787681 @ -20, 169, 295 +213772319300302, 205795782152618, 218225527145729 @ 61, 129, 138 +214518217373654, 523916969585162, 459516353076209 @ 32, -768, -552 +169626678227318, 251145605466640, 120392498611415 @ 178, 24, 357 +159105649717772, 53612095053226, 70898404041119 @ 216, 323, 358 +310718414188730, 387869045521904, 264612604579995 @ -40, -188, 71 +240976147908646, 250759682572530, 279675721373125 @ 6, 21, -5 +427428033764534, 370192794902818, 436353750939465 @ -118, -100, -121 +377693614107294, 276550469774006, 326539495352973 @ -8, 28, 41 +358582143848664, 260619842060146, 210928810098049 @ -119, 23, 160 +406791084116324, 348897464572831, 303986210967371 @ -68, -62, 54 +173963299115474, 299565392162746, 251202984608369 @ 100, -237, -24 +223399866315646, 2183042400141, 97125119657086 @ 106, 448, 347 +359271662860566, 292253077360858, 392719299262697 @ 10, 11, -30 +267669940597046, 283366357880506, 291880782328049 @ 5, -27, 8 +326191722102064, 147735344868041, 419926908086424 @ 12, 178, -97 +166001862990318, 225611911273601, 241996318260146 @ 138, 78, 21 +156164785431974, 81107641032976, 222306795401939 @ 194, 525, 118 +180683816800164, 676064725908, 298280450394190 @ 132, 697, -85 +275735350005598, 339692659291113, 417607261780817 @ 58, -74, -120 +380487003018750, 263272925311932, 460479058668733 @ -122, 24, -218 +291734183726102, 126500145405934, 454546136975737 @ -22, 254, -266 +215554350773350, 243128323954710, 303388807283579 @ 34, 31, -102 +350448625268694, 150743712509796, 328171001419239 @ 34, 156, 47 +371841779372008, 337514107440914, 416540739701328 @ -36, -53, -85 +291204423769319, 260534844102352, 345988773415890 @ 17, 29, -41 +351469411647026, 285430699621000, 415113389914783 @ 14, 17, -58 +375012087346342, 254013812172018, 429558155030493 @ -122, 37, -179 +137700308943780, 109135850899022, 273508723560935 @ 261, 837, -273 +410272967211110, 74786891395882, 459567477640721 @ -41, 240, -98 +328086813170468, 415604078251616, 336682899705049 @ 41, -122, 28 +159397975646478, 309870374951170, 323708355059905 @ 211, -58, -26 +239964978616429, 281614136518296, 272165122655784 @ 51, -27, 41 +320083245136628, 314581156756546, 373852179893765 @ 43, -17, -18 +411284172830258, 510829190325949, 302504701456457 @ -50, -226, 64 +152837256446432, 270209648273305, 210605046254003 @ 128, -344, 126 +169420934543066, 313099955996950, 121626911036975 @ 140, -231, 467 +340532893550022, 149927805823782, 420307154450969 @ 46, 156, -42 +142391764095074, 238271091582004, 178814452744781 @ 212, -150, 626 +431148082462375, 143308991392342, 395289379093765 @ -59, 167, -28 +278481005739319, 434750870767327, 357368381879345 @ 67, -184, -24 +381675542318011, 490235905886377, 342355764542616 @ -11, -196, 25 +248519060194697, 488181759039820, 252347331638576 @ 53, -379, 87 +217583166410940, 256606583563256, 252217592265217 @ 15, -12, 32 +188682945393724, 299046684327446, 224911543366379 @ -80, -417, 42 +158731284200912, 234189089976226, 189522994261232 @ 20, -37, 371 +301655814994600, 146081589925944, 351635377919938 @ 24, 189, -29 +369244669469563, 391513441693035, 408080753962680 @ 19, -80, -29 +245106546719894, 387413905283482, 293879906904593 @ -208, -619, -210 +153128620640586, 230110514916914, 229174012557353 @ 115, 25, -66 +392341575910408, 327546261429707, 379285742122196 @ -24, -26, -15 +167352915766076, 243244993751374, 165094438870559 @ -107, -163, 703 +165886258110438, 224925008919442, 209570058234413 @ -42, 77, 129 +148185538074197, 251147093575486, 217692638138423 @ 225, 23, 142 +314283277623761, 336273774337318, 34371064786025 @ -25, -89, 432 +335779971093354, 212857800365547, 466923533535251 @ 22, 96, -126 +232810119512864, 222927310211556, 291864039374343 @ -73, 88, -125 +285402689900654, 164566421317792, 232390565382107 @ -138, 240, 99 +403966864035488, 286200397417165, 369132057170571 @ -52, 14, -14 +386086444392605, 332859605586409, 411617955375461 @ -59, -50, -84 +397163203044614, 336833234411506, 371594410232309 @ -82, -59, -41 +182759090922574, 266021708855266, 165776609184769 @ 81, -76, 322 +329733444702712, 313243360641686, 452346559805797 @ -56, -57, -220 +193402760735474, 240365713664662, 248878320251081 @ 47, 24, 10 +218944749852526, 37333829720290, 398751067077933 @ 144, 317, -73 +381454787342189, 333009595459781, 384610764802070 @ -13, -32, -21 +289281102281198, 329015085384434, 315540698366660 @ 26, -69, 9 +139118085765086, 235415971366572, 216132346229843 @ 266, -95, 6 +333623065418684, 381665183716486, 225161833906209 @ -163, -247, 128 +216282915873248, 249616990416264, 232129472180698 @ -40, -11, 71 +302851132686828, 46443094580070, 503674848010885 @ 25, 321, -230 +370489964387066, 275579935384126, 351289030956545 @ -5, 28, 12 +282973154291994, 254491666837574, 221962206214547 @ -108, 9, 129 +412266502846601, 143565864780334, 328084200307196 @ -121, 191, 5 +182065902232958, 246168536206618, 258448394979689 @ 44, -21, -82 +140479173011833, 255876485907657, 254894685250018 @ 243, -168, -221 +260489864338082, 276689824540726, 313109949848285 @ -56, -47, -98 +234260539336934, 318325553246701, 220871390440784 @ -94, -254, 115 +257077177409169, 190447456798411, 121572479687494 @ 67, 134, 295 +294490689959642, 240310138944982, 293211952756636 @ -106, 47, -29 +354957840511370, 495734855438943, 418750293903439 @ -10, -236, -82 +417745975923774, 293484304091146, 309738404744489 @ -119, -7, 33 +178036993404394, 290432302550051, 351282441792434 @ 102, -164, -375 +272561138243744, 176786320665271, 300472253244764 @ 84, 140, 55 diff --git a/data/25_2020.txt b/data/25_2020.txt new file mode 100644 index 0000000..ae2e4c4 --- /dev/null +++ b/data/25_2020.txt @@ -0,0 +1,2 @@ +14082811 +5249543 diff --git a/data/25_2021.txt b/data/25_2021.txt new file mode 100644 index 0000000..46bd7ba --- /dev/null +++ b/data/25_2021.txt @@ -0,0 +1,137 @@ +vv..>.v.v..>..v.>>.vv.vv...vv>v..>..>vvv..v..>..>>...v.v...v...v>v.>v>>..vv....>v>......>>.v...>.>v>>>..v.>>v..v>v>.......>>..>v.v..v>...v> +v.......v.v.>v.>>..v....>.>.>.....>..v.>>v>.>.....v..>v..v>>....v..>v.>.>>.>.>v..v>.vv...>..>>vvvvvv.>v>v.>v.....>......>v.vv..>..v>vv>>>v. +...>..>>.vvv.v.vv>...v..v.v...>...>v>>>>>v>v.>......v...>>.v.>v>.v>.>..>.>.>>>..>.v>>v.>..>>.>...>>..>.v....>>v.vv.v>>>.>.v....>..>v>.>.v.. +v....v.v..>v...v>..vv...>..v.vv...vv>.>..>>..>..v>vv>v...>...>.>>....v.v....>>>.>>>>v..v>.>.>>v>>..v>v...v.v>vvv>>v....>..v.>v.>.>.>..v.>>. +v>>...v>v>>....>.>..>..>>vv>..v.v..v.>>>..>v..v..v.>.vv>vv.vv>......v......>....>v..v>>.>..>.v.v>.>>.>.v.>.v>..>.>>v>.vv.>v.v.....v..>v.... +.v.v>.v..vv..>.v...v>v..v.>v.>...>..v....v>..>.>.vv...>>v....v>.v>.v.vv.>.>.>....v.v>.>>>.....>......v..v>>v..>>v..v>v>.>..>.v>>>.vv>.>vvv. +>.>>v..>.>>.v>.>..v>..v>..>..v>....v.v.v>......v>>..>>>v.v.v.>>v....>vvv.>>v.>.>>.v..v.>....>v....v>.v>.vv...>>.v..v..v>>..v..>v..>....v.v. +v..v...v.vv.>vv.v....>>>.v>>v.>.v..>v.>..>....v..v.>.>>v>..vv...v..vvvv....>>vvv.>....>...>.v>..v...v.....v>>.v>.....>.vv..>v>.>>v>....v>>. +>..>.>.vvv..v..v.....v>.v>...>.v>....>..v>.v.>.>>>v.....>>vv>.....>>v..>>.vvv>.>.>>.vvv>.vvv>>v.>>.....>..v....vv>.>vv.>v>v..vv.>>>...v..>. +...v>...v..>.v..>..>.v..v.....>.>>>>v.>.>..>>v>>v.vv..>v..>v>.>>.......>>vv.>.v.>..v......v.v>v...>vv>v..vvv..>.vv.>>v>>>..>v..v>>.>.>v..v. +.v.v.>>.>>.v..>...v.>>>v.>>>>..vv.v.vvv>....v>.....>..>......v.vvv..v>>...>.v>..v.>v.v...>.>>vvvv.v..>..v..>vv>.v.v>.vv.v>.>>>vvv..v.v...v. +..>v.v.>>vvv>v..>.......>v....>v..vv.>v...>.>>>..vv>vvvv...>....>....>v>..v>.v.v..>v....>>......v.>..v...v.v...v.vv.>....v.v>v...>>vv..>v>v +v.>..v>....v....v..v..>v.>.v>..v.v>v.v.v.>vv...v.v.v>v>vv..>v>..v>..>.>v>v.v>.>..v....>v.....>.>>.>.>..>.v.>....>>vvvv..>>v>.....>v.>vv.>vv +>..>.>.>..>v>..>>vv>>...>.v>v...v....vv.v>...v.>v.v.....v..>v.>v>..>vvv.>v.v>.v.>v>>v..>.v.v.>>v>>..v..v.>..>>v.v>...>..vv>..>..v...>>..... +...>.vv..v.v>..>.v..>....v>>..>>.vvvv.>..v.>v.vv...>>..>v..vv>>.>..v...>v.v>.>v..>.vvv>vv.v...>v...>v...v>v>v.>v....vv>>....v.>v....>..>vv. +>.>.v>>v>v...>..vv.v.v>...v.v>>...>>.>v>vv..>v>v>.v......>vvv..>.>.v..>vv....v.>.>>vv..>>>.>>.>v>.v....>.....>>>.v.vv.>.>..>v>>..v..v>v.>v. +>...>>..v>v.>v...v.v.....>vv..v.>>.>vv.>>.v.>.>v>v...>..>.>.vv..vvvv>>.>.v>...v.>...>...v...>.>.vv>.>v.vv>..>...........>.>.>..vv>.>vv.>... +...v..>>>.>.vv.v.>v.>......v>>>.v.v>vv.>.>.vvv.v>.v......>v....>..v.>>>>>.>........v.>..v..v...v>..v...>v>vv>v.v....v..>>v>>...v..>>.>.>>vv +.>v.>..vv>...vv>....v..>>v>>>.v.>>>vv>...vv...v.>>..vv...v...>>...>v.....vv>v...vv>.v>v...>..v>v..>>v.v>>vv>.v>..>vv..>.....v>>......>>>..v +.>..>.v.>>>........>.v.v...vv.v....>v.>>>v..>.vv...v.>v...v>.>..>.>v..v....>...v>>...v...>.v..>..>.>>.>v...>..>...>v>..v>..>.v>v>v>..>v>>.. +.v..>..v.>v.>..>vv..v...>..>>v..vv>.>.>.>.vv....v.v......>v...v..>>...v>v>..vvv.>v..>...v>v.>....>.vv...v....v.>.>>.v>>v>....>>.>..>..>.>v. +...vv....>>..>....>...v.....>.>.v.>vv.v>>.>.>>v.vv..>....vvv....>>>......>>.v.>.v.>>v>.vv>>.v>>>v.>>.>.vvv>.....v..>.>>.>..>>...>v...v>..>. +>>vv...>.v...v.>.>v..v>>.v>>.v..vv......v>.>>v..v...v..vv>>>....>>v...v.v..v>>>.vv.....v>....v..>>...v>>v..v....v.>...v.>..>>v.>.v.>v.v..v. +>..>>.......v..v>..>.v>....>..v>v.v>>..vv....>>..vv..vvv.v>..>..>..>.v.v.>>.>vv.>.v>..>.v>..>.v..>v...v.>v.vv>v..v..>.>>.v.vv.v>...v...>..v +v.v.>..>.>vvvv.>>..v.>.v...v>.....>..>v.>...........>v..v>.v..>.v....vv>.>v.vv>>v.>.>>..v.v.>.vv...>>.vvv>.>....v....v..v..vvv.>v.>v..v..v. +>v.v.v..>v..>..>vv.......>...>.vvv..v....>..>v>.v.v.v.v>>>.v>..>>v>..v.>v....vv>.v..>.v>v>>..>v.v.v.v..v>.v>v.>..v>.>>.v.....>...>.>vv.>v.> +..>.........>v>>..v.>>vv.v.vv...>v.vv...v>v.>>.v.v>..v>.vv.vv.>......v.>.>v.v>..vv..v.v>>.>>.vv.vvv...>.v.v.>.v>>...>v..>..>.>v>vv>vv..>>.v +.>>...>.>>vv>v>>.vv>>.v..>v...v.>.v.....v...v..>.>....>v.........v..v>.v.v>>.v.>vv>..>v>.v>v.>..>..>.>.>.vvv.vv>>..vv.>.vv....>>vv.vv.vv.v> +v...v.v..v>.>>..vvv.>.vv.v.>.>v..v..>.vv...vvvv..>..>>>v.>>..vv.vv....v..v>..>.v>v...v.>v...>v.v.>>>>v...vvv..v.>v>>v..v.>.vv>>>.vv>..>..v. +..>>>.v>.v>...>v.v>..v....>v>.>.v>..v..>..>>.>...>v>..vv...>>.v..>vv>.>>..>>v..>vv..v..>v.>v>vv..>>>v..v..>v>v.>.v>>...>v....>..v>.v.vv..>. +v.>>.vvv>v.v...vv..>.vv>v..v.v..>>....vvv.v>.>vvv...v>...v.....vv>v.v..v.>>>.>vv......v>>>.v>.v...vv>.v.v..>>.v.>v..>vv>v.vv>.>.v>......vv. +..>..>v.v>>......vv..>.v>....v.>>>.>..v.>.>.>.v>v.>v>.v.v..>.v.v.v.v.vv.>...v..>v>v>.v>v.vv>...v.>v..>v.>>v...v>..v..v.v>v.vv.v.vvv.....v.v +..v.>vv>.v..v.v......vv>.v.>......>..v>v.v..>v.vv>v..v>...>....>..v>...v.>v.>v>v>.v.>>v.>>>vv....>.>....v.>>.>.>.v>>v..>...>vv..v.vv>vv.>v> +v.v...v.>v....>..>>....>v>.v>..v..>..>>>>.vv.v>..vv.>.>.>..>.v.vvv..>...v.....v>v..v>>.>>.v.......>v...vv.>vvv.>>....>>...>>.>vv...>....v>v +v..vv>>.>>...v....>.>.>vv>v>>>>..v..vv>....>>v.>..>>..>.....>>>>vv...v>vvvv>>>.v>v..v..vv.....v.>.>>.v>..v..>v..>>>.v.v>..v.>>.vv..v>..>vvv +v..vv>>>v>....v....>v>vv>.v..>.>vvv>>>>vv..v.....v....vvv..vv...>>.>...v...vvv>.>.v>v.vv.v>.>>...>>..>.....v.>..>v..v...>.>>..>>.>.>...v>.. +v..>..vv>>.vvv>..v...v.>..>>v.v.vv.>..v.>>v>.v>.v...vv>>v>.v.>.>.v>.>...v.v>.v..>vvv>>>v.vvv>v>v.>..>...v>.>v>...>>>....>>.>..>..>.>.v.>.>. +.vv..v>..>..>.>v.>.>v.v.>.vv.>v.>...v.vv>>..>>.v..>>>.v>.vv>.>v.v.v....v>.v>.>.vv>.>>......vvv....>>..v>v.vv>v.v.>.v>v..vv.v...>>v>vvvv.>.. +...v.>..>.....v>.v>.vvv>v.v..>>v...>....v..v.v..>..v...vvv>..v..>..>.v>>>.....vv..>.>...>>v>>vv.>>v>.>v.>>>.>v>>>vv...v>.>.v>>>v>..v.....>. +>.v.v.v..v..>...>...v.....vvvv..>>v..vvvvv>>v...v.v..>>>.>>vv>...>>.>>vv....>...v.vv.>..>v>.v>>..>v.>.v..>.>..vv>>.>.....v>v>.v>v>v..v..vv. +..v..v.v.vv>.>>>..vv..v>.>.>>>...>....v.v...v..v....>.>v..>.>>...vv>>...>v.>.>>.....>>v....>..>>vvv...vv.v..v..v>..v>>.>.v..>..>..vv....>>> +v.....>v.v........v>v.vv.v.>..>>.>...v...v..vv>....>..v.>.>v.>.v..v>..vv....>.v>>..>.vv>.>.>.v...>.v.>....vv>....v>v.vv>.>......>>.v..>>>vv +>v....>>v>...>v.>v.>v...v...vvv.v..v>v...vvv.v>>v.vv.v...v>.>..v...vv.vv>.>v>>.v>.v..v>v>>>.vv>.v..vv.v..v.v>v..vv>.....>...>>v...v>>..v.>. +v...v..v..>...>.>.v.v...>>>...v...>vv.>.>...v>>.vv...vv.v.>v.>..>v.>..v.v>vv>v.v>vv.>..>..>..>>vv>v>>....>>............>.vv.>v>...vv>>v..>. +..>>v>>....>...>.vv.v.v..v..>>>.>..vvv...v.vv>...>..>>.>....>>.......>.>v.v....v.vv>..>....>..v.vv..>.>>v>.v...vv.>.v>v>>...>v.>.v..v.....v +.>v>.vv..v...v>.>v>>..>vvvvv.>>..>..>.v.>.v.>.v......>.>>>>.......vv.>v.v...vv.vv>.v>v.>.>.>>v.>v....>>vvv...>..v...v>>........v......>.>.v +>vvv..v>>.v>>.>.>>vv.>..vv...>.......v..>>>v...v.....v..v..>..>>v...v>.>>>.>>>v.v.......>..v.>>>v>>.>>>v>.>>.>..>.>.....>.>.v..v.>v>.>>..vv +.v>.v>....vv.>v..>..v>>.v>v.v>v.>..v>.......>v..v..>vv..>.v...v..v>...vv.......>>>>...v>.v.v.>>v...v.>vv....>v..>vv..>.........vv>..>v..v.v +...vv.>.vv>>>>v>......>>.v.>>..v..v.vv>v>..v.>.>>>..>..vv>..v>..v....v..v>v..>.>v...>..v.>.>.>.v.vv>vvv.vv.v.>..>.v>...>v..v>v>.>.>.vv.>>.> +>>.>>...>vvv..v..>v>.>>.....v..vv..v>vv.v.vvv..>>>vv>v.v>...>v.v>>>.vv>.vvv..v..v>v..vv>.v.v...v.......>.v...v>v.>...>vvvv..>.>>...>>.>v.vv +..>..>v..>.>v.>vv....vv.>..>vv.v.>.>..>>..vv>.v....vv>.v.vv.>.v>.vv.vv.>..v.v...v....>vvv>>v>.>v>>v>.>...vv...>....>v......v>.v.vv>.v.>v.v> +.v.....>.>.v.>v...v..........>.>.>.>.>.v.>>.vv...v.>..vvv>v>v>>...>>vv.>vv..>.>>.>v>.v.>..>..v>v..v>>....vv.>vv>..vv....v>>.v.vv.>..v...>v. +vvv>.>v.>v.....>..vv......v>>v>>.v.v>.>.v.v....>.>>.>.>.>v.vv.>v>>..v>.v..v.>.....v..vv..v>..v.v>.vv..v>.>.>>.vv>.v>vv.v>>v>.>...v>>v...v.> +>>.>vv..>.>.>v.v>vv>v..vvv.v.>.v.>>>>.......>vv.v>v..v>.>>>..v>...>.v.v.v.>.>.vv>...v..>.>.......>.vv>>>.>.v.>...v..>>v....>.>.v>>vvv...... +.>>v.>v>.>vv>>..v>.>v>..>>>>.>v.>.>v.v.v..>>.v.v....>.>>..>vv.v>>..>.>>v.>vvvv>v......v.v>..v.vv>>.v>..>.v>vv>.vvv>.>>>>.>>.v>>.>...v>..v.v +.>vv..v.>.v.v...>....v.v.>>.>...>..>v....>....>>>.>.vvv>.vv.>v...v...>>v.>>.>.v.>>.v.>.>.>.v.v>....v.v>>...v>>..v...>v..v...v......v.>..v.> +.vv....>.vv.>...v>>...>v..>>v...v.v...v>v..v>vvvv>.vv.>v.v>.v......>v.vvvv..>..>v...>.vv...........v>.>>v>.....v>.vv>v..vv>.vvv.v..>......v +..v...>.>.>v....vvv..vvv.....>.vv...>v.>v.v.v.v...>.>>>v.vv>v.>>>..v..>v>..>vvv>v.>v...>v.v...>.>..>...>v>.....>.>..>vv...>.>>>>.>.v.>....> +.>...v...>v.v...>>.>v>v..v...v..>.v..vvv.v.>v.>vv..v>..>.v.v....v.....>.>..v>....v>......>.>>.>...vvv..v>..>...v.......>v.>>v...>>>..vv>..v +.v..v....v.v..v>.>v>..>..>.>....v>vv>>.>>>>>...vv.....vvv.>.>>..v>..>..>>>>..v.......vv...>>..>>v...>>...>.>v...>vv.>v>..>.>v.v>...>>v...v. +v..v>.vvvv>.>v.>>.v>.......>...v>vv.v>v...vvv...>.v>.v>.v>.>>.v>v.....>..v>..>>>..v.v.v>vv..vv.v......v>>>v.>..v..v..v..>.v..vvv.>....v..>v +>...v.......v.>vv..vvvv>v>>.v.>v.>vv...>>...v.>>v...vv.>>>.>>..>>.>v.>>...v.vv.v...>.>.v.>>v>..v>>.>>.>>...>..v>v>v....v>vv..>v.>>.....v>>> +..>v>vv>>>.v.v..vv>>v>v..v....v>>>.>>..>.....v.>....vv>>v>vvv>.v..>v.vvvvv>...>v>.v....v..v...>.v..>vv...v>v>v.>..>...>>>>.v...>v>>...>.>v. +.v.v>..v....>vv.vv..>vv....v..v....>>vv>.vv.>...v.....v>v.>v>.v..>..v>.vv..>v......vv>>.......>.v.vvvv..vv>>.>>.>>.>v..>vv>...v.....>>vv.v. +.v>.vv.v....v>v>.....v..>>.v......>v..>...vv.>v>v..v>.>vvvv>..vv.v>>vv>>v>>.>v..>.v.>.>vvv...v.>.......>v...vv>vvv>.v.....>.vv.v......v>v.. +.v>>v...>v....>>...v.v>v.>...v.>...>.>v.v...>v..>..v.>..v.>>.......>>vv>..>v.v.>>v>...v......>.>v.....v.>v..>>v>>>vv>......vvvv.....v..>v.. +v>v...>.v....v.>.>>vv.>v.v....>>.>....>..>.vv..v..v>v.vvv>.vv>...v>v..>...v.v>v.vvvvvv>vv.v..>v...v>v>v.>..>>.>..vv....>..v...v>.v.>.v..>.. +vvv.>v...v>v..v.>v..v..v.v.v.v>v>.>.v>..>...vv.>v..vvv.....>..v.>.vv..vv>.vv>.>..>>>..>..v>>>.>.v>>>....v..v..>vv>..>....>>v.v...>..vv>v.>v +v..vv.v>.v.....>>>v>...vv.vvvv.>.>>..>.>.v..>.....v......>.>>.v..v>v.vv>..>v..vv.v>v>.vv...>.>vv>v..v...vv...>>vv..v..>>v.>>.>vv>>.v>.>.>.. +...v....>>vvv>.v..v..v>v.vvv..........>..>.>>.>>.>>.v....v>..v>..vv...v...>vv.>...>....v....v.v.>>.>.......v...v..v>.>>>.vv.v...vv>v..v.>>v +v........>>.v....>..vv.>v.>.v.>>.>>.>>.>.>v.v.vvvvv.v.>v.v..v.>>....v...>v>>.v...v.>>..>>v.v.....v>.>v.v>>>v..vv..v.>..>v>..v...v>.>>v..>.. +>.v..>.>.v>..v..>v.>.v.v.......v....vv......v>v...v.>...v>.>.v>...>>.>..v.....>.v.......v.>...>>>...v.v....>.v>>>v.v..>>>..v>..>vv.>>..>... +v>>.>>.>>.>...v..v...vv>>v.>.>v.v..v>..>..>....>..v.v>.v.v..v.v....>>v>vv>.v.v.vv>.v..>.v>>..>.v...>v.vvv>.>>v......v...>.>....v>.>v>v>.vv. +.v>v>.>v..v.>....v.....vv..v>>.vv.>.>..>..>.vv.v>....>.>...>...>vv....>..vvv.v..v.v..v>>v>v.>>v.v.>....>>..v.v>v.>.v...v.v.v>>...v.v...>..> +>>v.v.>.>...v>>>...>.v>>..>>vv.......>vv>>v..v.v......v.vv.>....>vvv>>vv.v>.>vv>v....>...v..v..>..>vv>..>>v>...>..>.vv...>.>v........v>v... +.>...>.v.v>>..v..>.v>vv..v>>.vv..>>...>v>.v.v..v.>.>.........>>...>vv>>>.v>vv>>.v>.vv>.v..>.........>>v..>v>.>>>v..>>>.>.>v>.v.>.v>.>v....v +..v..v>.v>.v.v>>>>.vvv.>....>vvv.v.........v.v.>..>..vv>.......>vv>v....v>..>.>v>v>>.>>.........>.v..>.v..v.>>v>>>v>.....>.........v....v.. +....>>vv.>.>.v.v>v>>..>v>.>..>v>.....v>....>v...>vv..>.....>.v..v.vv>v>>v>.v.>>..>vv..vvv..vv..>.>>.v>>.>v..>vv..>......vv.>v>....>v>..>vv> +....>>..v...>.v>....v>v...>...>....v...>v>v..>..v.vv....................>v>..>.v>.>.>>>vvv>...>.>v>.>.>....v...v.>.>.v...v...v..v>v....v..> +>...>.v..vv.v.vv>.v...>vv......>v......vv......>>.v.>........vv.v>v.v>.v>.v.....>>v...v..>.>>.>.....v...>.v....vvv>>>>..v.>.>....v.....>..v +>>.v..>>...v>v.>v.>.>..v....>>v..vv.v.vv.>...vv..>>v..>v>>>.v>....>....>v..v.>>..>..v>.>vv.v..>>>......v.>v.vv.>>>..v>...v.v>vv.v....>>.... +v>.>vv...v>>.>.v..vv.>..>>>.>.>.>.>.>>..>v.v..>v.>v.v>..>..vv.....>v.v...vv>>v.vv>v>...v>..vv>.v>>.>vv......v..vv.v.>v>>>....>.v..>....>>>. +..vv.....>.v..v>>v>.v>...>..v.....v..v.>>>>..v.v>.vvvvv.vv.>..>>>>>>.>..v>.>vv>v.>v.>.>v....v.......v.>>.v.>.vvv...vv.v>....>.v>>.v.v>..>>. +.>.......vvvv......>.>...v>v>>>.vv>v>.v>....v.>.v...>>>..>..>>.>vvv.....v.>.>v.vv.>.>..v>>.>.>.>.>..v.>.>>v.vv>.v.v.>v.v....v>v>>..>.....>. +.v...vv.vv..vv..v...>.>..v>v>vvv.>>vv.>vv..vv>>...>.vvv...>>v.>v....>>.v...v>..>.>.>vv.>..>>v...>.>...>v>..>>>v>..>>.>v....>....v>>>...>vvv +>vvvv.v..v..>>.vv.>>>..vv.>vv>>......>v.....v>......vv>vv>v>>v>..>.vv>>...>v.>v.vv>.v>.>>...>..>>>..vv...vv.v.v...>>v>.>>v.vv.....>.v>>>>>> +.>>vv>v..vv...>.vv>...>...>...vvv.vv......v>..>.>>.v...vv>v>>>v......>..v..>v.>...v>..>......v>..v...>.....>vv>v..v.v>..>v>..>.>v.......>.> +.>...>>...v....v.>vv>>.v.>.v.....v.v>>.>.>..v..v>.v.v..v.>.>>.v>..>>v.>.v.v>..>.v>>v.>.....v.>>>v.>.v.>v>.>v...>...>v....>..vv.>.>vv..v...> +.v..>>.>..v.v>v.v>.v.v....vv>.v...vv..vvv>...vv.v.v..v...>>.>...>v>>>vv.>..v>..vv>v..v.vv.>>.v>..v.v..v.v.>>>.>.>v>...v......>..v...>vv>>>> +....>.v>.>v>v..v.v..v.v..vv.>...vv>>.>vv.>v>>>..v.v.>.vv>...>.v.v.>.vv...v.>....>vv>>....v.v.v>v.>>....vv...>..v.v...vv..>>.v.v.v>v.>....>> +>....v>.v.vv>.>>>v...v>..>..v....v..v....>.v....v.>>..vv.vv.>>>..v.>>>vv..v...v>>v>>..>.>.v....v>.vv..>v>v....>.>>v.>..v...v.>v.vv.v>....>. +>v>.vvv..v...>>.>>.v....>.v>vv>v...>v>..vv..v...vv>.>.>..>>.>..v.v>>>.v>..vv.>v..>>v>>>>.>...v>v.>....v.>>.v>..>>v>.v.>>.>..>.>>>>.>v..>..> +v.>..>..>.>..>.....v>..>vvv>v>..>>..>.v.>>>......>v>....v>>.v..v.v>..>v....vv>v>>..>>.>>.v>..v.>.>v.v.>...v>vvv>.v.>.v...v.......v.v.v..v.v +v>.vv...v...v.v.>v>...v>>.>.>.>vvv.v....vv.v..vv...vv>>>>.>.>.....>>......>vv>>...vv.>>>>v>.>..>>..>..vv..v>>v.vv.>..>.>v>>>>.>..>......v.. +>>>.....>..v>v.>v>...vv.v>...>v..v>>>....v.v.....>...vvv>v..v.>.....vv.>.....v....v>.v.>..v.......>....>>..>.>v>>.....v>>v.>vvv>v>>>>>...v> +v.>vv>>vvv>..>>..>.>.v..v.v.vv>....v..v.vvv..v.v.>v>.>..v>>.>.vv>.v.>v.v.>.v.>>.v.v...>v>v.v.....v>>..>..v.>.v.v.v...v..vv..v..>...v....>.> +......v.>..>vv.>v...>>>...>.vv..v>..>...vv>>.v>>.v>>v...v>..>....>v..>.>....v..vvv>v...v.......v>v....>..v.v......>...v.>v...>..vv.>.>>..v. +>.....>.>vv....v..>....v.v...>v...v..>.v>..>.v.....vvv>....>v.>..v....v.>.v.vvvv..v..>v.....>.>v>v.>>vv>...vv..>..v...v>>v..v>>v.>...>>>.v. +.>>vv...>>.v..>.>v.v..>>v.v..>>>..>>.....v........v>..>v.>vv..v.....vvv.v>v.v....v>.....>....>>..vvv.>...vv.>>.>.>.>v.>v.v>......>v..vvv.v> +.v...vvvvv......>>v....vv...>v>v>..>...>v>vv.>..>....v.v...vv..v.vv..>.>v.>v>.......>.>.v>.v>>v.>v.>..>.>..>v.>>v..>...vv.vv>.v>>v.>>...>v. +...v..v>vvv...>v.>...vv.>vv.v>>v>...>.v.>..>...vv..v..v..>>>>...v>.vvv.vvv.>v......v.>v..>....>>...v>.>>>..>vv>.>..v>.v>.v....v....>vv..>.> +...>.>.....v....>.v>>...>.vv..v..vv..>>>v..vvv.>>.>..vv.>vv.>..>...v.v>.v..>>v.>...v>>>.....vv...>v.>vv>>..v.>.v.>.>..v>>.v>v.>v>v>.v>.>>>> +v>>.>v..>.>.>...>....>..v....v.v>>v........v..>.vv.v>>>.v>..>>>>..v....>v.v>.>...>>....>..>vv......>......>>.v....>.v.>v>.>.v..>...>....>>> +.>vv>.>..vv..>.>vv..vv.vv..v.v...>..>.v.v.v>......>.v......>..v>...v.....v>..>.>>>v.v..>..>..>.>v.v>..>..>....vv.vv.....v>....v.>.>>v>..v.> +>>..>vv>>.v.>>>.>.v...>...>v....vv.vv>vvv>..vv...>.v>>>v.v...>>.....v>vvv>v.>>>v.....v.v...v>>>..>.v...>vv.vvv.v.>...>v>.>>........vv.>>>>. +.>.>>.v>..>>.>..>>.>>....v..>..>v.v>>>.>vv.>.v.v..vvv......>.>..v..>.....v.v.v.>.>v..>>....>v>..vv...vv..>....v>>v>v.v..v..>..>.>.vvv>>.>.> +..v..vv..v>v.>..>>.v.v.>v.vv>>..>v..>>v...v...>v>.>.v>..>.>..>v>>v>>>.v>...>....>v.>vv>>>.v.>....>..v>v.v..v..>..vv...>>....v...>.v>.v>vv.. +....v...v..v>.>.>v..v.v..>>>>.v.vv.v>.v.>.vv.v...v..>..>v>v.>.vv>....>.>>vv>.>..>..v>..>.v..v.v...v....>>>..v.>v.>v..vv.>>...v>.>.v>>.v..vv +..>v.vv....v.v...vvv>vv.....v>>>>....>>>..vvv..v...>...>v.vv...v>>>..>...v.>>.v.>vv.>v.>vv>>>>v.v>v>>....>>>..v.....>vv.v..vv.>>v..>..vv>.> +v..vv>vv>.v>...>..v.v>..>v....>.....v>.>.v>...>>>vv..>>v..v...>v....>v.vvv.....v.v.v>..>v..v>....>v..>v....vv..>.>v>..>v.>.>vv.>>v.v>v...>> +>....vv>>..v..vvvv>v.>v..v.>.>....v..v>.vv>..>v.....vv>vv.....>vv..v>..vv.>>v>>>>..>..v...........vv......v>v....>v>....v...>>..>...v..>v>v +..v.v>.v>>...v.>>v..>.>..v.>..vv..>.>v>.v...>>>..>v...>.>.vv.v....>.v.v.>.vv..v..v.>>.>>.>.v.v.v....v>.....>v.>>.>..v..>>>.>..v..vv.>v.vv.> +.>..>>.vv.>v...>.>>v>.vv>.vvv>>...>vvv>...>.....vv>v>>.>..v.v>...>..vv>..>..v.>vv.>.v>vv.vv.>....>>...v.....>.>v>.>vv>>.>v..>.v.v....>>>... +vv.>vvv>v.vv>v.v....v>..>>.v..v>>v.........>...>v.>>....v>..>.>.>.>..>v.v>>>v>.>vv.vv.>...>>>.....vv...>..v.v.v.>v.v.v..v.>.>.......>>.>..> +.v>v.v>.>>..>.>...v.v>.>..>...v.>..>...v>>vv..>v>.v..>..>v.v..>vv..v>>v>.vv..v.......>>.>.vv>v.v.v....v>...vv..>..>v..>.vvv>..v...>.v...>>> +vv>v.>>vvv>.>>v.>v.vvvv>>..>.>>.v.v.>..v.>v....>..>...>>>..>>vv>..>v>.........v.v.v.v.>.v>>>>.>.>.v..>.vv....>>.>..>.>..vvvvvv.v...vv>...vv +>>>vv>>>..>v>>>.>.v>v.v>v.v>.....>v>..>....v.vv>vv..>>....v.>.vv>>v>>>v.vv.>vv.v>.v....v>.>.>>..v..>>....v.v>v>..>>.>..vv>...>..v>>..>.>vv> +>>vvvvv..>>..v.v>...v..>>.>>...>.v..>.>>vvvvv....vvv..>.v.....vv...v..>>.vv.v.>vvv..vv.>vv>v.v....>v.>.>..>>>v>v..v.v.vvv....>v.....>>..... +>.v.>vvv>vv>vv.vv>..v.>.>.v..v>v.>.>v..>v>..>.vv.v>...>v..v.....>.v...v>v...v>vv.>vvv..v>>..>>>...>.v...vv..>.v..vv..>vv>>.>....>...vvv.... +>>v.v>vv>.vv....>..>...v.>v.vv>>v>>vv.>>>.v.>v..>..v....>...>..>........>...>>...>..>>.>.>>v>..>.>v.v.v>..>vvv>>.>...vv.v>..>>....vv.v.>>.. +>v....>v..v>.........>..v.>>.v>.>.>.v.>..v.v.>v>>v>v.v>...>.v>.>>vvvv>.>v...v.v.>.v.>v.vvv.v>v..>>v.vv..v.>v>.>v.>.....v>v..>>.>v.>v>.v..v> +v.>.vv..>vvv.>..v...v>v..v>>>>...vvv.....>>>.v>v.v>..v..v>.>>.vv.v..>>v..v.vv..v..vvv>..v.v.....>..v.v.>v>>v..>>v>v.>vv...>.v.vv>...>>v.v.. +v.v.v.v.>v>.>>.....vv>>.v>..>>..v.>vvv.v..v.v..v.>....>v..........vv.>.vv>vv......vv>.v.v..>vvv..>...v>.>v.v..>>.>..>.>>....>>.v..v.v..v.>v +>.vv>.>vv..v>....v.>>>v>>...vv>.v...>v.v.vvv>>..v>.v>>v>.v>>vvvvv>>.v...>v...v......>.>>>.v...>.>>.>>v>.vvv>v.>.>vvv>.....>>vv..>.>>.v>.v>. +....>v....v...>v.>.v..v>..v>....vv.>.vv.>v.>>vv>>.>v.v....vv.v..>....>>.>>....vv.vv....>vv.>>.>...>.>v>vv.....>.>.v>.>.v.>...v>>..vv>..>... +v.v.vv...>vvv>...v..v>.....>>>.v....>>>...v>>.v>vv>v>..>......>>v.>>v.v.>.>vv.vv...>...>v.vv.v>..>.vvv.v>.>..>.>..>v>.>>.v>vv.>>v..v>...>.v +.>..........v.>vv>>.>.>>v.v.v.>vv>...>..>v..>.>>....v>>.v...>>.>vvv...>>v.>.>.>.v..>v>..vvv...v>>>....v..v.v.>..>..vvv>vv...vv>.>>v>v>.>..v +v.....>..>v.>v.>.>...>.....vv>v.>.>>>vv>..v.vv..>>.>>vvvvv>vv..v>.v.>..v.>v...v.>..v>>.>...v>.>.>>vv.>>.v>.v>>>v.>..>v.>v>.>.>>vv>.>v.vv>>. +..>.vv....v>.>..v>..>..v..>v.v.>.>v.>vv.>.vvv>.>>...>....v>vvvv.v>.v.>>>.v..v>.>v.v.v....v..>>>v>..>.>>.v>>>>v>>>v.v..v.v.>>>>....>>...>v.> +......v.>..>..>>.>.v...v...>.>.>>>>vv..>v>>.>.>>.>v>..>>>...>>>v>>.v.>v>>..>v.>.>.>>.vv>v.>>.v...v.vv>>.vv..v..>....v.>..>.>.>vv.>v..>.>>.v +....>......v>..v..>.v>.vv.v.>.vv......v..>.>v..vvv>...v..vv>v.>>......>..v>..v...>v>vv....>>>....vv..>>..v>v>.>..v.v>..v.>v.v.>v>..vvv>>>>> +...>>.>>>>..>v>>..v>v>vv.vv.>v>...>.>>vv....>.v...>>v.vvv...>.v.....>v.vvvv>...v.v.v.v..>>.v.v...>.>.v..........>>>.v...vv.>...>vv>>vv....> +..v..v>>v.>.>vv..>.>>>v.>.v..>>.v>.v>>>>.....v>....>.v>>>>..v>v.v.>v.>>.v.>>>>v.>v.v>.vv>>>.....v..>>v.>.>..>v..vvv...vvv.v.>.v>.v.v.v>.>v> +v>.>v>v..>.....vv..>.v....>v...v>.v...>.....>.>>>.vv..>.v.>...vvv.....>.>vvv>.v..vvv>v>>....>.v..>.....v..>>..>.>...>.v.>>.>.>.>>.>>>>...v. +.v>>>v.>..v...>>..>vv....v.....>v.....>.>>v>.v.v.>..v...v.>..v...v.v..>>>>>vv..v..>>>.>v.>.>.v.vvv.v>.v>v.>...vv..>vv...>....>>>vv.v.vv.>vv +v.v>.v...v..>.>..>v...>.>>.v...>v...v.v..>.vvvv..v.>.vv.vv>>.v>v...>v.>..>>.>v...vv>>v>>>..>.v.>>vv.>>..>>....>....>.>...>.v..v>.....vv...v +>v.>v>>v>..v..v.v..v.>.>.v.vvv.>>v.vv>.....>v....>....v>vv>.v>.vvv>>..v..>>v.>..v.vv..>>.>.v..vv....v..v..v.....>v..vv.vvvv>>...>.....v.vv. diff --git a/data/25_2022.txt b/data/25_2022.txt new file mode 100644 index 0000000..8e7a4d1 --- /dev/null +++ b/data/25_2022.txt @@ -0,0 +1,113 @@ +1=0-12100-== +12=2=21=2-1=1122 +1=-1112=-12 +1--2210 +2-1110- +1=-1- +1112 +220--0 +20=--==0 +12-00- +21=21001-0 +1=101-=111-0==-- +2 +10-=1==-102-020== +2=12 +11=02=11-=2=2 +1=--2111010- +12210=1-=- +221=-=210-2=0=00- +11012 +22002====21 +1-202202--2-2 +1-=110-- +1021- +10-1-- +100-11=--=020 +2=01-=2-200- +10--11201011 +1-=- +10=-122-00=-0110 +122-2 +120-01--012-1202- +22=2=1=10221-=2 +1-=1 +1122-=- +1=1-02101- +1-=1=2-211 +12221-1-00 +2--10=-0-1===2 +120120=2110121020- +22=2-2=0 +1=2=0=201221101-== +20=-122 +211=1122=21=101 +1=0-2020==102=== +10-1-00 +1=221202=22 +1=20-0=12==- +1-2=0120=2001-0101 +11--000- +11 +21-00221020-12 +1--0=2==10=-=00 +121001=2000 +2=20--2=-0=-=2-11-0 +1=0=1120= +1=-=0 +10-2 +21-0=0 +2=-=-0 +1=-0-2= +1=2--112=10--1=2 +2---20=-10-00 +101020110 +102=12-1022==01-0 +10=---11 +2-=--00100=- +122=-=--- +1---==0012=110= +12= +10-20020-==0=1 +1022==2=2- +1212-02--=2=-0-210 +1121201=01-==2 +1=1==20=-1= +1=- +212=0=21110 +21==20- +1=-=-111020---21--= +111=0---=2=2 +112 +1--=11101==022202-1 +1=1=-=0-1-1=00-2 +1=01020=1 +102-220-2 +1--1=022020 +21-01= +1-0--=011 +2010 +10==1 +12=222-22--2021-21 +1=1121-2-1-201= +2211 +2=220-=2=-2=-1 +1=10-1 +1-12-022101=11-22=-2 +11200==1 +1=1-0100=--21201-0 +2=2=2-2==-- +112-= +120 +212222-0=1111=21-= +100-02---0110 +2202212-02-10 +1-=0101-1=2 +2101110111-- +1=11-21122==12- +2-0=200=011==-12= +2==-0022-20 +1==001211=22201== +12211=10-0= +1-00-101-==- +1-=1=222000=2== diff --git a/data/25_2023.txt b/data/25_2023.txt new file mode 100644 index 0000000..356519c --- /dev/null +++ b/data/25_2023.txt @@ -0,0 +1,1216 @@ +vxg: jlc +xgz: jgn nzg +fjx: jpz qgl ltq hhl +gqv: dgv +pcj: tnb nsj +gxg: xtg +vxn: frn ppq gct plq +msh: vmm hnd dkp xsb +zhj: dxt ppt +bcz: bxg +svt: xxl bpv zmd stt +plf: chm fdc vsz xxl +mhr: rvn kqd mzs +pcl: vlk znh +qlm: psc +hqf: mvq fsn mft mcb +hcp: sjh nzg +qrc: vvk txc xlb djf +cft: dkr pzm vdq nxl +fzx: qvt cvg jxg +qmq: sct jsk vbq bkb +mff: tzc hlk ttv llt +cbb: cch ffk +qvv: rvn qcg mhd +njp: lmx +cgt: rlc fsf +mgf: tnb ntt rdc +ztx: drq gcc +stv: mqm +qpq: hcq kzh ppm nxx +ldv: fbs xjs xkr npx +szh: ptn gfj nzx pkj +fkb: dhr znh +sct: fts +bng: vmh xht zmv +ftj: skr gjj vpg +qbb: bxr blq +nrn: lxn fjd hnn +mfn: vlk cnl nhf +dgh: rmh gxg cnd +gnl: nxl hdc hlx +szg: shp +dhr: xds +hsc: fvl hhl +gkc: nqc +pxb: zcv mnp +lxn: xtg +vcb: cbl vqk +gcc: cxg +snb: mkj llt +mtj: dkl scz hdm qbp zbd +bqp: tmn lcj mll +hls: ttv fdh plg +lvv: bcp vmg stt gzr zpk +ptj: nrn dch hfq sxq +drh: npd +vmh: nzm +fxm: nsr mjs hrz rkh zpj +qtp: pmx +mrg: czh ddt qcf hnv +qrv: hfk gnt dhd gbp dhh +gqd: qfr +sgf: zth +vgl: hfk +lnz: trd +dfb: fjv gzz gqv +hnc: bnc drm qgd nhl +fjz: xnc xqx ttt kzv +tgc: qsj lst zgq tbx +kqd: dgv +dvt: jtv gqd pln zbx +bnc: hsk +hmx: mtp jsn +vpp: ntt dkf pqf nlf +clj: lph +xkq: ksv qxn jjf +zgh: hkp mhc msm +pxt: cbl jds nxs +rzz: qtc tsn fht rql jqq vsm +zgs: mlm rml btm rpt +sjh: tmn vtl stt +trd: kbn +ggm: hqs qbb bns jlf +zbc: hdc dfs svg +jsk: jgb +mhc: xzp zrh +bvb: gcb +cqd: npd xcr ndh ztf +zzd: dvh kzl +sqx: fmb xxm vst xcr +jhb: sjj bfp xqg +xvj: dkq +jvq: djs xgj kqh ksv +sxv: psr pmx zzd cft +zrv: blp +lxl: hlh ppq nsh tkb +rss: nvm +ljg: pdb ztk ndq +vgf: gxg rkx qlm +lvc: jxg mtp dch +jzr: kjk qvz +mqc: zgq ppt +mdx: ltr +tvh: cnd rss fqh stn +vrn: kcd +crd: rml qlm qcg srt jch mvx fjv +qdk: vsl ckp +nlt: sjh jhk vvz ngx hfp +vnv: qhh skx +rbg: dfs nnr rhc xlz mqc +zcn: kbn +rmm: sss qzz xst +bjf: gbm jms nsd srv +sfz: mbk bfp tql +jhg: hrh +txm: scz lnf bpg psd bnc +bpg: gmd +rhc: drh qpl zgq +spq: qhj rjt tgp +dlc: gvl ldr +vbs: gbj skm mxx vlf +lcx: pkj +qgd: bkm rbm +nhf: gdq xds fbr +tbs: kzh dlb cll +rdf: dqx dxj zdg gbh psd +hms: gkx fmp +pts: chq ggq sdj mzl +gbm: ftv +bmv: khb gpg crk tkm +shh: qcg +fdc: gjz +shn: chp mcc sjf rxc +bfz: qfl +jbg: nvq +lff: bdk vps glz gfj +bxm: jgq +tqs: gbf hlt fbc +qfl: nvl +hfv: nvd jbg xth drg +zbx: bpp hcf +crk: lnt lzs +jcc: jqs xdd mvt +drn: fkh +svg: gbt +rmt: tnq qxc +rqs: jms blh +rth: rht +zbp: pxc bvm nfv dcm +kbt: lcx +dlb: fsf tpm +dbf: prf nhd xbt +rxv: lph lcj shp xjf +jcs: cmr nsv hch +cnn: dbk +vdq: zth hfh jqh +ghk: rdm txk +jrj: zpk lnr gsx bnl +rbf: qmz sdb ktq +jcb: cjc fpr +cdj: nzm jld cxq bng +xvd: ztf crx cst +vzc: bmc jsz skk xkq +jvt: mrc xsr zpl rtf +zpp: fqh zhh btm +lcs: tmv qdh css psc +sqt: sqj ltr dmz +hlh: fhb +cgx: sct pmz +hrg: fpq nsh qhb drg +vdb: tnq lhv hxf rfs +txf: rqs trh vkb +sfc: cxg vmm qdk +tcb: jgb +fdh: mrt zld sxg htz +vkv: bcz dxj +vhm: rnh +dbp: grm nxs +nsr: jms rth jhg +jsd: vgp cbb +ccz: ljt cqv hsc qnq +nrl: dbf bdp qvv +rxk: lsv bvf +jqs: nzc fts +chq: sxc sxq qtq +lxq: rjt hfc kbj vqp +dkl: hqs +vmg: bdk +tpf: vzt +mhd: xhn +nsd: mxl zsr bbd +zpt: lgp xbs svf +fxh: skh kjp znz pjk +rnd: llt zth npn +rfp: jhc hfq djs +rdn: shp +ttv: xjv +snr: llt cst +lsm: gjj dxr jsk +rct: stv jqv jts xqx csh +zvx: qpl vkv pcl rjr +npq: jsd vct prv nck psf dkm +nbf: fgs mrx +xkr: xth prk hph +zqf: xtz xqx xdp rxv +rtg: jgk xxm +fjp: vrn xgh +sqv: gck bxr rmg lpx +tmz: vcz xxm +npv: gzk ddt qfz gcb +xmq: rxj hvk lzs +qgk: xqg cbq qsx lcj +lsv: tqg pfm tsr vtl +dqb: kcd ljk zqc qsh +tzh: bdp nnb sjv tcl +rjm: rvv hqt bsl szf +rlz: mxk cnn +lgp: pxs qpm +hgl: szj dnq rvt rcm +ftx: hkl zgr gvn +lnf: vqg fqb +trl: sjl rkf +vhk: tqm +pvx: npd cbk dnx qkd +ngb: xcr jfc +gkm: pgg zgx bmx brb +jgt: nsj mrt lst tzc +rdg: xsr xhn vbv +svk: rxc +qxk: bfz blv glt +dsx: chp bcz qsj nbf +npx: lpx ndq kbj +php: jds psk pvt gdx bzr +xxt: gct npd kzl vkz +dpv: ddh qbv txr lqc +mjv: xht kcp lst +kpt: gjm kqh ckh +gjz: cgz vtl ftb +nhd: sbb +msx: ngq bvm sct +smh: jbg dmz qgj ztf +bzn: mth hqr vnv gjl +hcj: lzs fqb dmz +xmn: mxv nvd msm +xfx: lqv mll hzz rzd +lsl: gpl kjk ktr tds zkf +mxq: rth kjj +zsv: vct ncs hdg xgj +kzv: ckq +vlf: nxz ljd gxf +kzx: dgp hkj dfs zrd +nfv: tsf xlf vxc +zbr: sfz bls kth rdg vqk +pcq: cbq plv +xkx: hfh lqg ghk +hrb: ntt qkd +qsh: csb ztl trh +dpl: cbm nrq mnp hsc +vpc: zjp vqc xth +svf: lmx rbt +hfp: jzz +rvt: tsf qfl rnh +jsx: qdd gxl tcb +vgp: gqv gfj +jnq: xtg +cmt: bmh xsb +xtj: fbl jqp +xjf: zxm +lhv: jqs css +dnp: qfr btm pbg cgx +mhk: ttv zpj pml lnt qbc +hdp: dtl +fhb: cfr nft +cds: vcb jbv qxk +bzl: kcp bzd jhg fgs dgm hnx vrn +lsh: gkd jgq +tlk: qdh bdk fkh nkq +xzh: szf +blv: rzd gxl ltq tmn +mmb: cjb mrt xgh +xjv: ktl pdx +pfm: ltq +njs: phv jlc qtz +pct: mhz +rgn: xvj qrv ftn dkr +mjt: xdm bpg pdx ddt +znz: nkn rlc +rnh: vxc +vll: bfp +mfk: hfd bfp tjl +pvm: bbt +bjs: lkq ftq rkf szg +hbf: xqb fkk hlc mlm +lqc: jgb +sfg: pxc qxl +vlh: gjf brv hmx hsf +rml: hmv +glz: vtl +ggq: kbn +nhp: bns fll +sqc: fhb rjr vmr hmh gct +lpr: djv nkn bxs xgj mqm +nhl: tsg mdm pct hfb +qpk: fps mxl zgr qkk gbt +bmd: vxs tcb mmk +chk: jsz ckh dcm +ftn: zrs +xcv: vxm +hsk: bcz +cvd: drg mjv pjf sxp hrb +gns: qkk spk xzh +ddq: qxl jrs zbq mll +jqq: fkk +xsx: cqr fps +qgj: bkm dhd +dgj: hzd gpl +prv: sfg pcq jhc +ddh: drf nkq +lzs: qpm +nrz: shh +sqk: qlz bms drh bmh qqn +lmt: bcx fkg ccp +vbv: ncl txc +gbj: fqt glp +vfr: pdj ccp zgf lgp +mvp: shh vbb bjs xvh +gck: frq +rln: fpj ltr qcf cjb +zlx: jcz mbk chr srl +mlk: pvm hqz +vtx: qkg +rjt: hvk +fcd: ckt qjc xbp +zmv: vth qhj htf +mvq: vjn +zpf: jtt gzl njt dgp +lms: mkp +hdj: nkx mkn +tkd: qgh njp ftn +bdm: hcr fkk dbk vxs +tpm: grm sbp +jcd: lqx +pzl: sdg jcz jtj +pmv: zrh +fkh: cbl +kvq: qdd jsz djs +hqd: hcq nbh trl zdn +qdh: rxk qxc +gzk: qfx sqj +nxx: lqv dnp hcf +ccp: bgm +hnh: jrk stf pxs nvq +dms: sqt nzs cjb +tpv: jjn zjl qjs mvq +rcv: zjl mlb lbn gkx +zfr: fhf bpl fqb +nlf: sqj +zhh: vtx +bsl: jjd jmc xxt +grh: zhj hkj fll pct +xtz: xqg +lkq: vll sss hzd +cvl: klk srl mzq vps krj +hmf: tcb vbb +drg: sgf +ksv: qvl gtv +hdg: cvg +vcm: qnz nch +lst: nhf hbt +ccc: kzh vjc pxt nkp +lqg: qqk xxt +ntf: gvt +srl: cqm +pls: ljt rct lff lxn glx nbh +nks: vpg vcb qjs rpz +nft: jmc rqf +mlb: rpt rfs dgv +dhg: ngb xth bvx bxr +ghh: frt lhz vrn dqx +dvh: vgv lvb gnl nft +qkk: qvd fkb +vkz: rfh +qxl: pkj +qbx: vkz mdz xhq kcp +dkf: ftv bkr vkb +hxf: zpk rtf +djf: sbb hxf hbx +tsr: kbn +xpb: xgj zqf xfh gbk +kgp: fpq +tmt: nhd +lpx: fkg +tgv: lpk +zdp: cls fkg xfb +bkq: gzz llr xfh cgx +prp: mvt pkz pjk tjl pzl vqk +hrh: tpf +mtf: nnt jnm hls zlq +jtt: mkk +xgc: trb ptd tsf nbh +mnp: sbp +qbp: ltr +kbj: jlc sjf tlh pfg dkp +rqk: prf mvm +svb: zgx zcn cgb +pdx: bft vsl dmz +gfq: pxs vnr dhr +jgn: cgb pjk +fsn: cqm dcm +lvb: fbr +mkj: txn rdm +qhh: sjf vlk mrx +xtb: chm tpv kmf dxr +kxs: mfn pjn prk ztx vgl +bgm: frk xds +cgz: nvm +lbf: lbc xhq cnl +rkh: fmb +rlx: hss zcm plv lnr sjl +txr: prf kqd rlc +jhh: xxt ktl xkx +ptd: fgm cmc cgz nkp vmg +jhr: ncl mtp csv +tnz: xbt rzf lfs tbs +vgj: hms nbl mcb jvt szj +pvn: nnb +zdx: vbd bjl kgp +vxm: jqk +cmf: zfb rrp gtn kjv +zlq: vzt sxd +khz: drm rln fqp psr +dbk: vgp kmt +mkp: skx mzn pkl sxd +jfv: rqk +vcz: pkl mdz +xth: tqm +xll: njp +vxq: mqz jlc fbr jmc +vfz: ttk qbv jsn +jzl: lnz +css: rzd +rdc: tbx qlz +gtn: jsk psc vcm +bzh: xfb +jfc: sgg gbt +dkm: sjv nrv skm +zmd: jrs bpv +rlv: ztx lpk bcx +vqq: xsr shp pxc +mcc: hnv qpm +qjc: pxc qmz cnn +clr: drn mhd vhm +rtz: vlk hph xmn +nxs: drn rdn jbp +tzk: vst qbb hch +vtc: cnn kjk rvn cps mft +cll: gxl +qqn: xzp cmr +cpq: vct nrz vbq hlx ffk tmd +tgb: zcm rql dgh nhd clq +sdb: rzf mxk brb +scd: mvm qcj bdk vmg jqq cgt +ktb: qkd hqr +hbp: rzx cbm gtv tqg +mrc: vbq tmn tpm gsx +gzc: fpq tkm +phb: dlb mzs kpt mls +pvf: vpb tmd bnl dlc +dhd: frk +sjk: xqm +jkq: dxt tvz pnv mrn cbk krm +dzg: fkg zck qgg tgd +rhn: dnx ztk czh mdz +vvz: rmm gtl qzz jmp +xdm: plq ghk gzl +tst: pld xcv rqf nsd +glp: psk kbt +stn: qcj +kmc: sjv hsf xst ghg +kkg: xvj ktl kgp mxq dms +tvz: nsh svg +ldr: sxh +zxd: jzr qcj ftj gfj +gpl: nsp +bbp: fgm rbq cgx kzv +lqh: ksz vnv zgh +pjk: pvm +lqp: fcl xtz pbg lqv +qcr: nvm jch nkq rzx svt +htz: zhm tkm bms thx +rll: mxq mxv ncn jhg stm +tsf: cqm +hfd: pvm hlc jsz xsz +dtl: mhd xfm hcq rml +ljd: jnq psc +qvl: vps mfc rkf +pln: psc +vqd: skh mvm +glf: jqp +dkq: gcc +xhq: jjd +tkl: lcx gcg zds gpl vbb +qxc: gzr +ldx: hdg ltb cqv +qxg: rpt qpg sjk +ptt: ckp ztv rtz xsx bnc gck +knd: fkk lpb xdp dlc gjf +mdm: njs qnr nmz +vqc: rvv +lhb: vct ktt gxf fsn +rtx: vcz fll pkr mxl +qmz: mlb +rmg: hbt +hlc: rvn rfs +zfl: lnt rtg +zbq: ckq sct +pfc: brc vsm dxr djv +dmg: ggf ppt +bbd: hqs dhr bxr +bcp: mfs nch +qlx: rvn +vhr: ckt kqj jsv xgj +hkp: dxt cst qtz +zkf: jqp xjf jhb +ptz: gcz xcv ggm bzh +kxl: jqp stv zxm +rkx: gjj +jll: mrt njt qtp +jmp: jhc +kfn: cxc zqc +srt: drf rzx +trb: qkj vmg mkn +nxz: qvt +qmj: vbd bxr chh +rzf: ntf nkx +vjc: bnl +kqj: dgv rmh jfv bvf +qkc: pfg dsr qtp gnt +lsp: qgg kfn rxc zkd +fmv: vgf clr lsh sxh +kcx: sqj gbh pmv gzl +fcl: pfm +mzs: hdn vcv +zlt: mjv lpx dvh +fts: grm +hfb: llt hqr +shq: qqj hmf bxs xdd +fbs: zbd krm +bjm: mnp +szj: lgz bvf +qgh: hzf +cmd: xht bms tpf txn +tbp: gzr gmt ffk nxx +hdm: xll fbc jmc +sqn: vbq nzc lxn bfp rxk +jgq: nfb +zkg: fxm hqt xvd frq tmz +nln: gdx +xvv: ztd rlv zck ptt +fpr: nqc bxg +cvf: tkd sgg hdc nvq +xlc: jtj zpk gtl +mkk: frk +rxc: stm +fnm: tbx jlc xjs tlh +czj: dfd bvx lqg cjc +fhk: tmz hsk fgs cht +cps: gvl bbt +jls: bmc +prt: bgm kgp +mpm: pcq xbf sjj +tvf: vmh ngb kfn hsz smh qnh +plm: fzx trq ttt qnz +mzn: tzc +ztv: svk zfr jtt +rbm: czh +fbl: ftb jtv +chj: qfx xpl vxm kfz +ngh: pmx qkc gpz stf +vqp: ntt cfr +qvz: fmp +vsl: msm tkb vnr +cht: hqt hxs +cgb: sjj +knr: szf qbp qgj zfl rkh xxm +fgq: kmt bqp xvh ppm +sjn: xzp xhq hnz frn +qhg: mxk jjj jhb +ckr: sxh gkd +nnt: svk spk vqg +rxm: rht +jqv: rgq qlx qnq +cbp: gcb hqr +dgp: sgf +xfh: jls +chr: zdk pfg +rbq: jhr zcm cqm +zdk: hrh cbp +xsz: mhd bvm +ffg: ccr xfx krk fts +zpk: nnx +mqz: gpg chp +mdz: cfr ggf +hlt: qsl tkb +qct: tlh jlf zrs +sdj: hdp vqd vjc +nzs: jld prt gvn +gkx: cbl xnc +zbt: vst qpk gzk cqr +ftq: nvl gqd jrs +cnd: rzd +fps: dtm +plg: hlt xsx mfn +rbt: mrn +tsj: xfm ngx xtz bjm +ftb: bbt +gjm: nnb vjc +jnx: nnb vvk +skx: qpl +gjl: hfk +ncn: mrn jgk dtm +dbl: bxg vqg lst +ppq: vmm +dxr: bxs +pcf: rcm nfb ptj +hzd: cps gxf +xvh: lph mlm +flv: xsz jbv vcv qtk +srv: hqs jcd qpl +ztd: svg hph +nvs: nft fqp ktl mdx +cmc: sjk +jgk: mxv +ppm: dbk +ptn: pxc vcv +cqk: jrk rqs gjl hlk +rjr: mhz +prk: bpl zgr +rjf: vcz vkb lms lrz +xlz: zhj xll +dds: cqr ztd gbg fkb +gzz: rzf rpz gxg +zdn: hkb qsx qgl tqg cll +ksj: jfc mzd vxm +ttk: qtc nkn +vjn: pvm lnz +xld: clq qxg qnq vvk +xbs: svk lrs gpg +bmc: qtk +sdc: tjl jts mhr vmv +mjs: qgg hnh vxn +sxc: zpk bxm zcn +mft: gvt sjj ckh +zcx: tgv dmg frn ltr mhz +csh: qpg +bbt: xqg +zmf: hvk qsj chh bbq +jlv: qpl +skm: qsx +lcp: vkv rth +ttt: pzl +gjf: gjj +jcx: lvb qkr jhh dkr +rgs: bxv dfd vdf xgh sxg +crx: xzp xjv +qkd: gbg +nmz: gcc zsr xzh lqg +fmd: nnx xqm nln cpq +mfr: jcd +vpb: ckt +fhf: lmx +mvl: cjc vgl qvd zdx vmh +pgg: sjv gvt +djs: hzd +vkb: rxm mqs +rsh: hlk xvj zbz zlt nxl +hdh: rbm zdp dzt +jfg: lrz kdz ltr +khb: pmv frt ndq ccq +zhm: sxg rmg bft +xzf: ldr tnq +ntx: gmt nzc bdp rmt +nck: zsd rxk xdp +hdq: lcf kmf nks rzx +spk: rmg +tfj: ntf mzs hcp vmv +pkr: pjf +xpk: msm pct chr vhk +zsd: zpk qtc qmz +njt: rqf +lht: nvm nch lqc +tmh: jjs bqt scd kqh gmt +sxp: hlh jqk sbj +ztl: vhk xmk lrs +svz: qvz +thx: gfq cjb hnv +qqj: mfk vbx dgj +fkk: tcl +sbk: jbt brc psk kvq hmv +tzr: psd rth xjv jqh +ncl: xfm +vqk: qvt +ztf: psb vqp +pkz: kqd hfp gtv +xst: vtx zgx +nqf: mtp cps +nrv: ncl jhc +tsn: mft rkx lpb +bkb: bxb +czs: mzd mxl mlq mkk mqs +tzb: rbt chr txm ftx +bxs: tsr +vlb: zxm gtv nxq ldf +vmr: nxl xhq svk +xxl: sjl +mhq: rtz nvs stf ljk +mkn: zgx djs nzx +kmp: trz bzh vrn lbf +cls: rlv zbc +cxg: zrh gcb +kpd: rvv bpl lms +vxs: bxs nfb +bvc: jbt lgz dxz jts +qfz: xmk krm lmt +jzj: pxb ttk dbp qkg +ptp: sgc mpm prl mfk hcf shh +qfx: qnr +xgj: jnx vlb nln +mxv: rxm +gxf: hnn +jjf: sbb +nsm: nvd bxv +ktr: rnh cvg lnd +nrq: mlk dmd ljd +lgr: hbp gqd rpz dvt +bxd: fkh csh hqp fzr +gms: qfz zgf nmz ppt +chp: gbh qkd jlv +nbh: sdg +kcd: hvt +ksn: cht ztf mdx htf zrs +cvk: qsj txn xmq mcc jll +zjl: hdn +kdz: rdm +jhc: mlb tmd +pdb: dbt ftv +tmv: mlm nqf qlm +sxq: cch +zpj: zgq ctn +cmz: zjt rxj vfk pkl xlz +prl: dmd jhc +lpn: fcq bvb rtg +gnn: skx dqx zxj stm pjn +ncr: hfp mfs rtf glf +zzh: dbl zrd khb gkc +xbt: nsp sxq +lbm: kbc xlc cmc xdd +zsg: hcf trq sjk +dck: psf bjs kbv +jsv: kpt ntf jcc +lgn: hss mfs bzr gcg +frn: dqx +cgc: qqk mxv tnb +btm: sxh +csb: zck jrk +sms: mqz fpj npx kjj +vjf: stt vrp ddh trd +sgc: rmh cqv +xbf: jpz xzf rkf +gpg: lgp hvk +spj: bdp xjd xdp +trr: bjl sdz gbm gfq tzk lnf +gbh: qlz xfb xds +fkm: glp lfs plf zpz vll pql +bqt: scb hzd +ldg: dgj fjd bjm dlz +dqv: jtm hts hdg +tsg: qlv npd jld zbc +mdc: bmx hmf sbb +lxv: lbc hrz zqc hlh cls gkc +jzz: cll mqm gtn ttk +ncs: clj jkf +nsg: fmb snr mlq +lln: zpk qfl gfj +drm: vpc ktb +lcf: csv hcr rlz +dhs: nzx xqb hkh +jgx: dcm qcj mvv jhr sjl fcd +bcf: mbk tlv clj +zrd: jjd +nbl: jqq tgb nhc +qgg: qpm +qgl: jtv lgz +fzg: krk ttt +jsb: dbl vxg pmv bpg +qqp: gkz jjn cjz glz +mmk: fqh zmd jbt +bft: bpl +vqg: jld +zkd: tgv frt hsk +fjd: fht hbx bmx +gnh: lqv dfb pfm mdc +txc: djv +vjp: lgz tql hqz +hqp: pxb jmp spk qlx xfs +qtj: pxc jsx nxq hcp jpz pln +stf: ccp +bvx: vxm +lfs: tsr +htf: sxg zrh lrs +vct: stn +qzd: vfz ngq fkv +qjm: sbp ftb mvm hkh nrz +dfh: mlm qjc cqm drf qnc +vps: gvt +gct: hfb +jpz: glf +xnc: tqg nnx +xqx: cbb +ppt: pkl +zjp: stm +chm: srt lss bcp hss +bmh: cjb +gcg: vcv +zgf: xcr xht +qbv: nch ngx +nxq: vxc kbt +pfr: lvc gzr scb jnq tnq +lnd: jds sbp qcg jbv +blh: znh +mvx: fbl +sdg: jbp +tln: fgm vhm hdp zsg +lpz: zzd rjr dns rfh +zxj: rvm chh +tql: jjn +bjl: rfh +gnq: rkh nvd vfr vqc czk +ttj: nxz nln vbv ltq +kjp: sxq xfx +mnm: lff qhg nrz fjv +qhb: lpx vqg drq +tlv: xlf pjk +rvm: qgh nlf mfr dtm +jtj: hdn nhc jjj sbb zhh +mdq: bjm mxx jjf nzc pvn +tgd: hxs tlh mmb +jsn: csv +rrp: cjz vgf bmc +pdh: vxg lmx tnb +xrg: rvv dkq cjb +hrz: xjl +krk: qvz +dzt: szf zgh rtx +psf: scb lln +tjm: djf nbh lbn bpp gtl +jjn: vjn +zld: hmh vcn gns +tvt: lpx rdc rjt dcq xmn +bxv: nnr +csf: hdj nzc nch bpp +xfr: jzr szg zcv cmc +fbc: cbk +fht: zbx hss jtv +ghg: gbk ktq nrv mlf spj +ccr: bxm fdc kjk sdg tjl +tdj: bxb cbl sfg jtm pvm +zfb: lcx +nhc: vtx +nkp: jmp mvt +dcq: csb cht vmm +fnv: bjl qkr fkb +zpz: tds qfr qpg mlk +ggg: fqh +nkn: mbk +hts: xqb jtm hdp ggg +gbf: zrd jfg +blp: qlv cnl rtg +mlf: lct jnq +mss: bcx rqf zlq hzf +tds: kng dlc +nvd: lqx +fjm: psr chr jcb +nqt: pvn lfs btm dkm +ztg: zcm lss bxm xsg cgz +fqt: rql zcm ffk fqh fjv +frt: sbj +lss: nkq +pxh: gvl pmz rqk ncs flf qsx +jgc: bvx nzs fnv mhz +gvl: trd +hkj: drq psr +gzl: zdg +jbv: nsp +qkj: csv clj fmp cgz +gmv: qvt qxl rxv +ltb: jrs cqm +dmd: cgt sxh +vnr: nqc +tbh: vdf rnd zdk hnh jms +ggf: gdq +fqp: dhd +scb: nvl +glt: xgz sss hnn zcv qkg +ndq: hnz gmd +brv: mnp fvl qxc +kqc: vdc svz rkx zjl +mvt: ckr +bzg: pln xqb hmv ksv +pcc: flf vqd jtv clq +hkh: qvt +bxl: hbx vbs xtg sbk +pzm: ddt npn svf +dlz: nkx bvm +dnq: hhl cbq hdp +cjc: qgg frn +dbh: xfg mls qzd djf cbv +skh: nqf lct nxz +cqv: vtl +lnr: qfl tkl +hhl: cgb +zsr: hbt +dnm: qfr srt prl ggg xzf +dgm: hbt ccp bxg +vdf: mdx pkl +zpl: rpz +pgc: brb clj glz rss +jhs: czh tkd pld txf +blq: vnr mxv +mxx: nzc trd +gmt: djv nsp rkx +dvs: khl qdd mkn sjl +zjt: xkx lhz qpl bzk +sgz: nsh tvz fqb ljk +bvg: dck sgc znz gdx +klk: rlc ltb hms +phv: pfg vth sqj +skr: qtk cjz zds +trq: zcn pgg +cjb: blh hlx +dxz: vpb sjk xsg kbc +npp: kzl ksj xkx pdh qnr qqn cvk +hhv: tkl qkg rdn rss +lhk: zck xzp bkm vsl +bzr: jsn ckr +gtv: rfp +bbq: kcd ljk vxq ppq +dtq: hfc qmj bzl krm +pqf: mgf jjd vkz +pdj: pfg pkl vsl +slz: znh svg zrv gvn +lrp: lqh dkq dns pdh +mqs: xgh +mqm: glf +sht: zfl mxq tqs ckp +ndh: dkl xsb njp +ckp: cbk +xmk: hrh lhz +czk: fbr gbt hnz +fhg: xgj msr hbx +rkf: vqq +bnp: kjj plq qlz +xsg: cnd gjf cbq +krj: rkf msx jxg mhd +zbz: bcx jqk hfc +fpj: gck +qnh: blh rht +nrt: zrh pjn chh qnh +xjd: kzh mmp mll rzd +fgs: lzh +xjl: hxs tqm gdq +fzr: clr jls vmv +bjx: nxs ftq fzg qbv +gmd: zth zsr mrn +flf: xsr hkh +pxs: tzc zbd +ctn: pcj vst qfx +hmh: mss lpk lms +rpk: jls xtj xtb tlv +glx: ktq rmt jsd hqz +khl: rdn xdd bvm +nzm: pkl +jjj: kng hnn +djm: zrd ttv cst dgp +jxq: fhg kbc bkb csh +nqq: vcz psb kpd rvm +ffc: nsj gvn rxc mzd +qkr: sjf +qkl: sqk bnp lbc fcq +plv: svz qpg xjf +brc: gcg fdc +kmt: jgb +sgg: rvv fhf cfr +mvv: pvn pbg vxc xgz +grm: gkd nfb +xfs: nqf vcm lbn +xnl: mqs vgl hrb crx jcb rdm +ggt: qqk njt gbf drm +gdx: rtf +hnd: mxv lmx fjp +bxb: kng zpl +hfh: ftv jlv +xdg: dlb jhc vgg vsm +rbc: rjr drh gbm mgk +pfj: ckt xfh hxg lcs rbf lct +gbk: hmv ckh +kxb: tpf pgd fft qgh zpt +mls: jcz xtj +zrs: nnr +drq: qbb +bgk: fzg jzl jkb qpg +trt: bxm qkg hqz css +nlx: gzc mrx hdc lzh +bzk: nvq fjp cgc +jnm: vhk psd tgp svg fmc +fnj: jzl gcg fzg tql +vgg: svz hzz sjj gtn +pld: kdz snb +nsv: fbc nsm cnl +kth: bmd xdd bvf +mgk: fqp rnd xcv +vbx: jbp qgl +hzz: vpb +dns: fmb jqk fhf lpk +zdg: xsb lqx mrx +prf: bbt +ntb: zjp sfc gbh ztk +trh: vgv hlx +hcr: mbk lss +rql: pbg +hnx: zrv crk lcp bvb +gkz: mlf jzl nnb +ktq: rvn +ptr: xgh kdz kfz gdq +xlf: fvl +hkl: fjm hdc nsd +ckq: tcl lfs +ktt: stv stt bqp dch +pjn: lhz +dkp: rxj vbd +vsz: tvh ggq +vgv: pkr +psb: tgv +mfc: nbh zcv qxc gqv +ghc: qjs sxh zpp qfl cch +hxg: chm pcf qvz +ccq: bft qcf hvt +bls: kbt vll glf +bld: qkr knr tzc pdb +mzl: jtm qxc vxc fvl +nsj: dtm +gbp: blq ppt dxt +vrp: sss gjm +tlx: qpg xxl hzz nrv +ssv: ktb lzh qtz hfh +bfd: ddt gjl qsl dfd +rrq: fmp xfg ccz bnl +qsl: hvt +pgd: vzt drh gbg +qnc: qnz kzv dfl +mlq: vgv +cbm: gkd +dhh: cxc rnd qvd +ldf: bpp ldr +hkb: mvq ngx qxl +nzx: qtk +xjs: zgr npn +cxc: tkb cmr frq ftn +lmr: pln jfv vbx zjl +ttx: jcd mkk zjp jlf tkm +qhj: mqc +mpl: ggg mzs nrl svb +jch: pkj vbb +qtc: jqp +hzg: pcj fcq hvt qkk +vjg: gpz cmt fkg bvb +jbt: zxm zfb +dfs: tqm +xpl: mfr lcp +xhn: kmt +jqh: hph nhp snb +hxs: hbt qnr +qzz: jls dhs +sdz: xjv qhj jfc drm +gnt: pmx mkk +jts: kxl +vmv: gxl +kng: nsp +ckc: drf rmh msr mzq +flb: lvb vsl lpn jgk +msr: cgx bqt +trz: snr lrs fpr qkc +llz: bjl hnv nhf spq +ngq: qlx ljt qjs +xfl: lht fmd fgm pcf +fsf: fkk tmd +kbv: zds spj zpl jxg +nkq: pql hcq +dxj: bkm rfh +hnz: hqt +pql: tsf qmz +mgz: jcs nbf vnv mzd +sxd: zbd +fpq: kjj bms +rcn: qdd cvg mnp jfv xtg +fft: vzt xll pcl jlf +dsr: mfr rjr +qqk: cqr dkl +skk: dch tmt kjk +plq: rbm +bzd: vbd rdc psb +qxf: cnl jnm tgd thx +jmc: rbm +dnx: frq txn +zvn: skx lqx nsm cbk +tgp: jtt fbs +nkk: ttv qlz qtp sgf +hlk: rht +xqm: trd +xnf: nrq zcn kjp pkj lsh +jkf: jnx vvk mzs ppm +kdl: ghg bbt jcc gmv +vfk: plq hsz qdk bzh +jhk: vsz kqh skm +kcp: kzl +zqc: pjf xzh +rdm: pjf +jrk: vbd +nsh: pnv +pnv: qvd gcb +mcb: mvx bfz dlz kbc ptn +llr: lct nvl jgn +fmn: lgz lnz bvf fcl +gdq: nnr +hzf: fpq hfb +snm: xfb qnh zpj xsb hrz xcv +clq: kbn +pdc: psk lhv lff skr +jds: drn +jkn: xfm ggq dbp pxb +ljk: ckp +lzh: mcc +qtq: fvl ksv fsf +mzq: hqz jbp +lpb: vhm nvm +kmf: nkx jcz +sbj: hlx lrz +sfm: fcl hdn zgx krk +mdh: hmx hkb tmt pcq mmp +xbd: mlb sjl zpl jbt szg +hdc: fps +hfc: mzn qkr +gtl: vpg +cjz: xqm +jjs: vbb mvx gbj +kkh: lzh rbt lzs frk +txk: szf fmc xgh +rcm: tkl krk pmz zhh qdd +tdb: svf dsr xpl mlq zrv +xbp: hdj ggq ldx +hfq: bpv bmx +qlv: mzn bvb +mzd: lrz +vcn: mfr pkr zth +hsf: rzd hhl +xfg: bfp tmt +dbt: vqc hvt jgk dmg +nzg: txc bfz mlm qnz +sqq: vmm fcq lnt qsl zck +lbc: fpj +hch: ktl jqk +npn: hfk +cxq: vxg npd nlf +fmc: dfd mrt +qcf: ggf bxv +blc: ldt bfd nhp hdh +bbh: cmr scz nzm vth +rgq: zbq vjp bcf +cbv: rpt lbn nrz +sjl: fmp rlc +qxn: sbb zfb qnq +ztk: hqr +ldt: zsr hqr tnb gkc lms +vdc: cbm trl mxk +qtz: fll +rxj: scz +bns: hcj nqc +kfz: znh xjv gbg +qbc: bxg zxj nsg +pvt: nqf zpl nhc +srs: dkr mkj tmz jlv +kbc: vpg brb +kjv: lcj lfs gxf +tbx: qtz +vst: cbp rxm +jkb: chk ckc dqv +bkr: trh bgm +hsz: ggf hfk +gpz: sxd prt +pml: xlz nvd gck +dfl: lqc kbn jjf zds +vsm: srl +bpv: tcl +qmf: nxx xhn jbt zmd +mfs: qtk +mth: vbd gzc bmh +kcb: vrp xhn lht lsm +ksz: gvn qbp jbg +gsx: nnx cch +rmp: mhc ljg bkr cmt qgd +zdr: vhk xrg qkd dmz qct +gcz: vth vrn lnt cxg +xlb: xlf lph rlz +mmp: bkb pmz stn +cnc: lsh ljt cds rgq +fkv: jgq rfs ldf diff --git a/data/2_2020.txt b/data/2_2020.txt new file mode 100644 index 0000000..7fd63fc --- /dev/null +++ b/data/2_2020.txt @@ -0,0 +1,1000 @@ +3-6 s: ssdsssss +17-19 f: cnffsfffzhfnsffttms +8-11 c: tzvtwncnwvwttp +8-10 r: rwrrtrvttrrrr +1-2 p: zhpjph +4-6 l: pldnxv +2-12 k: kkktrkwrbtck +14-15 t: tttttttttttnztttg +1-3 g: dgxg +4-7 c: tmxbccmcvgpp +2-16 r: rrrrrrrrrrrrrrrrr +10-11 b: bbblxbbrbbbblgwcxj +1-7 s: ssshzwpss +7-13 k: kkzkvgkdqskktkkkkk +1-3 l: wjldclpl +15-17 n: tqcsxnwhfnlmpcnjnlsn +8-9 m: mscmmxmkm +3-4 n: fngn +14-15 g: ggrbggglmktgvjg +5-6 p: ppppvxpp +4-7 b: gbbbrbqbwbfjqjg +8-12 s: vssssnsssjsssjsjs +6-11 b: bbbbbbtbbjdbbbb +16-17 d: dddqdmdqdddsdqbmd +18-20 d: bsddtgwddddddzdzdbdd +10-11 c: cccpcccccrkc +3-8 d: hddccvldwdthrc +7-13 f: ftmwxpcsfxzqv +12-17 w: wwfwwwtwwwwwwwwwww +9-10 b: bkbbbnbrsblvbrbpgb +15-16 g: ggggggggggggggggg +2-9 v: rnnvvwrvvvvvjvlr +4-5 k: qkkjwmkk +3-8 v: vmkvhvvvwvnpv +5-8 v: vgvvvvvf +6-11 h: jsngtkbnqhwthvhhhnh +2-4 j: jjjjj +1-14 j: jjjjjjjjjjjjjnjjj +4-7 q: wqqxnfq +16-17 v: vvvvvvvvvndvvvvjqv +2-6 q: gqqqqxqqqqqqqqqq +4-7 x: xxxjxxcxx +2-7 m: wmhzkmj +6-10 l: wlllnlllllllll +7-9 g: jkzqgxgbt +7-8 f: fffffflf +3-6 j: dlndzj +9-12 t: nttttttttttqt +3-8 b: pbnlbbbbbbbbbj +2-8 t: tjbftttdttt +4-5 j: pvjjg +2-6 j: jjksfb +2-4 c: hccc +5-7 m: mmnmmwzmmjmxb +6-8 d: cddmkdqdkpqh +6-13 b: ljwdhbbfzqjbz +11-16 t: ttttttttttjctltnt +3-4 c: xcgc +8-9 p: gpvpdpwqpwsppppp +3-4 z: rpvzzwfjzlkwhss +9-10 q: jhqgdqgqrqqnqqlcqqb +9-10 z: zzlzzpzzzsznzzz +5-7 q: lmmqbhqzq +9-10 l: llllllqpcqfjjcl +12-13 l: llllllllxlllllll +3-5 z: vzzzd +4-7 f: ffffffvff +7-8 f: fkffffxfmn +14-16 x: xxxxxxxxxxxxxtxnx +2-10 t: gcbdbqmccktp +2-3 x: nxzd +3-8 q: qqtxgnqgf +9-17 h: hhhvhhhhhhqhhhphhhd +8-9 v: vvvvvvvvvv +2-4 p: pctjppppjbm +2-14 c: frcgcscqgdgjzc +2-3 n: xzjnm +9-10 k: hkrkkkbhkkkkkk +18-19 r: rrrrrrrrrrrrrrrrrrh +13-15 d: bddddddmddgwddn +1-6 k: bkhxkkkng +8-10 l: dllmllqlmllll +4-5 q: qqwwgqqqq +1-11 r: jrrrcrbrksrb +10-12 w: ggwwwwwwtrwpzlwxbww +5-6 z: zzzkzs +9-19 z: zgzkzzzgddzzzzzzzzzk +18-19 b: bbbbbbbbbblbbbbbbvx +2-7 g: jzhkwgd +2-4 j: jjjf +14-16 m: mmmmmmmmmmmmmmmx +7-12 c: wfpscbrrxsssccbwg +17-18 q: qqqxqqqqqqqqqqqqnw +10-13 k: kkkkkkkkkckkkk +8-9 d: dddddddtd +7-11 b: nbbbfmbbxtbbpbxcz +2-6 p: pppqpp +2-8 s: shqplnxs +3-6 z: lzzzztszsvrw +2-9 b: sqxpbbtbbb +2-5 f: cjffp +2-7 l: lrllllll +1-7 t: ttttttt +3-4 p: vplp +9-10 p: zppppkrpsp +1-4 j: ttjjsqmt +2-3 c: tmhc +6-9 h: hhfwshhhx +3-4 p: pppp +3-5 k: kkkmk +1-8 d: mddxdddxddd +8-16 w: twwwwjkwztwwgnwwwr +8-9 p: pppppppppp +15-17 j: jjjjjjjkjvjjzjjlgjjj +1-8 n: wnrnnnnnnnn +7-10 p: pckslpcxgbpcbf +6-15 g: mdlrdgtqgsgmdxf +11-13 x: xxxxxxxjxxxxdxxxxx +12-14 n: nnnnnnnnnnnmncn +1-4 x: xbxx +7-10 k: tdtbhkkkgh +5-8 n: nndnqnrqnn +5-6 d: dlnhdddd +4-8 f: gglffnxf +1-4 g: gddxfjtlgwzprgq +8-9 m: mwmlwmmmlgshmmdmm +3-5 s: zhsss +5-13 k: nbdskzrfjxkkk +15-18 s: sssssssssssnssssss +6-13 j: jvrjcjjjxdgfpwjf +4-14 c: qlslzpstbccpgrd +4-6 s: sssstss +5-15 g: gnjpssgpqmslgmgpx +3-5 b: mbpcktvnb +6-7 c: cccccrcc +7-8 t: ttzttttt +2-3 c: vchcd +11-14 v: vxvvvdqvvvvqvv +4-8 q: bqdqqqqcqq +1-3 v: vstccv +5-9 b: bbbbbbbbb +10-12 f: rfsfhfgxffff +4-5 z: zzzztp +5-6 m: mmmmmm +10-11 m: mmwmmmmmmmgmm +4-6 t: xsqmqdltktvhsqsrttqk +11-13 j: jjjjjxjjjjjjjjs +16-19 x: xxzxxxrxxvvxdxsjkxx +5-7 t: jmwqtpttlttlt +7-8 r: drwfrrblrrkrrzr +2-16 z: chbzzxwfzcfhzkzz +9-11 b: bbbbbbhbbdb +8-10 n: drcvnsxjfv +3-5 s: sswsxst +5-13 v: vvvvvvvvvvvvvvvvvv +3-4 w: kwww +4-7 j: zcjnjrjjjxj +10-12 c: jwwmqvlkrqcp +2-6 r: zrnfclvkdxtgnwprwjkp +12-13 f: tfrfskfrsskffvfwrfpn +18-20 j: jjjjjjljjjjjjjwjjjjr +8-13 p: pqppqknpppmpfpshhvpp +8-19 t: rsstqxpzttwtrbttqkgl +3-4 k: bkkfk +17-18 s: kqdbhcssbcsfddrpzs +3-4 r: rqkbrrlzfcrn +1-3 t: ttttt +9-16 f: fdcfqmwskqvbthtf +2-3 b: xwpbm +12-17 b: bbwbbbthbbpxhbbbbbbb +11-20 f: ffjvffffffzfffffffff +1-2 w: dtwt +4-7 s: qzpjsls +6-15 m: mmmmmmmmmmmmmmmm +7-8 g: ccgggggxg +10-13 m: mxmpfcqcmqmlcmmmjcm +6-16 v: vvvnvzwkchvpjrvv +15-16 r: rrrrnrxnrldrprrb +11-12 p: ppppppppppjd +4-7 z: hzzqzzgzkz +1-14 v: vvslgvqvvcxvvljvvtvv +8-11 w: wtwhwfwkwwhw +4-6 c: cccmctccdcczcccccc +2-4 z: kzrrzt +3-4 v: vvvmhxgs +8-12 s: ssssssssssskssssssss +2-4 z: rkzzz +6-7 m: mnmrmfbmm +8-12 p: bhphvpjfjpsj +4-6 r: rrqrrjrr +3-6 t: trttlth +4-5 j: jjjvgvj +9-12 b: lbbxlbbxkkbb +8-9 d: dddddddwm +14-15 z: fhdzzzgzbzvzdzz +8-11 c: cbccrbdwdccccsk +5-6 t: wttxtm +11-14 f: tbvfftkfffjfffffc +2-3 b: bbrb +3-4 b: brbwbb +12-16 f: ffkfffxfzfffffffl +11-14 n: nnnnnnnqgnsnbq +10-13 z: zzzzzzzzhzzzzzzz +2-13 z: qzrzddvglwfzqjqln +9-12 n: snnnnnnnnnjlnnnn +5-9 l: pqllllbvb +6-13 z: pszzmzzzzzzzz +5-9 d: ddddqdddd +9-16 l: llllllllxllllllsl +3-10 w: rfwwgwlwftcw +2-6 t: wphbtstkzxwntspptt +7-14 j: xchzzxmmjkggmxqrs +6-8 f: fffvxffffn +13-14 h: qhhhxhrhshhhhh +7-8 q: qqqqqqjwqqqqq +1-3 l: llslll +1-7 f: ftphbnfwwxzkfcsbr +5-10 r: rjrrrrhrrxrz +7-9 p: pppbplzph +5-7 p: ppppptpp +10-11 t: tttttttttjr +12-13 h: hhhqhhhhhhbzhhhgv +13-14 z: zzzzpzzzvzzzztz +11-12 w: wqwrwwwkwwdw +1-11 z: zzzzzzzzzxkzz +1-4 k: tkks +3-6 x: xxxtxdwxxnxxtfxxxwx +12-15 z: kzzzzzzzzzzzzzz +2-16 k: jdsqqmbdktthvxmk +10-13 t: ctttfqttzqjjtfsxn +4-7 t: tttwttk +1-4 r: zrrprrk +5-9 v: cvvwvkvwv +7-9 v: vvmvvvvvlwlwgwv +10-14 q: qqqqqqqqqqqqqq +5-6 v: vvvvvvv +2-5 q: cqqqqqqq +12-13 b: bbbbgbbbbbbqvbb +17-19 v: dhgcvvkrpwvtwvlvvrn +4-6 h: hhmmhhh +16-18 g: bgcggrgggggggggggg +2-4 m: mmtv +2-9 m: gmmmqmmlghmmkbmsqsmm +5-6 f: lfpffffpfhf +8-9 t: ttbttttwpt +7-9 h: hhhhchhhch +2-4 h: vnht +2-3 k: kkkqk +11-13 c: fhfcjkwxcfsqctc +10-11 c: cscscccvcqx +7-9 k: vkkkkxrlck +6-7 g: fgfrgdtkrmsgsg +6-7 r: rjrrkrrrt +8-13 t: ttttttttttttt +2-9 g: mnkkxttgm +3-6 g: ggggqlgng +5-6 j: lgjxgj +5-7 n: ngkknrh +1-16 d: dddddddddddddddpd +1-7 p: plpdvrswpppzcp +5-14 n: znnnlntlnnnnnjn +10-11 w: wwwwmwqwwwgwv +7-8 g: gggggggt +3-8 m: mmtmmdkncmqxqrz +3-5 t: ttrtnt +2-3 z: pdzscxrmmbpchktnz +1-5 z: ztcgllzvzzvcfvgzr +6-8 l: llltpkdsdkltcll +10-13 h: fhhhhcbhhchxc +14-15 x: xcpnxnxvbxxxbxx +9-16 n: nnnnnnnnwpncdnnnnn +4-8 t: ttbtwxlxhtkzwrrvc +4-10 l: lwzglkgkcwzwb +2-3 t: lstmttkttt +4-6 f: fhsfdf +4-5 n: nnnbns +1-10 v: tvvvvvvvvw +2-13 r: rtrrgqprprrbfrrrrr +7-8 d: cfwtbdsd +4-5 g: ggwgggg +4-11 r: nccrrfcxsnvkrrrz +1-5 b: bcqwbzbbtfbwb +8-16 d: dfddddddddzdddddtdd +3-7 g: ggggbdgggg +8-9 r: rlrrrrrrd +4-5 n: ntnnsn +7-8 z: zzzzzzww +1-13 p: vpppppnfcppqm +4-8 s: sqssxsss +2-4 z: bznt +5-6 w: swczww +3-7 l: lbvklllknbh +3-4 g: gbvgj +9-10 w: wwwwwwwtwwbww +7-9 k: pvkqmkkqllxktdz +6-7 g: bkgkggsfbgh +12-13 j: xjlxjkjjcdjbj +6-7 x: xxxxvgl +5-13 x: xpsxxtbbxfxwmnmbr +2-4 g: pxzp +4-5 k: qskgkkktfk +10-12 w: wjjxwswnwqwkdmbwwww +1-9 m: kmmlcmdbh +3-6 x: mxzqrlxn +4-8 k: rkrcltmkk +6-11 x: xfrjffvwdrpvkvgjz +9-10 g: ggggpkgcggggsg +7-9 j: jjgmjjbjjjj +2-10 r: rjrrrrrrrlr +4-5 x: xxxlxd +3-4 r: rzrnrr +1-4 s: ssslsssssss +2-5 n: nbtdnf +3-5 l: lfvlll +3-9 z: kcrjrrjvzjnzbvx +7-12 j: jjjjjjjjjjjmjj +4-9 c: cccgccxqm +2-8 h: pxjwgjlpd +13-17 k: kkkkkkkkkkkkvkkktkk +8-13 j: xjxjgjjjjjjlx +1-5 t: ttttg +2-5 w: wdwwfwwxwwnwwwwck +12-13 n: nnnnnnnnnnvpqnn +1-3 g: gtgg +5-7 d: dqddldd +4-14 n: hnxfhwfkvvnqzhz +17-19 z: zcdpstnzvtpvmzzcztz +5-6 b: bbmbbdcbw +4-13 t: ttqttcttqtfttttt +1-2 l: lvlklkc +11-16 d: ddddcdtdddwdrdddddd +3-5 j: xcnjfznjhqzj +1-3 s: ssssssrps +2-4 w: twzfrrgqjkcczjp +11-12 d: qvddkhdddskn +4-5 t: wtjttt +1-4 t: ptttldt +6-8 z: zzzzzdzhz +4-8 d: ddkdddddddd +6-7 f: ffffpfff +7-9 j: hzjspbsvjfgjtwd +3-6 b: bblkbb +6-16 m: qcmbmrsxdfwxmmnf +3-4 l: lxll +1-5 g: gzmgslb +8-17 z: mpxpgljtpcjwltmst +5-8 b: bbwbbbnkmbmhgbsbj +2-3 f: ffff +6-9 s: sssfsgsgsbstscdszhr +1-2 v: bsjwvvv +1-2 k: kkkkkkkkkkkkkkk +1-2 h: stxx +8-9 k: kgkckkwcmmtkkwkw +1-18 p: pppprzcpgpmpnppppz +1-5 x: qtcrxsggtdl +14-17 j: pwfvwzjsmtqcsjjgd +1-13 w: wxbvsfwfwkxwwvzg +2-6 k: kwqkkkk +2-7 t: vrztkcx +9-13 k: kkkkkkkrkkkkt +1-2 w: wrjxrxwwp +3-11 m: mwmjmmmmqlmmmmml +1-6 c: zcccccc +9-10 h: vhhntcjjhr +18-19 z: wszdzfjnvzbhrgzcgrz +11-12 x: xxxxxxxxxxwxxx +7-11 b: bvnbbbbjbnbbb +4-14 r: fbrxgtsbrbrrhrrdrr +15-16 x: xxxxxwxktpxkvxxb +1-3 r: rtqvmrzwnwmgxk +12-14 s: sfssfspctrskspqssss +5-7 p: ppppgppp +4-5 n: nnhtd +7-14 d: ddddddswbddmdr +5-6 j: jjjjjj +8-12 d: zjdddddddtnvdvdddd +1-4 q: rhrz +3-17 c: lnspcskfnggtqvxfc +7-9 d: lvxrkdwfc +5-6 g: gxggfkjmh +2-7 k: jkpsbcq +4-12 p: pcptjwccgppcp +5-16 w: wwwwwwwwwwwwwwwwww +3-6 f: rcmcffxgm +10-14 t: tttttmtwxwthvd +9-11 v: vvvvvvvvvvvvvv +4-7 x: xxclxxx +7-10 z: zzzzzvzzmnz +2-3 t: hcthfjxkh +1-2 v: xvxvk +8-11 b: bbbbbbblbbnb +6-18 b: qbjxjbrqfrwgdrzldbt +14-16 v: sprsxwphvvbvcvkv +11-17 c: dpwlccccmclbqzcptrc +13-19 w: wwwwwkwwwwwmwwzmvww +8-14 m: mdfvmpmrskvqcmvmddv +4-13 v: vvvvvvvvvgkvvvvvwvv +1-3 g: lgwqgg +1-3 r: rrrrzrr +2-4 h: hkrh +3-6 h: gwhzvhv +16-19 x: xxxxxxxxxxlxvxxxnxt +2-3 t: tttq +9-13 w: zkmpkfwwpwwwcw +7-8 n: nnjxnnnnbnhnr +5-7 w: ddzdwwww +11-16 b: bbbbbbbbbbbbbbbbb +2-9 j: wvtdzjzzb +3-4 d: dcbdd +3-4 n: gnng +5-11 c: fgcqcnqbcmv +13-16 s: nqssssssssxssskss +6-9 b: bjrdbbprb +3-14 d: jtdbmqqxsndhcdgm +10-11 p: pppppxpppxbp +8-9 x: xxdpxxhxq +5-7 f: ffffdkf +2-9 z: zzzzzjzdnzzzzzc +6-11 h: hhhhhhhhhhhhhhh +4-7 v: vvvsrqn +4-6 j: pgphwjwxj +14-15 q: qqqqqqqqlqqqqsq +9-10 t: ttttnpxtttttt +3-4 m: dwkj +7-11 m: mmtmcmmjdpggmm +1-7 c: crccnlrccccs +3-7 m: llczxdkcmpsbmpbmnmv +2-4 k: fckkfbkjd +15-16 p: hnhwphpktppppppp +12-15 g: ghggvzgqhkbgtgg +1-3 q: kqqqktqq +1-8 g: bzsjpsrshsggdm +1-6 b: bbbbbbbbb +17-18 v: hfvqvvvvvbvvfvvbgs +2-11 z: wzcxsgzkqfzx +8-11 z: fbxzgzlzzzzpzzvkzz +2-15 g: hghsqkjhjgldscgh +5-7 p: pvfppppp +4-14 z: zzzzvzmzkrzrzmpzzfz +1-4 z: zzfzzzljzzgznzzzzz +5-6 c: cccccc +5-11 j: jkmrhqksjpj +1-3 f: bffwff +4-8 d: dtddzddmd +14-15 s: sswsssssssssstqs +6-18 j: tjjzhmbsxgkwcdmjpj +2-6 d: qddddwqcdjldbsd +9-11 t: wqtjttwtctttttt +7-8 q: rqvhnctm +7-10 k: nqkdtkrkwvkkkbpk +5-6 l: lllllm +2-4 p: pkpp +3-6 t: psxjqth +1-2 j: xjwnjff +3-4 t: zqbt +3-7 c: qcccgwg +3-5 q: ncqqlt +1-4 h: fhhh +6-8 x: xxxxxxxxxx +1-5 r: rrnkrrpfrdfrxx +3-6 b: lcbbbqmhbbsb +6-15 z: qtfvzzskzsdqqxdkzsh +9-11 d: qpcdwddqxdzf +4-5 k: kkkkkwznkgtk +3-4 h: hhdgr +10-12 p: ppcppplppppz +3-9 g: xcgnnhstgtmqdpwghx +3-4 g: gggg +10-12 k: krkkwglqbrkkkkkkj +11-14 d: dddddddvdddddvw +4-12 k: khlkkksjkkkktkk +15-17 p: xsmppwpxxqpwtdjhj +6-11 q: dtxjgzcpxcmqhlnqr +9-11 q: qqqqqqqqjtr +10-14 h: hgphhzqkvhsjhhn +12-16 v: ghvvvmhvvvvvvsvbvv +1-2 x: xqxx +7-9 r: rbrrrrrjd +15-16 z: zzzzzzzzzzzczzmxz +11-12 x: xxjxkxkxxxrdbxxxkx +6-7 b: gbrbbwc +8-9 q: qqqqqqqdq +10-16 x: fxxxxxxxxxxxxxxrx +5-8 f: fffffhsdmgfb +6-7 p: kppcppt +8-9 z: zqzzzzzbczrz +13-14 d: ddhvvdzddddcdcddddd +5-8 p: ppppppph +8-10 b: bbbbbbbjbb +1-6 j: xjcwnnwwmgjcxfkpw +11-18 v: vvvvvvvvvvxvvvvvvvv +4-5 j: xjjls +1-4 g: ggggg +2-4 m: cmmm +1-7 g: gkggnwg +7-10 t: btwtgttrmwtptmt +6-7 t: vtzltkt +4-7 n: jcdnbwnn +8-14 f: fffvblcftkfqff +4-10 c: ccccccmccc +1-6 l: lllljgllll +1-6 w: hkwdfpkp +6-10 n: znnnctlnklnnnrn +3-6 s: fsshbttssbqb +11-14 s: sszsssslssmssq +1-4 l: jwll +1-11 b: bbblbbbbbbbb +11-12 p: ppppppppppdvppppppp +8-11 q: pqjqwqqwqqck +9-11 r: rrrrrrrrfrrrr +4-8 p: pppfpppb +15-16 g: ggggggggggggkggg +1-11 m: fzpmdrbhlbmmshk +3-17 j: pmpjvtlxhlpcwphpjjb +3-4 s: cjsz +10-11 z: zzzzzvzzzzzz +1-2 p: bvppp +5-9 w: wgjbwwwwl +19-20 r: rrrrrrrrrrrrrrrrrrdm +4-6 q: fqqjbqqq +2-11 s: wplxcnbdspsdlh +3-13 d: dlvmkddkgdrfgxhxldg +4-8 d: wsdrldsdwzdddjnfh +1-10 j: tjbwrzcnlcjjhkrsjjj +2-3 m: mmwm +7-10 b: lcbbbbcrfb +18-19 c: cgcccrccfccccccccnc +3-5 j: jjpjfjjjj +13-14 c: cckccccccccccccc +4-9 q: qqqqqqqqlqqq +3-6 w: twwvwwhmkwnjnss +8-9 p: pppzpppzcp +9-10 l: lllslvllwc +4-7 m: sjmhhhmr +1-4 v: vvrnvvtv +1-4 r: rmrrrcrrcprrrrbnq +7-11 g: ggghggggkgdwg +2-12 l: lmlllllllllllll +1-3 q: qqqq +11-12 x: xxxxxdxpmxxxx +2-3 q: qqqh +5-6 w: wwkwwwwgb +10-11 w: wwhwwwvwwwwww +1-12 c: vcccccccccccc +1-3 r: rrlrr +7-12 w: qpfcxwnvwzhwzvgwpwcm +7-9 g: ggggggfglg +2-6 j: cjqzkl +5-7 w: wwrwmwww +6-12 q: shqjlnqgkfcq +11-12 d: gddddddcddxd +3-5 x: xxxxh +6-12 b: bpmbmbbbbrdb +5-7 j: jtxbwtj +5-6 t: tntttv +17-18 t: tttttttttttttwttsms +7-15 g: gcghxlgzlgrdklnggtl +7-12 s: sdpssdwmssssgs +7-15 k: kkpmsskkpzhkbdkksk +5-6 b: bbbbbb +4-7 c: hxccchdrf +3-6 z: vzhzcpz +14-16 q: ppqrgfqvpmfjwqqz +5-6 g: svgwgxrnmngrgg +2-13 p: spkpvpdlcprlb +1-4 v: vvvv +10-11 r: xrjcrrrrwrrh +6-11 h: hhhvchbhhhphhhhh +7-9 w: wjwwwwzzwwkwbkrl +7-11 x: xxdxcllxxxr +6-17 b: brthfqjmbbbbbfljbfb +11-12 l: lclllzllllxjdl +7-12 g: gchglbgmggbqvg +2-5 z: zzpjzqzz +7-16 h: hhhqndzhnhpzhqhhmhb +16-17 k: kkkkzkkkkkkwfkkckkkk +2-3 v: vgbvv +9-10 j: jjjjjjjjjv +1-4 n: cnxn +7-10 s: sssssssssssstsbss +3-12 s: ksjbxfhcsswstr +4-15 z: zpzmzzpzzzzzzzmzz +9-12 q: qpqwgcrqpqdp +2-11 b: bbhnnbdblgbbbbbgb +5-6 h: hhhhhhhhhhh +8-12 t: ttttttbttttttt +17-18 t: qtkstpsdthtvtftgthqw +2-6 l: lplllll +6-7 c: zmqjcbmrcclzcc +5-16 z: zzzzdzzzzzzzjzztm +10-14 b: qrjbbbbblkrbbwbbrcbc +2-15 d: dgdddddddwddddzdd +3-8 p: zmmhfppjlrwnpp +17-19 r: krrhprxrrrnfqkslrpr +7-10 n: nnnnnnnnsqn +3-10 g: gggggzggghjgggwggg +1-4 x: sxxxxf +6-11 j: jjljjtjjjjj +7-8 f: fffffffff +2-3 n: knndzlnhz +4-7 l: lgplzpkjq +9-10 z: zzzzzzzbszzr +8-13 h: kdhhhhhhhkrgchhh +1-3 d: lddrbd +18-19 n: nnnnnnnnnxnnnnnnnns +4-7 x: gxxqxxxxjcxl +5-13 r: trfthwjntjlwn +8-12 d: xxpdjrdwbddddmdqvd +5-6 j: jxjjvkd +4-5 b: dmwpbbx +3-4 w: wjwl +2-3 s: ssjss +1-6 m: mhkmsthqxrxmqq +7-16 c: vzqnsscchrkjpckwn +10-15 p: ppfzpdppppzpphsvpppq +3-19 g: lgxbrcsvgzrncgzggdgg +10-14 h: phtzhhhhhhhhkjn +15-16 f: ffffffffffffffdff +1-4 x: xmlxjlblpctjxzmdgkgr +10-12 c: cpcccccccwcdcccccccv +3-4 t: tstt +10-14 s: ssldsssssrshsvs +7-9 v: vvvvvvvvv +11-13 c: cccfcccctccksczcct +5-6 c: zcccrl +12-18 p: ppgppdlgqpkpwppkphp +10-16 v: vvvvvvvvvvvvmvvhvv +15-16 n: nnnnnnnnnnnnnntnnn +15-18 t: tzktddqnhtjtsktlkt +4-7 q: mqjbqkqlqnqqdxn +1-3 x: fxcx +5-6 c: jwccccxggtgcc +8-16 m: mpjmmpmmmmmcmmmc +7-9 q: qrwpkjfqzq +1-12 g: bsqgxbjngmgw +4-5 w: wwwbw +14-17 r: nvmrhtqdkqkbcrzjp +12-14 b: bbbbmbbbbvbrpr +7-8 s: ksssssls +10-12 m: mmmjmwcfmbmmmmmm +3-4 q: cqqq +7-9 d: dvhqpbrjz +4-5 b: bhbxbzbm +10-12 l: llglllplhcgmtxlln +7-12 j: rpwrjzjxktwjjjr +12-14 m: cdmdcmkzknfmgwvwxfm +1-2 b: bbnt +4-16 h: hlhhdhhzhhmlzqhhh +2-5 d: dqfwxgccx +4-8 q: vnqtwhsqvsnqw +7-8 k: kxhkpssk +8-13 t: zbmtwrbcvhfhj +5-8 s: hshrssvclnjs +10-12 v: rfwhbpxrtwpvvt +3-6 l: lllstl +5-6 d: dfhbxq +7-12 d: dwldsrddmnddv +7-8 v: vvljwkvh +3-4 b: wdkhbbrxmcr +3-5 v: cvvvvvvhr +5-7 h: hjhhqhzhhw +3-5 n: nlndkn +6-8 t: zttttjtml +1-7 r: trrrrrrrrr +3-6 h: nzgxhzhftnhchhvt +8-9 s: ksssssfsrss +1-6 l: lqxqgw +18-20 v: vvvvgvvvvvvvvvvvvlvq +2-4 q: bqlqhxqxrxqqzq +3-18 s: fdcswgtgxlhfvzzznssh +9-10 p: ppzsplppppvhppd +12-13 b: bbbbbbbbbbbbbb +12-16 w: wwwwwwtwwwwwwwwrwww +6-8 h: hhmhhxhbf +1-7 c: gpdvnmnbgtlnwlzx +3-4 z: zzzz +4-9 m: gzmmdcdgm +2-4 t: vgsttn +1-8 r: rrlrrrlr +5-10 w: rrwgwfrprpvww +1-4 r: srrr +11-12 r: rrrrrrrrrrbrrrrrr +3-5 c: gqvcnctdwn +4-6 p: mrmvppprp +2-3 l: kxlvdtgtlhsrl +8-16 h: chchhhhzfhshhhhhh +6-8 r: rrrrrfrrr +17-20 t: ptttttttnttttktttttt +6-9 r: zbltfrdlrwrj +6-7 d: gqhsddd +3-5 j: mtlhj +17-18 x: xpxxxxxxxxxxxxxxnxxt +7-11 n: vpnnnncnnbnn +3-4 q: cqlhqqqsvfz +8-12 f: ffffffffffff +3-4 g: fbksgtqggggggrgg +7-9 d: skntdmdcdzmnhvdj +7-10 w: wwwwwwbwww +10-11 r: fgpkwrwqgbs +9-10 h: hhhjchhhnhh +11-12 d: ddddddddddkh +9-11 c: czzjtllcdff +1-2 t: rrxdnzf +3-4 n: nndk +1-2 m: qqvmh +7-9 x: qbxkxxxxxxx +3-13 v: vgvtfmtwnrfbxvtkt +2-5 j: tjpjjrlxzjjcsl +13-14 z: zzzzzzzzzzzzbz +2-4 w: wwww +5-6 x: xxxxxdx +2-12 p: pppppfpvfppcmpd +4-5 r: rrrwfrr +3-8 c: cwmnsxcccjd +2-4 j: jjhh +4-6 j: ljtjvzqzktz +7-9 v: vvvvvvcfv +4-6 m: mmrmxmkmmmgr +6-10 p: cpkppbppppqplxr +12-20 b: stbmpspzhplbhhtbpbwb +5-7 w: wkwwbwhwwrwwswwwz +2-7 r: rssttxm +3-8 r: gcrtpkrrdrk +7-9 d: ddddddbdgsd +8-10 w: wwwwwwwwwwwww +11-15 g: ggdtgggrgggghggg +7-14 j: nfvlqhccbnwkjhwnnvt +14-15 g: gggggggggggggfg +14-15 h: hhhhhhhhhhhhhhv +5-6 c: pmccjccccrcc +2-7 n: vzxncpcdqzvqgmf +1-4 z: xzzz +7-10 d: ddddddnddd +5-6 q: qqqqqbq +4-18 v: vvvjvwvvcvrvnvwhvv +5-6 x: xxxxxb +3-8 n: jnnnnnnnz +4-5 g: ggngg +9-11 f: bsffzfvfffxffjtf +7-9 p: pzpppppppprp +1-4 x: sxcxfx +4-12 h: hhtphhhhdhkghhchhvqh +9-10 s: ssssslsssss +1-5 t: ttttw +4-7 b: xbxxvxbdpnflzbzz +11-12 f: ndppjfvgbvndzgflkwj +4-5 v: vdlvk +6-7 q: qqvqbqqqql +3-7 r: rrjrrrr +7-10 h: dhhhqhbcbhhlhhhhf +12-14 c: cgccccccccccczcjc +1-2 f: fsff +7-8 b: cqqbcwxzbb +8-13 j: jjsgdjjnjxcjzjj +5-7 h: hhchhph +3-6 g: ggggglg +6-9 g: zgmsgggglwgngn +1-6 s: kmsssssspssss +1-5 q: fscrqmqqpqqqdtgspmc +5-8 f: cftsfmwff +2-15 g: cgvtzfjsxfgdsggtk +3-4 v: vhdq +13-14 c: ccccccccccccns +2-4 z: zzzz +2-3 c: ccscc +2-12 x: bxxxqxrbxlxlbxxvxxv +5-9 f: ffffsfmffxfff +10-12 m: wnmmjmmmmmmlmwk +1-4 t: ltttttt +2-10 r: brlrmrrrrljrvr +9-13 p: ppppmtppnpptps +3-7 p: pjppppppppbpw +7-11 f: fzfzzvfvfcfkffffffk +4-6 p: pppppp +5-6 b: blbbbb +9-13 w: wwzwwbwcnwtzw +4-8 d: jkjrdxnv +5-7 t: ttkttrsttppmttgtqtf +3-4 n: ngmn +5-7 h: cvhdhvbhnknhh +12-13 m: vsqmvcvgmmhmk +9-10 s: ssssssssts +5-14 p: pppkdppppbppppppppp +2-4 v: lbbcvhxgns +1-4 g: zggg +2-3 f: wgnf +6-7 j: jwcjjfjjjjxzjbjk +3-15 b: tvlrztbfwfbwqknhzbw +10-11 g: ggggggggfxk +2-3 q: vqqq +10-13 v: fcvvrvsvdvjvwvvxvgt +3-4 c: mcmc +3-9 d: xddqhsthcdpfsdd +11-12 n: mnnnlnncnkng +2-10 p: pppgpgppxmp +1-4 s: hswssss +3-4 h: zhhh +4-8 f: jnwfmtfjf +18-19 z: zzzzzzzzzzzzzzzzzzz +13-16 h: rghbhvnfsnvvhjjhd +7-11 d: cdddrddncffsdlddl +4-5 w: dgwnw +15-17 v: vvvvkvvvvfvqvvqvnnvv +6-11 v: gvvvvvvvvvv +18-19 n: nnnnnnnnnnnnnnnnnnn +4-6 k: tkkkzklkvbkk +12-16 n: nnnnnnnnnnnwnnnhnnn +2-3 w: wwww +13-14 t: tttttttttttttb +6-9 j: zjjjjfjjmjjj +3-9 j: ltljpknxj +4-10 m: wzmrmsvfwrjds +6-9 s: ssssszssw +4-5 v: vdnvvbbzvdns +4-20 d: ddvdvrpddwdddddtdsdd +1-2 h: jhvhh +2-3 n: ncnt +4-6 f: ffwfpff +3-4 w: gtwzxkw +8-14 x: twxqvxxgcpnxxxcwxx +1-13 v: tvvvvvvcvvvvvplvvvtv +7-14 c: rmrzctbccfcnrcdsdc +4-8 b: bbbbbbbjb +5-15 t: vzttttbtdttfqstt +9-17 f: fffpfffbfffxtfdfpf +7-12 n: nnnlnrccnnnld +3-5 g: ggpgrg +4-5 w: wknhd +9-10 f: wfbfrfffqkfkfg +3-4 g: ggtg +2-5 c: cqzdfcccpcc +2-11 z: gzhzxhdttbz +5-7 j: pxjjzwjskjjtj +4-5 t: ttttts +8-9 c: cqccjccqcc +6-7 z: zzzvzmvzl +9-12 d: ddddddddjdddd +5-7 c: xtcxfncccxkjzcckcbtr +2-3 w: twknmwb +4-6 w: wwcwwbwqhqkw +3-10 x: xxxxxxxxxxxxxxxxxx +1-7 p: pppppppp +4-5 n: rnnnf +5-7 f: fftfjhffff +8-10 h: hhthhhhhhzh +7-17 s: spsssshssslsssljs +4-8 l: jlltllllll +6-7 j: jjjjjwc +2-18 f: rftjffffqvffsffpfc +16-17 w: wwwwwwwwwwwwwwdsjwp +2-3 p: qtxp +15-17 s: sssssssjssssssksc +2-5 v: xvvcvmvv +3-13 x: xxvxxsxxxmhjtx +6-17 z: kfzvzzmrndrbqwskz +2-3 s: xsjqx +17-18 t: tttttttttttttrtjmstj +1-3 n: nnjnn +3-7 c: lcxcvccpc +7-10 l: lllcllllll +1-3 z: zhwzjzjzw +8-9 d: gvfbkdtdn +5-7 w: smwwgfwwww +4-9 n: nclnmsnntrkmdvw +1-5 g: qfgggg +8-10 w: wwkwwbwwww +1-4 g: kfjrxgtzcwgvrqg +2-9 f: fffffffffff +8-10 l: llllllltlnl +2-13 c: cwcccccvccccccdccc +2-5 c: wczcs +2-4 c: mlxc +3-4 v: vlvvjx +12-14 h: hshhhhhhhhhhhhh +17-19 f: fffffffvffffffffffff +1-7 m: xfbmltbm +8-15 c: ccdcngpcqjscmcqk +6-11 b: fbbbbxbbbbdnj +13-14 j: nxjmwtqpjwzjcj +1-4 t: nttjt +11-13 m: mmmmmgmmmmnmw +6-14 h: zwfvkhhhhpghrh +8-9 l: nfllllllrhlllv +6-10 q: nqpqpqqqqs +4-7 n: nnnjhng +7-11 s: ssklvwsnssstxsbsr +3-12 x: hxxxxxxxxxxxxbjrc +3-18 k: kktkkkkkkxbkckcpkk +1-9 x: lxscklsfxwxbj +3-4 z: zkfm +3-15 r: rgrshbkrwmrdkrwsjdr +4-5 r: mrlrv +3-4 h: hhhg +2-7 t: hthhzbztttbt +4-7 r: rrxxrnr +1-4 z: zdzz +2-4 g: rgggggctgcjljg +12-13 z: hjtcmnbczznzz +1-4 s: ssstss +10-11 q: qwqqqqrqqtrq +7-18 z: hhzjjrzzgjhxznmkzzhz +4-5 f: flfffd +6-9 c: cdccccccwcc +2-6 r: rfrrrpr +4-10 x: xxzqxxqqxxbn +2-6 m: dsxdmmbm +3-4 q: kqqkhn +7-10 w: wwwwwswlwgrw +5-11 t: tlxljjtntmt +7-11 v: vcvvvvgvvvmvvvv +2-4 m: mmmcmd +10-12 x: lxxxxsxzxqxb +4-8 g: vmsgpdvgwldrgvw +11-13 t: ktnttftxvtttttttqqtt +5-6 m: mmztdm +2-5 p: ppppdp +1-12 d: dddddddddddcdddd +8-10 h: thzhmhhqhrhhhhm +2-10 d: dddddmdddpdd +8-13 q: qjqqrwzpqnqgkfqqhqq +1-5 t: thptxlqtt +4-6 v: nqdfvvhvvvbv +8-12 j: jjjjjkpmjjjj +10-12 p: pfpgtppppgpxpgsjpp +2-6 v: zvvtcdbbxv +8-10 b: qbmbrbsbbb +2-3 r: drxr +6-7 s: ssssssv +1-2 v: jpvvv +12-14 r: rrrrrrjrvrrtrr +6-7 r: rjscgmr +11-15 l: llhlllbkllnlzlwllp +6-10 l: lcqlllblll +3-5 c: drfvccctgv +1-3 s: sssss +1-4 b: btbsjnx +9-12 b: bbnbbbbbbbbbb +2-3 n: nknn +2-8 f: ffffffnffs +4-7 w: wwwcwww +7-14 f: mfbpkxjzprnmpnfhdb +4-11 h: hhhshhhhhhhhhhhhhh +6-8 q: hhqdrqbmvlgpwkppc +1-4 v: vvvv +6-18 v: vvvvvdvvvvvvvvvvvgvv +1-3 b: bbxcbbbbt +4-5 t: tlvhq +3-8 n: njnzfnnns +5-9 z: zpczdfwzzcxncdzz +9-14 s: qdsssfrszsrsts +4-8 q: jqpmbzjqb +7-13 w: wjwwwwwwwwxwfww +16-19 g: zggggggggggggggqggfg +3-8 s: gsgsdtdsf +2-14 k: rkbbpnpvjkvcskdx +4-6 s: xssjzvs +15-16 j: cgdjjjjfjdwjjjjs +3-6 n: nsnnnx +9-10 x: xxxxxpxxxmxx +7-8 x: xxxxxxxl +2-9 t: tjttttttmtttt +12-14 g: gggggggggsgqzgj +17-19 c: ccccccccccccccccccc +8-11 p: pppppppcpppppp +12-15 s: sssssksssssssss +11-12 k: krkkkfkktkkq +17-18 q: qqgtqwqqqqqqqqqqjqqq +5-16 g: ngrwggggkzbggjtg +12-15 v: wvvvpvvvsvvvvdpvv +5-6 f: ffqfnffffffhf +7-8 n: nbnnnncm +4-7 p: mppppvvrp +10-11 b: qbbbbbszbnbkbb +8-10 j: jjjzjjjfjj +3-7 c: cvtcccnkcvmccgccchc +2-3 w: wnzd +9-10 d: dddddddddwdldmdddddd +4-6 b: bbbdbtbb +2-10 h: hhhhhhhhhhh +10-15 g: ggckgcgmcgjgggglgdgk +3-4 k: kkgkkk +10-12 k: sfbkhzjmbkfqrtrrq +3-9 g: ggbgsgvggs +2-7 s: sshpxwjbhmz +6-7 x: xftzsrx +1-6 k: rkkkkck +4-7 p: pppjprjp +17-18 j: jjjjjjjjwjjjzkjjjrh +3-9 p: xjpptspczfx +12-15 m: mmmmmmmmmmmmmmx +8-9 t: zttttttsldtxr +4-7 z: zzzzzzzz +15-18 v: vvvvvvvvvvkvvvfvvzv +2-8 q: vmhvmqdqz +15-18 m: mhmmmmpmmmsmmnbmwmm +7-16 h: hmgwvnnvhhzfhlhqhh +6-7 f: pqpfjmhqk +4-11 p: jzpprcpcmmpb +9-10 f: fffpffffjff +1-5 d: ndtdc diff --git a/data/2_2021.txt b/data/2_2021.txt new file mode 100644 index 0000000..26e4fc2 --- /dev/null +++ b/data/2_2021.txt @@ -0,0 +1,1000 @@ +forward 4 +down 7 +down 4 +forward 2 +down 4 +down 9 +down 1 +forward 1 +down 4 +up 5 +forward 5 +down 3 +forward 5 +forward 6 +down 5 +down 3 +forward 8 +up 7 +forward 1 +forward 5 +forward 7 +up 2 +up 7 +down 1 +down 6 +forward 7 +forward 6 +down 7 +up 9 +down 8 +down 3 +down 1 +down 4 +down 3 +forward 7 +down 1 +forward 6 +down 3 +forward 3 +down 6 +forward 5 +down 7 +up 5 +forward 7 +forward 9 +up 1 +forward 5 +down 5 +down 2 +forward 1 +up 7 +down 8 +down 2 +forward 8 +forward 1 +up 1 +up 5 +forward 9 +up 9 +down 5 +down 5 +forward 6 +forward 1 +down 1 +down 3 +up 6 +up 9 +down 6 +down 1 +forward 1 +down 8 +down 3 +down 8 +up 6 +forward 2 +up 8 +down 2 +down 6 +forward 1 +down 2 +down 1 +down 5 +down 8 +forward 8 +down 8 +down 2 +up 1 +up 3 +forward 1 +down 6 +up 5 +forward 5 +up 7 +forward 3 +forward 3 +down 9 +forward 1 +forward 7 +down 1 +down 1 +down 3 +forward 4 +down 4 +forward 2 +up 8 +forward 2 +down 4 +down 2 +up 1 +forward 6 +forward 6 +down 9 +forward 5 +down 3 +forward 5 +down 6 +down 9 +forward 9 +up 6 +down 8 +up 5 +up 2 +forward 5 +down 4 +forward 8 +up 1 +forward 2 +down 9 +down 4 +up 7 +down 1 +down 6 +down 7 +down 7 +down 2 +down 2 +up 7 +down 1 +up 7 +up 4 +forward 9 +down 6 +up 3 +down 5 +forward 8 +up 4 +forward 5 +forward 8 +forward 4 +forward 7 +forward 2 +down 3 +up 4 +forward 7 +forward 3 +down 7 +up 4 +forward 8 +forward 9 +forward 9 +up 6 +up 5 +forward 7 +down 7 +up 5 +down 9 +down 8 +forward 5 +forward 2 +down 1 +down 2 +down 9 +up 5 +down 3 +down 8 +up 6 +forward 9 +down 9 +up 3 +up 9 +forward 3 +forward 9 +down 5 +up 3 +down 6 +forward 5 +down 6 +down 9 +forward 3 +down 7 +down 5 +down 9 +forward 8 +down 8 +forward 8 +forward 2 +up 6 +down 9 +down 7 +down 4 +down 2 +down 9 +forward 7 +up 1 +forward 6 +forward 7 +down 3 +down 5 +down 3 +forward 4 +down 9 +forward 2 +down 1 +forward 4 +up 9 +down 8 +down 9 +forward 5 +up 2 +down 7 +down 2 +down 7 +forward 8 +up 8 +forward 9 +up 8 +down 3 +down 8 +forward 2 +up 7 +forward 4 +up 8 +forward 6 +forward 6 +forward 4 +forward 3 +down 4 +up 7 +down 8 +forward 1 +forward 9 +forward 8 +forward 8 +down 6 +down 6 +down 4 +down 8 +forward 9 +down 8 +down 4 +forward 2 +forward 7 +down 4 +up 1 +down 4 +down 5 +up 5 +up 9 +down 5 +up 5 +forward 2 +down 8 +forward 7 +forward 2 +up 4 +forward 8 +up 7 +down 5 +forward 5 +down 5 +down 6 +down 7 +forward 1 +down 8 +up 8 +up 9 +up 6 +forward 2 +forward 7 +forward 4 +down 6 +up 4 +up 3 +down 3 +forward 7 +up 9 +down 9 +up 5 +forward 1 +up 7 +down 7 +down 7 +up 8 +down 3 +forward 6 +down 6 +down 7 +down 2 +forward 5 +up 8 +up 5 +up 1 +down 5 +forward 9 +forward 9 +forward 2 +forward 6 +up 8 +forward 8 +down 1 +forward 6 +up 7 +up 3 +forward 3 +up 5 +down 8 +forward 2 +down 5 +down 5 +forward 8 +forward 8 +forward 6 +up 7 +up 1 +forward 1 +down 7 +down 1 +up 9 +forward 7 +up 6 +down 2 +down 5 +forward 1 +down 1 +up 1 +forward 7 +forward 7 +forward 1 +up 2 +forward 2 +down 9 +down 8 +forward 9 +forward 8 +up 9 +down 1 +down 3 +up 1 +down 3 +up 9 +down 7 +up 6 +down 1 +down 2 +down 2 +down 4 +forward 4 +forward 3 +down 7 +forward 9 +forward 1 +down 2 +down 2 +down 4 +down 7 +up 7 +forward 6 +forward 2 +down 6 +down 3 +down 3 +down 8 +up 8 +forward 6 +down 8 +down 3 +forward 7 +down 4 +down 4 +up 1 +up 8 +forward 5 +forward 6 +down 8 +down 9 +up 7 +forward 2 +forward 4 +down 4 +forward 6 +forward 5 +down 4 +up 5 +down 5 +forward 1 +down 2 +up 9 +forward 9 +forward 6 +forward 8 +down 2 +down 9 +up 1 +forward 6 +down 3 +forward 6 +forward 7 +down 9 +forward 1 +forward 1 +forward 5 +up 5 +up 6 +forward 8 +forward 6 +forward 6 +forward 8 +down 6 +down 8 +forward 5 +forward 7 +forward 3 +forward 3 +up 5 +forward 8 +up 3 +forward 6 +forward 4 +forward 3 +up 8 +down 1 +down 3 +down 7 +up 8 +forward 5 +down 9 +up 7 +down 2 +down 4 +down 5 +down 2 +up 3 +down 4 +down 4 +forward 4 +forward 6 +up 4 +forward 5 +forward 3 +up 2 +up 3 +down 4 +down 7 +forward 7 +forward 2 +down 2 +forward 5 +up 4 +forward 2 +down 8 +up 5 +up 6 +forward 2 +forward 3 +up 3 +down 2 +forward 7 +down 6 +forward 3 +forward 6 +up 9 +forward 7 +up 1 +forward 1 +forward 2 +down 3 +forward 9 +down 1 +up 5 +up 7 +up 8 +down 5 +up 4 +down 9 +forward 4 +up 8 +forward 3 +forward 7 +down 7 +down 9 +down 5 +up 4 +down 2 +up 5 +down 4 +forward 3 +down 7 +up 5 +forward 9 +forward 9 +forward 7 +up 5 +forward 7 +up 3 +forward 8 +down 1 +down 5 +up 5 +forward 4 +forward 9 +forward 9 +up 5 +down 9 +up 7 +up 3 +forward 5 +down 4 +down 7 +forward 9 +down 9 +up 3 +forward 4 +forward 7 +down 9 +forward 2 +down 2 +forward 1 +down 2 +up 7 +down 6 +forward 9 +forward 1 +down 5 +forward 9 +forward 7 +up 4 +forward 9 +forward 7 +up 4 +down 1 +down 3 +down 3 +down 1 +down 9 +forward 3 +forward 5 +forward 2 +down 1 +forward 9 +down 6 +up 6 +down 7 +down 1 +down 1 +up 1 +up 8 +down 6 +down 3 +down 9 +forward 3 +forward 9 +down 4 +forward 6 +forward 7 +down 3 +forward 5 +up 8 +up 6 +forward 3 +forward 2 +down 6 +up 7 +forward 3 +forward 1 +down 8 +down 1 +forward 1 +forward 2 +up 7 +down 3 +forward 9 +forward 6 +up 8 +forward 3 +down 3 +down 9 +down 3 +down 6 +down 6 +down 2 +forward 8 +down 3 +forward 2 +up 8 +forward 5 +up 6 +down 7 +down 4 +down 2 +up 9 +down 4 +down 9 +down 4 +down 9 +forward 2 +down 5 +down 5 +forward 7 +up 2 +forward 5 +forward 1 +down 4 +forward 6 +forward 9 +down 1 +down 2 +down 6 +forward 5 +up 9 +up 1 +up 9 +up 4 +down 1 +up 3 +down 5 +forward 4 +forward 3 +forward 1 +down 9 +down 9 +down 6 +forward 4 +forward 4 +forward 1 +down 9 +down 8 +down 7 +forward 2 +forward 7 +forward 1 +down 7 +forward 8 +forward 7 +up 4 +down 4 +forward 8 +forward 6 +down 6 +forward 9 +down 2 +forward 7 +forward 1 +down 5 +down 5 +down 3 +down 7 +forward 9 +down 2 +forward 3 +forward 6 +up 4 +up 9 +forward 6 +up 8 +up 2 +forward 9 +forward 3 +forward 9 +down 4 +down 8 +down 1 +down 1 +forward 4 +up 3 +forward 1 +forward 5 +down 5 +down 6 +down 7 +forward 5 +down 3 +up 9 +forward 5 +down 4 +up 9 +forward 1 +down 3 +down 5 +forward 2 +down 7 +up 7 +down 2 +forward 2 +down 2 +down 4 +down 3 +forward 6 +down 7 +down 2 +down 1 +forward 7 +forward 9 +forward 8 +up 8 +forward 5 +down 8 +forward 9 +forward 9 +up 5 +forward 9 +up 8 +up 6 +up 5 +up 3 +down 2 +down 8 +down 4 +up 3 +down 4 +up 8 +down 3 +up 1 +down 4 +down 7 +down 4 +up 7 +down 3 +up 3 +up 8 +forward 3 +down 2 +forward 7 +up 9 +forward 2 +down 1 +down 1 +forward 2 +forward 9 +up 6 +forward 3 +forward 2 +down 1 +down 3 +down 6 +forward 7 +down 4 +forward 2 +down 6 +up 3 +up 5 +forward 6 +up 7 +down 5 +up 5 +forward 5 +down 6 +forward 7 +up 2 +forward 3 +forward 4 +forward 9 +down 4 +down 5 +up 7 +up 1 +down 1 +down 5 +forward 4 +down 2 +down 8 +down 6 +down 3 +down 1 +down 9 +forward 5 +forward 7 +down 5 +forward 7 +down 6 +up 8 +up 9 +down 4 +forward 7 +up 1 +up 5 +down 8 +forward 5 +up 8 +forward 1 +forward 7 +forward 5 +forward 8 +forward 8 +up 1 +down 4 +up 6 +down 1 +down 4 +up 9 +forward 4 +forward 1 +forward 5 +up 7 +forward 5 +forward 7 +up 3 +up 6 +up 3 +forward 4 +down 5 +down 4 +down 2 +down 4 +forward 7 +down 5 +forward 9 +forward 2 +down 3 +up 7 +forward 9 +forward 3 +down 9 +up 8 +forward 1 +forward 3 +up 8 +down 3 +up 9 +down 4 +forward 6 +forward 8 +down 4 +forward 9 +up 1 +forward 3 +forward 1 +up 3 +down 3 +forward 1 +forward 2 +forward 8 +up 3 +down 9 +forward 1 +up 1 +forward 2 +down 4 +forward 7 +up 9 +forward 2 +down 6 +down 8 +up 1 +forward 1 +forward 7 +down 8 +forward 7 +up 9 +up 5 +down 6 +down 2 +down 9 +down 9 +down 7 +down 4 +forward 4 +up 2 +up 8 +forward 5 +down 9 +down 7 +forward 3 +forward 1 +down 3 +down 1 +forward 5 +up 2 +up 9 +up 2 +forward 4 +forward 3 +forward 8 +up 9 +up 6 +up 3 +forward 7 +forward 8 +forward 8 +forward 1 +forward 1 +forward 2 +down 2 +down 7 +forward 4 +up 2 +down 4 +forward 5 +down 3 +forward 1 +down 3 +up 2 +forward 9 +forward 7 +forward 5 +forward 1 +forward 6 +forward 9 +up 3 +down 8 +down 8 +forward 3 +up 4 +up 1 +down 4 +forward 8 +up 9 +down 4 +down 5 +forward 1 +forward 7 +up 2 +down 2 +down 2 +down 1 +up 6 +forward 7 +forward 7 +down 7 +down 8 +forward 1 +forward 8 +down 3 +up 5 +up 9 +down 2 +down 9 +forward 3 +up 8 +up 9 +up 3 +up 3 +forward 9 +up 6 +up 7 +down 6 +down 8 +forward 4 +down 8 +forward 4 +forward 9 +down 9 +forward 4 +up 6 +up 5 +down 2 +forward 6 +down 2 +up 2 +up 4 +forward 4 +forward 6 +down 7 +up 4 +down 8 +forward 1 +down 5 +forward 4 +down 3 +forward 3 +down 5 +forward 7 +down 8 +up 7 +down 7 +forward 1 +forward 6 +up 7 +up 8 +up 2 +forward 1 +forward 1 +down 5 +down 9 +forward 7 +forward 5 +down 7 +up 1 +forward 6 +forward 6 +down 6 +forward 1 +down 1 +down 2 +down 4 +forward 5 +up 7 +up 7 +forward 6 +down 1 +forward 7 diff --git a/data/2_2022.txt b/data/2_2022.txt new file mode 100644 index 0000000..31248b3 --- /dev/null +++ b/data/2_2022.txt @@ -0,0 +1,2500 @@ +B Y +C Z +C Y +C Y +A X +C Y +C Y +C Y +A X +B X +B Y +B Y +B Z +C Z +C Z +C Z +B Y +A Z +C Y +C X +B Z +C Y +C Z +B Y +B Y +A X +B Y +A X +C Y +B Y +B X +A Y +C X +A Y +B Y +B Y +A Y +B Y +A Z +B Y +B X +C Z +B X +B Y +A Z +B X +C Y +C X +C Y +C Y +B Y +C Z +C Z +B Y +B Y +B Y +C X +B Y +B Z +B Y +B X +C X +B X +A Y +C Z +C X +B Y +B Y +C Z +B X +C X +C Y +C Y +C Y +B X +C Z +C Z +B Z +B Y +C Y +C Y +B Z +A Y +B Y +A X +B Y +A X +A X +B Y +B Z +A X +C Y +C Z +C Y +C Z +B X +C Y +A X +B Y +C Y +C Z +A Z +A Z +C Z +A Y +C Y +B Y +B Z +C X +A Z +A Y +C Z +B X +C Y +C Y +B Z +C X +B Y +C Y +A X +C X +B Y +C Y +B Y +C X +B Z +C Y +C Z +B Y +B Y +B Y +B Y +B Z +C Y +B Z +A Y +C Z +C Z +C Z +B Y +B X +C Z +C Z +C Z +C Z +C Z +B Y +C Y +A Z +B Y +C Y +A Y +B Y +C X +A X +A Y +C Z +C Y +B X +C Z +B Y +C Y +C Y +C X +B Z +B Z +C Z +A X +B Z +C Y +C X +C Z +A X +A X +C X +B Y +C Y +B Y +B Y +B X +C X +B Y +B Y +C Y +A Y +C Y +B Y +C Y +A Y +B Z +C Y +B Y +C Y +B Z +A X +C Z +C Y +B Y +C Y +C Y +A X +B Y +C Y +A Z +C X +A X +B Y +A X +A X +C Z +B Y +C Z +C Z +C Z +C Z +B Y +C Y +A Z +A X +B Y +C Z +B Z +C X +C X +B Y +C Y +B Y +B Z +B Z +C X +B Y +C X +C X +A Z +B Y +B X +A Z +A Y +A X +A Y +C Y +A X +A Y +C Y +C Z +B Y +A Y +C Y +B X +A Y +B Y +A Y +B Y +C Y +A Y +B Y +C Y +C Y +C Y +B Y +C Z +C Z +A Z +B Y +C X +B Z +C Y +A X +B X +B Z +A Y +C Z +A X +A Z +C Y +B Y +B Y +B X +B Y +B Y +B Z +A Y +B Y +A X +C Y +C Z +C Z +B Y +C Y +B Y +C X +C Y +A Y +B Y +C Z +B Y +C Y +C Y +B X +A Z +A Y +A Y +C Y +C Y +B Y +B Z +B Y +A Z +B Y +A X +C Y +A X +C Z +C Z +C Y +C Y +A Y +C Z +C Z +C Y +B Y +C Z +B Z +A X +C Z +A Y +B Y +A X +A X +A X +B Z +B Y +A Y +A X +B X +C Z +B Y +C X +C Z +A Z +C Y +A Z +A Y +A Z +C Y +A Z +C Y +B Y +B Y +A X +A Y +B Y +B X +A Y +C Z +B Y +C Y +C Z +B Y +C Y +A X +A X +B Y +B Y +C Z +A X +B Z +A X +C Y +B X +C Z +B Y +C Y +A Z +C Z +C Y +C Z +C Y +B X +B X +C Z +A Z +C X +C X +A X +B Z +A X +B X +A Y +B Y +C Y +C Z +C Y +C Z +C Z +B Y +C Y +B Z +C Z +C Z +C Y +B Y +C Y +A Y +B Y +C Z +B Y +A X +C Y +C X +C Z +B Y +B X +B Y +C Y +B Z +A Z +C Z +C Y +C Z +C Y +A X +B Y +A X +B Y +B Y +A X +C Y +B X +A X +C Z +C Z +A X +A Y +A Y +C X +B Y +A X +B Y +A Z +A X +C Y +A X +C Y +C Z +C Y +B Z +A X +B Z +B Z +A Z +C X +C Y +B Y +C X +C Y +C X +C X +B X +C X +C Z +A X +A Y +A X +B X +B Y +B Y +C Z +B Z +B Z +B Y +C Z +C Y +C Z +B X +C Y +C Y +C Z +B X +C Y +C Z +B Y +B Z +C X +B Z +C Y +A X +A X +A Z +B Y +C X +C Y +B X +A X +A Y +C Z +A Y +C Y +C Z +C X +C Z +C Z +A X +B Y +A X +A Z +B X +C X +B X +B Y +C Y +C Y +C Z +C Y +C Y +C X +C Z +C Y +B Z +C Y +B Y +A Y +B Y +C Y +A X +C Y +B Z +B Y +C X +C X +C Z +C Y +B Y +C Y +B Y +B Y +C X +C X +C Y +B Y +B Y +B X +C X +A Z +B X +C Y +B X +C Y +C Y +B X +B X +C Y +A X +B Y +A Y +B Y +B Y +B Y +A X +C Z +A Y +C X +A Y +C Y +A X +C Y +C Z +B Y +B Y +A Y +C Y +B Y +C Y +C Y +A Z +B Y +A X +C Z +C Y +A X +A X +C X +B Y +A X +A Z +C Y +C Z +B Y +A X +C Z +C Z +B Y +B X +C Y +B Y +B Y +C Z +B X +B Z +C Y +C Y +B X +C Z +C X +A Y +B X +C Y +B Y +C Z +C Y +B Y +C Z +C X +A Y +B Y +C Z +C Y +A Y +C Y +B Y +B Y +C Y +B Z +C Y +C Y +B Z +C Y +B Y +A X +C Z +C Y +C Z +C Y +A X +A Z +C Y +A Y +C X +B X +A X +C Y +C Z +A X +C Y +C Y +A Z +C X +B Z +C X +C Y +B Z +A X +A X +B Z +A X +A Y +B X +C Y +A Y +C Y +A Z +C Y +B X +B Y +A Y +C Y +C Y +C Y +C Z +B X +C Z +C Y +B Y +B Y +C Z +B Z +B Y +A X +C Y +C X +A Y +B Z +C X +A Z +B Z +C Z +C Z +C Y +C Y +B Y +B Y +B X +A Z +C Y +A Y +C Z +A Y +A X +C Z +C Y +A X +B Y +C Z +C Y +C Z +C Y +C X +B Z +B Y +B Y +A Z +B Z +B Y +C Z +B Y +B X +C Z +B Y +C Z +C Y +C Y +A X +B Y +B Z +A X +C X +A Y +B X +B Y +A Y +A X +A Z +A X +C Y +B Z +A Z +C Z +C X +A X +C X +A X +B Z +C Y +B Z +C Z +C Z +A X +A Z +C X +B Y +C Z +A X +C Y +A Y +B Y +C Y +B X +A X +B X +C Y +A Z +B X +B Y +C X +B Y +A Y +B Y +A Z +C Z +C Z +C Z +C Y +B Y +B Y +C Z +C Y +A Y +A Y +C Z +A Z +C Y +C Z +C Y +C Z +A X +C X +C Z +B Y +C Z +C Y +B Y +B Y +A Z +A Z +C Y +C Z +C Z +C Z +C X +B Z +C Y +A Z +C Y +B X +B Y +C Y +B Y +C Z +C Z +B Y +C Y +A Z +B Y +B Y +B Y +B Y +C Y +B Y +A X +C Y +A Y +C Y +C Z +A Y +A Z +C Y +C Y +C Y +C Z +B Y +A Y +B Y +C X +B Y +B Y +B Y +C Y +B X +C Z +A X +B Y +C Z +C Z +B Z +B Y +C Y +B Y +B Y +C X +B X +A Y +A Z +C Z +A Z +C Z +C Z +C Z +A Z +C Y +C X +A X +C X +A Z +C Y +C Z +C Z +B Y +C Y +A X +C X +C Y +C Z +A X +A Z +C X +A X +B Y +A X +C X +A X +C Y +B Y +C Z +B X +A Z +C Z +B Z +C Z +C Y +B Y +C Z +C Y +A Y +B X +B X +A Z +B Y +A X +C Y +C Y +B Y +A X +B Y +B Y +C Z +A Y +C Z +C Z +B Y +C Z +C Z +C Y +C Y +C X +C Y +A Z +C Y +A Z +C Z +B X +A X +C Z +C Z +B Y +C Y +C Y +A X +C Y +A X +C Y +C Z +B Y +B Z +A X +B Y +A Y +B X +C X +A Y +A X +C Y +C Z +A X +C Y +A Y +C Y +B Y +C X +C Z +C Y +A X +B Y +B Y +A X +C Y +B Y +C Y +A Y +B Y +B Z +B X +B Y +C Y +B Y +A Y +C Z +C Y +C Z +C Y +B Z +C X +C Z +C Y +C X +A X +C Y +C X +B Y +C Y +C Z +C Y +B Y +B Y +C Y +C Z +B Z +C Y +C Z +B Y +C Z +C X +C Y +C Y +C Z +A X +A Y +C X +C Y +C X +C Y +A X +C Y +A X +B Y +B Y +A X +B X +A Y +B Y +C Z +C Y +C Y +B Y +A Z +C Z +A Z +B Y +B Y +C Y +C Z +B Y +C Z +B Z +C Z +C Y +A X +C Z +B Y +A Z +C Y +C Z +A Y +C Y +B Y +C Z +B Z +B Y +B Z +B Y +C Y +C Y +C Z +B Y +A X +B Y +B Y +C Y +B Z +B Y +C Y +C X +C Z +C Z +B Y +C Y +C Z +B Z +C Z +C Z +B Y +C X +C X +B Y +C Z +B Y +B Y +C X +A Z +B Z +B X +B X +C Z +C Z +B Z +A Y +C Y +B Y +C X +C Z +A Z +B Z +C Y +B Y +B Z +C Z +A X +C Z +B Y +A Y +B Y +B Z +A X +C Y +A Z +C Z +C Y +B Y +A Y +B Y +B Y +C Y +A X +B Y +C Z +C Z +C Y +B Z +B Y +B Z +B X +C Y +A X +B Y +C Z +C Y +C Z +C Z +C X +C Y +C Z +B Y +A X +C Y +C Y +C Y +A Y +A Y +A Y +C X +B Y +B Y +A Y +C Z +C Z +B Z +C Y +B Y +A X +C X +B Y +C Y +B Y +B Z +C Z +A Y +B Z +C X +B Y +C Z +C Z +C Y +B Y +B Z +B Y +B X +B X +C Z +A Y +B Y +C Z +C Y +A Z +A Z +C Z +C Y +B Y +A Y +B Y +B Y +A X +C Y +A X +C Z +B Y +B Y +B Y +A Y +C Y +C Z +B Y +C Y +C Y +B Y +A X +C Y +C Y +B Y +B Y +C Z +A X +C Y +C Y +C Y +B Y +C Y +A Z +B Y +C Y +A Z +A Z +C Z +C Z +B Y +A Y +B Z +C Z +B Y +B Z +A Y +C X +A X +C Y +B X +B Y +A Y +B Y +C Z +A Z +B Y +C Z +B Y +C Z +C Z +A X +C Y +A Z +B Y +B Y +B Y +B Z +A Y +C Z +A Y +B Y +B Y +B Y +B X +A Y +C Y +A X +C Y +A X +A X +B Y +B Z +B Y +B Y +C Y +C Y +B Y +C Z +A X +A Z +A Y +C Y +C X +B Z +A X +A Y +C Y +C Z +B Y +C X +B Y +B X +B Y +A Y +A Z +B Z +A X +A Z +B Y +B Z +C Y +C Y +C Y +A Y +B Y +B Y +B Y +A Z +B Y +C Y +B Y +A Y +A X +B Y +C Y +A Y +C Y +C Y +A Z +C X +C Y +C Y +B X +A Y +B Z +A Z +B Y +C Z +C Z +C Z +B Y +A Y +B Z +C Y +A X +B Y +A Y +B Y +B Y +C Y +B X +C X +C Y +C Z +B Y +C Z +A Y +A X +C Y +B Y +C X +A X +C Z +C Y +C Z +C Y +A X +C Y +C X +C Z +B Y +B Y +A Z +A Y +B Z +C Z +C Z +C Z +C Y +A Z +B Y +A X +C Y +A X +B Z +B Y +B Y +B Y +A X +B Y +C X +A X +A X +B X +B Y +C Y +A X +B Y +B X +B Z +B Y +B Y +C Y +B Y +C Z +A Z +C Y +C Y +A X +A X +C Y +B Y +C Z +C Y +B Y +B Z +B Z +A X +C Y +C Y +B Y +A Y +C Z +A Z +C X +B Y +B Y +C Z +A Z +B Y +B Y +C Y +C Z +A X +B Y +B Y +C Y +B Y +C Y +C Y +C Y +A X +C Y +B Y +B Y +A X +A Y +B Y +B Y +C Z +C X +C Z +A X +A X +C Y +C X +B Z +B X +C Z +C Z +B Y +B Y +C Y +C Y +C Z +C Y +A X +B Z +B Y +C Z +C X +C Y +B Y +B Y +B Y +C Z +B Y +A X +C Z +B X +B Z +A Y +A Z +B Y +B X +A X +B Y +B Y +A Z +A X +C X +A Z +A X +A Z +C Z +A X +C Y +B Y +B Y +C Y +B Z +B X +C Y +B Y +A Z +C X +C Y +B Y +A Z +C Y +C Y +A X +C X +C Y +C X +A Y +B Z +A Z +C Z +B Y +C Z +C Y +A Z +B Y +A Z +C Y +A X +A Z +B Y +B Y +B Z +B Y +A X +C Y +B Y +C Y +B Y +A X +C Z +B Y +C Y +A X +C Y +B Y +B X +C X +A X +B Y +C Y +B Y +B Y +C Z +B X +C Z +A X +C Z +A X +A Z +C Y +C Y +B Y +B Y +A Z +A X +C Z +B Y +B Y +A Y +C Y +C Z +C X +C Y +A Y +B Z +C Z +A Z +C Y +C X +C X +B Z +A X +C Y +A X +C Z +B Y +C Y +A Z +A X +B Y +B Y +B X +C Z +C X +B Y +C X +A Y +A Y +C Z +C Z +C Z +B Z +C Z +A Y +C Z +A X +A Y +C Z +B Y +C Y +C X +C Z +B Y +A X +B X +B Y +B X +C Y +A X +B Y +C Y +C Y +B Y +B Y +A X +A Y +C X +C Y +B Y +C Z +A X +C Z +B Z +C Z +C Y +C X +C Y +A X +B Y +C X +A X +C Y +C X +C Y +A Z +C Y +B Y +C X +C Z +C Y +B Y +C Y +A Y +A X +C Y +C Y +C Z +A X +B Y +C Y +B Z +C Y +B Y +A X +B Z +C Z +C Z +C Y +C X +B Z +C Z +C Z +B Y +B X +A Z +A X +C Y +A X +B X +A X +A Z +C Z +C Y +C Z +C Z +B Z +C Z +B Y +C Y +B Y +A Z +C Y +B Y +C Z +A Y +B Z +B X +B Y +B Y +C Y +C Y +B Y +B X +B X +A X +C Z +B Y +C Z +C Y +B Y +A X +C X +C Z +B Z +C Y +C Y +B Y +B Y +C Z +A X +B Y +C Z +C Y +C Z +C Y +B Y +C Y +C X +C X +A X +A X +B Z +B Y +B Y +C Z +A X +B Y +A Y +B Y +A Z +C Z +C Y +A Y +A X +B Y +B Y +C X +A X +C Z +C Y +A Z +B Y +C Z +C X +B Z +C Z +B Y +A Y +B Y +B Y +A X +B Z +B Y +C Z +C Y +B X +A Z +C Z +B Y +C Y +A Z +B Y +A Y +B Y +B Z +A Z +B Y +C Y +C Y +C Y +A X +B Y +C X +C Y +A X +B Z +A Y +C Z +B Y +B Z +B Y +C Y +B Z +B Y +B Z +C Y +B Z +B Y +B Z +C Y +A Y +C Z +C Y +C Y +B Y +A Y +A Z +A X +C Z +B Z +C X +B Y +B Y +C Z +A X +C Z +C Y +B Z +A Z +B Y +C Y +C Y +A X +B Y +C X +A X +B Y +A Y +A X +B Z +C Z +C X +A Z +C Y +A Y +C Y +A X +C Z +B Y +A X +B Y +B Y +A Z +C Z +A X +A X +A X +A X +C Y +B Y +C Y +C X +C Y +A Y +C Z +A X +B X +B Y +C Z +B Y +B Z +A X +C Y +B Y +C Y +B Y +C Z +C Y +C X +A Y +A Y +C Y +A Z +B Y +A Y +B Z +B Y +C Y +A Y +B Y +C X +C Y +C Z +C Z +A X +C Z +B Y +B X +B X +A Y +C Z +A Y +C X +A X +C Z +C Y +C X +C X +C Z +A Z +C Z +B Y +B Z +C Z +C Y +A X +A X +C X +B X +C Y +B Y +B Z +C Z +C Z +B Y +B Y +B Z +A X +B Y +A X +B Y +C Y +B X +C Z +C Z +C Y +A Y +B Y +B Y +B Y +C Z +A Z +A Z +A Y +A Y +B Y +C Z +C Z +A Z +A Z +B Y +A Z +A Y +C Y +B Y +B Y +A X +C Z +C Z +B Y +A X +B Y +A Z +B Y +A X +A X +C Z +C Y +B Y +C Y +B X +B Y +A Y +B Y +B X +C Y +B Y +C Y +C Y +B Y +C X +C Y +A X +B Y +C Y +A Y +B Y +A X +C Z +B Y +C Y +B Y +C X +A Y +C Z +B Y +B Y +B Z +B Z +C Z +C Z +C Z +A Y +B Y +A Z +A X +C Z +B Y +A X +B Y +B X +C Z +B Y +C Y +B X +C X +C X +A Z +C X +A Z +C Z +B X +C Y +A X +C Y +B Y +C Y +B Y +C Z +C Z +C Z +C Z +C Z +C Y +A X +B X +B X +B Z +A X +C Y +A X +C Z +C Z +C Y +A X +C Z +A X +A X +A X +C Z +C X +B Y +C Y +B Z +C Y +B Y +A X +A Y +C Z +B Y +B Y +B X +C Z +C Z +A Y +A X +C Y +A X +C Y +C Y +B Z +B Y +B X +C Y +A Y +A X +B Y +B Y +C Y +A Y +B Y +B Y +B X +A Z +C Y +C Y +B Z +C Y +B Z +B Y +C Y +A Y +B Y +A X +C Y +C Z +C Y +A X +C Z +B Y +B Z +A X +C Y +C Y +C Y +C Z +B Y +B Y +A X +C Y +B Y +A Y +C Z +C X +C Y +A X +C Y +C Z +A X +C Y +A Z +B Y +B X +B Y +B Z +B Y +B Y +B Y +C X +A X +B Y +A X +A Y +C Z +C Y +C Z +C Y +B Y +B X +B X +C X +B Y +A X +A X +C Y +C X +B X +C X +C Z +C Z +B Z +C Z +C X +B Y +B X +B Y +C Y +A Y +A Y +C Z +B X +B Y +B Z +A X +C Y +A Y +C Y +C Z +C X +B Z +A X +A X +A Y +A Y +A Z +B Y +C X +C Z +C Z +B Y +B Z +C Y +B Y +C Y +B Y +B Y +B Y +C Y +C Y +C Y +A X +B X +C Z +C Y +A X +B Y +A Y +C Y +A X +B Y +B X +B Y +C X +C Z +A X +C Y +B Y +A Y +C Z +C Y +B Z +C Z +B Y +A X +B Y +C Z +A Y +B Y +A Y +B Y +B X +C X +C Y +A Y +B Z +A X +A Z +B Y +A X +C Y +B Y +A Y +A X +B X +B X +B Y +A Z +C Z +C Y +C X +C X +C Z +C Y +B X +A Y +C Y +B Y +B Y +A X +B Y +B Y +A Z +A Y +B X +A Z +B Z +B Y +A X +A X +C Y +A Y +C Y +C Z +A Y +C Y +C X +C X +C Y +B X +A X +A Y +B X +A Y +C X +B Y +B Z +B Y +A Y +C Y +B X +A Z +A X +B Y +C X +C Y +C Y +B Y +A Y +C Y +C Y +B Y +C Y +B Z +B Y +B Y +A Y +B Y +C Z +B Y +B Y +B X +B Y +B Z +C X +B X +C Z +B Z +C Z +A X +C X +A X +B Y +B X +B Y +C Y +C X +B Y +A X +B Y +B Y +C Y +A X +C Y +C X +B Z +A Z +C Y +B Z +A X +B Y +A X +B Y +A Y +C Y +C Y +C Y +C X +C Z +A X +B Y +C Y +B Z +C Z +C Z +C Z +C Y +C Y +C Y +A X +B Y +B Y +B Y +B Y +B Y +C Z +A Z +C X +A X +C Z +A X +C Y +C Y +C Z +C Y +C Y +C Y +C Y +C Z +A Y +B Y +B Z +C Z +A X +A Y +C Z +C Z +A Y +C X +A Z +B Y +B Y +A Y +C Z +A X +C Y +A X +C X +B Y +B Y +B Y +A Z +B Z +C Y +A X +B Y +B Z +B Y +B Y +C Z +A Y +B Y +C Z +A X +C Y +C X +C Y +B X +C Z +C Z +B Y +A Z +A Y +C Z +B X +B Y +B Y +A Y +C X +C Y +B Y +A Y +A X +B Y +C X +B Y +B X +C Z +C Z +C Y +C Z +C Z +C X +A X +A Y +C Y +B Y +B Y +C Y +A Y +C Z +A Y +A X +B X +C X +C Z +C Z +B X +C Y +A Z +C Z +C Z +C Y +A X +C Z +B Y +A Y +A X +C Y +C Y +C Y +B Y +A Z +C Y +C Y +C Y +B Y +B X +C Y +A Z +B Y +B Y +C Y +C Z +C Y +A X +A X +C Y +C Y +B Z +A Y +B Y +A X +A X +C Y +B Y +B Z +C Z +C Y +C Y +C X +B Z +A Z +B X +B Y +B Y +A Y +A X +C Z +C X +C Z +A Z +B Y +A Z +A X +A X +B Z +B Y +A Z +A X +A Z +B Y +B Y +C Z +C Y +A Y +A Y +B Y +A Y +C Z +C Y +C Z +C Y +C Z +C Z +C X +C X +C X +B Y +C X +C Z +B Y +B Y +C Y +B Y +C Y +B X +B Y +B Z +C Z +B Y +C Y +B Y +C Y +A X +B Y +B Y +C Z +B Y diff --git a/data/2_2023.txt b/data/2_2023.txt new file mode 100644 index 0000000..3140893 --- /dev/null +++ b/data/2_2023.txt @@ -0,0 +1,100 @@ +Game 1: 1 green, 2 blue; 13 red, 2 blue, 3 green; 4 green, 14 red +Game 2: 2 blue, 11 green; 4 blue, 12 red, 4 green; 7 red, 1 blue, 9 green; 10 green, 12 red, 6 blue +Game 3: 1 blue, 12 green, 2 red; 9 red, 16 green; 1 red, 10 green, 1 blue; 1 red, 14 green +Game 4: 8 green, 18 blue; 4 green, 14 blue, 2 red; 3 blue, 5 green, 11 red +Game 5: 7 red, 15 blue, 1 green; 13 blue; 18 red, 2 green, 9 blue; 19 blue, 5 green, 10 red; 9 green, 2 blue, 7 red +Game 6: 1 red, 8 blue, 2 green; 1 blue, 3 red, 5 green; 2 green, 3 red, 2 blue; 1 blue, 4 green +Game 7: 4 red, 6 green, 1 blue; 3 blue, 9 green, 5 red; 5 blue, 5 green, 4 red; 6 green, 5 blue, 5 red; 13 red; 4 red, 2 blue, 9 green +Game 8: 7 blue, 14 green, 5 red; 1 green, 7 blue, 11 red; 6 blue, 16 red, 4 green; 8 red, 11 green, 7 blue; 6 blue, 18 red, 9 green +Game 9: 3 blue, 1 green, 6 red; 1 red, 1 blue, 1 green; 6 red, 2 blue, 1 green +Game 10: 6 red, 11 blue, 12 green; 1 blue, 2 red, 3 green; 14 green, 6 red, 7 blue; 6 red, 10 blue, 9 green; 6 blue, 2 red +Game 11: 5 blue, 2 red, 18 green; 2 blue, 13 green; 8 blue, 15 green, 2 red +Game 12: 5 red, 4 blue; 1 blue, 8 green, 8 red; 15 green, 5 red, 4 blue +Game 13: 12 blue, 1 red, 6 green; 9 red, 6 blue, 12 green; 3 red, 11 green, 6 blue; 8 red, 4 green, 10 blue; 3 green, 7 blue +Game 14: 9 red, 5 green, 1 blue; 1 red, 3 blue; 10 green, 7 red; 5 blue, 8 green, 10 red +Game 15: 3 blue, 9 red, 14 green; 15 green, 2 blue, 6 red; 7 green, 1 red, 5 blue +Game 16: 7 green, 4 blue, 6 red; 6 green, 4 blue, 8 red; 5 red, 2 blue, 10 green; 4 blue, 4 red, 15 green; 9 red, 15 green, 6 blue; 7 green, 5 blue, 2 red +Game 17: 8 red, 6 green, 2 blue; 4 green, 1 blue, 17 red; 1 green, 11 red, 1 blue +Game 18: 13 blue, 1 green, 3 red; 2 red, 2 green; 11 red, 1 green, 7 blue; 2 green, 7 blue, 2 red +Game 19: 2 green, 13 red, 2 blue; 1 green, 6 blue, 4 red; 1 green, 2 blue, 15 red +Game 20: 10 red, 11 blue, 8 green; 6 red, 13 blue, 2 green; 6 blue, 8 green, 3 red; 10 red, 2 blue, 8 green; 2 red, 3 blue, 7 green; 3 red +Game 21: 2 blue, 10 red; 5 green, 3 red; 5 green, 4 red, 4 blue; 6 blue, 9 red, 10 green +Game 22: 5 red, 1 green; 5 red; 4 red, 1 blue; 1 blue, 10 red +Game 23: 2 red, 11 blue, 4 green; 4 blue; 1 blue, 6 green, 4 red; 3 green, 4 blue, 2 red +Game 24: 4 green; 12 green, 4 blue, 1 red; 11 green, 1 blue, 2 red +Game 25: 10 red, 1 blue, 3 green; 3 green, 6 blue, 6 red; 2 green, 9 red, 2 blue; 1 blue, 3 green, 7 red; 6 blue, 4 green; 1 red +Game 26: 4 red, 11 green, 5 blue; 2 blue, 11 red, 9 green; 11 green, 3 red; 14 green, 13 red, 5 blue; 10 red, 5 blue, 9 green; 12 red, 4 blue, 6 green +Game 27: 8 red, 9 blue, 7 green; 14 red, 15 blue, 2 green; 7 green, 13 blue, 9 red; 8 green, 4 blue, 1 red +Game 28: 4 blue, 4 green, 3 red; 4 green, 9 red, 4 blue; 13 red, 10 blue, 4 green +Game 29: 7 red; 1 blue, 1 green; 3 red, 1 green, 1 blue; 2 blue; 17 red, 2 blue, 1 green; 6 red, 1 green, 2 blue +Game 30: 10 green, 4 red, 4 blue; 5 red, 6 blue, 9 green; 2 red, 3 green, 4 blue; 1 blue, 9 green, 1 red; 1 red +Game 31: 6 red, 3 green; 1 blue, 3 green, 9 red; 2 blue, 11 red; 13 red, 2 blue, 3 green; 5 green, 3 blue +Game 32: 2 red, 1 blue, 1 green; 3 green, 1 blue; 1 red, 6 green; 3 red, 3 green; 1 blue; 12 green, 3 red, 1 blue +Game 33: 17 blue, 14 green, 7 red; 5 red, 9 green, 16 blue; 8 green, 3 blue, 3 red; 10 green, 12 blue, 1 red +Game 34: 2 red, 1 green, 9 blue; 14 blue, 2 green, 9 red; 10 blue, 2 green, 16 red; 2 green, 5 red, 14 blue; 5 blue, 12 red, 2 green; 8 blue, 15 red, 3 green +Game 35: 14 green, 4 red; 16 green, 4 red; 4 red, 3 blue, 3 green; 5 green, 4 red, 4 blue; 3 red, 1 blue, 8 green +Game 36: 1 blue, 8 red, 4 green; 2 green, 15 blue, 4 red; 13 blue, 5 red, 8 green +Game 37: 2 red, 8 green, 7 blue; 9 green, 20 red, 3 blue; 3 blue, 1 green, 2 red; 9 red, 1 blue, 4 green; 6 green, 2 blue, 20 red +Game 38: 8 red, 2 blue, 2 green; 7 green, 4 red; 4 red, 10 green, 2 blue +Game 39: 9 green, 11 red, 6 blue; 6 blue, 2 green, 19 red; 2 red, 3 blue, 2 green; 4 green, 2 blue, 13 red; 19 red, 7 green, 1 blue +Game 40: 7 blue, 2 green, 11 red; 19 red, 4 green, 2 blue; 1 green, 10 red, 5 blue; 2 red, 1 green, 2 blue +Game 41: 1 red, 1 blue, 13 green; 13 green, 11 red, 5 blue; 19 green, 3 blue; 18 green, 1 red +Game 42: 1 blue, 2 green, 7 red; 13 green, 5 red, 7 blue; 6 red, 13 green, 9 blue; 12 red, 17 blue, 13 green; 9 red, 16 blue, 5 green; 11 red, 4 green +Game 43: 3 blue, 4 red; 6 red, 5 blue; 7 blue, 1 green, 5 red; 3 blue, 10 red +Game 44: 10 green, 10 blue; 2 blue, 10 red, 10 green; 2 green, 5 red, 4 blue; 8 red, 2 green, 2 blue; 14 red, 3 blue, 10 green; 14 red, 5 green, 3 blue +Game 45: 9 green, 2 red, 2 blue; 2 blue, 2 red, 7 green; 9 blue, 6 green +Game 46: 2 blue, 1 green; 1 blue, 1 red, 1 green; 1 blue; 1 blue, 1 green +Game 47: 4 green, 10 red, 14 blue; 19 red, 3 blue, 1 green; 4 green, 14 blue, 15 red; 9 blue, 17 red; 3 green, 12 blue, 7 red; 1 red, 11 blue, 4 green +Game 48: 9 red, 2 green, 1 blue; 7 red, 3 blue; 8 red, 1 green; 1 blue, 3 red +Game 49: 2 red, 3 green, 13 blue; 7 red, 15 blue, 3 green; 15 blue, 7 red; 11 blue, 5 red, 3 green +Game 50: 4 red, 4 green, 2 blue; 2 green, 3 red; 2 green, 3 red, 11 blue; 3 green, 2 red +Game 51: 4 blue, 17 green; 3 blue, 17 green, 1 red; 6 green, 8 blue +Game 52: 14 blue, 3 red; 11 green, 6 red, 9 blue; 6 blue, 10 red; 1 red, 1 green, 4 blue; 9 blue, 6 green; 3 red, 2 blue, 8 green +Game 53: 1 blue, 9 red, 9 green; 11 green, 1 red, 7 blue; 11 green, 9 red, 7 blue; 12 green, 15 red, 7 blue; 7 blue, 12 red, 1 green; 6 blue, 2 green, 4 red +Game 54: 7 blue, 2 red, 4 green; 2 red, 16 blue, 8 green; 15 blue, 7 green; 5 blue, 3 red, 2 green; 9 green, 15 blue; 1 green, 14 blue +Game 55: 5 red, 10 blue, 2 green; 5 blue, 5 red, 2 green; 6 red, 1 green; 7 red, 8 blue, 1 green; 1 green, 13 blue +Game 56: 14 blue, 11 green, 3 red; 10 blue, 7 green, 2 red; 2 red, 13 green, 1 blue +Game 57: 10 blue, 6 red; 10 red, 4 blue, 6 green; 2 green, 16 blue; 6 blue, 11 red, 7 green +Game 58: 3 red, 2 blue; 9 green, 12 blue; 1 red, 1 green, 5 blue; 1 blue, 2 green +Game 59: 6 red, 9 green, 2 blue; 6 green, 6 red, 7 blue; 2 green, 7 blue, 9 red; 1 green, 10 blue; 1 green, 3 blue, 1 red; 10 green, 1 red, 3 blue +Game 60: 13 green, 5 red, 9 blue; 3 blue, 12 green, 9 red; 4 blue, 17 green, 9 red; 12 green, 2 red; 6 red, 3 green, 8 blue; 13 green, 12 red +Game 61: 4 green, 15 red; 5 green, 15 red; 1 blue, 7 green, 12 red; 8 green, 3 blue, 4 red; 11 green, 11 red, 3 blue; 7 red, 12 green, 2 blue +Game 62: 3 red; 2 green, 8 red; 10 red, 8 blue; 1 blue, 4 red, 2 green; 2 green, 13 red; 6 red, 9 blue +Game 63: 4 green, 12 blue, 5 red; 5 blue, 5 green, 5 red; 3 blue, 17 green; 1 red, 1 blue, 17 green; 10 green, 4 red, 15 blue; 15 blue, 4 green +Game 64: 12 red, 9 blue, 4 green; 1 green, 1 red, 8 blue; 10 green, 11 red, 1 blue; 2 red, 10 blue +Game 65: 1 red, 3 green, 11 blue; 2 red, 6 green, 3 blue; 1 red, 7 green, 1 blue +Game 66: 2 green, 2 red, 4 blue; 19 red, 11 blue, 4 green; 6 blue, 2 green, 13 red; 16 blue, 4 green +Game 67: 1 blue, 5 red, 1 green; 1 green, 1 red, 1 blue; 2 green, 1 blue, 19 red +Game 68: 3 green, 1 red; 1 red, 3 blue; 3 blue, 2 red, 10 green; 4 green +Game 69: 5 green, 11 blue, 5 red; 13 green, 19 red, 8 blue; 19 red, 2 green, 11 blue +Game 70: 7 blue, 9 green; 1 red, 11 blue, 2 green; 6 blue, 10 green, 1 red +Game 71: 2 red, 2 green, 9 blue; 1 green, 20 blue, 1 red; 17 blue, 3 green, 2 red; 3 green, 13 blue, 2 red; 16 blue, 3 green; 11 blue +Game 72: 6 red, 4 green, 10 blue; 6 red, 7 blue; 1 blue, 8 green; 3 green, 6 red, 1 blue +Game 73: 2 green, 12 blue, 2 red; 6 red, 6 blue, 3 green; 8 red, 3 green, 1 blue; 3 green, 5 red, 10 blue +Game 74: 1 red, 15 green; 3 blue, 5 green, 6 red; 7 red, 5 green; 12 red, 12 green +Game 75: 14 blue, 2 green, 8 red; 13 blue, 6 green, 4 red; 4 green, 6 red, 1 blue +Game 76: 12 red, 5 blue, 1 green; 6 blue, 11 red; 2 red, 7 blue; 6 blue, 16 red +Game 77: 7 red, 2 green, 1 blue; 6 blue; 3 red, 1 green, 10 blue; 5 blue, 2 green, 1 red +Game 78: 9 blue, 3 green, 14 red; 16 red, 15 blue; 16 red, 9 green, 10 blue; 2 red, 8 blue, 3 green +Game 79: 7 green, 5 blue, 2 red; 5 red, 5 blue, 1 green; 2 red, 3 blue, 10 green; 5 green, 1 blue, 3 red; 5 blue, 3 red, 7 green +Game 80: 7 red, 6 blue; 6 red, 6 blue; 7 blue, 2 green; 3 red, 9 blue +Game 81: 8 green, 9 red, 1 blue; 9 red, 7 green; 1 green, 5 red; 2 green, 1 red; 1 blue, 14 red, 6 green; 1 blue, 11 green, 6 red +Game 82: 4 blue, 14 red, 1 green; 2 red, 4 green, 2 blue; 7 green, 4 blue, 13 red; 2 red, 1 green, 6 blue +Game 83: 9 red, 2 blue, 2 green; 6 green, 6 red; 9 red, 3 blue, 6 green +Game 84: 9 green, 1 red, 1 blue; 4 red, 15 green; 7 green, 1 blue, 12 red; 1 blue, 11 red, 14 green; 2 green, 11 red +Game 85: 13 green; 11 green; 15 blue, 10 green; 8 blue, 6 green; 11 green, 1 red, 3 blue; 13 green +Game 86: 13 green, 1 blue, 4 red; 1 green, 5 red; 1 blue, 9 green, 5 red +Game 87: 4 green, 5 red, 2 blue; 4 green; 8 green, 2 blue, 1 red; 4 blue, 8 green, 1 red; 5 red, 9 blue, 8 green; 7 blue +Game 88: 5 green, 1 blue, 3 red; 2 blue, 2 red, 3 green; 3 green; 2 blue, 1 red, 6 green +Game 89: 13 blue, 6 red, 15 green; 5 green, 14 blue, 9 red; 3 green, 15 blue, 5 red; 13 red, 13 green; 18 red, 4 green, 19 blue; 10 green, 10 red, 18 blue +Game 90: 1 red, 1 green; 1 blue, 2 green, 1 red; 5 red, 2 blue +Game 91: 9 blue; 6 green, 12 blue, 2 red; 3 red, 1 green, 8 blue; 7 green, 2 red, 8 blue +Game 92: 15 red, 7 green, 1 blue; 19 green, 12 red, 1 blue; 7 red, 16 green; 8 green, 1 blue, 14 red; 8 red, 1 blue, 9 green +Game 93: 11 red, 4 green; 7 green, 8 red; 4 blue, 6 green; 8 red, 6 green, 1 blue; 6 green; 1 red, 1 green, 4 blue +Game 94: 15 green; 1 red, 4 blue, 4 green; 1 red, 1 blue; 4 red, 1 green, 5 blue; 18 green, 3 red, 3 blue; 1 red +Game 95: 1 blue, 3 green, 10 red; 1 blue, 6 green; 15 green, 2 red, 3 blue; 2 blue, 8 red, 11 green; 13 green, 10 red; 5 red +Game 96: 8 green; 5 blue, 2 red, 4 green; 3 green, 4 red +Game 97: 5 red, 4 blue; 1 blue, 2 red, 9 green; 10 green, 3 red; 4 green, 3 blue, 4 red; 5 red, 4 green, 3 blue +Game 98: 3 green, 3 blue, 2 red; 2 blue, 2 red, 1 green; 3 green, 5 blue +Game 99: 11 green, 4 red, 12 blue; 9 red, 4 blue; 20 green, 6 blue +Game 100: 12 red, 9 green; 12 red; 9 red, 3 green; 8 red, 4 blue, 4 green; 8 blue, 11 red, 2 green diff --git a/data/3_2020.txt b/data/3_2020.txt new file mode 100644 index 0000000..8a23241 --- /dev/null +++ b/data/3_2020.txt @@ -0,0 +1,323 @@ +.....##.#.....#........#....##. +....#...#...#.#.......#........ +.....##.#......#.......#....... +...##.........#...#............ +........#...#.......#.........# +..........#......#..#....#....# +..................#..#..#....## +.....##...#..#..#..#..#.##..... +..##.###....#.#.........#...... +#.......#......#......#....##.. +.....#..#.#.......#......#..... +............#............#..... +...#.#........#........#.#.##.# +.#..#...#.....#....##.......... +##..........#...#...#.......... +...........#...###...#.......## +.#..#............#........#.... +##.#..#.....#.......#.#.#...... +.##.....#....#.#.......#.##.... +..##...........#.......#..##.#. +##...#.#........#..#...#...#..# +.#..#........#.#.......#..#...# +.##.##.##...#.#............##.. +..#.#..###......#..#......#.... +.#..#..#.##.#.##.#.#........... +...#....#..#.#.#.........#..#.. +......#.#....##.##......#...... +#....#.##.##....#..#........... +...#.#.#.#..#.#..#.#..#.##..... +#.....#######.###.##.#.#.#..... +..#.##.....##......#...#....... +..#....#..#...##.#..#..#..#..#. +.............#.##....#......... +.#....#.##.....#............... +.#............#....#...#.##.... +.#.....#.##.###.......#..#..... +.#...#.........#.......#..#.... +..#.#..#.##.......##........... +.....##..#..#..#..#.##..#.....# +..##............##...#..#...... +...#..#....#..##.....##..#.#... +#.....##....#.#.#...#...#..##.# +#.#..#.........#.##.#...#.#.#.. +.....#.#....##....#............ +#.......#..#.....##..#...#...#. +.....#.#...#...#..#......#..... +..##....#.#.#.#.#..#........... +##..#...#.........#......#...#. +..#...#.#.#.#..#.#.##..##...... +#............###.....###....... +..........#...#........###..... +.......##...#...#...#........#. +.#..#.##.#..................... +.#..##........##.##...#.......# +.......##......#.....#......#.. +.##.#.....#......#......#...... +#...##.#.#...#.#............... +........#..#...#.##.......#.... +...................#...#...##.. +...#...#.........#.....#..#.#.. +.###..#........#..##.##..#.##.. +#...#.....#.....#.....#..#..#.. +###..#.....#.#.#.#......#....#. +#........#....##.#...##........ +.#.#..##........##....##.#.#... +#...#....#.###.#.#.........#... +...#...##..###.......#......... +......#....#..##..#.....#.#.... +........#...##...###......##... +..........##.#.......##........ +...#....#......#...##.....#.... +###.#.....#.#..#..#....#...#..# +.#.....#.#....#...............# +..#....#....####....###....#.#. +....##........#..#.##.#....#... +.......##...#...#..#....####... +#...##.#......##...#..#........ +..##..#.##....#.......##.#.#... +..#.#...............#...#.#.... +....#.....#.#.....#.##.......#. +...#.#..##.#.#..............##. +..#.....#...#.............#.##. +##..#.#...#........#..#.....##. +...........##...#.#.###...#.... +...#.#.#..#..................#. +.#...##.............#...#...... +..#..#...#.#.......#...#.....#. +..##.......#.#................. +.##..#........###.....#....#.## +......#..###.......#....##....# +....#.....#.................#.. +........#...#...#.............. +...#..#.###.......#..#.#.#.##.. +..#...#.....#....#.........#... +...#.............#........###.. +......#..............#......#.. +#..#...........#...#..........# +...##...#.###..#...#.....#.#... +....#..##......#.......##...... +....#....##.#...#.#..#....#...# +.#...........#..#....##...#..## +..#.#.................###.#...# +..#.#.#...##...........#....... +..........#..##...#.#..##....## +........#........#.##..#.#...#. +.....#...##.......##......#...# +....#...#..#..#.....#.......... +.#..#......#..#..#..###.......# +.##..........#...#...#.#.....## +..#..........#.#.#...###....... +....#................#...##.... +.##..#....#..........#.#.#..... +..##...#.#........#.....#.##... +....####.....#..#.........##..# +......#.........#...#.......... +....#...................#..##.. +.##....#.#.........#....#...#.. +....##...##.....#..####........ +..##.#....#.#.......##...#..... +#...#.#.#...#..#..##.....#..... +#..................###.....#... +#.#.....#.......#.#...###.#.... +.#..#....#............#........ +#.#....#..#.#...............#.. +..#..#..#.............#......#. +..#.......##................... +.#....#.........#....#.#.#..#.. +....#....#..#...............#.. +......#..#..##......#.........# +..#.##........##......#..#..#.# +#.....#.#....#.........##...#.. +###..............#....###...##. +....#..##......#.......##...... +......#...#.##......##....#..#. +..........#....#..##.......#..# +.#..#...##..#...........#..#..# +.....#....#...#..###...###....# +.#####..#...#.#.#..#.#.###...## +..##............##.#...#.##...# +.##..#...#...#....##.#..#..##.. +.#....#...#............##..#... +.#.#......#....#....#..##..##.. +.........#...#.......#.##..#... +#.........#.....##.....#..#..#. +...##.#...#...#..#..#....##..## +.#............#...#....##...... +..#...#.##.........#.#......#.# +....#.##........#.........#..## +#.........#......#.#......#..#. +........#.#.......#.#........#. +..#..........##.#...#..#.#..... +..#...#....#...#...#..#.#..#.#. +.#.........#....#..#####..#.... +#.#....#.#.###...#............. +..##...........##......##...... +#.....#..#....#...............# +...#.#..#....##......#...##.... +...#........#.....#...#..#..... +.#......##.........#......#.... +..#..###.##...#.#.....#........ +.............#......#..#....... +..#...............#.#...#..#..# +.......#..#...#.#####......#..# +.........#.....#............... +##........#............#.#..... +.#...#.....#..#..#...#....#...# +..#....#....##......##.....#.#. +#...##..##......#...#....#..... +....#.#.#.....###....##.##....# +..........##...##.......#...... +..#.......#...##.#....##.##.... +....#........................#. +...#...#.#.##...#.....#...#..#. +.#....##..#..#..........##..##. +.#.....#..#...#.##.....#....... +.#.##...#.#..#.....##....#...#. +.##...#........##....#..#...... +.....#........#..........#.#..# +....#..##.......#..#.....#..... +...........#...#........#.##..# +.....#..#....#..#.#.....#....## +.....#....#.##.#..##........... +...##.......##.........#....... +...............##..#....#.#.... +.......###..#........#..####.## +.......#.##...#.#....#.####.... +....#...............#.......... +##.#.......#.....#......#...#.. +......##.....#....#.....#..#..# +.....#...##.............#...... +#.#.##.#.....#..#........#..... +......##....#..#........#...... +............#........#..#.#.... +##.......#......#...####..#.##. +..##..#...#.............#.##... +.....#..##......#.##......###.. +............#........#........# +#.#.#.#...#.#.....#.........#.. +.........#...............#..... +.............###.#.......#....# +###.##..#..#..........#....#... +#......#...#..#..#.....#.##.... +............#....#....#..#..... +..#.#....#...#......#.#..#..##. +...#........................#.. +#.#...#..........#......#.#.... +.........#................#...# +##.....#....#........##.......# +#...##........#...#...........# +...#...#..........##.......#.#. +..#.#.#....#......##........... +...#.#...#.##.#..#.#.##........ +#....##.....###..#.......#..... +###.....#.#.#...#..#.........## +..#......#..###...#.#.#.....#.# +.#....#.....#............#..##. +....#....##..........#.....##.. +#...........#....#...#..#...##. +..#.......#.....#..........#... +.#..#................#......#.. +..#......#.#...#..#.#....#....# +...#..#...###..#..##....#.#.... +..#..............#.....#....... +...#.#...#.........#.#......... +##......##...........##.#.##..# +..#..##..#....#.#......#.#...## +...#.###....###...#.....#...... +#.#................#......#.... +..#.....#.....#....##.......#.. +.#.#...............##..#....... +...#....#.......#.#.....##..#.. +.........#....#.......#.#...##. +#....#......##.#.........##...# +#.............#..##.#.#..##.... +...#....#..#...#....#.#.#.#...# +.#....#....#..##.....#.#...###. +##............#.#...##.#..#.#.. +##.#....##.....#..#..###....#.. +##....#................##...... +...##..#...#..###....#.....##.. +.#...##......#..#.#.....#...#.. +..##......##...#.##.......#.... +......#.....#.....##........#.# +##....#...........#............ +#.......#....#..#.##..##.#..#.. +.#....##.#.....#..#..#......... +.#....#.#.#...#.....##.....#.#. +.......##.#.#........#......##. +##........#.##.......#...#..#.. +...###..##....#.#....#.#....... +......#.......#...##.....#...#. +..#......##.#......#.....#..... +.....#.....###...#............. +#...#.#...#...#..#......#...... +#.....#.......###.#....###.#... +...#.......#....####....##..#.. +#.#.....#....#........#.......# +.........#.......#......#.#...# +..##....#.....##............... +..........#..#.#..#......#..... +..................##...##.#.... +........#.......#...#..#.#.#... +.....#.#..##..#..#.#..#.......# +.....#........#..#..#....#....# +##............#..#..#...#....#. +.....#....................##..# +........##.#....###............ +##.......#.##................#. +.....###.#..#..#...#....###.##. +.#......#.#....#.....##.#...... +...##......##.........#...#.... +....####..............#........ +#...#.#..##..##.........##..... +......#......#....#..#......... +#.....#.....#.##............... +..#.##..#...##.#.####..#....### +#..#......#....#.##..##...#.#.. +#....#.......#.....#.....#.#... +##.......#.....##...#.....#.... +...#...##..........#..##..##..# +.###..#..##...#....#...#..#.... +......##..###.......###...#.... +....#...#.#.......#.##...##..## +#.#......#..##.#.#..#..#..#.... +......#........#.......#....... +..........#.#.....##........... +......#..#........#..#.#..###.. +##..#.............##..#........ +.........#....#.....#.........# +.....#..##...#..#..##.##......# +###..#...........#.......#....# +...............#....#.#........ +.##.#...#.#........##....#..... +.##.###...##..###....#...#...#. +.##..#....#.#.#...#.#.#.#...#.. +.###.#...#.......#....#..#..... +..#..#.#.#.#........#.....##... +.#.......#.#...#.#...........## +...#.....##....#.....##...#.... +................#.....####...#. +.#.#......#.......##...#.##.... +.###.........#.#......#..#.#... +#......#...#....#..##.......#.. +.##..#....#..#...........#...#. +.#...#.......##........#.##.... +..#...........#...##........... +.....##....##......#....#..#... +#......#.#...#.##.#...##....#.. +#....................#...##...# +..#............#........#...... +.............#.........##.....# +...#...#......##.#...#...#.#... +..#...#.#.................#.... +....##...#....#...###.##......# +...#....#...#..#...#....#.....# +...##.#........#..#.........#.. +..##.....#..##...#.....##...#.. +#.........#.#.#...#......#...#. +#.#...........#...#..#..#..##.. +..#..#..##....#..........#.###. +.....#..#....#.#...#...#..#..#. +###.....#..#.................#. +.#..##.##.#......#....##..#.... diff --git a/data/3_2021.txt b/data/3_2021.txt new file mode 100644 index 0000000..99c0fc4 --- /dev/null +++ b/data/3_2021.txt @@ -0,0 +1,1000 @@ +111011001010 +010011101110 +110001001010 +001101011101 +110100000011 +010110110010 +101000110110 +010100000011 +111001101111 +111001100011 +000110000100 +111011110100 +010001100000 +100011000010 +001001111010 +101001010010 +110000111010 +011100110101 +010111101111 +100011001001 +011110100001 +011101110110 +001011111001 +001110010100 +100001001000 +000100110111 +011111110010 +010101110011 +001101011100 +100001110101 +111000100000 +010111001010 +110000001010 +101011110100 +101010011111 +011001001000 +010010100100 +001100111110 +011111100101 +011010011001 +000010010100 +010001110111 +000101011001 +001110101100 +100011100101 +110001011100 +100101011110 +111000001010 +000010111010 +001001000010 +011011001100 +000111110000 +110110110010 +001011111100 +110111110101 +001000101010 +101010011001 +111110011001 +001000111110 +110110010010 +010011001000 +110100100010 +111000100011 +110111000001 +110110010001 +001100011011 +111100010111 +110110101001 +100010000101 +001001101000 +010000110101 +111010001100 +110000001110 +100111110010 +110101110011 +011100111010 +100000010001 +101000111101 +001010001100 +110100000000 +011001110100 +011010101111 +001011011000 +111100101000 +101001110100 +001111100001 +110111110111 +101100010000 +110000010101 +110111010101 +101110100100 +011010001001 +011101110111 +101011110111 +011001101111 +101101001011 +010000100011 +111011111100 +110101000100 +011111101011 +101000001110 +000111001010 +011100010010 +010011011111 +100000001101 +000110001011 +101100110101 +001001010000 +001111101100 +110100010011 +100011111001 +110000101100 +101111101101 +010011100110 +011000011101 +111110001111 +000100111011 +000001001100 +111110000010 +001001110111 +100000110010 +011000111000 +100010100110 +111110100010 +000001010110 +011010001101 +001100001010 +100111001001 +001010110101 +100111000101 +110011001110 +011100000110 +101111111110 +001110100010 +110101011010 +000011111001 +101011110110 +000111000110 +110010001100 +001001010101 +011111001011 +100010101101 +001000010000 +110111110001 +001111110011 +110111101101 +010011010001 +100110101000 +001011100100 +001010111011 +101000010001 +000101001011 +011010010011 +011011000001 +111111010101 +010000011001 +101100111101 +001001110010 +000010001011 +111000001001 +010001001100 +110110011011 +111011100100 +001000001010 +101110010110 +010010000100 +100000011011 +010000110011 +111111101101 +101010001011 +001011110100 +000111100011 +110011100111 +000011100000 +100101001110 +110100000010 +110101110101 +100001010101 +010100000110 +011010110110 +001011000101 +010010100001 +001001100110 +111011110111 +100110011111 +100111010000 +010010111010 +001000101100 +000101101110 +011001010111 +010001000110 +001110111000 +010001001010 +111000011000 +000011110000 +111100011110 +101110111001 +001101001000 +111010110110 +001110101010 +100001111011 +110010010110 +101001101011 +001100111011 +111001010100 +101111011011 +010010000010 +101101101111 +101000101000 +001100100010 +111001100101 +110110001011 +000110011001 +110010110000 +000111101111 +010010001101 +110110111101 +010100100100 +001111010110 +001101000011 +011110010011 +101111101010 +111001000110 +000110001001 +100100001000 +010100110010 +001011001011 +100010110100 +001110101111 +001001101011 +000111100100 +000001111011 +100111111101 +111011100110 +000100101101 +100110110000 +010001000000 +111111111111 +011010001110 +001100000100 +000010010000 +000100100000 +010100010101 +100100111110 +001100111100 +000001010010 +011010000001 +000000111010 +110011110111 +110011100110 +000011011011 +001001001001 +100111100111 +110000101110 +101100101111 +110001110110 +111011111001 +101000110001 +010000011110 +001011110101 +001100011010 +111001110001 +001110110001 +101011010100 +110110100111 +101011001100 +110010111100 +011111001111 +110001101011 +011100111100 +111101110010 +001111000001 +100101110101 +110001101000 +110001100110 +000011110110 +001111111111 +110101001111 +101000111001 +101100111001 +110011011011 +011100100111 +111000001100 +110010001001 +000101001000 +010101101100 +110010000100 +011000010101 +010001101111 +011000000100 +111111100101 +000011101011 +011001111010 +011010000101 +000001001011 +001111001010 +001011011010 +010011111010 +101001110001 +101001000000 +100101100101 +111100000010 +110000000100 +010110000101 +011011011101 +010110101001 +010011000111 +110000010001 +000101100001 +111000000100 +000011001101 +101101110011 +110101011101 +001111000010 +101110011100 +000100001010 +111101110001 +110110111111 +001011101011 +100001010100 +011001110010 +010001111000 +001101101011 +011011101001 +010111101010 +011110000000 +111111000010 +100010110111 +111010111111 +100110001001 +011111000000 +000111000010 +111001111100 +111010100111 +001010110010 +100011110001 +011100000100 +011110010110 +101001000011 +100011111101 +001100100111 +000110100100 +001001000111 +101000000000 +011100010101 +101110010111 +000110010001 +010101001111 +010010000111 +001010001111 +000111000101 +111101111010 +010010111111 +101111101110 +101100101000 +101101010101 +000011111011 +011111000101 +011111111001 +101000100111 +010101110111 +000111101100 +011010011010 +110001000010 +100110111100 +011110011011 +001101011010 +010001011001 +100110100001 +001010111001 +011100011011 +110001111101 +100111100100 +101111111101 +111000011001 +000000101110 +101111011100 +010100111111 +010001010100 +011001111100 +110100010001 +110001111110 +111001110000 +001110010111 +001100101101 +111001100001 +000100011101 +011101011010 +010110010000 +100000111100 +100100100110 +110111111000 +001111000111 +111111110010 +111010111011 +001000111000 +101010110101 +011001110110 +001100110001 +000111101001 +010011000001 +001101011001 +111001111010 +000110011011 +000101000100 +110000011011 +010011011000 +011100111111 +010101101101 +101100110100 +001011010101 +010001000011 +001000000111 +111111011011 +110000000011 +100101010110 +001001001101 +000101010100 +111101101100 +000111110101 +100101010010 +101110001110 +101011111110 +011011000011 +000111010101 +011010001000 +001010110000 +011110000110 +001111100110 +111001111110 +000101101111 +110111100100 +100011101001 +111000100101 +100100111101 +110001000011 +110000101111 +110001111100 +000101000111 +001011110000 +010000001100 +101101110001 +000110100111 +011101000001 +001111101101 +100000000100 +010010000000 +001111101000 +001010111010 +101010011010 +111010100011 +101111110010 +001011110110 +100010010001 +010110010110 +110111111010 +000111001011 +000001111100 +100101101111 +010100011101 +000010011110 +011100100000 +011101100000 +110000100111 +110111100000 +100001110100 +011111011011 +101110110001 +010000011000 +010011010101 +001101100101 +110110100101 +101000011110 +101011000011 +000010010101 +101001110000 +110001011111 +001101101101 +000001111111 +110010111001 +111001010101 +000010101100 +111011100101 +011111001110 +011000011010 +111111110110 +111010110111 +011010010110 +110011001011 +000010101000 +011101011100 +111010110000 +010011110010 +011110010001 +101111111001 +010010110101 +101010101001 +001101110001 +011111110110 +011110110001 +001111001100 +110000011001 +111001000101 +111110101001 +010011010100 +110011000010 +110000100100 +101000101001 +010101011010 +011001100011 +101110101101 +100100001011 +111010010001 +111010001110 +100110101100 +111010010111 +101111001010 +111101111111 +101111000110 +101111101111 +011001001101 +100110000111 +101101010100 +110100011010 +010111010001 +110011101011 +101001001100 +100111010111 +000011111110 +011110000101 +001011110111 +100000110110 +011110100111 +011100011111 +010100111101 +100100010011 +001000101001 +010111010110 +100000011100 +000000111111 +111101111001 +011011100100 +101011010110 +111010001111 +111101111101 +110100110010 +010001001110 +011001110011 +110100110101 +110010100010 +111111111101 +000110011100 +011010100110 +000000010011 +100100010110 +110110010111 +101011101001 +110000000010 +001110011001 +111111011110 +000111000001 +110010101011 +111111111001 +010001010010 +001111010100 +011011110101 +110000000111 +100011010010 +000010110111 +111100111111 +111111101010 +011000100011 +011111000100 +011100001001 +110001011011 +011011010111 +100000101111 +101001100100 +110000110101 +000001110111 +110101001000 +000001100000 +010001111110 +011110011101 +011011100111 +110000011010 +111010100110 +001101110010 +111000010000 +010110101000 +010001010111 +000010101111 +111000001110 +111011100001 +111100011001 +101111001110 +101011011000 +101100101100 +111111110011 +101010010101 +110110010101 +001100111010 +100001101000 +001100000011 +010110110000 +101110101011 +100001100101 +011001011010 +110110001111 +001000000110 +011101011111 +001010101001 +001111101001 +111100011111 +100010110010 +000001101110 +011110011010 +010110100101 +010010100011 +101010001000 +010000001001 +111100110011 +110010001111 +000101100010 +011111100000 +000100000001 +100100010000 +011110000011 +000010010001 +110010101001 +000000001010 +110010011100 +000000100100 +100010110001 +101111001100 +000001101010 +111011010110 +010101011101 +100110101011 +101001011011 +010011100100 +111000001000 +100111110001 +100100101011 +011001101001 +010101110000 +101000011001 +101111110111 +010111110011 +011111111111 +011100110011 +010010110010 +111011111101 +011110000010 +100001101010 +110100011100 +001001010011 +001110000010 +000110000101 +010110001010 +101000101010 +100000101001 +000001101100 +001001111011 +100011010000 +010000100000 +001111111000 +111011111000 +100011101000 +100110001100 +010001010011 +100110110101 +100001010011 +100100101111 +011101101011 +011110111101 +101110010100 +101010110111 +001010001011 +011111001101 +111011001101 +111011000110 +001100000001 +101100110111 +101100110010 +001000110011 +111010101010 +010101010110 +111100111001 +111000101001 +111000010101 +001000101101 +100111000010 +100000010110 +000100011000 +010100011100 +111010110011 +100011100011 +111111110101 +110101010110 +011001001011 +011101110100 +111110000110 +011010100101 +110100010010 +011111100010 +111010110001 +100111000100 +100000010101 +111000110010 +111100101001 +101010100010 +000110010010 +001111101111 +010011111011 +110010000011 +000010101101 +111111100111 +101001110110 +100111011001 +011010011111 +011011011001 +110001000001 +111011011011 +001011001111 +100101000010 +110000010010 +000011011000 +010111001001 +010001111010 +110101000110 +111011101010 +001100110101 +001111000110 +000000000010 +010100111010 +111101110110 +101101110101 +011001010101 +010110001101 +011110100011 +010101010101 +100110100011 +101111110011 +000111111101 +010011000100 +000010110101 +000001011010 +101100001000 +000101111001 +100001001100 +110110000100 +111010011000 +110000001000 +010111001101 +100111000000 +000001010000 +000110101110 +000100110011 +101011101000 +100110110010 +111011100000 +100000101011 +111100101011 +100010100011 +101001000001 +110001111010 +001001110101 +001000101110 +101011111010 +000110110110 +000100010000 +111001110010 +100010111101 +111110110010 +001111110001 +011111101101 +001001101111 +110111100001 +000010111111 +101110001111 +101011101011 +110001010010 +011010100111 +011011010110 +111100001000 +111100001111 +111101011110 +010000000000 +000000011000 +001000000100 +010111100001 +101110010011 +000101000101 +101100010110 +010111011111 +000010100101 +100001111110 +011101001000 +100010001101 +100111100001 +011010110001 +010110101100 +111010110100 +010110010101 +010100111100 +110001100101 +010010011000 +111110110011 +110001101100 +100011001110 +100001000000 +101001100000 +010111111101 +011000110001 +101001011101 +100110011101 +011101111000 +000000100001 +010000010000 +110100010110 +101100011101 +111011001111 +100101111000 +110101010100 +101111000011 +000101110000 +110101110100 +010110111000 +100010101001 +010111001111 +001011111101 +001111010011 +101001101010 +011110010100 +001100110111 +010111010111 +000001100100 +100001000010 +101001111011 +000011000100 +111000100100 +111010111001 +101101001111 +001010110011 +001000000011 +111111101001 +101001010101 +001010110110 +110101110010 +101101010001 +101010111000 +110100000101 +111100110100 +100010111000 +010010001111 +011000111101 +110011011000 +101010111001 +011000010000 +001001000001 +001100101000 +110111001001 +011001000110 +101001101000 +100010011101 +000001001101 +010001011110 +111111000001 +000111100010 +110110011111 +000001110110 +110101010001 +110100100011 +100110010100 +010101100111 +000000011110 +001000010011 +000101011010 +010101101110 +001010111100 +110100111101 +101101011011 +011011101100 +100000000001 +000101010111 +101010010011 +110001000110 +101110001000 +010110000010 +110100001011 +010110100110 +000110100101 +111110111100 +110010101101 +110111101110 +001111000000 +001101010000 +010011000011 +011110010101 +100001000100 +000000111011 +010011010110 +100110110111 +111000000000 +100101111110 +110011001100 +100001001111 +100100010010 +001101111011 +110010000010 +011101001011 +011000010111 +010000010100 +100100101010 +001100101100 +000100101001 +100100000011 +101010111011 +000001100101 +101011110101 +100101111111 +010101100001 +101000001010 +000011110010 +111001010010 +100001100011 +010111111111 +001110011000 +010001011000 +000011001110 +110010111011 +001100001111 +100001110111 +110000010000 +101110000001 +001011100110 +010101001101 +001001001111 +001110100100 +111110111010 +011101100010 +001010011011 +011011010011 +111000101011 +110110110001 +110100101111 +000000100010 +111111101111 +111000101101 +011001000010 +100000001001 +000101011100 +110100100110 +111011011111 +110110111100 +110011110000 +111110011110 +001101010010 +101000111110 +010101110110 +101100000011 +001111101110 +010101011001 +110010110010 +100100110111 +011100000001 +101110000110 +001011101000 +000011100111 +010101000000 +101011100000 +100100010001 +011011100010 +011010000100 +010010110011 +011010111101 +010010011100 +010010010011 +011000011111 +101101111111 +010100001010 +100100110100 +101011101111 +100100100010 +010001011101 +101101110000 +110010000101 +111011010111 +010011110111 +100101000011 +001100111101 +110110100000 +101001100011 +111001000011 +100001011111 +010000111101 +100011100001 +101100011010 +100110100000 diff --git a/data/3_2022.txt b/data/3_2022.txt new file mode 100644 index 0000000..f41c84e --- /dev/null +++ b/data/3_2022.txt @@ -0,0 +1,300 @@ +TZZjzzZLfZbzgzZNNJZjwCVbwMmhwCbBpCMMBCbM +qRQPDqnWFQDtCCBQmQwmGGVG +FPllWPDPrncZsLVrgSZTSZ +RczPzRzvflVwfplrZQglmmJJDGQJ +nFbBWWFZbZtJDjmgmqqF +bnMNZWnWWHTLBBdwcCwcPCwpCSpPLc +CjpMtptpChnpMnCSGjSShMqpTVVWFFTVNVNLmHwmHLTcFnVT +fglsGJsJssBPszvddgTFVTFFFBwwTVVmHVFF +JgJrDgsPfMDhGhCRQC +PSMDSMhwmPwqDMmzrtttNQvNFmFFGFtLld +nRTCCQjcTVJJTVTbggTnFvtNdGdlFbFvbHtWFLNt +gjfTZZCRCnZJjJRRQBCBszDMPppfsPwMzfMqDsSs +LTmnZTgMmbWWGWZQZb +cHCCHHwsPtsHQtWfWjtGlWjbjt +JNQQzzPwwHsRwNSRdnnddqqvSMqMvDqm +CZFNGZfHvgfgZzFZfNfPVJMBrqVhjrrrhvvSjbqv +czlDnlcDWLnlnLQwTbqJqMwqjhVBbhJhJJ +RDQTTWzLWsDGsNHNNgpZmC +rWzbWWMWcrCbfzbwpDrQNqmqNwTNBN +FvsVggVvLGsHQHfppmwTNBfN +VGhsghvZLjPSLshgFVPGFPVJWCtMCJMflJtdJWCMcttljz +bgScSbJwPNqrQLCgLg +BzTsRVGmTDBZBwRVmzGQNZjrMCqLjWrqWNQNnr +GvdRDdzGzdvdDdmTzfwhfFlFPlbfchvlpl +JlqjMtqtSGGZjqSMlmvZZbChRRQbbPhBhCbRBr +dLfzFNVfLLzwznLdFzzwWQBQVBhWbJDrCPVBBBPP +HLgdNddfMjGJJgJt +nZHZDJHLTDnrHrbGpRrRzR +QmsBjdmBmqQzpRbZbp +ttSjjjdWvsFsmBMBfWWMMtwCNCZJvLCnnnJCZcLTvnhN +bbgngMMPfnwPmPgPDPNZMtptHzHtRRvpVHRz +rsWWhJCWqBHBNJNZpvJtzRvF +rWBrjGGsQQWlQcllCDLfwHQTDDgfQPmnDT +lWDFllmGhbWzCglHHlRHMqCq +fBtjwNwfJfZvJJBwBJZjVLNnnnMRVTzgMVVqTLzT +vJQtJrprvrbcdcpmzDDd +bmhbRmhjwddjHMGHnNtHNQNm +nBzVpgFnzVgLpFfHNGqtGfLGGNfH +BTgVVPPSPBSVlTzpzsbWhjWjnhWZlwsWZR +lBQVBBMDTMSTHHCqgLHCzv +ccWcNhtfpFvphspFcttHwwqzmdsCqLgLzLPdLL +tNjFZpnFtJNZJFfjJNpNNFjVbVDMVGRZMGlbQlQrBrbvQr +bRJtJRfRdwRBbwJzhGGcHpwrpCwDclpHDD +hSgnjPVmVVGcWVGWpV +STmFgSnPqQTjNmqJftLszfMqBhdz +WzjrRLWnlRsVRLLwtGmdhNBmbmwN +ZccgcpMfQTpgcpDDvNbtdhhhMGHtdFBNHB +vpDggvPPTvZTfTvpZcPQSZDsqrlrnRGjsrjRCrSlWRljjS +DbZfRRZfPjWDfDntnzggvgMLmVqMMmlLQjFM +NCJCCfBTThBJssSHcgFMlmMvlVHVqVgmLl +rfTJJcJrJdShscSBZbtpnPRDDdnPDRbt +zrTfLGVVLZsrsJcGJVsvQMhdlmMPfjlhlflflbDP +pCWCwRbWBgHlDhPMDPRjjd +pSggBwBCNSbrJLVTTVNG +CNCMSMgQCgQNQhfMGSGSzgfGJhchrHHwBlnJlHPqBBrHwsww +ZVWDptmTtbptpDvZWsPlwblrJPbnHcqnJwrP +pRFtWZVVpVWWZVWtQLzsLQMLzCfFsGgz +MlcpDmgWNlPqcmmqmcgcPdNDRjhLSRRVLjRRShGFjFWRSLLW +bwQJnzbzJTbvMJSHhGGHRjzLGRjR +wZbBwwQvtbtQtBbnvJwbCnwmsMpNcccgDmdPcsqqqsDqCc +zMhMnRbZMpCblpzLlhJPRjDFcQPtJQPcDdWj +mNSGvgdSsBGwwNDvWtQJWjJWPHFF +GmdgGdgfqqNBgVGrbCMhrMfLLflhpL +PVHHPMLMgLQSLLsnHBCZfhzpRfhTpdRppSfdZf +rgmWvWgFrmGlZGGfphhpZG +bJgDFqFcmmWDJWbvJFtMCPQsHPHBVPVCQPcCsQ +VJJHNNmtGqRmMVVwRfTCRfnQpFTFnF +vSvjSvbBzvldhcGwGffFCQCwgrFd +jLhhlGjvczDhLSlDWjLzctHMZtJtHmqHJZqWmVsMqW +LhchvRJtHzhdTTdJjQLQjQVVnjSmLMLQ +NFpClSPqwqNgPPNPNglllrBQBrQVjQjmBQnfBfjQjC +wWGGpSwSZNpNPFDwPDDhzDdvbvJzHHJbhtzv +gtFtNNmlGzQtNPttfDMwwfbbMR +LVcBjsBjFJrLFWVrBrMbbMSSPpDPPqVDfpPb +JrCBnsdWJJrHZdFmGglmmg +BmCCWSLmWsmtCCSppSmmpcpRfMZjjBgJJGGjBwZfgjZjFwJw +TPTPnTPrPVvQTTzTVdPMrJJZwggjfHwJJgjHZrJFwH +NQvvNnQPDPhNcstcStDMWWWS +hntthHVQVbbbSzgjgZjngjRD +TTvJJCldFJTvFFTBFlpTzvvsRgZWGWSLGrlWWRSGLjRGjRDL +TzCcFcvcsCmqPMQwQPcwPM +DltVvVLvbGPDhjRhhjSZjSSL +CffszNzssHCCqJjJnqRnpgRpZB +CszNWdsfDWtZwwDG +DdbmddmzDDNbsqzvzmdzsdsRJLjqtVWWjWJBBVBwVjWJtB +CnFPCcCcPFFFGffjjCWBVwwtRwNwCw +QNZlphpNDpHsDrvg +gdHSCbCTGgQbtNLvgrjwNMMwrr +BnzVRHFZVHvNhNRNMMhW +zFzFcnlZPHlbQdlT +GmddjTrgFgmgWGmFvmmmFFfwSCVpwHVrHpwhwrpCBfBC +tctRcRRCMtsMsMDPlDtDbMzbQJJbhwHVQJhBHJVQHBbpfB +tPDDtcnRRqzzcCzLPMLPRddWTdqgdZqZTZqdGmjFWv +sWvfGlGqsSggNcNcmf +JBwwVccFJtrzpMwtrMMMLTnNnJngJgQNSgmTJgLN +wtPMHrRrBwtPVRHrrHVPZvqDWWWcsGsvqDlZZd +jBjBBJRhCJbjffCjWlDfmbFQmZFgPpmmgpmbSSQF +dsqGrttGhswQmqpFFqQw +THdsdrdTHzLLdLTsTdtHNshlDffDCHJDjfBcBRlJRfjV +lDNlPBQlccQttcNBcDPvFFJmdTwtFJFdTdFgzg +bCWMLfpZLZLVhMbGLLsVzTwmhvTgSJHwHdTvSFSwJJ +RCZZVZLZWLRZpZsfpVsscjzQRRPQcPcDQzPljzPB +tVfCLfRVCGTRCPtRMPftHGqpnnqpdzqNbHGdqzHd +DlDlWmvDWsWJmMmmsWvWDlSHzHpnpbNqnbnrppbbpprJdd +DvhWDFBhvslFSDFPVPVBfgwgfCtMLV +FtlLQqlDnMmFJRPM +hwlpwBphHplpdHfZnjRRjMmCgfPZgJ +BdpwvzcNpBrDbLTslszG +RjPhcnNzRcLcFlsFNlFRfTffdhJhSTVqqSdDMVMf +ZWtZgrgPCvrbHSSfMqJTDWpdMf +vBvHgCmgHtgvtrHbwcLjNLNFcnPBNcPLQQ +FZhtMtddjCGQSVjmjC +qbvcnvPqBWcPVVCTCmSQLVCq +vVBVzBNpDNhgdZDg +lNVtllQFQVnQNrZpCtQCdZZjSbfRbcDjZqSfTqDffJ +HzBJBvPJLWHvwmBwHWRsbsqfbSbzbTbTTRDs +vLwPHLLMGHwGBWBHLvBgBVCgrQQpdprNVttQJrpQdQ +TbZDQlZDCHjwtbjnRSTRTPPTBWWWPB +GhpgpLJFcvgcMRqfBBmSQggzWq +LcFQpGdGsrjDDDHssl +qzpPgTpnNWRfTBBCWf +rLFsVcFltVBfdGClPdGf +vmtZvwsZrLFFFrPDqzDvjzDqJMjv +lDlzzsMPDssjsSGTjlTTsqbbftfqNwJNfHqqbfDmbW +FFgpFndhQLnhnLRpQCLnVrgtHttvfqJmNbqWWbJHNHtb +pBFrVVrmZGSBBZsz +bGMfcMCPPCtcLqPLCRqPZnjLVTdnjjWsVLHVlllVVL +SwzDBmzgwFSFQzvgBrgvwFdVHjHwWHJsjnVsTWVHHWHJ +FFrBNpQWpFrgFSmmSpQmrQQNZPPRRbfGMqCGcCPGtMqqcZ +PBhcVpBRPcqHfnjRRJJl +GsMrsGTszsrMdnsGZmzMsCfDtvHfHqvjJlvdqfHflvtq +gmrGMGGmGgbmsrrCThnBFSQSFVFhSnVcpg +QCDnqdqVPswpJZMLLCHZMJ +RhchlRBRWlLmZzVWVJGV +VrhfhhBgTcRTVhdDFwdwqTDnnnjw +jVsSsLjJJmSLlmJSlPthrhHZGthLpZLdWZ +nqFTFNbRfnDCRzfnzqPBpGcdGHttWHdcZGRrtchh +bqNzTTbFTnwnTmPjvwsVgQVjgl +BBlNWWMlVWQlLPNjVLWWGMQcJCscFSmwRCSnCFJscwcw +bbHZHvHpHgrqSCcwvSsFFRsv +wwbhdfdwZlWljdtNdW +NmlnhSNwzjjswNvqqqbjgddqtgVt +TQMTMrFJHDFTFBrTMDMQDQgdnCVggtpLpvggnQdvdQ +fJPJHrFZFBHTDPrTJHZrFswsWnWGmmGNlwwlRsmSZN +bdntqdNMQCtcnnbqtNtcgQWWjjFDjhSBSjJDWSfDFWBc +RwsZzRvZQPQsGPWjphzpfjfBffzf +GPsrRQvvQlwlMnHHlTgMNT +TnnnQTLnBPQMRMpgGRLGwp +VNcvvjjVczRRjsZvvqgmpMGwZWZmJSqwwW +tzvsdrsVdFndRDbdbC +qSfbWlZVPdWmmcjvjjwrcwQm +TpTTpPJzTBnNsshnnTsctLwjvQMzrLrjjFMtjv +NPsNBhNJhBJgNnqSSZlSdVgVGqdq +pQsgcsdSpmsJctQhrhqDHPjrjNQH +VVGGbfvvMMBZPjjHqVVrTjmC +fZbfnRLBfbZGblbfMZnBGZFlzJcRdttwtJtdzmdswcJJdpRs +TDqDqTZFFqDqdDvSMwtCbjbFjbmGGwCffG +hQQnchQZpQzCfmGtblfLhw +RnNpRPrcpsRsVWHSDZSqWrDJ +gLqgTfgwTCwmgWWrfCcRdvBCGGBZjGRvvZ +MFbPMPnNzFbssQFpQNNScQSdjvBBBSRllBvZvc +sHMHpzsJnpNMNnHsnMJbWLVwmwgVwDdDJwgDffrJ +QGdbSLSzBVbGRQrJfllDbnfpJfltJl +ZMwPCFPwPmFgCFvZgZmcFwcPhJnphhscQnJhJnsptnDNthts +PHZgCmwggvMjZFWjFvQTBzRGHqSRRTdRVGGQ +zJRppmjPMCjJgtBQWtZZgPtg +tTFsltFtVGWnllQBnn +swLfbFSvsmJCCSRCRt +MZVRQzMwfRQgQQDvncrvrSHHdSfS +tWWBhJbhnBsWCWCGdDbvSpvDpcrrcqHq +NBTCBJsCTFJFjzjFMwnzLR +RBhlNZsgrZNdbfrrmFGbjb +ztJLFLzLQDtnnCLLCzSTwzJmqmGGjddPmSPPmGjpdqGMPj +JcLLFVtLJDTQCsZgscvlWBZHgv +hznggMvgwwPCDwhnCMWsDlHjtJPjtjrZlljtPJjZHt +mvvGVVcvHJtppGpS +bVQvQLfRRbfFFwhMsFshsqsFzM +BBRWFZHWSGRZvQtQRpRtHHBjTTcqhzfnBcfzchjTTnhncT +PbwdVMbmlDZmNPTfjrcfnzjf +sMVLmsdmldLVmJLCDHFgSJgZSSGHtFppFZ +SGwFSCvtwjjDvDGDCjjDCNRnzbbnpnBppHBNhbbTpqbB +rBBllQlgslmnmbzqRm +scQsLMZsPMVfMrFwBZtvvCWFtJwS +nlhLFFSggjMnLnLHTPlMTSBfRzrMQBCBCRDDdCdQrzWr +ZwFcssmNJqNNcZGFzdBrRZCDCdCffDrR +mwbwGNcwwpSjPlFgpPlH +HsvNvddbZJDDsNbDqvsqNsqnjtllczmjjbBjzjQzjlncnc +VTCTPGhpwGLfChfGCpTrnrgQrlntrQGQcrcgQr +WpPfLTPWPhMPhwCNdStvSdWHHWHDdH +hjtjnnbLMCwCMhbgfJpfDZpSsGHDHNSmsf +BqBQBccqFrWcPTWdWTcHHNHJpsHpmDDsHHSFSD +QRcPzqWzzzrdzzWvTqQcBcRgnhmhmCbnhtvMmggbLLgLvg +zdTNLLdRdTPFFJFllQSzwJ +mhmBmBBjtjhHmjvvBhvthThnFwQwwSnWbGwlQbQtnnGJtS +cTvHTgjCmVHZgHvhHHdRfMddfLsrRfZNpsPL +lfLnsHhHJBBfBGrBpS +VPjqqwVVqNjqQVVCVPNNVQpGpmppcBcDmGmpsmsDsCrD +QdQNFwQdvjvRqFFqvRPqLgngshhRJsLnHLWgLRhh +dwRwQVNwwJQNnnhmBtZZdCZhFBrP +MMHTvMjsWlmhhBrrrlhm +jWTcWWDWsWMTgjMGsHvGGMsnJzVNpRQQDDpbJVbnnwNrnV +NcRvJCGnWnNMwtMPlMMF +rqRLrVmTrjjRmBqjQLrjzZgMgDHltVPMgFbMFDbPwMwH +fzjrZQSQzBjnvfnsJcGspR +fHPFZPsmffftTpsTqJGhhDjC +bbBdcbcwNGzzbNdBdcNQqJDDTJhDCNjQpRRCJT +VcWBbgBMWbMdzPmPtGWZmLWPFv +zDWFvgCCvWDgVVmrZppPbCPZ +wdqsBhcMdbJJmlBgHg +hTwTQgLNMTsQstjzvSTTWjvfRW +vGGwWsvjpsCShrjTCCrj +CmMCZCtqzmMzNgZgdZzSrzPFrThnrPPHTcrSnH +VVMtQZdgZqLtqLZVMffwwDRCLGWlCsJvwpwlRv +fJfhpVVzMpgczZSqSSnZ +NvPNvRsmNCRsbsvNbhjqgcDZSqSFFmgGGnZZDg +TChvRBBRPsJLTMHMQfwV +CvNPsrfrjvwwfsjwsrNlgDzzBmgmNhlNBHgg +JVmdMJmcMTSqVlnlnnzBHBGg +SmLqSSWqbcbbWqJqqFcTJfPwPwtwWCfrrPrsQvQZZf +hMRnnvfRntfvcGqccDqhHlSLSgjGLWlLHlWPgWPS +bJsssbJFCZsQCsdQFzJWwSPSdSgdWwvwmHWWmj +QBQbTzFzrrzTTtfvffcfqTDM +fdcRNRvdNwczRFLcvNvzRvDSjhlmhclShjSnmMlSmDSS +VtJqbCqqVCfQqVpJHqZfmGDhgmjlMHmDllmggShG +qqtqTpVqJpVPZbffWTNfwzvRrFLL +mmhccmZGNcNhWNmDDGCmvlLWjpjbJRSpdrnzzbRzSjLJpJJz +BQHBgtZQqwTTtfndpSJJbJfbjjRp +THFVBZqQsqTgwtswWWlMclMDNlNclVVM +GPmLbhQmDbbDHfpCQCfdCfTr +SlWVScMgpzFSjgSMtBjTrNNdrfjrHrBd +ZzzsWWnzWFcsRqpJmPhqsw +cfNQdfdRcNHNFcqRcqqdWmLQgMwwMssLggpLLsmm +rTtGGhBTJSThwssmgssGzpHC +VbTTlJvVHbBJthtVbrJRdFnjljqZdfPqPnRdFN +tLtpstBLtzPnQBtFBtMpnpQPhmGGRRhMhGNRRCCmRJmmbvNJ +ffflfqqVVHllVHDVNVZHlTDGSGbGSvhmvTRCCSTjShShCv +DldDlZgWcDdfDZggfddccsnzLWsnNwPFQzPBwLwzzF +FpRCrNpMrCpNRZCrsCpZrCpqvmJnvnLPBwfvfmvzBJnwswBw +DbbVStQgdbJmLbJm +SHlSShlhSHHWcWlghFMNqcRqcZrFpFppTJ +QFPnsjqjtQPWfCZZlZbT +dwrMzzWRVWJVDDlfDlrfDlhl +BNzVdLWwRNmzwWBRVBVzSQQLtnnqSqssFvtQFsjL +TGfDmTcCMMmDsCspRbCCbsMJvWPvSSjZSwhFwwFgjPJZwG +NNHLHBNHrgVFFjJwFJZLhv +BzzqQQnVtrdnVNrtVNBlppbbDCRmdfggRCgmTscf +rmbcvbRbzrsZZCCNQjwdgRGjwGQGLVML +htDnDtHWnWPjVHQdgdNwHg +PFFTlhllffsNsscl +hFSlSlShLppwNlwH +fjSvvfbzBfDjPQvBDqjfsBGdwwLppMHmmHHHbNNwGnmG +SqzVBZDPPDQVFWgrWJTtCg +ghlqSlFhCFRgFsssSqjhlsVsvNPtcNdndctVzdzJPndQPnJd +TwfBmZmLwLZDfWZTbGQPtvzJzdLNcLdrQrcL +GmGwDbZHbmpBmwBWmGDCpvShClvSjgMjRpMqjv +vDDQpzjbqDQDmJvmRFBgNdWcQtdcHcctWcdN +hTfsLlSMCCSCfGCPlhfnGtgBcBHBdgLdVttvNtBBdg +lZvlfPffnZSnMzDjzzmZzDbwqq +cwgNgWWNccLcHnLGnnHD +JRrPNPNlGHPDtzLv +jmBJljNljRZZbpQZBgZp +WWcWLtwHcHLwWRwPWDwZGrCMvvFvZnDrvF +JVVmdbZmCvzGCvzm +ZQgdjVgdjQhJZQbhblbNQqjJLsPSsppscPPWhhWtSctpHsHs +fZtsGZsQQtpFrLqZrLQGZfHmdBjSMNmmRNddbFcMcbmBcc +vnwnlhlTWllgnJVTTgDTnvTwdcjSbRdbHMdcMMNdVdBNjRHj +zDvHnPvTwhnDDCZpLLftqzffst +hdCvWvQQlvlZzgCcGgjCPSLC +HMTHMDRRtmBNtTRDrRmmPcjGPPrdSzcLjjzdfzzL +tqMsNmmVMTNmtMHbZbnJdblZnlwWbV +bzQNPzMbVrfPfLrjrj +ZvZnzsTmnlnTWnJTvSHSsJDvBrdwwwLBtjrBBRtjwHqqrfLf +zpWDWSnnTnJmDzSMNchQcGNMQpQGGN +McCNssGmscnNmmsNzLwwLTSTRBJBBZLFTz +WTbhQbfPvWThFwFWJHBZWwLH +jThbtbPjvDDvDhqjppdcsgcGGcMmNlNldtNt +VsRLrPMPrrNRRDMDNsDMRdGCdGGZZZwljjCCjHCHQwcG +qhmfBgtqlfqzfTtggSWwbHjcwGjjbwwcTQCC +lnSfStzhvfvzFgvqsLJLrpPpFsRsMNPP +mFfWmmTbcFNFZWbcCftLCsCLGLfCGqGV +DQQMlJhjGqtswZDD +BpBhQSSQRSljRJRvQllnTWNHrWccHrNppbNZWp +llSWcPmCDRCSmjPTCCSPHtLrfJnwrJfVBRfJwrqB +FFFgdFdpGVHtVGwBtn +gMbbsNdvbsQgppppvvszvzWTTTlMCnlPDjTlDCWWccmC +fzMlGqVMwzSSPNRBrRZrFrFRGZ +blnlQnlWFZbmFbHr +CgttsQpstcCtnslqfjhPhVzMgMPz +SrSHtjrJQZjBpvNctmnRvnDm +GWPlhPqFfPsGwCqsnsGszWGwNdMLpRvLmRNcNpmRmvDfpMLM +GPCWWWzbbzqPnnCbPZHbQrQrQgVBVJJVJV +ZVhCwqvFZVpwdhLdqLhtvcGBcSNLRSRBGRBNGNSSmN +lTjnlnjgslsjJTgrMrQQjjTSGSpcGRSmDBNSNJcDSBbRmS +zMrjllgnPrlrnlWrQgTgzgvwqpFwZHChHvPwCtVptCVt +RTjjznsTsnnrzRrmTmrNNCMhwMrCNNCwWhCMGN +DvScpDDVfBPqVcSbDpbfHpqwCWGJCwCJhvFdFFwlMGJWCG +fhHPbhZSpDbDTmsTZTjRzzQz +QbVQvNrrdFcbcMvvdNrcGrrczPnPplPnfnpzwpgmlflRVwwP +jBHLRqZWtLLqWDhBLshBCLsHgpfftfPmmpfpwnwfwJgfpfPn +WCRhsLDsDLBChTLWHChFTTMdGTQGvGQcMQNGMd diff --git a/data/3_2023.txt b/data/3_2023.txt new file mode 100644 index 0000000..6f8ccb8 --- /dev/null +++ b/data/3_2023.txt @@ -0,0 +1,140 @@ +..........................................389.314.................206......................449.523..................138..................... +.........+.....954......723..........................................*.............687.....*..........692..........*........................ +121......992...............*.......%585....814............936.......102..#353.........*.....140.........*..434..301..................%..315. +.../....................877................*...523............489.................*[email protected]....... +...........$..733*758.......435...656...483.....................*..%855........154.779.....674...............320+....+........373........... +........707......................................503.422...591.551......676............306...*[email protected].. +..................+....146.486.772..................*........*.....+848..*...863........-.....405........../..............636........*...... +........190.....313.&.....*...../...+738..397.....@........#.840........167.../......#....508.......498..819..............*.........147.313. +....692*............177........................727..364..800.......................748..../........*...........%733......993.854........+... +...........*..............245..........128.............*.................322......................305....7*.......................152....... +........978.160..378.........*524.......*..905.343..+.681......615......-..........................................$..........@............. +.251..................................417.....*....53...........*...........354*126........119$...942....424....863...518*....971..96.48.... +.................92.....441.681...532........................257.....932..............%...................*...............64.........*...... +...........2.235*..........*..........*318.......317............................383.567..705.923..716.409.68.......................*........ +...........*...................638..72...........+......367........802.........&..............=....*..*................-.../....401.773..... +........535...................*............4.29..........*.....784*....526........................141.342.189........630..958............... +...../.........745..+118....639....702.....%...#.*327...741............*......./324......531....................648/..............566....... +...+..172.........*.................................................910.....@.............*.....939................................*........ [email protected]......+.....104............914..553..........994.&........547.#539........588$.......436...... +.........*......*............*....12..../...&..914..223...$......+...........*....953+.......................................62........&.... +........311.98.317...595..467................................#..142......*...620........$.......795.....363..135/..968...222.*....448...754. +...................../...............*702..881...............31.......630...............834........*.......-.........*.....*.527....*....... +..............614...........640+..888.......*....360........................%....764...............859.......586.....979.514.......30....... +.........@538........=...................176......*..200.300..............708...=......460...503..............*...............385........... +....................896.......$...................14....*..../........404..........-..*.......*.............688.460....$......&............. +......677...................110......&..-.....549..........934....654...-....334..153.508.....556......913........*....199........513....... +.........*....-...=204..342........515..85......./..955............../.......*..............-......18.*..........601..........+.......280... +.........80..515.........*.......$.........259...............250.../.......3..337.......%83..972..*....586.5.651......594....484............ +..........................126.121......935*......235.815.......*.887........*........34..........294........*............$..............@... +45......$..651....$...............................*.........526.............41......*[email protected] +.....710......*....26................734.......791......565............625.......%[email protected]..*........................... +......................881...........*............................989......+....235..............491...*...-.....693.........16.............. +.............589*.....*.............610...318..#[email protected].....*...867..................$...........679.. +........957......614..553....345*56......#..................*...658.870........895......%........714......749...13.......................... +...........$....................................127........775.....*......988..*.........254.276.................*..560.950.............*... +....761.................................825.........495..............496.....+.87.............*....*....689..26....*.....*...........131.745 +639...*.196.....993*.......................*.603......*.............%................637....951.720........*......167...28.................. +........./....-.....503........$.........634....*476...887.....463....221....457.........................698....................413.539*.... +672..116...415................641....911...................774........*.......*.....................................926.674*693..&......103. +....*....%.....246.....................*...............290*.........59..542.253..$.....&......=.......320....196*...................586..... +...630..165....=...*.................690...360...........................*........42..584..650...153...*.........191........#218.....*...... +.............*......51....680....102........*.......112...-....190......499.889&.................-...28....*........................340..... +...*729...130.683...........*....*.......776...928.....*..351....*...............878....................681.889...564*55................/760 +839.................226...246...719..954.............428.........663.......341...+...357..................................../394............ +......................*..............................................................*.....=910....821.........242......955......*569....... +......964.381.........923.....................491..906.....614........937....471..491....*........*....512....$...............574........... +........+..+.......................893..22.....*...........*............*[email protected]./..........$103...................... +...............525......$..=35....+.....*...301.......162.872......910.889.354............................871.679......894......731......... +...178........*.......543............865................*.....*857...........................630...........*....*.....@........&............ +....#........954...............................433&..615...828............................*.....*745...+...556..321..................342.... +..........................422...+..130.154.........................+..............225..235.501.........189..............609...............91 +.....%........192....264.....$.609....*.....6..........932=.....*...920...........+...............391..............934.....*..211...=....... +.....805........*.......*975................$....159.........713....................&.850..$924.....-.....%..........*..212...*....176...... +.............&..381..........917.905................*...276.............352...524.878..-........#......867....769.152........484.......341.. +..664..390..140.......&.......*.........566.........163...*.&....995.....*...*..................811..............................874*....... +....=....$............43......989..............239......917..131.......13.....806....................................................174.... +...........184..72.................=......928.....................684.....118.............239.........................#.....$............... +.609...116...*..*..........241...826.......*.......312......779=.....*...*......871.475...*...883.......717..538....-.581....424......259... +...*....*...33..574......&..%..................647*................378....803...*....#..260..*......543.-.......+.76..............464...*... +...611...42..............40...............375..........30......371............666...........185.....*.................161&........*.....968. +....................295.........-............-..................+......................*............789.........548................993...... +..616....5.........*..........662.760............*670......272...........951........501.248....317......752.............616..739............ +..........#..113..192..............$....267...761..........*...192.............456..............*.......*..........572....#....*............ +............%...........606.............*...........628*.........*.342*503.....*...........409.......310........................516....316.. +......622...................181.........454.............491....738...........214....#.........*..........937.....764#.......+............... +.........*..391=.....836...%.......................183..............402.............825...*....921..843...*.............+..897......546..... +.......264..............-..................$471........................*...174$.921........276.......*...513.......598.691............*..... +................$.64.......439......445..........701.......377...491%.422...........591........658...426.....*689..*.........687...=...175.. +..171....429.260.............+........#...513.......*.....*...............477*..........375..&............641.....108..............444...... +.....#....*.....................779..........*[email protected].............................................. +.......682.....348+.153.168@......%.451.627.236.............92.141.....393........669.....................75.......557...585...826......559. +......................*.............*............881.........*....*776...*.105......*...=....#....&........&.526..+............#........%... +....955.....410......566..760....760........586....*....*...560........548.......335...951...749...256.........*......313....$...888........ +...*....45.................*...................*..798.199....................77........................280&[email protected]............. +.934....*...36....841......952......266*....997............840...$867.......*....179...........@...................*.....86.....759..33*.... +.......576...........*..........953....................722....%.............22..*...............952......965&.....777.....*....*........371. +..795................987....490..*..............................904.....4.......598....................................635..328............. +...............=563........#....270..........*.............=.......*..........+...............453.689.............=...................992... +...+......752..........................790...608.......914..69.....250.....200....996..892....=...*................472...@.............#.... +..710......../.......604.................*.......401..=.............................*.#...........622...742..............685....&........... +......284..#............*.......401...802..........*...............65......166....901.....$..196*............65*................369......... +............815..................*........925....529........262....*........*...........234......729..37+.......95.......401................ +.704..499%..........775....%....475....................287........379.......597....=...............................527..*.......264$........ +................728*.......766......619*.....#604........./.75....................834....*.................912....*.....715................. +.......981.556..........................389........888.......*...............734......862.378...412........*......................556*...... +..........*........................213........68..........696...............*.....................*[email protected]... +.../........=..............349.......*.........*....477.%.........#...=....7..............313...27....896.........*...13.................... +...61..386.357.....=......*.......471.........126..&....579.....772....828..........322..*...............#.....644................844....... +.......*.......&.159...263............457...........................................@...772.....$...803..........................*....$158.. +....202.....133......................*.................................362..................841.322...*..........730...868.....116.......... +..........-.......................221..................41.................*...........=......*.........508.............=............465..... +...*667...979.983......................905..../......-.....321$.......731.690..........190.999....=.........*759....................*...515. +905...........*...............58.........*..801.....199..........305.=...........168.............298......25......&...604..........434...... +..........531.217..497-.......*.......744.........................*......791.......*.................633.........657....................952. +......241...&...............675.156................831.........800..859...$....484.894...294......@....................825.655..627......... +.....*.............................*.586......790..*...178......................................716...*.......618.808-........*....*794..... +....401..+.....708.897.....655...351.../.426...*...148.....................798..........594............827...............166..784........... +........754.........&.......*...............+.............14....93..87.....@............*....205...-....................*..........224...... +............784............88....................18.977..............*...................726...*....56.....575.........139..........*....... +.652...........*......*304.....*574.714.397........*.......*920...376....*....................627..........*................208...504.609... +.........535.......280......330.......=.*...............257...........+...738..@...271..453.................55....971......*..........@..... +..185.....%...931......%762.............902.........837..............922......34........*....915*.................*....%....158............. +.............................107.............*92.......*770...991*...................130.........256...910.....550......783............675.. +....993........../...........*.........516.......*87..............147......268............................*........492*................*.... +............190...611.....450...$.......*.....828....840.......................514.........................24..361.....485.......*504...778. +...............................809.486.552.........&....$....................=....*....206......576..595..........*382...................... +...288..................$625........*..............382........318...........869.344..............*...&.....=361...................298....... +..............171..=525.............912...593..........@407......=....%43....................193.................676....&160...../.......... +.................#.......262..............*.....259&............................724......35.....*879...............*........................ +...........327..........-..........%...247...................381...................*32.......................183..735...............171..... +............$....................178.............925..70....*...............235................363......................97.764.792..*....... +.250..................*471............#....975....$.....*..42...13*687.............934...181....*.....62....532..9............*.....678..... +....*.......714.53..........245.....598...*..........251.......................116*.....*........269...=................483...../.......%... +....387......*..........498*............519........=..........$.......................600....373..........746.497..........#.248.........512 +...........42....647.............776.........9......601....560.....696....267..................%....102...........250............289.33*.... +......................667....793*......=521../.....................+........*......#....81.............*996.........*.............*.....713. +...........92............#.........*..................708................799...736.369....*.................-...779................439...... +......484...*....655.......555..471.707....-..441....*.....882$........$.........=.........797........374..196...*...................../.... +......../...284.............*...........297../....378................660.......*.....694.......709...*............499.................300... +..931...........752.986.805...................................52.783........887.127.....*........*...221....................=....../........ +...*.......105.&.........*....141........................186.............-...............134....408......*230../709..767.....446.413........ +..619.......*.......444...903.*.......594............446*.......*.........151.........................108..............*...............876.. +............204.490...........285..74*.....898..373..........243....269+......616.....242........682..................923..582.....508*..... +486...=.........%.............................*..*...........................*......#.*............*.807..........*.......*....429.......... +.....28.&.............416......851..968.....29..327.782..............706.....529..269.379........939...*...#...902.243..703................. +796......890.........*.........*....&...............*.......*...........*[email protected]... +......................40..123...222..........52...408....995.......#149..708....$722....770*....*492.............714...%......99........%... +.....759.............................138+...+................................................517.......$....874.-.......54.................. +.....*........................................=.......-......61...129.........517+...............264..130...*.....16........................ +......769..176.........663..198...44.102...983......753..486...-.....*874.796.........-..........-...........941..../....973...........#.... [email protected].......=.*........*..........$895.......=.......*......../........235....282.......243.......................337......69.. +....................$.....................704..................283.328..........................218.............744............&...%82...... +...........#.........252.......984............799.210..153..............699.29..........99............................*....648.............. +............687..320.....518......*.............*.*.....#...........2...&...*...........*..19.356*......313.994.467..984...+................ +.......#40..........*.....#[email protected]................/...*.......902......987..........179......*.................382..519....... +......................*.......11...............................926..153.#.................725*................................*.....*....... +...358...527..345..746.978....................*.........................607..798..899.........86.........*478.......888....949..767..807.... +.....*...*.......%..............743*715..723...56................81.........*....=........345.........802.......776*...............$........ +....26.743..........&943.................................................971.................%....527.................*....%...........@.... +........................................782...............665......................532.......................998...991.702.542....406.779... diff --git a/data/4_2020.txt b/data/4_2020.txt new file mode 100644 index 0000000..54db857 --- /dev/null +++ b/data/4_2020.txt @@ -0,0 +1,1159 @@ +iyr:2010 ecl:gry hgt:181cm +pid:591597745 byr:1920 hcl:#6b5442 eyr:2029 cid:123 + +cid:223 byr:1927 +hgt:177cm hcl:#602927 iyr:2016 pid:404183620 +ecl:amb +eyr:2020 + +byr:1998 +ecl:hzl +cid:178 hcl:#a97842 iyr:2014 hgt:166cm pid:594143498 eyr:2030 + +ecl:hzl +pid:795349208 iyr:2018 +eyr:2024 hcl:#de745c hgt:157cm + +hgt:159cm pid:364060467 eyr:2025 byr:1978 iyr:2018 cid:117 +ecl:hzl +hcl:#18171d + +hcl:#cfa07d +ecl:amb iyr:2012 +hgt:182cm cid:338 +eyr:2020 +pid:374679609 byr:1925 + +eyr:2021 byr:1981 +hcl:#623a2f cid:195 iyr:2010 +pid:579769934 ecl:grn hgt:192cm + +byr:1970 +ecl:oth +eyr:2025 +pid:409994798 iyr:2018 hgt:189cm + +hgt:153cm pid:817651329 iyr:2019 +eyr:2029 +hcl:#623a2f byr:1920 +ecl:gry + +iyr:2011 ecl:amb hcl:#a97842 byr:1965 pid:648375525 eyr:2028 hgt:177cm cid:287 + +iyr:2012 pid:369979235 hcl:#c0946f +ecl:amb hgt:178cm + +byr:1927 ecl:brn hgt:178cm eyr:2026 hcl:#efcc98 +iyr:2011 pid:770851101 + +eyr:2028 +ecl:oth cid:298 +byr:1943 +hgt:168cm iyr:2018 hcl:#ceb3a1 pid:116783406 + +eyr:2027 hgt:175cm hcl:#733820 +ecl:gry cid:349 iyr:2017 byr:1960 +pid:257797292 + +cid:66 ecl:amb +eyr:2030 +iyr:2026 byr:2024 +hcl:a22966 hgt:179cm pid:155cm + +eyr:2023 hcl:#c0946f pid:081232570 ecl:hzl +iyr:2010 hgt:158cm byr:1969 + +byr:1958 +ecl:grn hcl:#ceb3a1 +hgt:173cm +pid:600039004 +cid:107 iyr:2012 eyr:2027 + +ecl:amb pid:021066381 +hcl:#ceb3a1 byr:1982 iyr:2017 +hgt:167cm eyr:2025 cid:61 + +hcl:#341e13 +cid:268 +pid:358390884 hgt:188cm byr:1961 iyr:2014 eyr:2027 ecl:blu + +ecl:brn eyr:2020 +pid:607203641 +hcl:#fffffd iyr:2011 +byr:1962 +hgt:156cm + +iyr:2018 +hcl:#b6652a +byr:1942 ecl:blu eyr:2029 hgt:154cm pid:649263319 + +ecl:oth hgt:73in iyr:2012 hcl:#888785 eyr:2020 +pid:147939289 +byr:1961 + +ecl:oth iyr:2015 +hgt:189cm hcl:#341e13 pid:686943691 eyr:2023 byr:1987 + +pid:568844323 +eyr:2023 byr:1921 hgt:167cm cid:154 hcl:#b6652a +ecl:gry iyr:2020 + +eyr:2023 byr:1994 +iyr:1937 hgt:177cm hcl:#c0946f pid:686240814 cid:231 ecl:#a8ba32 + +hcl:#b6652a +byr:1946 pid:543383899 iyr:2013 hgt:153cm ecl:hzl cid:238 eyr:2023 + +eyr:2028 ecl:blu +hgt:154cm cid:252 +pid:196374590 +byr:1987 iyr:2011 +hcl:#7d3b0c + +iyr:2013 +ecl:amb cid:187 +hgt:187cm pid:593027548 byr:1963 +eyr:2024 hcl:#fffffd + +pid:588211492 hgt:156cm +iyr:2021 eyr:2021 ecl:gry hcl:z byr:1928 + +ecl:amb hcl:#888785 hgt:180cm eyr:2022 byr:1923 pid:490291639 cid:173 iyr:2015 + +iyr:2014 cid:211 pid:404157420 hcl:#602927 +ecl:oth byr:1946 eyr:2030 hgt:175cm + +hcl:z byr:2026 +pid:61805448 +hgt:125 iyr:2025 + +eyr:2028 +hgt:156cm +hcl:#341e13 cid:103 ecl:amb iyr:2017 byr:1937 pid:320691739 + +hgt:185cm +pid:440489464 byr:1929 ecl:amb iyr:2011 eyr:2021 cid:327 hcl:#341e13 + +byr:1988 ecl:grn +pid:062728732 iyr:2013 +hgt:181cm +hcl:#18171d +eyr:2026 + +pid:000647617 +eyr:2029 byr:1937 +ecl:gry hcl:#e8eff3 hgt:164cm cid:151 +iyr:2016 + +hgt:179cm +byr:1949 +eyr:2029 pid:459190453 +ecl:grn iyr:2020 hcl:#c0946f + +hgt:160cm pid:476613532 cid:190 iyr:2016 hcl:#4657e5 +byr:1929 +eyr:2028 + +ecl:grn +eyr:2027 byr:1982 +hcl:#18171d +pid:630408328 +cid:65 iyr:2020 +hgt:161cm + +pid:752776254 +hcl:#888785 +hgt:189cm +eyr:2027 iyr:2020 ecl:hzl +cid:194 byr:1934 + +iyr:2015 hgt:167cm byr:1977 +eyr:2021 hcl:#14564f pid:504471386 ecl:oth + +hgt:84 pid:168cm +hcl:8532fb eyr:2023 +iyr:2012 ecl:xry byr:2008 cid:288 + +cid:323 eyr:2024 +iyr:2019 +pid:495737304 byr:1966 hcl:#7d3b0c ecl:hzl +hgt:73in + +iyr:2020 byr:1953 ecl:hzl hcl:#efcc98 hgt:174cm eyr:2026 pid:546906638 + +pid:839249028 +hcl:z byr:2024 +hgt:145 eyr:2034 iyr:2021 ecl:#891c47 + +eyr:2036 +ecl:#89d2ae +cid:183 byr:2014 +hcl:b3af0f +pid:12086913 iyr:1981 +hgt:61cm + +ecl:brn eyr:2030 pid:083487445 byr:1929 hcl:z iyr:2021 +hgt:182 cid:318 + +eyr:2020 +pid:188609216 hcl:#341e13 +iyr:2012 hgt:179cm + +eyr:2029 +hcl:#888785 pid:704026565 hgt:173cm iyr:2020 ecl:blu byr:1950 cid:237 + +ecl:grn +eyr:2030 +byr:1961 pid:695808266 +iyr:2012 cid:56 +hgt:155cm + +iyr:2011 ecl:amb +byr:1986 pid:243061330 hgt:163cm eyr:2021 + +eyr:2030 hcl:#623a2f hgt:170cm ecl:hzl +pid:694575319 iyr:2011 +byr:1939 + +iyr:2014 pid:184152121 +hcl:#c0946f hgt:163cm +eyr:2028 byr:1992 cid:114 + +ecl:hzl +hgt:75in cid:233 +hcl:#866857 pid:269157261 iyr:2020 +byr:1973 eyr:2029 + +hgt:174cm +hcl:#f86751 iyr:2016 +pid:904779190 +ecl:brn eyr:2024 byr:1950 + +cid:123 iyr:2019 +eyr:2030 pid:402585706 +ecl:brn byr:1995 hcl:#4ff7fa +hgt:65in + +ecl:grn eyr:2029 +pid:083364259 iyr:2013 cid:50 byr:1938 hgt:187cm +hcl:#a97842 + +hcl:#6b5442 cid:101 iyr:2011 +ecl:amb eyr:2029 byr:1963 pid:664573740 + +eyr:2025 hcl:#602927 +hgt:188cm +iyr:2019 +pid:521514539 byr:1940 ecl:gry + +hcl:dc0449 eyr:1981 pid:188cm +cid:151 iyr:1979 hgt:61cm ecl:dne +byr:2028 + +iyr:2017 byr:1924 +hgt:163cm eyr:2024 hcl:#ceb3a1 pid:424127124 +ecl:amb + +eyr:2039 pid:7837217107 hcl:z byr:2005 +iyr:1989 ecl:#d95f4d hgt:190in + +ecl:#329eb1 cid:178 hgt:192 +eyr:2020 iyr:2012 +hcl:#602927 +byr:2028 pid:7175349420 + +ecl:gry byr:1931 +hgt:162cm iyr:2014 +eyr:2030 cid:50 +hcl:#cfa07d pid:653585396 + +eyr:2025 hgt:177cm +ecl:gry hcl:#efcc98 +iyr:2015 +byr:1942 +pid:388475446 + +hcl:#efcc98 ecl:grn +hgt:185cm +byr:1921 pid:253592171 +eyr:2031 cid:220 iyr:2024 + +byr:1950 +hgt:158cm ecl:gry iyr:2015 hcl:#18171d +eyr:2023 +pid:151cm + +byr:1957 +hcl:z +eyr:2026 +ecl:grn +iyr:1971 hgt:192in pid:5479810865 + +hgt:161cm pid:473851111 iyr:2018 +ecl:brn byr:1982 +eyr:2029 + +pid:136216608 byr:1958 +cid:226 eyr:2023 hcl:#866857 iyr:2017 ecl:hzl hgt:159cm + +byr:1993 hcl:#866857 hgt:169cm pid:488392920 +cid:109 iyr:2017 ecl:oth eyr:2029 + +cid:248 ecl:amb eyr:2025 iyr:2017 byr:1951 hcl:#ceb3a1 pid:731763175 hgt:162cm + +hcl:#835e79 +eyr:2021 +ecl:oth pid:617055193 byr:1997 iyr:2010 +hgt:173cm + +eyr:2024 pid:257895944 +hcl:#ceb3a1 +hgt:165cm +ecl:oth iyr:2020 +byr:1958 + +pid:438580092 +ecl:grt byr:2025 +hcl:z iyr:2000 eyr:1952 +cid:271 hgt:170in + +iyr:2010 hcl:#6b5442 hgt:156cm +eyr:2026 ecl:grn pid:409793041 byr:1941 + +pid:076486440 +hgt:177cm hcl:#888785 ecl:blu iyr:2017 eyr:2029 + +eyr:2028 ecl:amb hgt:186cm hcl:#1d5836 pid:563307670 iyr:2019 byr:1950 + +byr:1939 ecl:hzl hgt:193cm pid:329759796 +hcl:#cfa07d eyr:2025 iyr:2011 cid:73 + +byr:1995 +hgt:188cm eyr:2028 +ecl:blu +iyr:2016 hcl:#888785 pid:459613739 cid:115 + +hcl:#623a2f +eyr:2021 cid:197 hgt:187cm ecl:oth +byr:1969 +iyr:2010 pid:385660251 + +hgt:192cm cid:143 byr:1995 hcl:#fffffd +iyr:2017 ecl:oth +eyr:2020 pid:087661720 + +ecl:oth +byr:1994 hgt:183cm +eyr:2020 iyr:2020 pid:448389966 cid:92 hcl:#866857 + +pid:088166852 hgt:155cm cid:307 byr:1940 +hcl:#7d3b0c +ecl:#af542f eyr:2023 iyr:2014 + +byr:2026 eyr:2039 hcl:5449b3 +ecl:hzl hgt:176in +iyr:1962 pid:177cm + +iyr:2020 ecl:amb hgt:164cm hcl:#c0946f +pid:931543453 eyr:2024 byr:2001 + +iyr:2010 eyr:2023 hgt:188cm +hcl:#866857 ecl:hzl pid:866631112 byr:1997 + +byr:1958 hgt:184cm +cid:117 hcl:#7d3b0c iyr:2019 pid:615734013 eyr:2028 ecl:gry + +hgt:86 iyr:1935 ecl:grt pid:#af8e67 eyr:2031 +byr:2018 hcl:6a2940 + +hgt:73in eyr:2022 pid:580461358 byr:1962 +cid:129 iyr:2015 hcl:#7d3b0c + +iyr:2019 hcl:#b6652a hgt:172cm ecl:blu pid:077121198 eyr:2021 +byr:1995 + +hcl:#ceb3a1 cid:253 +iyr:2015 hgt:177cm byr:1973 +ecl:hzl pid:311289324 eyr:2025 + +iyr:2017 hcl:#efcc98 +cid:57 byr:1940 ecl:blu +eyr:2025 hgt:157cm pid:827480048 + +eyr:2028 hgt:189cm +iyr:2016 byr:1978 ecl:hzl pid:127497651 cid:87 +hcl:#623a2f + +hcl:#341e13 byr:2015 +ecl:brn hgt:187in +pid:82075551 +eyr:1936 +cid:200 +iyr:1939 + +ecl:grn byr:1962 +iyr:2011 hgt:169cm +pid:661559147 +hcl:#623a2f eyr:2023 + +ecl:gry +hcl:#efcc98 eyr:2009 byr:2028 +hgt:170in +cid:129 pid:161cm iyr:2018 + +pid:098090405 hcl:#623a2f byr:1943 ecl:hzl +hgt:152cm iyr:2013 eyr:2029 + +pid:495271053 iyr:2011 ecl:gry hcl:#623a2f cid:285 +byr:1925 eyr:2024 hgt:187cm + +cid:306 +hgt:73in +iyr:2010 hcl:#448fd7 +byr:1946 +ecl:grn pid:137146932 eyr:2021 + +eyr:2020 hgt:159cm cid:90 iyr:2010 ecl:brn hcl:#341e13 byr:1955 + +hcl:#18171d iyr:2017 ecl:amb +pid:168517472 +eyr:2021 hgt:181cm byr:1942 + +cid:325 eyr:2022 pid:947158470 byr:1994 iyr:2019 ecl:grn hgt:172cm hcl:#ec63ce + +iyr:2011 +pid:243339529 +ecl:amb +hgt:169cm +byr:1967 +eyr:2025 hcl:#b6652a + +pid:664966826 eyr:2036 iyr:2015 byr:1972 hgt:68in +hcl:z +ecl:#038105 + +eyr:2021 pid:236054221 +hgt:179cm +hcl:#b6652a iyr:2020 ecl:blu + +ecl:grn +iyr:2010 +pid:870519416 byr:1945 hcl:#a97842 +hgt:176cm eyr:2030 + +hcl:#3318db eyr:2022 +byr:1966 +ecl:grn iyr:2013 +cid:349 +hgt:168cm pid:827688488 + +pid:124116963 +hcl:#866857 eyr:2026 +iyr:2013 ecl:grn byr:1983 hgt:183cm + +iyr:2017 byr:1993 +hcl:#18171d ecl:utc hgt:68in cid:168 eyr:2030 pid:#2fd9f2 + +ecl:blu cid:134 eyr:2025 pid:588957573 +iyr:2017 +hgt:151cm byr:1942 hcl:#4280c1 + +hcl:#51b593 +iyr:2013 +ecl:amb pid:668244584 +cid:282 +byr:1936 +eyr:1985 hgt:161cm + +pid:494051052 +hgt:185cm byr:1996 eyr:2028 iyr:2018 +ecl:amb +hcl:#efcc98 + +ecl:brn +eyr:2025 +iyr:2011 +hgt:163cm hcl:#a97842 +byr:1989 pid:557549000 + +pid:828235468 cid:55 +iyr:2010 byr:1926 eyr:2029 hgt:153cm hcl:#cfa07d +ecl:blu + +hgt:158cm iyr:2015 pid:957913612 ecl:grn eyr:2020 byr:1984 cid:76 hcl:#6b5442 + +ecl:amb eyr:2020 pid:596116320 +byr:1936 +hcl:#cfa07d +hgt:165cm cid:86 iyr:2014 + +iyr:2012 +cid:278 hcl:#602927 +eyr:2020 ecl:hzl +hgt:176cm byr:1987 pid:594817909 + +iyr:2011 byr:1929 pid:073211525 eyr:2022 +hgt:188cm +ecl:blu +hcl:#733820 + +hcl:#602927 hgt:187cm +pid:706155322 cid:203 +ecl:brn byr:1952 iyr:2017 eyr:2020 + +hcl:bcb5f7 +byr:2002 eyr:2029 pid:850069752 iyr:2019 ecl:hzl +hgt:167cm + +hcl:#b6652a hgt:72in iyr:2013 +ecl:grn eyr:2024 byr:1920 cid:114 +pid:983486664 + +byr:1931 iyr:2020 pid:182737852 hgt:162cm +ecl:grn hcl:#888785 eyr:2028 + +eyr:2035 +byr:1962 iyr:2012 cid:120 +ecl:xry +hgt:61cm hcl:ce89a8 pid:335540582 + +pid:#05153d iyr:1990 +eyr:1927 hgt:71cm +byr:2019 cid:346 ecl:#e38688 +hcl:c6abd9 + +ecl:#cd58d8 pid:166cm iyr:2012 +hcl:0d1b02 hgt:68 +eyr:1958 + +pid:976419172 byr:1922 cid:345 hcl:#6b5442 iyr:2010 eyr:2026 +ecl:grn hgt:155cm + +ecl:gry hcl:#1bbadc hgt:168cm +eyr:2028 +byr:1984 cid:179 iyr:2013 pid:706186218 + +ecl:blu hgt:188cm +pid:764775319 byr:1936 hcl:#7d3b0c iyr:2020 + +hcl:#623a2f +iyr:2012 +pid:382832140 ecl:gry +eyr:2026 +cid:350 +hgt:165cm byr:1968 + +hcl:0b87a1 byr:2020 pid:4365879329 +cid:110 ecl:grn +eyr:2032 hgt:155cm +iyr:2018 + +hgt:193cm eyr:2029 hcl:#733820 pid:081071142 byr:1929 ecl:oth + +ecl:brn +eyr:2023 pid:876924536 cid:165 +hcl:#efcc98 hgt:151cm byr:1972 +iyr:2020 + +hgt:186cm eyr:2022 +ecl:grn +byr:1972 pid:997639611 hcl:#ceb3a1 iyr:2013 + +byr:1926 +pid:808460262 +iyr:2012 eyr:2031 hcl:#a97842 ecl:amb +hgt:190cm + +hgt:163cm +hcl:#ceb3a1 eyr:2028 +ecl:grn +byr:1944 pid:381144425 iyr:2012 + +hcl:#95a232 pid:015229624 byr:1947 iyr:2013 hgt:66cm ecl:gry eyr:2027 + +hcl:z byr:1965 iyr:2013 hgt:157cm ecl:#8b12fb cid:246 pid:283039791 eyr:2023 + +ecl:gry byr:1950 +hcl:#623a2f cid:276 iyr:2013 eyr:2030 pid:798610943 hgt:189in + +eyr:2030 cid:52 hcl:#fffffd pid:041625574 ecl:amb iyr:2016 byr:1944 +hgt:191cm + +byr:1995 +iyr:2015 cid:221 pid:279080024 +eyr:2022 +hgt:181cm ecl:brn hcl:#888785 + +hcl:z +ecl:blu +iyr:1970 +eyr:2022 +hgt:193cm pid:#540e31 cid:95 byr:1952 + +hcl:z eyr:2024 ecl:hzl +byr:2028 +cid:323 pid:1949331457 +hgt:69 + +eyr:2030 hcl:#866857 +cid:173 iyr:2017 +hgt:190cm byr:1941 +ecl:blu +pid:269015932 + +hcl:#b6652a +iyr:2018 +eyr:2022 ecl:brn hgt:185cm pid:456195468 + +hcl:#6b5442 hgt:188cm +iyr:2019 byr:1966 cid:298 +pid:050653473 +ecl:gry eyr:2028 + +cid:208 +ecl:amb eyr:2023 hgt:176cm byr:1971 hcl:#7d3b0c pid:650190272 iyr:2018 + +hgt:68in pid:615309584 +iyr:2011 byr:1950 +hcl:#efcc98 ecl:oth +eyr:2024 + +eyr:2022 iyr:2011 hcl:#623a2f ecl:amb byr:1955 +hgt:190cm +pid:244918527 + +iyr:2013 hcl:#ceb3a1 eyr:2029 hgt:164cm +ecl:oth +byr:1928 pid:337615663 + +hcl:#ceb3a1 pid:#ae7eea byr:2027 +cid:254 +hgt:125 +iyr:1940 +ecl:zzz + +pid:033663619 iyr:2012 byr:1989 eyr:2030 ecl:hzl +hcl:#b6652a hgt:154cm + +hgt:175cm byr:1929 pid:100788192 +ecl:#92b14c +iyr:1940 hcl:#ceb3a1 eyr:2033 + +eyr:2029 +pid:357835141 ecl:oth iyr:2019 hcl:#866857 hgt:154cm byr:1954 + +pid:895992818 byr:1965 iyr:2017 hcl:#efcc98 ecl:amb hgt:153cm eyr:2025 + +byr:1928 ecl:amb hgt:168cm pid:346938111 eyr:2025 iyr:2014 +hcl:#cfa07d + +hcl:#b6652a pid:825661608 eyr:2020 iyr:2019 byr:1974 +hgt:180cm ecl:amb + +byr:1970 hgt:159cm hcl:#733820 pid:101838832 iyr:2015 eyr:2027 ecl:blu + +byr:1941 ecl:amb +eyr:2024 pid:015890498 +hgt:175cm +iyr:2018 hcl:#cfa07d + +hgt:67in +pid:404983369 eyr:2023 iyr:2018 byr:1974 hcl:#602927 +ecl:blu + +byr:1957 +hcl:#fcc940 pid:615831236 +iyr:2018 eyr:2020 ecl:brn hgt:181cm cid:218 + +hcl:#fffffd ecl:grn pid:271614109 +eyr:2028 hgt:184cm byr:1974 iyr:2015 + +ecl:#e45ee0 pid:151cm cid:127 iyr:2014 byr:2022 hcl:973bc1 eyr:2033 hgt:181in + +hcl:#6b5442 pid:502739402 eyr:2020 byr:1926 ecl:brn +iyr:2010 + +ecl:xry hgt:169cm byr:2023 +iyr:1973 pid:4137668 +eyr:2037 hcl:z + +ecl:#3a8c46 hcl:43730a pid:57210146 eyr:2031 cid:117 iyr:2013 byr:2010 + +hcl:#341e13 cid:237 hgt:150cm iyr:2016 byr:1967 ecl:blu +pid:674080319 eyr:2024 + +iyr:2011 hcl:#866857 pid:111247018 +byr:1920 hgt:192in ecl:#8bf268 eyr:2021 + +iyr:2022 hcl:z ecl:gry +hgt:159cm +pid:#88e8df +byr:2026 eyr:2032 cid:221 + +hgt:156cm eyr:2026 +ecl:blu +hcl:#192dea cid:280 pid:788808021 byr:1980 +iyr:2013 + +hgt:156in +byr:2024 hcl:4e4dd6 +eyr:2030 +iyr:2028 pid:35683378 +ecl:#3a9fba + +pid:081236370 cid:150 hcl:d15b43 byr:2029 hgt:118 iyr:2026 eyr:2038 +ecl:grt + +eyr:2034 pid:186cm +ecl:utc cid:300 iyr:2009 byr:2018 hcl:163913 hgt:74cm + +ecl:hzl +pid:249858519 byr:1936 hgt:182cm +cid:343 iyr:2013 eyr:2030 hcl:#7d3b0c + +cid:168 +ecl:hzl +hgt:174cm iyr:2020 +pid:446135799 hcl:#888785 +eyr:2024 byr:1998 + +pid:545342162 +hcl:#5cd3bd cid:126 +eyr:2024 +iyr:2012 ecl:grn + +pid:104835585 +byr:1989 hcl:#733820 ecl:oth eyr:2024 iyr:2017 +hgt:180cm + +hgt:184cm byr:2001 pid:199216567 ecl:gry +eyr:2022 +cid:185 hcl:#7d3b0c +iyr:2019 + +byr:1996 eyr:2022 pid:503963080 ecl:grn iyr:2010 hcl:#fffffd + +eyr:2030 iyr:2017 +pid:472300557 hcl:#a97842 +ecl:grn hgt:190cm +byr:1994 + +ecl:#2a8a59 +eyr:2027 +iyr:2015 byr:2021 hgt:158cm pid:365979521 hcl:z cid:242 + +ecl:gry +iyr:2020 hcl:#866857 +pid:363851353 cid:319 hgt:154cm eyr:2027 +byr:1953 + +ecl:grn hgt:165cm eyr:2026 +pid:443722683 hcl:#341e13 +iyr:2018 byr:1923 + +byr:1920 ecl:blu +cid:193 hgt:153cm hcl:#341e13 iyr:2010 pid:934896568 +eyr:2021 + +eyr:2025 +pid:524699651 cid:92 +hcl:#602927 byr:1999 +iyr:2011 ecl:brn hgt:164cm + +eyr:2030 pid:739947771 iyr:2018 +byr:1990 +hgt:185cm hcl:#602927 ecl:gry + +byr:1967 ecl:amb iyr:2020 hcl:#341e13 +hgt:165cm +pid:681478012 eyr:2028 + +pid:807715479 ecl:blu byr:1955 eyr:1972 iyr:2018 hcl:#a97842 hgt:151 + +pid:635008585 cid:97 +hgt:186cm hcl:#b6652a iyr:2015 eyr:2020 ecl:gry byr:1959 + +iyr:2017 +cid:155 byr:1999 pid:550276277 +hcl:#18171d +eyr:2020 hgt:164cm ecl:amb + +byr:1977 hcl:#6b5442 ecl:grn iyr:2012 hgt:156cm +eyr:2028 pid:125635376 + +hgt:65in pid:042700658 byr:1962 iyr:2020 +hcl:#888785 eyr:2021 ecl:gry + +ecl:blu iyr:2017 hcl:#efcc98 pid:447451869 hgt:176cm +byr:1958 +eyr:2024 + +ecl:amb hgt:155cm eyr:2022 hcl:#efcc98 +pid:614496034 byr:1957 +iyr:2016 + +cid:99 +eyr:2020 +ecl:amb iyr:2017 +hgt:163cm pid:128207503 byr:1977 +hcl:#866857 + +ecl:amb cid:342 eyr:2026 hgt:172cm pid:317675262 +byr:1942 hcl:#a97842 iyr:2010 + +ecl:grn pid:077163993 +hgt:187cm hcl:#341e13 iyr:2012 byr:1934 eyr:2024 + +pid:423538706 hgt:156cm +ecl:oth hcl:#341e13 iyr:2016 eyr:2028 + +iyr:2030 ecl:#faff64 +byr:2012 +pid:734434105 hgt:164in hcl:z eyr:2023 + +hgt:150in iyr:2016 pid:173cm hcl:db675a cid:219 eyr:2032 byr:1958 +ecl:xry + +pid:087437383 +eyr:2025 hgt:178cm ecl:gry byr:1954 +cid:227 hcl:#fffffd +iyr:2018 + +pid:152cm +iyr:2030 eyr:2030 +byr:2010 hcl:z +hgt:155cm +ecl:amb + +byr:1934 +hcl:#341e13 hgt:167cm +pid:#7356dd ecl:amb +iyr:2011 +eyr:2030 +cid:123 + +eyr:2027 +byr:2005 +hgt:173cm cid:174 hcl:#ceb3a1 iyr:2018 ecl:amb pid:179cm + +iyr:2019 ecl:grn eyr:2023 +hgt:162cm +pid:649681621 hcl:#4ee6d2 byr:1955 + +hgt:165cm byr:1929 ecl:blu pid:839016251 iyr:2017 hcl:#c0946f +eyr:2020 + +eyr:2020 +iyr:2017 hcl:#c7ed42 ecl:blu byr:1928 +hgt:74in pid:112604496 + +eyr:2026 hgt:184 cid:113 +byr:1933 +pid:952646285 +iyr:2019 hcl:#fffffd ecl:gry + +pid:455008820 byr:1982 eyr:2030 ecl:gry iyr:2020 cid:103 hcl:#733820 hgt:184cm + +hcl:#733820 iyr:2020 hgt:182cm ecl:grn +cid:226 pid:081011361 eyr:2022 byr:1995 + +iyr:1999 +hcl:#18171d pid:9252198900 +ecl:amb byr:1999 hgt:175cm eyr:2021 + +iyr:2020 hgt:165cm +ecl:blu +eyr:2023 pid:760213482 +byr:1968 +hcl:#c0946f + +pid:242381670 ecl:amb +hgt:172cm byr:1980 eyr:2020 iyr:2014 hcl:#866857 + +byr:2021 pid:#a94a22 hcl:#cfa07d iyr:1969 eyr:2030 ecl:zzz +hgt:76cm + +ecl:oth cid:168 +byr:1954 pid:079481919 eyr:2025 hcl:#c0946f hgt:172cm + +hgt:171cm +eyr:2030 +byr:1969 cid:170 +pid:164128658 ecl:amb +hcl:#c2265e iyr:2019 + +byr:1983 +cid:163 +eyr:2020 pid:232659795 iyr:2013 hcl:#888785 hgt:162cm +ecl:blu + +ecl:gry hcl:#7d3b0c +pid:001171231 eyr:2020 +byr:1935 hgt:160cm +iyr:2011 + +iyr:2012 hcl:#a97842 +eyr:2029 pid:809880438 hgt:164cm cid:83 byr:1961 ecl:hzl + +cid:288 eyr:2027 +hgt:181cm byr:1955 +iyr:2020 +ecl:oth pid:754135833 hcl:#c0946f + +iyr:2012 pid:053980893 +cid:54 byr:1961 ecl:gry hcl:#602927 eyr:2020 hgt:167cm + +iyr:2013 +eyr:2025 +hgt:176cm pid:169006156 cid:270 ecl:oth byr:2001 + +cid:244 pid:914067457 +iyr:2017 byr:1926 hcl:#733820 ecl:brn hgt:187cm +eyr:2030 + +ecl:oth byr:1942 +hgt:176cm iyr:2020 eyr:2027 +hcl:#efcc98 +pid:688816242 + +hgt:177cm hcl:#efcc98 eyr:2030 pid:888703414 +iyr:2010 byr:1973 ecl:gry + +cid:257 eyr:2030 +ecl:brn +pid:359774824 +byr:1988 hcl:#6b5442 iyr:2013 hgt:187cm + +iyr:2011 hgt:173cm cid:290 byr:2000 ecl:gry +hcl:#7d3b0c +pid:743371399 eyr:2029 + +cid:162 +eyr:1920 byr:2010 pid:#69d6ba hgt:74 hcl:z ecl:#d256f3 iyr:1933 + +pid:435518624 byr:1938 eyr:2027 iyr:2016 hcl:#18171d +hgt:161cm +ecl:gry + +ecl:gry eyr:2027 hcl:#7d3b0c hgt:170cm +pid:928345976 iyr:2020 + +hcl:#5f4023 ecl:blu +pid:024527693 +eyr:1932 iyr:2023 hgt:154cm byr:1948 + +cid:284 iyr:2011 byr:1920 eyr:2024 ecl:blu hgt:153cm +hcl:#602927 pid:005741906 + +iyr:2029 hgt:108 byr:2029 hcl:c8b25d +pid:522512400 eyr:2038 ecl:zzz cid:163 + +pid:371295649 +eyr:2022 ecl:hzl +iyr:2019 hgt:153cm byr:1961 +hcl:z + +eyr:2027 iyr:2020 pid:619653661 byr:1968 hcl:#b6652a cid:62 ecl:hzl +hgt:186cm + +iyr:1931 +pid:565552342 ecl:#af97bb hcl:c92cd6 eyr:1931 byr:2025 hgt:184in + +hgt:187cm +ecl:grn +byr:1954 cid:145 +iyr:2016 +hcl:#efcc98 eyr:2030 pid:202254357 + +cid:177 +iyr:2013 byr:1926 hcl:#efcc98 +pid:298693475 hgt:181cm eyr:2023 ecl:dne + +byr:2014 +cid:255 +iyr:1951 hgt:72in +hcl:#efcc98 eyr:2039 pid:135688013 +ecl:grn + +byr:2019 eyr:1971 pid:#a95cb4 +hcl:#ceb3a1 ecl:#6f919c +hgt:193cm iyr:2012 + +pid:497726268 +ecl:grn +eyr:2025 hcl:#efcc98 iyr:2019 hgt:170cm byr:1970 + +byr:1939 hcl:#18171d cid:250 +iyr:2011 ecl:blu pid:216607711 +hgt:158cm eyr:2029 + +byr:1937 +eyr:1931 +hcl:#5ee898 +pid:#876b1a hgt:190cm +cid:277 ecl:#5f0f80 iyr:2013 + +ecl:oth hgt:191cm eyr:2025 byr:1978 pid:271136754 hcl:#888785 +iyr:2012 + +hcl:#6b5442 +iyr:2015 byr:1958 pid:510020331 hgt:158cm eyr:2024 ecl:blu + +byr:1998 cid:142 eyr:2026 iyr:2015 hcl:#733820 +pid:671943334 hgt:186cm ecl:oth + +eyr:2025 ecl:brn hcl:#7d3b0c pid:000803215 +byr:1947 +iyr:2017 hgt:168cm cid:230 + +pid:612432109 hgt:186cm byr:1963 ecl:hzl iyr:2019 eyr:2027 +hcl:#efcc98 +cid:148 + +hcl:#c0946f pid:846986027 eyr:2025 byr:1941 +cid:154 hgt:158cm iyr:2012 +ecl:brn + +ecl:gry hgt:186cm +iyr:2015 hcl:#602927 byr:1923 eyr:2023 +pid:48544569 + +pid:857428120 hgt:158cm hcl:#e4a267 iyr:2014 eyr:2020 byr:1975 ecl:blu + +ecl:blu pid:559783197 byr:1935 cid:119 iyr:2017 hgt:157cm hcl:#6b5442 eyr:2020 + +ecl:oth pid:724332293 hcl:#602927 +cid:77 iyr:2019 +byr:2001 hgt:192cm eyr:2024 + +ecl:hzl eyr:2031 +hcl:#efcc98 byr:2011 cid:280 iyr:2017 +pid:377875085 +hgt:172cm + +byr:1947 hgt:174cm ecl:amb iyr:2018 cid:94 hcl:#a97842 eyr:2026 pid:286225332 + +hgt:85 ecl:xry eyr:2033 iyr:1952 pid:92902290 +hcl:a6f86d +byr:2013 + +byr:1935 hcl:#c0946f pid:368741489 ecl:blu +eyr:2020 hgt:164cm +iyr:2018 +cid:196 + +pid:718568707 +ecl:oth byr:2003 hcl:#a97842 iyr:2010 hgt:168cm eyr:2025 cid:261 + +hcl:#6b5442 +pid:675429853 +hgt:62in ecl:grn iyr:2016 +eyr:2027 byr:1932 + +byr:1978 +pid:080846464 hcl:#ceb3a1 ecl:gry iyr:2015 hgt:190cm eyr:2029 + +pid:1756319674 +iyr:2010 byr:1998 hcl:#866857 cid:259 +eyr:2025 hgt:73in ecl:hzl + +eyr:2035 +hcl:z hgt:61cm +pid:3267812127 +cid:230 +byr:2029 iyr:2028 ecl:lzr + +hgt:161cm ecl:hzl byr:1934 iyr:2011 eyr:2025 hcl:#cfa07d pid:354474868 + +pid:727482965 +hcl:#623a2f iyr:2010 hgt:156cm eyr:2020 cid:68 ecl:grn byr:1950 + +pid:040800697 hgt:186cm +hcl:#341e13 iyr:2030 ecl:hzl +byr:1937 eyr:2020 + +iyr:2013 byr:1928 pid:752644096 eyr:2030 hgt:191cm ecl:hzl +cid:93 hcl:#a97842 + +pid:022267155 hcl:#cfa07d eyr:2026 +ecl:hzl +hgt:187cm iyr:2014 cid:347 + +hgt:73in +eyr:2021 pid:054367702 ecl:amb hcl:#18171d byr:1965 +iyr:2020 cid:267 + +eyr:2022 +cid:140 pid:189859171 byr:1984 iyr:2020 ecl:brn hgt:166cm hcl:#623a2f + +byr:1971 iyr:2015 +hgt:168cm +eyr:2020 pid:650970816 hcl:#341e13 +ecl:grn +cid:168 + +hcl:#c0946f byr:1948 hgt:189cm +pid:868785851 +cid:194 ecl:amb eyr:2024 iyr:2011 + +eyr:2040 +byr:2030 hcl:afde59 +hgt:172cm pid:72468598 iyr:1990 cid:165 ecl:#896a8e + +iyr:2009 hcl:#6b5442 +eyr:2028 +cid:53 ecl:hzl +hgt:165cm byr:1999 pid:844037301 + +cid:281 eyr:2022 +iyr:2020 byr:1976 hgt:176cm hcl:#6b5442 ecl:amb pid:755280305 + +hgt:154cm iyr:2013 +pid:059284139 byr:1992 +cid:215 ecl:blu eyr:2025 hcl:#b6652a + +ecl:grn +cid:308 +hgt:187cm pid:009080324 eyr:2027 +iyr:2012 byr:1955 + +pid:083241291 hcl:#7c1810 eyr:2030 iyr:2019 byr:1950 ecl:brn hgt:72in + +cid:148 byr:1953 hcl:#623a2f +pid:076848285 hgt:175cm iyr:2017 +eyr:2022 +ecl:oth + +iyr:2020 +hgt:160cm +eyr:2028 cid:312 ecl:brn hcl:#888785 pid:681067688 byr:1986 + +iyr:1972 cid:170 eyr:2023 +pid:21811501 ecl:#17c6e8 +hgt:158in byr:2015 hcl:5b7956 + +pid:720571739 cid:304 byr:1951 hgt:191cm +eyr:2025 hcl:#341e13 +iyr:2011 + +eyr:2020 ecl:blu hcl:#cfa07d pid:097863725 +hgt:150cm +byr:1951 +cid:143 iyr:2013 + +eyr:2027 iyr:2019 ecl:#a0eeca hcl:#c0946f pid:724783488 byr:1943 cid:282 hgt:124 + +byr:2012 +iyr:2013 eyr:2036 hcl:z hgt:97 +pid:#677847 ecl:dne + +pid:341708492 hgt:190cm +byr:1988 hcl:#888785 +ecl:hzl +iyr:2015 eyr:2029 + +iyr:2020 byr:1968 +ecl:gry +eyr:2030 hcl:#1976b0 +cid:127 pid:701862616 +hgt:161cm diff --git a/data/4_2021.txt b/data/4_2021.txt new file mode 100644 index 0000000..2ec4b88 --- /dev/null +++ b/data/4_2021.txt @@ -0,0 +1,601 @@ +17,11,37,7,89,48,99,28,56,55,57,27,83,59,53,72,6,87,33,82,13,23,35,40,71,47,78,2,39,4,51,1,67,31,79,69,15,73,80,22,92,95,91,43,26,97,36,34,12,96,86,52,66,94,61,76,64,77,85,98,42,68,84,63,60,30,65,19,54,58,24,20,25,75,93,16,18,44,14,88,45,10,9,3,70,74,81,90,46,38,21,49,29,50,0,5,8,32,62,41 + +57 80 91 40 12 +62 36 72 0 20 +55 60 25 92 96 +14 2 17 18 86 + 1 4 90 66 38 + + 1 25 81 16 24 +33 40 86 28 96 + 4 97 90 32 13 +50 38 35 14 56 +73 42 9 36 67 + +46 25 28 59 88 +33 48 15 0 95 +16 30 24 2 71 +11 81 58 70 65 +37 1 26 94 75 + +53 56 5 72 99 +46 27 23 49 4 + 3 93 21 65 37 +35 7 50 32 24 +81 78 52 54 88 + +76 14 58 84 17 + 5 89 97 57 15 +19 77 35 56 93 +31 71 92 2 39 +10 27 91 67 47 + +27 95 74 40 50 +49 66 37 80 75 +54 70 1 16 41 +11 77 61 6 89 +71 45 73 23 29 + +87 72 85 89 18 +91 56 54 14 88 +84 46 35 9 69 +36 66 53 34 17 +71 57 4 16 7 + +35 85 76 2 59 +47 51 36 29 22 +25 62 86 78 95 +61 13 97 99 65 +92 52 39 9 73 + +51 39 78 88 62 +79 91 58 50 15 +25 82 89 20 1 +12 73 7 95 32 +54 67 98 77 4 + +49 38 14 68 13 +33 42 44 58 65 +15 47 29 84 82 +34 94 18 99 11 +89 43 23 0 78 + +90 66 44 50 75 +71 57 87 40 98 +73 49 13 38 21 +35 6 11 91 84 +26 14 52 82 56 + +81 38 54 73 42 +16 12 94 36 60 +45 98 10 70 46 + 4 58 96 53 64 +48 84 30 0 2 + +37 16 48 41 97 +85 43 78 35 42 +39 18 30 44 82 +93 74 14 19 56 +87 10 80 77 17 + +27 38 36 91 45 +71 33 72 9 89 +26 39 25 74 88 + 1 81 35 86 59 +10 63 14 61 53 + +96 44 76 21 91 +82 31 90 4 48 +25 85 20 18 75 +64 71 98 47 49 +11 70 3 8 99 + +71 73 69 20 39 +63 25 28 32 1 + 8 29 41 36 74 +24 59 95 16 76 +70 4 68 60 46 + +35 73 66 20 44 +91 87 24 72 90 +64 81 84 83 30 +93 14 80 49 56 +53 94 10 92 34 + + 6 79 37 43 78 +81 64 27 26 86 +11 80 21 52 93 +30 72 23 51 40 +12 97 71 38 41 + +30 74 71 69 78 +85 56 23 58 24 +32 87 60 29 47 +67 19 57 35 14 +84 55 52 54 10 + +81 23 12 54 20 +27 67 33 17 15 +16 11 40 73 32 +72 30 35 7 71 +94 68 3 61 84 + + 9 12 73 84 90 +99 36 93 62 47 +28 54 59 17 74 +87 32 15 52 85 +31 11 82 1 43 + + 7 92 57 6 71 +28 90 78 66 48 +25 35 72 58 65 +64 68 49 83 2 +36 0 52 88 3 + +31 21 25 76 55 +32 53 92 38 6 +36 43 64 10 95 +96 79 90 8 54 +40 18 30 72 71 + +61 1 52 70 60 +47 69 57 74 35 + 3 34 85 66 14 +92 33 7 31 20 +29 54 23 38 2 + +39 49 87 43 11 +74 16 42 69 29 +17 60 0 38 66 +93 31 50 28 40 +75 76 12 79 88 + +93 44 15 97 1 +47 14 75 0 28 +27 49 45 59 91 + 7 42 72 86 74 +57 3 16 36 79 + +11 78 4 0 21 +71 9 18 88 80 +57 16 1 7 75 +25 50 70 3 22 +23 68 89 19 65 + +99 17 60 70 66 +88 24 30 8 62 +49 59 4 29 7 +14 81 65 26 36 +46 15 80 95 6 + +70 79 91 85 26 +89 63 86 73 82 +41 29 6 27 66 +59 39 37 17 51 +98 11 7 5 15 + +47 13 36 27 83 +55 64 8 87 76 + 4 2 75 71 28 +79 12 85 94 54 +45 17 14 30 62 + +21 20 46 80 25 +71 33 36 54 81 +76 34 63 40 35 +16 24 8 89 82 + 1 87 64 84 14 + +43 3 63 50 25 +65 14 4 92 60 +26 45 49 51 96 +74 11 40 46 7 +90 67 77 56 68 + + 4 24 92 95 44 +68 78 42 6 52 +17 23 89 56 38 +35 30 55 22 53 +73 64 61 34 19 + +77 50 94 27 31 +16 39 12 14 95 +24 48 26 71 67 +85 3 43 66 82 +92 56 8 44 0 + +37 46 31 67 9 +30 89 90 0 75 +99 45 73 93 52 +24 64 70 56 98 +53 48 10 51 14 + +84 28 33 23 27 +53 13 87 1 24 +86 16 10 90 62 +88 12 99 43 22 +40 97 78 77 9 + +97 43 61 53 90 +89 19 7 60 66 + 5 58 18 16 10 +14 13 47 39 20 +67 72 51 85 25 + +54 2 70 69 91 +14 23 49 59 7 +64 88 33 65 56 +31 12 36 73 46 +82 87 66 71 95 + +78 37 84 17 34 +64 6 68 74 46 +28 39 24 20 55 +12 61 97 60 98 +56 22 7 8 26 + +97 46 67 51 92 +79 82 63 69 80 +83 84 26 10 65 +90 35 49 95 14 +89 36 17 39 45 + +56 85 31 43 97 +48 84 83 12 28 +39 42 14 64 82 +98 17 72 29 91 +32 6 75 15 37 + +35 75 70 16 55 +60 47 96 51 21 +65 52 54 6 3 +24 12 72 64 78 + 8 17 34 83 71 + +62 34 27 90 22 +53 79 40 19 78 +52 77 23 60 54 +68 47 59 85 31 + 1 26 45 6 29 + +64 74 89 6 97 +99 94 36 72 32 +59 13 42 69 16 +66 37 41 55 83 +35 75 54 95 57 + +61 52 9 18 70 +41 53 90 94 87 +80 20 0 11 42 + 8 46 63 29 5 +34 15 7 91 10 + + 4 90 30 28 64 +38 35 42 79 21 +37 65 88 83 56 +78 11 12 22 50 +74 49 81 82 71 + +99 89 13 71 39 +96 78 67 82 59 +65 75 55 69 17 +16 15 86 27 85 +58 46 11 32 9 + +76 42 24 97 47 +72 55 28 32 18 + 8 65 50 84 71 +52 56 36 87 59 +20 33 89 46 41 + +59 84 46 15 11 +52 60 31 97 16 +67 3 53 10 61 +36 80 6 43 2 +95 91 14 76 77 + +89 27 59 4 99 +71 56 74 19 5 +11 84 61 90 16 +29 93 97 24 52 +64 88 18 34 50 + +63 18 38 79 34 +17 67 96 87 70 +60 2 54 29 81 +24 72 12 39 8 +59 36 44 97 69 + +47 87 74 21 73 +64 67 89 92 6 +95 26 77 65 45 +22 69 31 13 61 +29 43 68 81 28 + +12 30 18 91 27 +37 4 75 67 72 +99 33 19 90 25 +86 24 22 52 80 +38 62 94 11 44 + +53 47 36 57 9 +14 92 27 29 67 +21 87 76 5 60 +88 10 54 95 48 +32 18 64 8 37 + +83 53 88 51 46 +36 85 31 0 95 +58 52 57 2 75 +78 74 3 27 20 +86 99 7 29 96 + +48 32 52 95 21 +80 20 75 68 29 +38 56 94 16 50 +99 91 26 6 82 + 8 93 25 43 61 + +92 4 79 73 82 +68 20 44 15 70 +37 69 96 58 53 +25 76 86 54 47 +38 3 1 33 46 + +62 84 30 15 35 +65 90 46 0 38 +87 93 70 26 44 +41 1 11 66 14 +45 22 55 96 57 + +31 52 45 82 53 +61 15 40 83 68 +87 29 8 36 85 +26 47 12 37 32 +67 4 58 17 65 + +31 14 4 22 93 +47 50 41 29 6 +69 63 3 38 7 +82 23 75 48 90 +73 66 83 87 5 + +23 71 21 24 29 +52 94 84 14 58 +70 49 27 96 64 +48 66 38 65 89 +67 36 19 26 9 + + 2 22 40 34 12 +13 78 75 68 36 +19 50 79 9 5 +95 10 54 71 37 +20 63 7 97 31 + + 8 31 88 80 63 +33 25 77 37 89 +22 49 66 20 43 +50 21 30 57 99 + 9 47 48 26 44 + +22 28 39 26 57 +49 43 37 76 95 +83 30 41 50 27 +46 51 55 96 47 +87 62 24 19 60 + +48 68 34 73 84 +21 28 90 38 4 +13 19 27 45 36 +32 44 69 37 75 + 8 60 92 85 58 + +53 77 25 45 8 +34 41 80 79 81 +32 65 98 86 91 +74 38 50 58 44 +56 75 52 33 97 + +85 12 64 3 58 +90 36 27 71 78 +44 84 54 87 31 +16 50 14 17 93 +72 55 97 4 38 + +99 41 38 68 51 +73 25 5 59 9 +48 83 36 58 55 +31 53 35 64 98 +66 80 30 13 92 + +20 7 90 3 59 +83 49 42 26 22 +53 56 23 13 19 +63 5 74 97 79 + 1 92 32 73 4 + +52 79 29 27 14 + 8 39 0 71 82 +18 85 88 81 10 +15 2 63 9 23 +26 84 12 46 40 + +56 63 16 1 40 +44 18 5 50 80 +19 88 25 79 36 +17 89 78 76 46 +99 29 35 2 10 + +62 96 27 68 31 +34 30 7 8 21 +70 22 80 40 42 +61 18 98 23 5 +38 69 24 78 65 + +75 12 1 56 73 +25 90 9 10 53 +18 30 59 76 77 +39 40 28 68 46 +82 83 42 15 95 + +47 83 65 24 35 +94 30 12 17 63 +66 75 56 40 41 +67 53 26 27 64 +55 22 31 74 11 + +14 21 4 79 38 +52 70 50 44 29 +93 67 65 54 73 +83 34 97 30 60 +27 76 33 6 39 + +16 62 3 75 84 +54 10 1 2 44 +21 42 0 99 64 +91 45 67 34 82 +83 78 17 53 6 + +83 0 44 31 72 +73 19 18 85 45 +59 51 11 75 64 +90 56 97 46 53 +39 32 17 60 10 + +50 57 93 43 9 +63 20 15 5 17 +35 48 2 52 60 +34 33 90 85 16 +13 53 47 59 62 + +25 75 7 58 98 +28 66 20 21 84 +16 19 85 89 0 + 4 63 70 48 61 +13 8 23 15 37 + +19 15 8 88 97 +81 70 4 59 72 +34 24 39 47 58 +11 10 50 18 99 +40 16 78 45 74 + +82 98 67 94 22 +43 81 96 38 77 +15 6 0 40 62 +52 11 83 54 69 +12 7 70 5 31 + +30 57 73 38 85 +35 84 25 19 65 +17 6 33 54 13 +10 24 31 50 88 + 2 8 1 59 43 + +34 86 21 13 33 +37 20 39 57 66 +10 72 98 40 3 +83 23 87 11 70 +71 24 38 2 58 + +47 99 60 43 0 +66 84 40 29 79 +52 58 25 91 55 +37 69 22 82 4 +65 62 2 31 28 + +42 10 1 23 3 +27 53 46 89 31 +55 9 36 49 85 +87 73 92 5 61 +98 72 86 65 94 + + 6 58 78 75 3 +72 84 79 17 71 +66 0 90 81 28 +94 7 63 76 40 +85 82 49 74 65 + +46 27 38 87 55 +93 21 40 61 82 +43 75 54 32 77 + 6 23 84 10 4 +92 89 51 0 86 + +71 6 28 94 26 +12 84 39 65 22 +73 23 78 2 59 +40 66 83 91 92 +67 25 64 42 41 + +43 92 81 83 99 +59 18 23 78 94 +89 40 47 56 4 +24 73 9 29 60 + 5 26 51 68 6 + +59 7 83 32 72 +46 82 58 78 44 +70 45 64 84 38 +34 8 79 1 81 +41 98 48 33 18 + +68 30 32 16 88 +33 76 41 99 60 +11 38 14 49 65 +89 58 24 26 34 +70 92 29 64 94 + +78 87 15 29 5 +75 54 63 20 33 +84 88 25 80 11 +93 73 92 39 22 + 2 10 4 82 77 + +93 33 71 39 3 +27 42 76 12 13 +20 64 52 37 72 +94 21 23 99 91 +95 97 10 63 92 + +30 65 97 73 85 +90 60 34 1 37 +79 47 40 31 9 +62 51 15 19 76 +96 77 64 72 71 + +69 88 51 14 64 +77 12 96 46 58 +89 2 49 80 37 +32 62 44 23 84 +78 97 87 41 85 + +17 40 61 68 81 +52 24 77 30 80 +75 88 27 78 87 +94 16 36 67 19 +95 43 97 46 93 + +32 60 9 75 98 +74 82 94 20 81 +47 7 10 76 48 +88 11 86 69 67 +72 36 83 62 34 + +26 8 64 47 76 +27 15 82 65 80 +54 79 84 87 37 +97 18 3 93 20 +88 7 40 99 35 + +40 94 6 53 58 +45 60 81 64 30 +66 55 74 37 7 +63 95 23 72 17 +80 18 69 89 28 + +48 83 84 85 3 +98 80 50 96 91 +18 69 44 62 15 +20 88 12 45 28 + 8 29 0 37 27 diff --git a/data/4_2022.txt b/data/4_2022.txt new file mode 100644 index 0000000..44529e5 --- /dev/null +++ b/data/4_2022.txt @@ -0,0 +1,1000 @@ +14-38,14-14 +2-10,3-55 +36-90,36-46 +9-97,8-87 +75-92,51-92 +6-82,1-83 +21-79,29-80 +26-66,27-27 +11-32,11-32 +6-90,91-91 +36-78,21-65 +66-66,23-66 +22-23,22-95 +3-82,3-35 +1-92,93-93 +1-96,1-1 +12-54,9-53 +80-98,4-80 +7-63,3-63 +2-2,2-21 +33-95,85-94 +60-60,60-80 +76-97,96-98 +1-98,2-2 +69-96,68-98 +63-84,63-63 +24-31,23-28 +16-71,40-70 +30-63,64-64 +20-61,64-77 +57-90,17-58 +57-58,12-58 +10-74,10-74 +14-65,64-72 +95-99,8-90 +26-46,45-75 +18-66,17-19 +21-56,21-21 +42-75,70-74 +5-46,45-47 +20-79,20-79 +1-99,2-99 +16-31,17-30 +10-30,8-9 +1-99,1-99 +51-91,50-97 +18-39,18-39 +9-97,4-9 +5-76,6-6 +88-92,88-89 +11-91,19-92 +70-74,2-42 +65-93,94-94 +10-96,9-95 +8-40,6-35 +3-11,12-12 +17-88,17-89 +8-41,7-9 +9-60,60-66 +56-86,86-87 +58-67,58-86 +14-90,7-90 +3-82,2-81 +54-56,20-55 +2-88,4-87 +5-79,6-6 +95-95,19-95 +37-94,38-94 +2-12,2-36 +9-46,46-47 +58-80,66-81 +96-98,1-97 +72-85,84-85 +52-55,52-61 +74-76,6-75 +1-65,2-88 +22-58,22-58 +29-97,30-96 +3-5,5-62 +2-89,2-72 +20-62,69-76 +63-66,62-65 +18-20,19-35 +17-88,17-87 +14-99,13-98 +46-84,46-81 +4-98,3-5 +3-76,75-75 +84-92,91-95 +38-83,4-83 +4-53,5-77 +58-86,58-74 +21-97,96-97 +7-7,7-34 +9-38,9-36 +29-43,43-78 +56-97,55-56 +89-90,9-89 +4-47,48-88 +23-58,58-76 +5-55,32-55 +34-48,41-45 +98-98,44-99 +14-92,48-92 +22-96,23-98 +25-43,73-95 +71-79,72-77 +74-94,93-95 +14-90,89-89 +5-32,4-99 +4-58,4-59 +4-96,4-4 +62-83,54-84 +66-67,67-68 +25-42,25-42 +13-79,12-78 +4-65,2-92 +4-65,3-4 +6-83,7-82 +74-76,41-75 +3-62,61-62 +10-39,11-30 +19-93,3-42 +25-25,11-26 +37-52,53-77 +3-97,97-98 +22-67,23-77 +47-96,35-35 +25-84,23-25 +6-86,86-86 +62-62,48-62 +41-95,42-95 +12-75,13-76 +7-69,6-70 +78-91,35-78 +17-80,79-81 +49-77,50-78 +96-99,20-97 +7-9,8-78 +85-86,58-87 +8-8,8-80 +17-66,43-67 +48-60,22-65 +9-67,67-67 +9-45,10-62 +43-73,44-83 +80-96,80-93 +72-87,85-88 +16-61,13-16 +92-92,2-91 +22-43,42-43 +31-83,30-79 +38-95,38-97 +63-85,71-84 +11-11,11-19 +13-14,13-56 +2-5,4-81 +59-64,62-65 +71-89,8-59 +93-99,87-94 +25-25,26-72 +56-98,57-97 +33-36,37-94 +38-85,84-86 +1-79,78-94 +77-98,76-99 +14-72,13-71 +17-92,18-86 +18-99,57-98 +2-87,3-87 +78-95,86-94 +43-44,32-46 +59-62,60-62 +12-24,24-25 +41-66,21-66 +13-82,13-83 +53-87,11-87 +7-96,7-96 +24-26,25-32 +13-70,8-13 +12-93,12-17 +4-39,5-38 +95-97,73-96 +73-81,74-83 +57-62,63-63 +58-59,56-59 +38-98,38-97 +20-75,19-74 +8-62,74-99 +2-96,3-91 +7-97,6-8 +1-99,1-99 +41-81,42-80 +91-91,43-92 +4-73,4-4 +40-43,42-54 +37-66,47-56 +88-89,20-73 +10-98,10-98 +51-81,51-51 +36-81,5-36 +16-64,61-64 +22-98,21-99 +29-76,75-77 +2-95,1-96 +58-58,2-58 +10-62,11-42 +8-8,35-90 +53-78,53-94 +9-74,10-73 +41-86,40-86 +2-40,3-80 +26-26,25-62 +38-99,37-97 +24-91,25-98 +26-93,25-94 +31-53,1-54 +16-47,24-47 +25-91,39-92 +22-91,40-92 +8-23,8-8 +83-88,83-90 +62-85,63-86 +27-48,27-27 +50-58,37-59 +5-74,5-64 +29-77,29-77 +19-24,19-19 +12-12,11-87 +37-87,38-71 +99-99,12-95 +77-77,24-78 +72-85,71-99 +7-7,7-87 +3-97,58-96 +14-16,15-99 +47-94,93-94 +36-82,14-82 +2-22,9-21 +2-74,73-75 +88-88,46-88 +1-93,93-93 +48-67,48-67 +78-78,12-77 +52-99,34-52 +66-66,65-71 +64-92,65-91 +18-44,19-58 +38-44,27-38 +44-99,44-85 +69-84,31-81 +44-86,44-86 +76-77,2-76 +71-72,24-72 +23-72,24-72 +8-23,9-22 +76-96,92-94 +7-77,76-76 +14-15,17-79 +13-99,14-96 +34-90,33-43 +6-81,6-81 +17-73,3-11 +2-22,3-23 +88-99,87-98 +6-52,52-53 +8-93,76-94 +88-95,84-96 +64-94,64-67 +12-29,11-30 +50-58,32-59 +70-90,71-90 +50-57,58-59 +2-65,1-64 +9-45,8-44 +57-90,56-88 +7-84,7-7 +46-84,45-45 +17-59,16-58 +3-11,11-15 +64-93,20-70 +54-93,54-92 +23-24,23-92 +17-82,17-26 +21-79,78-94 +18-94,93-94 +25-40,26-84 +20-83,19-83 +20-20,20-90 +1-96,88-96 +12-57,13-13 +26-99,26-98 +69-70,39-69 +14-83,82-82 +24-99,24-98 +2-10,10-82 +16-62,41-82 +1-71,1-72 +26-30,25-29 +5-96,5-99 +8-8,7-61 +26-99,27-27 +26-90,8-19 +22-89,22-90 +7-68,69-69 +57-59,3-58 +92-93,86-92 +51-83,50-77 +87-87,11-86 +2-51,3-81 +63-65,25-64 +34-81,33-83 +5-37,5-91 +13-55,1-24 +15-15,15-83 +18-22,18-88 +11-41,11-41 +93-95,6-94 +65-68,65-70 +31-87,32-81 +11-84,3-85 +96-97,32-97 +27-67,66-68 +87-89,22-88 +31-75,24-76 +18-96,17-97 +3-95,4-36 +66-99,67-97 +21-71,22-72 +56-77,78-85 +2-96,3-95 +20-93,92-92 +35-97,96-98 +32-37,17-36 +8-95,7-94 +21-81,7-81 +68-69,68-89 +22-47,23-48 +23-78,23-24 +50-52,12-51 +14-96,14-98 +18-46,34-45 +2-88,1-2 +11-60,10-12 +97-97,60-97 +18-70,19-71 +5-94,93-95 +68-95,67-87 +12-87,93-95 +58-68,57-60 +92-93,5-92 +21-21,20-71 +48-82,81-99 +9-59,10-84 +29-50,29-94 +14-15,14-15 +65-90,65-80 +10-36,10-35 +24-81,80-82 +9-10,10-51 +48-54,54-54 +49-50,50-56 +58-92,57-70 +16-27,4-17 +1-98,23-99 +31-94,93-93 +39-41,8-40 +87-95,95-95 +58-90,59-89 +9-97,30-97 +10-79,10-78 +3-41,3-41 +3-63,62-63 +65-97,66-66 +83-83,65-84 +16-60,17-59 +61-83,63-84 +66-68,66-67 +78-78,18-79 +13-83,12-82 +20-69,21-69 +25-95,60-96 +22-22,22-97 +28-85,2-84 +65-84,84-85 +43-87,88-88 +4-4,3-99 +4-84,2-4 +53-55,45-54 +16-17,11-70 +44-98,44-97 +43-64,43-58 +28-37,19-27 +23-77,76-78 +1-92,6-92 +52-86,52-86 +59-86,58-59 +8-94,7-95 +48-98,98-98 +46-49,47-48 +31-82,32-85 +58-87,57-87 +45-47,46-86 +61-86,61-76 +38-84,37-85 +92-92,53-93 +21-68,22-68 +69-98,70-98 +17-91,92-92 +35-35,35-35 +17-53,17-53 +26-40,37-37 +22-88,22-88 +10-30,10-30 +97-99,27-98 +17-37,17-37 +19-31,19-28 +4-86,3-85 +11-32,12-31 +67-77,67-98 +12-40,9-9 +36-83,83-84 +10-71,70-70 +57-92,15-84 +1-4,3-91 +3-11,7-12 +31-90,90-91 +5-22,2-5 +6-91,5-91 +92-92,40-72 +4-8,12-97 +5-76,52-75 +5-91,91-91 +2-99,1-96 +19-43,19-43 +48-98,47-97 +25-96,19-97 +3-91,3-99 +11-13,12-38 +67-71,17-71 +11-11,10-99 +1-6,5-97 +57-57,35-57 +87-89,24-88 +92-92,29-93 +31-35,28-36 +20-80,19-19 +82-82,5-82 +10-31,32-55 +18-82,28-81 +29-73,29-88 +10-93,10-10 +40-42,40-42 +22-32,22-26 +71-72,58-71 +36-97,36-41 +5-94,5-98 +96-99,87-97 +12-95,13-95 +97-99,20-98 +24-84,24-84 +76-92,75-97 +14-54,14-53 +37-51,37-52 +69-71,35-70 +41-41,35-40 +35-92,92-92 +58-68,57-67 +57-75,27-76 +21-85,22-84 +42-59,41-41 +96-96,1-96 +27-29,28-98 +14-81,15-15 +42-94,42-93 +22-59,15-60 +3-98,3-69 +15-15,3-15 +67-82,36-47 +27-54,10-55 +44-57,43-56 +56-68,56-56 +90-92,33-91 +92-94,82-95 +8-69,69-69 +37-76,36-75 +21-96,1-21 +15-15,10-18 +83-83,9-83 +11-11,11-64 +34-94,25-93 +54-77,77-77 +34-70,35-70 +20-96,20-77 +59-64,32-63 +28-75,27-97 +3-85,2-86 +52-89,52-91 +43-54,45-53 +20-27,20-28 +45-91,68-89 +7-61,12-84 +7-94,6-95 +32-33,32-79 +2-5,5-99 +7-63,6-53 +16-78,17-78 +19-54,54-54 +66-74,66-75 +20-93,21-93 +42-98,1-99 +5-24,4-5 +10-95,94-95 +1-99,1-99 +81-81,81-96 +39-39,23-38 +3-41,3-4 +35-71,36-36 +11-39,38-88 +39-56,40-57 +1-6,6-82 +11-34,1-34 +7-7,7-94 +3-97,2-98 +47-99,47-99 +66-91,96-97 +5-89,97-99 +62-62,36-61 +7-17,6-16 +96-96,57-78 +83-95,13-94 +98-99,1-99 +2-93,92-93 +93-93,51-92 +23-23,23-84 +45-82,44-82 +7-32,7-33 +9-97,10-75 +23-77,25-69 +9-91,8-9 +4-95,47-93 +64-67,2-96 +48-72,72-73 +46-92,45-93 +2-95,94-95 +68-76,69-69 +2-51,8-51 +57-81,82-94 +7-60,13-60 +24-71,23-35 +24-97,24-97 +24-94,32-95 +21-35,21-22 +22-51,23-76 +32-94,32-91 +9-94,9-90 +87-88,9-87 +5-12,7-13 +35-73,74-74 +61-64,48-65 +17-94,71-94 +54-54,29-57 +75-77,19-76 +14-14,15-72 +14-14,14-43 +29-33,29-95 +1-1,1-81 +46-81,80-80 +39-66,10-66 +55-88,55-71 +91-94,34-96 +28-93,27-89 +56-97,55-71 +17-94,93-95 +27-67,26-66 +90-99,83-98 +24-25,24-70 +42-98,79-99 +94-94,46-88 +7-71,70-81 +29-95,28-83 +85-85,3-84 +12-89,63-88 +8-31,9-9 +3-93,70-95 +19-19,19-94 +16-40,1-41 +54-88,88-88 +39-39,29-39 +39-59,59-59 +20-80,19-79 +2-7,2-53 +20-97,19-58 +4-70,4-70 +56-89,55-90 +86-95,95-95 +66-93,65-73 +4-84,5-85 +34-88,33-41 +26-61,26-78 +48-79,49-79 +66-99,52-99 +77-77,43-78 +49-90,50-80 +17-71,16-37 +45-91,45-90 +71-71,27-70 +96-96,3-96 +15-89,14-90 +17-96,7-96 +95-95,2-94 +12-85,11-54 +58-67,34-73 +28-54,29-90 +6-84,5-83 +11-49,48-48 +71-71,11-72 +29-99,99-99 +18-92,19-93 +85-86,35-85 +51-73,51-89 +1-99,57-99 +29-53,28-81 +6-62,7-63 +78-78,77-79 +18-43,18-71 +31-32,32-50 +14-39,40-40 +41-62,42-61 +3-69,5-68 +51-57,48-58 +40-40,41-98 +11-12,11-47 +8-81,8-84 +24-54,10-55 +4-48,5-97 +11-90,11-56 +78-92,78-78 +10-66,67-76 +92-92,13-93 +75-98,67-68 +4-95,2-96 +15-70,16-23 +21-67,20-21 +38-48,38-47 +77-81,80-82 +25-74,30-73 +90-90,91-91 +28-70,20-71 +16-89,37-93 +55-68,34-69 +7-97,50-97 +16-38,17-37 +81-81,34-81 +28-81,27-29 +20-73,19-29 +51-83,52-82 +57-57,56-56 +63-76,20-62 +47-56,46-48 +14-63,62-62 +16-64,63-65 +86-97,87-96 +3-3,3-57 +26-27,20-27 +2-99,3-3 +1-2,1-49 +16-58,31-59 +2-14,2-46 +6-31,5-50 +19-65,19-65 +34-38,27-37 +2-91,3-90 +5-78,5-78 +7-20,6-19 +44-60,44-59 +61-83,61-61 +35-38,36-57 +4-98,5-99 +5-5,4-86 +4-64,21-88 +34-73,34-76 +52-78,51-79 +95-97,7-96 +50-56,51-57 +4-97,5-97 +2-80,11-79 +15-33,4-15 +1-19,19-85 +2-98,17-97 +40-49,39-84 +17-19,18-75 +49-49,48-74 +72-72,12-72 +15-77,14-98 +2-85,6-58 +45-74,32-44 +10-95,9-9 +83-83,16-83 +62-80,63-90 +25-49,26-52 +67-75,25-59 +25-83,26-73 +52-91,52-52 +69-88,68-89 +56-85,55-95 +9-97,97-97 +36-92,6-36 +45-46,44-46 +28-41,28-41 +18-82,28-87 +30-31,31-96 +5-81,6-6 +14-89,34-88 +27-91,27-27 +96-96,31-96 +16-18,17-30 +17-17,16-84 +3-43,31-45 +31-62,30-61 +48-95,47-60 +16-78,15-78 +48-48,34-48 +3-94,2-95 +1-1,2-2 +86-87,84-89 +31-49,31-66 +13-13,13-46 +4-95,79-95 +3-33,1-34 +4-69,10-69 +29-89,83-90 +25-70,23-71 +59-96,60-83 +78-90,15-83 +15-96,15-76 +80-98,12-79 +41-46,42-47 +1-98,2-97 +25-70,26-71 +4-30,83-93 +43-59,42-59 +25-47,24-48 +2-99,3-99 +1-79,80-80 +2-93,1-92 +7-10,7-10 +55-66,54-65 +9-73,9-73 +23-56,22-56 +22-44,21-45 +11-78,12-79 +7-92,8-87 +58-93,16-94 +24-69,24-94 +94-94,39-94 +34-58,33-58 +49-78,77-77 +7-18,6-19 +74-74,73-93 +44-81,48-81 +11-85,84-84 +29-91,30-92 +17-93,16-17 +1-48,2-78 +11-93,94-94 +12-97,96-96 +6-94,6-6 +19-92,56-67 +10-53,2-10 +14-81,13-90 +23-92,23-93 +38-70,70-71 +42-98,42-66 +37-86,38-99 +11-97,1-97 +48-81,49-49 +11-81,9-20 +44-92,15-44 +68-95,67-97 +57-74,57-74 +34-39,16-38 +27-79,28-80 +50-59,10-60 +13-41,13-30 +77-79,45-78 +24-72,24-80 +12-12,12-66 +10-81,81-82 +4-60,3-61 +31-85,30-31 +23-56,23-69 +21-84,83-84 +8-92,91-91 +27-86,85-91 +64-96,63-99 +2-50,3-50 +70-88,2-71 +11-27,12-27 +31-32,31-55 +2-73,73-85 +27-28,27-27 +68-94,68-79 +4-95,67-96 +22-79,8-22 +3-71,2-70 +6-92,1-92 +74-97,73-93 +2-73,1-66 +10-11,10-96 +29-34,30-34 +43-93,23-42 +25-28,27-28 +52-93,53-94 +62-81,46-63 +8-22,8-8 +10-93,92-94 +10-96,98-99 +2-83,1-1 +14-23,13-17 +27-97,71-96 +2-3,1-8 +4-79,4-58 +52-96,53-89 +19-97,11-19 +18-84,17-85 +39-99,39-88 +25-34,26-31 +41-66,41-65 +2-82,1-83 +8-39,40-40 +35-58,26-58 +5-52,4-51 +4-97,34-96 +53-84,3-74 +3-9,3-97 +2-42,8-96 +4-6,5-95 +53-77,22-53 +16-83,15-82 +41-50,41-74 +11-12,11-78 +39-81,38-82 +7-36,8-37 +3-99,3-97 +50-53,52-54 +7-98,98-98 +30-73,31-31 +90-90,73-90 +74-83,74-83 +45-66,7-65 +15-95,15-16 +53-86,54-87 +1-7,7-86 +64-64,29-63 +17-31,17-75 +26-40,48-98 +18-34,17-33 +45-45,5-45 +24-42,23-42 +66-90,65-91 +15-76,8-27 +4-56,4-56 +59-59,59-66 +20-52,29-63 +56-57,54-57 +90-99,46-73 +6-98,6-98 +7-75,7-75 +28-96,13-96 +39-49,33-50 +45-60,61-79 +8-81,8-90 +6-7,7-73 +43-88,1-99 +87-89,53-88 +79-80,32-80 +7-15,7-15 +40-41,8-40 +28-99,29-56 +47-89,90-90 +66-66,46-66 +6-99,7-98 +13-97,96-97 +67-67,22-68 +61-88,27-89 +12-33,13-13 +3-19,3-40 +10-61,10-99 +13-29,29-97 +50-83,9-49 +1-21,1-91 +48-48,10-48 +51-81,51-51 +39-41,40-98 +61-84,62-83 +4-94,4-93 +3-3,2-29 +87-89,82-88 +3-16,3-40 +36-48,48-48 +27-54,26-53 +50-91,49-91 +1-99,1-1 +16-18,17-41 +74-75,17-75 +25-61,7-25 +40-40,39-83 +41-61,55-61 +58-89,23-89 +10-78,77-79 +9-68,1-9 +9-49,10-94 +64-88,88-88 +43-88,42-89 +55-94,4-94 +23-60,46-59 +14-80,79-81 +39-46,38-45 +35-69,58-68 +38-97,97-97 +7-39,7-87 +33-96,33-71 +3-43,26-42 +1-32,2-96 +55-99,54-56 +50-56,48-55 +44-92,93-93 +10-67,9-9 +31-73,3-31 +8-91,9-9 +19-19,19-61 +63-94,63-94 +7-29,94-99 +11-87,10-92 +10-70,69-71 +15-85,14-85 +11-29,10-13 +61-96,56-95 +6-58,7-7 +79-79,64-78 +70-89,11-90 +7-73,7-73 +62-94,14-62 +15-99,15-25 +8-30,7-71 +20-49,19-21 +20-36,10-36 +9-80,7-9 +42-87,30-88 +9-95,10-96 +10-63,50-90 +13-16,7-15 +25-87,88-88 +5-62,3-62 +9-13,11-99 +5-72,18-73 +75-75,8-75 +1-95,3-95 +18-91,91-91 +12-96,12-13 +32-78,33-78 +2-83,83-95 +33-65,33-33 +66-82,1-67 +65-93,64-93 +35-47,19-34 +22-47,21-42 +4-54,3-55 +44-98,44-45 +99-99,7-97 +95-95,7-94 +43-84,42-83 +28-48,29-67 +2-98,2-3 +2-97,3-95 +68-68,1-67 +20-29,4-30 +16-35,5-47 +22-76,99-99 +6-29,6-29 +24-58,47-57 +2-7,7-68 +56-58,46-57 +36-45,35-71 +13-18,18-18 +13-42,14-43 +72-92,91-93 +82-87,76-84 +79-81,14-80 +38-65,38-38 +42-42,1-41 +2-42,20-67 +20-70,20-70 +28-88,89-94 +6-54,7-55 +77-92,77-94 +37-99,67-90 +9-11,56-71 +43-43,34-43 diff --git a/data/4_2023.txt b/data/4_2023.txt new file mode 100644 index 0000000..5b1c6ca --- /dev/null +++ b/data/4_2023.txt @@ -0,0 +1,209 @@ +Card 1: 33 34 29 52 91 7 31 42 2 6 | 53 52 6 96 42 91 2 23 7 38 90 28 31 51 1 26 33 22 95 34 29 77 32 86 3 +Card 2: 63 86 6 5 95 17 7 72 62 76 | 26 6 86 68 49 57 30 63 80 5 96 84 42 19 53 7 87 78 70 74 15 17 64 16 44 +Card 3: 22 25 2 41 27 23 5 1 50 37 | 68 94 25 4 48 75 47 37 58 22 95 16 74 50 66 99 34 35 41 90 2 43 62 1 97 +Card 4: 98 43 31 15 77 60 25 66 19 26 | 59 54 43 19 36 25 31 5 44 76 98 93 40 60 66 47 28 65 56 26 10 15 67 77 3 +Card 5: 26 80 12 66 16 20 37 23 95 55 | 86 17 10 58 26 66 63 41 80 53 37 95 55 48 20 12 11 16 50 74 6 64 99 23 81 +Card 6: 21 59 29 33 17 64 97 14 93 95 | 64 19 52 42 37 82 35 15 21 2 45 10 54 74 7 61 97 33 24 95 88 9 5 78 92 +Card 7: 53 31 56 36 73 51 92 62 80 5 | 23 18 79 63 15 77 22 34 46 40 12 82 7 52 68 92 2 60 3 74 45 64 89 28 58 +Card 8: 93 8 61 36 50 34 74 58 85 75 | 75 67 4 33 88 54 74 90 81 7 39 68 62 10 9 56 44 23 6 41 21 72 5 26 15 +Card 9: 95 49 89 13 11 72 28 53 6 99 | 96 78 12 29 68 65 36 86 63 61 80 75 50 37 30 9 71 57 48 66 4 1 84 62 51 +Card 10: 69 17 25 50 62 41 4 64 27 78 | 77 31 97 35 76 38 21 26 45 29 95 82 79 81 34 59 19 68 1 49 15 5 84 90 56 +Card 11: 7 78 75 90 36 14 62 16 55 97 | 49 54 93 4 52 67 31 84 25 1 77 18 50 21 46 76 89 69 24 53 5 96 86 32 99 +Card 12: 38 20 68 71 87 97 94 82 62 12 | 96 70 88 69 28 80 42 35 95 56 83 75 91 14 72 92 39 90 78 52 48 59 55 41 36 +Card 13: 5 53 2 89 58 8 49 18 7 16 | 68 75 48 27 65 11 20 95 46 84 54 56 63 4 91 74 80 14 23 39 86 38 24 33 96 +Card 14: 63 34 29 59 23 98 65 66 12 1 | 8 80 93 74 68 22 26 76 82 11 39 95 58 19 94 97 35 49 44 37 86 51 79 75 60 +Card 15: 51 15 98 26 5 89 12 97 44 23 | 28 64 95 49 42 70 39 50 84 22 71 43 16 99 3 52 72 25 92 21 61 75 40 96 19 +Card 16: 79 16 49 93 22 6 72 71 82 57 | 71 40 95 18 57 43 82 94 65 49 80 48 79 16 56 54 75 31 46 14 93 52 72 22 6 +Card 17: 92 65 91 47 12 52 70 79 34 44 | 23 47 95 1 45 76 15 60 88 79 65 59 16 91 12 9 13 70 92 81 52 71 34 44 30 +Card 18: 95 61 34 37 53 31 5 45 17 67 | 74 38 94 48 43 69 87 5 29 22 92 56 40 17 63 24 11 90 52 23 85 44 71 41 91 +Card 19: 5 76 81 68 38 16 33 1 59 25 | 83 77 35 18 52 57 22 44 16 4 1 42 5 11 26 45 23 34 15 48 32 68 76 59 64 +Card 20: 77 86 74 56 93 99 75 35 39 73 | 99 75 74 60 86 16 45 51 25 78 54 38 96 72 41 90 56 3 93 35 73 2 52 77 39 +Card 21: 49 56 99 89 50 90 73 93 72 64 | 66 11 32 89 24 25 73 93 1 31 5 22 64 55 20 52 92 71 8 13 15 72 99 37 39 +Card 22: 91 44 58 22 95 61 46 17 14 18 | 98 22 10 27 29 62 82 42 35 51 68 13 50 73 30 75 74 80 87 8 67 31 85 33 39 +Card 23: 18 98 54 37 6 13 26 19 43 78 | 55 97 59 37 61 11 43 72 45 85 78 36 18 6 19 98 38 79 87 66 46 13 74 26 54 +Card 24: 63 37 86 41 9 33 13 93 31 1 | 22 78 94 32 35 24 3 44 65 77 43 52 13 59 99 75 14 42 89 28 11 80 6 70 74 +Card 25: 52 64 32 55 13 53 97 28 83 5 | 76 72 80 13 32 47 53 41 75 52 27 98 57 31 69 10 97 83 5 33 64 84 8 43 61 +Card 26: 29 84 13 55 24 96 87 68 10 18 | 49 88 72 60 61 98 31 87 17 40 82 27 63 62 97 38 24 54 20 15 79 36 92 13 23 +Card 27: 51 86 84 69 66 35 15 2 9 32 | 78 1 23 79 75 6 57 87 5 66 41 11 76 53 47 84 95 96 77 12 15 24 29 49 18 +Card 28: 78 35 68 50 52 72 71 82 74 16 | 30 10 39 41 27 83 99 77 91 97 33 25 93 23 7 67 96 55 35 87 1 19 49 57 6 +Card 29: 62 95 31 3 91 76 71 48 27 47 | 49 91 56 6 67 12 29 2 3 27 95 40 35 76 47 77 88 79 24 71 31 26 48 15 64 +Card 30: 87 69 42 34 75 3 20 88 80 91 | 28 97 65 91 6 54 9 84 3 86 25 23 81 44 29 45 59 36 77 48 19 82 98 92 50 +Card 31: 67 99 60 85 79 28 3 51 98 78 | 43 7 66 79 47 11 74 75 52 93 1 82 28 36 57 21 53 92 55 8 51 46 35 25 77 +Card 32: 71 56 82 67 84 78 22 57 33 2 | 77 57 44 31 10 64 76 21 30 8 89 49 17 12 25 63 48 84 85 91 93 71 58 75 35 +Card 33: 13 10 59 71 47 99 55 88 2 89 | 27 78 55 53 87 14 19 33 71 81 23 94 32 76 96 22 97 36 89 63 90 11 85 51 82 +Card 34: 40 90 22 30 19 44 83 48 93 29 | 94 90 86 51 2 69 1 11 9 20 68 39 48 63 80 58 45 98 23 34 41 42 60 30 14 +Card 35: 77 90 74 19 94 7 29 80 9 87 | 12 52 59 9 96 62 25 57 22 86 47 21 89 78 6 61 92 53 20 30 45 15 98 79 3 +Card 36: 94 39 87 42 75 98 76 21 63 59 | 59 33 15 51 97 10 31 20 14 49 67 69 85 17 44 32 90 79 28 40 22 38 1 84 4 +Card 37: 33 73 12 58 38 88 61 13 46 63 | 55 32 37 43 23 74 21 31 8 62 99 96 18 19 50 16 39 20 4 14 1 45 28 7 49 +Card 38: 99 4 52 78 7 23 22 69 93 98 | 39 57 97 36 85 41 37 53 66 65 46 64 29 17 91 83 81 42 51 99 2 9 43 63 60 +Card 39: 49 16 61 81 73 86 12 2 54 26 | 3 11 43 92 35 84 64 4 94 78 10 57 82 22 83 59 18 70 66 33 96 42 37 62 17 +Card 40: 56 30 44 59 26 54 67 96 28 80 | 96 3 35 80 65 12 94 38 87 64 62 55 31 67 33 16 22 89 76 50 9 69 77 84 41 +Card 41: 57 83 77 40 2 34 43 48 25 46 | 88 31 9 22 52 67 96 62 71 95 19 99 38 49 60 80 58 2 20 16 28 21 12 81 41 +Card 42: 89 4 49 36 48 63 41 81 76 37 | 21 89 66 53 6 36 71 62 83 63 19 95 87 90 13 40 81 72 76 82 39 94 14 96 48 +Card 43: 89 97 16 36 30 68 4 85 79 5 | 58 16 7 64 1 88 81 52 82 41 85 73 53 4 39 60 36 5 65 72 43 68 79 89 78 +Card 44: 59 18 26 4 55 66 85 84 50 82 | 12 59 98 84 77 65 13 33 72 40 78 36 55 26 4 28 18 49 50 85 45 82 35 41 66 +Card 45: 17 59 18 46 13 50 57 21 36 99 | 76 53 85 2 27 1 52 15 40 90 37 29 58 66 43 70 79 86 32 45 95 33 26 75 64 +Card 46: 36 38 42 86 45 62 32 4 8 80 | 20 19 72 46 15 23 64 78 75 13 50 29 59 18 10 93 92 1 58 66 8 16 22 4 7 +Card 47: 70 97 20 39 77 56 87 78 49 42 | 29 48 39 1 25 26 60 11 35 97 78 37 70 42 21 20 90 55 87 92 69 5 56 64 13 +Card 48: 12 55 44 74 66 58 36 41 14 30 | 33 55 66 23 51 10 12 65 89 85 58 41 35 47 30 14 29 42 72 36 62 44 38 40 79 +Card 49: 79 99 69 88 44 73 23 57 74 13 | 9 88 17 23 80 21 94 83 97 86 2 12 74 22 91 71 43 82 96 52 38 61 19 70 73 +Card 50: 91 19 90 80 23 74 40 56 45 12 | 56 98 94 40 45 74 81 62 12 37 19 90 35 83 11 41 77 59 13 70 93 99 47 49 75 +Card 51: 74 97 35 95 65 12 29 11 51 67 | 11 97 9 92 88 35 26 13 52 66 20 40 38 77 90 79 21 72 54 61 17 47 23 75 84 +Card 52: 75 70 36 56 23 74 99 84 46 3 | 47 69 31 60 20 82 71 89 74 78 59 66 53 22 54 79 92 13 93 35 25 44 86 61 41 +Card 53: 32 46 86 81 35 80 61 58 22 94 | 97 75 45 25 50 20 34 4 53 23 1 93 96 52 3 99 9 31 7 11 13 8 51 74 39 +Card 54: 60 86 72 29 37 63 14 6 65 76 | 4 9 91 32 17 62 67 7 59 64 80 66 3 71 74 16 55 26 58 57 93 12 23 49 35 +Card 55: 10 54 4 85 88 84 56 32 39 33 | 52 47 53 17 30 13 21 41 96 24 8 70 74 79 61 55 65 26 36 58 94 98 72 18 73 +Card 56: 17 1 94 34 60 61 53 4 77 51 | 19 62 69 78 26 18 67 8 11 24 47 10 75 23 98 9 77 30 53 28 90 59 7 57 33 +Card 57: 84 3 64 89 90 24 51 57 97 28 | 13 52 85 14 6 68 96 60 1 38 74 88 55 48 67 30 46 4 43 61 12 78 56 89 70 +Card 58: 34 24 13 83 51 59 3 62 39 25 | 70 12 75 20 99 22 36 35 28 81 14 21 32 55 74 27 2 17 31 68 43 71 52 50 79 +Card 59: 2 45 25 36 15 97 87 43 20 83 | 45 85 83 20 71 7 87 54 43 46 94 62 91 15 3 97 4 25 99 86 66 78 2 16 36 +Card 60: 13 85 62 38 54 55 68 57 96 88 | 5 73 30 74 62 54 21 84 48 85 13 28 64 11 87 96 78 3 90 66 2 55 36 60 57 +Card 61: 18 97 56 1 45 87 8 36 63 65 | 93 51 22 26 7 13 8 17 36 97 50 64 84 11 62 43 92 16 70 42 45 24 74 33 57 +Card 62: 14 77 47 24 45 31 7 25 68 23 | 14 85 7 74 24 27 69 23 55 47 60 93 68 58 21 45 31 13 25 77 5 1 63 70 88 +Card 63: 22 93 36 38 91 37 4 74 66 42 | 66 63 91 58 84 28 64 40 42 38 4 5 74 23 29 11 99 83 22 87 44 37 12 25 93 +Card 64: 36 76 16 23 45 99 96 27 29 18 | 9 49 78 24 22 3 68 29 82 74 57 23 10 59 11 67 91 90 18 88 58 54 46 32 83 +Card 65: 91 33 28 95 21 55 20 32 73 62 | 42 15 94 58 59 99 11 38 66 10 69 26 35 98 37 87 83 90 5 4 70 24 84 80 51 +Card 66: 74 49 4 52 38 55 48 76 19 35 | 74 9 48 90 55 66 47 35 63 54 49 11 23 67 53 41 4 3 52 19 76 98 40 38 58 +Card 67: 42 57 64 41 10 17 86 85 37 51 | 81 41 28 71 35 25 36 80 42 67 45 48 66 79 46 60 84 12 10 9 11 8 73 91 18 +Card 68: 89 84 78 6 81 82 16 10 3 39 | 39 54 82 6 90 89 98 85 45 63 88 97 68 31 30 73 18 81 14 40 44 3 61 51 96 +Card 69: 90 1 5 36 99 56 41 22 8 32 | 87 32 2 35 69 30 17 83 95 74 53 7 64 80 71 34 4 40 47 97 45 28 44 60 18 +Card 70: 80 83 64 85 39 15 58 35 91 56 | 51 33 6 20 23 62 48 92 7 55 35 91 32 53 39 29 2 80 67 83 13 15 50 72 16 +Card 71: 42 95 45 25 31 32 58 51 81 6 | 92 68 70 83 55 86 23 35 36 90 93 33 84 8 37 60 63 54 17 46 50 48 67 7 73 +Card 72: 95 91 20 54 61 93 73 72 52 9 | 6 44 96 46 40 57 63 39 7 84 70 2 37 66 56 38 35 94 16 14 74 27 24 76 47 +Card 73: 28 95 10 74 84 77 42 38 37 73 | 92 97 2 38 67 48 98 7 69 33 30 90 54 57 3 81 24 12 86 75 46 47 99 49 96 +Card 74: 88 73 91 16 27 75 59 21 70 40 | 79 10 90 74 78 62 4 84 47 88 38 3 44 21 25 53 36 23 60 59 65 52 37 64 97 +Card 75: 24 98 72 53 9 83 57 70 49 95 | 67 3 53 50 42 25 24 56 32 35 84 81 99 31 16 7 15 54 64 36 96 18 20 30 61 +Card 76: 30 18 76 92 64 12 89 37 77 1 | 51 24 67 3 97 27 29 77 72 48 91 94 81 47 70 46 26 90 85 55 75 60 65 25 71 +Card 77: 9 49 71 14 16 33 70 55 26 18 | 68 64 95 83 1 59 76 43 54 44 6 21 47 39 3 37 82 91 62 33 66 2 79 89 74 +Card 78: 1 5 12 3 59 49 28 75 84 96 | 72 68 99 17 81 46 27 45 48 76 90 18 53 32 43 56 94 80 52 24 7 10 67 51 64 +Card 79: 78 81 92 41 46 36 87 23 76 73 | 84 10 23 14 42 82 8 77 68 90 12 72 50 36 3 96 31 66 22 49 88 60 57 51 67 +Card 80: 3 5 63 64 13 69 31 1 72 23 | 97 10 42 32 52 69 82 16 88 30 24 15 60 65 3 21 89 96 78 23 75 50 92 53 81 +Card 81: 85 10 97 54 46 84 98 1 12 15 | 63 60 1 84 10 86 12 88 46 19 98 79 54 85 95 5 93 77 7 97 56 80 36 15 74 +Card 82: 85 66 62 68 19 50 96 46 35 67 | 35 39 31 63 10 19 85 46 51 66 96 50 33 97 62 68 82 67 61 71 20 2 81 78 9 +Card 83: 53 99 44 14 69 89 42 65 24 20 | 52 17 69 41 63 70 37 1 74 35 67 22 34 53 71 87 23 73 64 90 14 9 4 11 88 +Card 84: 9 84 4 17 97 2 31 25 15 42 | 60 83 69 25 47 65 22 85 9 15 42 17 4 97 58 31 3 88 81 20 40 84 8 51 2 +Card 85: 25 98 50 99 83 97 84 41 7 6 | 80 11 97 7 59 50 94 60 57 29 65 6 95 67 17 78 26 21 23 98 99 69 88 84 73 +Card 86: 37 95 75 6 52 49 46 5 28 73 | 36 24 15 46 5 30 73 44 58 29 6 35 69 49 45 17 83 86 62 64 52 37 75 95 93 +Card 87: 35 79 92 14 44 59 52 76 5 39 | 22 2 62 7 6 73 5 23 75 35 40 20 21 3 26 89 38 69 54 9 52 47 83 97 43 +Card 88: 40 70 2 33 42 1 35 95 41 16 | 71 78 65 85 39 15 38 62 28 46 86 64 76 92 91 68 81 72 73 31 59 45 93 4 16 +Card 89: 43 4 11 93 88 59 94 53 47 28 | 77 37 8 94 42 38 70 7 11 28 57 47 30 88 96 60 89 4 80 68 53 43 56 84 81 +Card 90: 46 98 60 38 87 29 33 34 76 2 | 94 68 45 47 12 88 87 75 95 35 32 73 61 37 72 26 8 40 9 76 85 90 70 97 81 +Card 91: 55 21 6 20 77 81 72 54 87 62 | 47 92 95 14 79 39 65 56 36 9 61 26 45 17 46 18 38 22 40 88 64 84 49 42 13 +Card 92: 24 4 61 63 97 53 20 38 19 8 | 9 24 23 74 3 81 44 27 7 12 16 8 83 47 35 13 55 85 17 57 32 61 62 4 92 +Card 93: 44 26 64 85 53 95 62 47 72 63 | 30 13 47 68 61 88 36 50 69 79 5 14 29 25 2 76 43 80 93 46 99 67 63 15 56 +Card 94: 7 91 68 78 64 84 88 11 96 99 | 65 62 70 90 50 73 45 25 56 14 95 53 18 69 91 32 89 8 30 39 9 54 20 36 76 +Card 95: 22 26 36 50 86 13 41 92 17 33 | 25 41 94 84 12 60 55 39 75 69 72 29 99 88 24 78 65 74 87 59 85 79 46 9 89 +Card 96: 24 88 1 72 90 53 39 43 59 55 | 83 72 40 35 6 51 38 42 3 17 37 56 31 34 85 76 23 9 28 94 44 87 18 26 97 +Card 97: 35 80 91 53 14 32 85 7 49 60 | 1 95 62 76 88 21 63 87 42 6 33 59 45 89 48 78 74 72 57 44 99 2 86 82 38 +Card 98: 16 5 34 52 29 27 14 66 75 20 | 15 66 20 59 5 56 37 75 35 29 52 11 16 12 34 33 27 79 14 19 1 62 77 87 23 +Card 99: 30 46 29 11 83 45 94 51 35 67 | 45 99 67 42 51 63 21 61 84 41 40 94 35 29 46 4 74 98 3 11 78 10 9 83 30 +Card 100: 42 79 56 95 41 71 11 16 25 13 | 80 85 46 95 51 90 56 16 96 61 60 42 58 25 41 79 71 10 54 50 88 23 13 11 70 +Card 101: 29 34 32 23 98 2 17 3 67 66 | 85 59 88 52 55 48 53 4 24 66 10 51 73 93 7 12 95 84 90 13 65 75 23 96 78 +Card 102: 71 99 3 10 21 31 61 66 13 9 | 52 31 66 13 10 71 99 28 38 81 14 30 59 57 3 49 61 63 9 43 51 41 21 20 60 +Card 103: 77 25 80 39 76 88 31 92 9 98 | 92 9 83 39 88 31 86 82 80 26 43 25 85 11 54 27 59 12 42 98 15 66 77 76 40 +Card 104: 33 40 39 64 69 4 24 12 14 1 | 60 25 97 29 80 71 74 68 92 45 53 41 8 44 22 16 12 94 1 42 88 23 77 11 5 +Card 105: 98 54 42 53 46 8 2 67 32 62 | 98 90 78 96 97 31 67 3 46 17 55 52 48 65 49 71 42 83 38 27 5 70 41 20 53 +Card 106: 31 12 82 35 4 43 50 32 5 36 | 5 87 95 11 39 99 32 14 64 45 36 82 97 84 43 31 35 38 50 12 44 96 15 4 20 +Card 107: 89 52 85 71 2 63 48 5 46 14 | 77 57 63 5 14 89 82 49 56 96 79 71 27 52 12 70 68 29 7 17 16 48 85 31 81 +Card 108: 64 36 61 42 1 59 83 6 13 92 | 25 42 61 22 92 29 20 6 33 80 28 94 14 32 64 7 37 36 83 13 66 86 50 93 27 +Card 109: 98 49 11 25 88 34 37 18 55 42 | 19 83 65 9 2 95 55 53 49 10 24 4 63 57 14 15 88 11 40 18 42 33 98 25 7 +Card 110: 86 72 40 77 38 67 29 27 81 74 | 68 51 38 45 50 10 9 93 84 88 16 23 25 65 90 44 80 30 69 86 41 37 96 11 74 +Card 111: 43 2 39 82 26 8 24 70 44 50 | 65 20 53 84 22 19 42 94 16 79 32 18 73 3 83 31 47 61 86 80 46 99 54 29 74 +Card 112: 36 43 5 61 84 66 75 53 58 10 | 23 43 44 96 62 58 67 73 34 71 69 32 49 93 59 28 21 79 24 45 35 92 11 19 36 +Card 113: 80 96 72 25 46 34 89 61 52 85 | 63 85 87 34 52 90 54 59 80 65 22 38 60 91 2 61 46 96 40 35 78 89 86 4 69 +Card 114: 94 6 62 52 40 37 74 90 29 98 | 18 89 87 40 46 45 51 27 60 98 13 29 95 96 37 7 52 17 41 21 97 84 20 3 94 +Card 115: 71 55 41 68 5 81 47 40 52 7 | 54 55 9 82 84 18 42 72 51 38 45 62 74 24 80 94 98 39 89 59 52 83 10 27 71 +Card 116: 78 28 58 34 37 12 53 73 23 92 | 31 41 45 28 99 91 89 27 77 21 76 78 7 38 3 1 51 13 22 83 2 37 47 34 12 +Card 117: 90 76 78 82 30 42 95 70 5 46 | 30 9 47 21 32 83 46 71 52 15 11 62 74 66 81 95 82 85 87 64 73 2 59 42 36 +Card 118: 7 41 54 17 8 63 37 84 28 29 | 27 21 93 87 14 5 44 74 30 43 75 20 46 55 66 35 82 10 48 73 68 9 77 4 40 +Card 119: 88 50 74 90 36 7 60 92 6 48 | 26 99 9 63 71 64 95 55 58 28 92 97 49 81 82 38 94 98 31 57 11 21 33 20 5 +Card 120: 14 35 89 1 94 36 57 30 61 88 | 59 45 34 44 83 61 92 96 90 91 72 7 25 4 64 81 54 31 75 77 80 42 41 47 28 +Card 121: 97 51 2 14 36 80 35 78 62 18 | 15 70 33 77 20 45 64 87 92 10 86 3 7 5 83 19 23 12 30 26 11 17 56 73 6 +Card 122: 75 58 78 99 54 6 40 67 55 5 | 89 3 10 13 61 82 12 85 46 45 86 93 43 21 20 39 95 14 17 7 69 88 48 60 27 +Card 123: 52 65 27 13 29 47 91 71 49 34 | 61 49 13 22 76 98 16 71 43 95 27 47 15 65 11 52 60 70 29 34 79 90 93 91 53 +Card 124: 33 34 6 73 13 82 54 21 61 45 | 13 82 63 95 21 38 14 73 97 34 99 45 2 30 57 61 17 60 16 1 54 6 37 33 25 +Card 125: 47 36 13 31 67 7 1 53 94 70 | 50 31 26 71 34 62 55 49 38 56 87 20 18 60 17 27 23 92 54 28 83 94 42 14 51 +Card 126: 1 55 6 40 43 5 80 45 81 59 | 85 19 25 6 30 46 63 14 80 91 79 55 18 31 38 5 72 59 1 69 23 48 71 81 45 +Card 127: 19 37 29 69 45 57 24 1 12 52 | 24 30 5 23 56 92 78 47 16 28 25 98 94 32 6 17 80 29 40 69 83 4 67 7 68 +Card 128: 18 77 25 27 17 35 7 32 88 99 | 28 98 83 87 85 47 36 29 38 41 95 51 60 49 91 67 2 45 57 37 96 42 76 4 79 +Card 129: 51 68 46 1 15 38 87 36 39 44 | 38 15 37 41 74 64 89 70 25 85 80 1 40 39 29 47 73 44 13 34 9 87 58 77 22 +Card 130: 74 57 38 22 76 64 46 96 17 6 | 31 71 24 56 68 8 61 1 60 53 76 94 93 75 77 96 18 51 81 59 87 83 85 48 88 +Card 131: 87 83 67 9 43 28 62 10 40 58 | 90 29 14 95 69 17 28 47 42 54 67 87 43 97 31 25 89 92 9 62 10 55 78 75 40 +Card 132: 36 13 67 30 73 11 75 12 3 68 | 11 18 45 60 99 16 91 63 74 3 28 61 25 44 52 70 56 85 84 15 37 78 80 51 34 +Card 133: 84 57 5 71 75 63 40 23 78 35 | 43 18 44 61 3 28 77 88 92 34 25 14 36 98 74 33 11 46 67 38 13 2 45 9 80 +Card 134: 49 99 90 71 64 37 32 15 31 61 | 46 95 91 96 6 80 44 83 68 88 41 15 65 69 42 11 58 22 72 57 34 38 35 53 51 +Card 135: 36 4 2 77 79 33 7 85 30 63 | 49 71 67 30 12 83 20 85 37 34 18 78 51 44 70 15 28 88 13 58 75 31 33 93 81 +Card 136: 74 98 39 16 59 46 14 35 61 40 | 97 17 19 7 85 12 78 23 96 77 76 73 27 36 28 60 91 44 52 87 79 90 46 70 47 +Card 137: 88 67 20 87 53 77 93 27 7 43 | 84 58 31 20 75 15 21 5 2 9 17 89 22 96 73 1 44 79 41 24 78 71 70 35 52 +Card 138: 85 89 40 22 90 67 38 13 58 69 | 60 73 52 64 59 18 14 11 56 19 6 17 2 36 10 4 47 68 96 95 78 33 30 5 88 +Card 139: 7 22 72 46 11 54 35 44 79 53 | 78 37 76 47 88 68 24 75 38 29 92 31 43 89 71 21 73 4 96 62 86 52 90 64 27 +Card 140: 17 46 92 11 7 69 72 75 58 27 | 69 76 12 94 13 58 61 44 30 95 55 50 26 70 38 98 39 18 53 71 19 9 73 7 4 +Card 141: 20 46 26 62 3 66 21 8 41 92 | 71 24 51 41 58 98 8 32 3 88 21 73 92 59 27 34 65 61 15 2 66 45 96 60 5 +Card 142: 21 77 60 69 98 26 65 12 99 57 | 52 47 26 74 14 75 73 57 1 88 96 11 41 77 92 69 12 22 99 21 16 60 98 6 65 +Card 143: 94 83 65 90 34 73 14 4 6 70 | 17 70 36 14 83 94 5 98 9 90 20 42 65 82 34 27 13 91 73 19 66 6 95 52 4 +Card 144: 72 57 36 35 18 55 80 33 63 10 | 10 49 47 66 56 36 71 13 34 51 39 42 8 33 35 16 4 55 97 23 63 78 44 61 21 +Card 145: 79 53 85 42 32 11 20 16 88 55 | 38 52 10 42 32 16 64 61 53 17 88 66 86 45 78 20 70 51 90 79 55 34 23 85 11 +Card 146: 26 17 39 56 7 80 9 97 19 50 | 35 64 98 15 77 56 50 17 3 80 26 19 75 44 9 28 34 43 74 39 97 62 81 90 7 +Card 147: 17 27 67 33 31 26 96 71 43 39 | 93 51 85 23 15 65 81 80 63 92 5 77 71 32 26 18 94 44 9 96 50 10 53 67 55 +Card 148: 22 30 6 52 31 17 76 8 21 12 | 43 16 34 84 57 76 40 47 30 63 80 67 75 31 12 5 10 24 85 68 93 26 78 52 83 +Card 149: 51 21 87 11 47 88 83 73 52 30 | 79 10 28 1 69 84 58 26 13 24 96 45 65 5 37 21 46 25 56 36 4 95 8 62 91 +Card 150: 7 29 47 17 50 62 44 98 9 89 | 50 89 19 46 45 47 74 63 80 17 87 57 95 24 14 20 5 70 56 67 42 72 30 93 86 +Card 151: 44 19 92 82 99 22 77 98 26 59 | 80 75 28 50 9 24 3 46 65 85 44 63 22 26 48 33 54 7 55 29 66 23 52 31 6 +Card 152: 88 5 79 19 91 95 35 36 55 67 | 86 91 75 66 74 31 73 45 9 77 96 29 41 64 61 97 14 10 48 55 88 82 27 94 56 +Card 153: 53 79 19 23 51 45 58 62 32 80 | 93 36 46 35 24 55 79 70 58 3 4 53 62 16 50 32 8 51 45 21 23 42 27 31 7 +Card 154: 47 34 44 57 54 63 88 85 58 5 | 55 22 92 87 90 32 44 1 21 47 4 10 35 84 37 78 56 18 58 38 77 19 94 50 67 +Card 155: 43 56 53 71 2 31 67 61 9 55 | 73 15 72 34 36 57 13 28 6 71 9 53 82 80 49 55 39 88 52 43 61 51 74 77 86 +Card 156: 50 60 79 3 22 88 98 1 84 17 | 14 20 53 69 23 27 76 35 25 59 94 31 18 19 62 29 97 67 43 44 95 92 7 78 51 +Card 157: 31 17 48 87 99 36 65 23 7 4 | 15 55 48 78 11 73 10 5 86 39 64 90 7 83 25 91 6 63 17 50 92 28 33 68 3 +Card 158: 94 9 41 51 70 45 93 50 14 89 | 37 86 83 10 26 99 90 21 17 42 82 95 22 2 13 12 30 18 7 80 28 59 45 5 58 +Card 159: 5 12 64 49 6 74 31 43 90 40 | 48 85 64 98 82 30 7 21 47 79 18 65 50 6 11 40 44 54 81 80 4 37 89 28 57 +Card 160: 78 60 91 56 53 52 83 72 14 19 | 84 50 41 73 97 20 94 34 7 64 55 65 77 16 8 66 45 75 79 3 43 47 46 11 26 +Card 161: 34 46 12 98 79 73 24 30 48 91 | 56 3 84 70 75 64 67 69 51 53 40 88 29 18 94 81 21 61 49 79 6 52 22 65 23 +Card 162: 68 12 1 95 81 31 65 82 96 17 | 51 63 40 71 91 67 32 76 47 37 49 24 19 13 43 88 62 20 26 79 93 8 55 60 33 +Card 163: 67 27 30 36 89 57 42 91 5 14 | 42 27 5 89 47 91 40 14 29 75 62 53 41 23 39 58 30 36 32 67 8 84 19 57 21 +Card 164: 73 89 15 76 61 34 37 57 81 9 | 73 15 44 2 32 51 81 57 89 98 53 80 62 75 37 85 9 12 34 27 13 76 61 95 60 +Card 165: 69 39 62 27 82 98 87 14 30 49 | 69 88 39 14 30 61 72 45 49 82 46 40 62 38 75 87 27 8 24 10 50 98 32 89 57 +Card 166: 96 71 13 51 8 48 72 85 97 37 | 11 72 76 51 29 96 48 8 37 53 15 88 98 20 30 97 13 85 2 71 27 57 93 54 64 +Card 167: 93 98 58 47 88 38 82 24 12 39 | 22 2 1 25 99 16 52 5 65 78 43 23 13 46 56 82 3 26 14 89 27 8 11 64 70 +Card 168: 17 95 26 70 2 73 25 98 32 28 | 54 70 9 99 3 24 95 77 72 17 25 90 96 98 94 18 26 42 82 73 1 2 48 32 28 +Card 169: 30 99 54 23 67 91 7 14 24 56 | 32 18 85 56 34 22 10 63 68 21 2 31 12 69 89 75 92 24 7 51 86 14 17 26 33 +Card 170: 69 55 65 89 63 85 46 36 86 66 | 80 47 69 27 83 20 55 86 99 36 66 76 34 64 25 89 23 13 63 72 68 71 43 17 87 +Card 171: 25 53 36 62 75 45 87 41 61 78 | 28 10 52 59 98 38 79 77 53 31 63 90 58 16 42 21 83 92 46 44 8 43 97 34 41 +Card 172: 7 19 88 14 18 81 24 55 15 80 | 68 63 89 14 30 81 37 15 53 19 61 80 77 18 55 74 90 48 49 52 2 88 7 71 33 +Card 173: 60 81 10 58 44 75 26 12 87 83 | 81 12 21 95 10 80 48 32 58 27 91 97 1 82 75 44 83 60 24 93 5 26 37 87 52 +Card 174: 58 18 40 69 19 84 75 31 27 54 | 78 33 80 75 31 70 16 6 91 58 69 86 5 19 4 40 8 13 54 84 56 22 53 27 7 +Card 175: 14 54 72 53 77 66 39 36 99 69 | 92 4 57 76 44 64 3 7 14 95 59 98 99 81 68 31 66 53 67 51 89 47 9 30 69 +Card 176: 31 3 8 93 27 65 12 67 64 11 | 12 54 67 55 97 98 2 99 14 96 10 36 11 27 57 88 9 45 44 34 25 21 30 75 83 +Card 177: 87 69 57 67 32 3 13 74 46 41 | 7 22 15 89 49 65 3 11 42 96 53 38 84 57 33 10 97 44 31 93 63 81 76 1 4 +Card 178: 76 32 28 89 21 50 13 48 64 7 | 61 15 3 23 25 47 2 6 17 99 55 85 19 77 45 29 58 24 43 53 1 72 70 75 82 +Card 179: 77 16 85 7 84 67 9 60 94 23 | 5 4 83 12 64 72 47 13 42 38 43 97 28 86 52 6 73 1 55 45 24 40 19 51 17 +Card 180: 24 26 82 42 5 17 52 14 91 86 | 52 1 27 87 88 75 6 61 18 8 14 42 39 95 71 76 82 79 35 21 10 56 58 17 34 +Card 181: 38 79 77 41 10 98 55 4 80 52 | 12 63 14 53 98 17 68 39 43 72 92 30 50 79 44 9 54 29 58 60 73 42 69 34 4 +Card 182: 28 84 32 88 16 8 27 67 63 81 | 83 82 68 62 86 99 9 39 78 63 95 47 42 76 54 49 79 89 59 57 58 88 37 87 4 +Card 183: 5 82 60 73 2 25 46 93 39 66 | 75 21 39 78 45 86 43 40 50 65 85 54 48 18 8 80 93 49 37 44 46 71 72 57 97 +Card 184: 18 66 38 31 78 73 61 30 36 62 | 63 49 26 28 79 37 52 5 30 9 21 71 60 81 67 34 89 7 33 92 35 4 65 29 50 +Card 185: 23 25 88 65 41 24 29 83 34 4 | 56 81 40 36 37 97 89 85 67 41 7 76 53 46 68 73 60 17 71 52 98 96 6 86 90 +Card 186: 10 6 51 7 18 53 43 46 89 2 | 73 79 20 16 24 4 42 63 52 41 54 14 81 78 12 70 85 66 95 13 60 48 97 82 83 +Card 187: 43 81 46 66 35 61 37 72 57 17 | 43 57 92 54 71 44 13 46 61 31 82 66 37 42 84 38 29 17 72 35 39 56 49 81 68 +Card 188: 69 41 43 3 78 58 96 56 30 25 | 33 21 34 15 94 7 75 91 47 19 50 26 63 82 53 38 95 8 10 88 59 71 32 24 99 +Card 189: 16 49 79 67 48 5 14 35 87 64 | 80 3 39 11 1 42 14 37 76 98 68 24 61 66 87 67 43 83 35 8 10 31 16 32 58 +Card 190: 90 40 32 81 58 71 77 95 22 64 | 70 39 36 31 56 43 80 77 29 22 92 90 91 52 5 71 81 58 40 46 32 64 74 30 95 +Card 191: 88 55 76 92 31 75 41 81 77 9 | 98 92 9 49 7 93 41 37 21 55 31 22 65 45 81 76 47 88 74 50 77 99 75 94 8 +Card 192: 59 36 97 95 92 37 27 52 4 10 | 41 64 53 19 5 52 51 49 48 1 58 45 3 44 12 30 91 75 68 62 85 95 82 72 93 +Card 193: 24 96 16 86 52 6 44 43 7 69 | 85 17 21 24 96 95 6 9 27 97 86 25 76 40 8 39 49 29 7 80 43 3 44 18 55 +Card 194: 11 28 14 80 42 92 66 52 82 18 | 95 42 5 80 50 52 82 15 66 98 86 11 22 92 99 19 14 76 45 40 3 28 18 48 94 +Card 195: 96 45 32 73 77 8 23 52 9 84 | 84 92 4 73 26 79 71 87 37 10 52 15 76 64 63 39 17 48 68 78 7 36 61 11 94 +Card 196: 47 75 96 72 15 7 17 58 83 86 | 7 25 43 55 87 4 81 30 74 53 9 83 65 28 57 62 18 96 33 72 2 41 69 17 45 +Card 197: 11 4 42 5 15 89 68 40 98 33 | 16 91 2 64 7 85 33 15 89 11 44 70 27 46 56 17 37 40 77 71 79 73 97 43 45 +Card 198: 60 87 85 99 52 56 9 6 69 14 | 67 70 84 34 46 76 24 50 71 98 59 27 19 61 78 66 85 18 55 80 49 20 64 92 10 +Card 199: 36 45 50 23 69 75 94 66 17 40 | 51 81 53 69 74 67 44 60 88 79 45 94 66 40 7 23 36 50 43 22 17 25 20 30 27 +Card 200: 27 75 63 70 32 15 23 13 80 94 | 94 83 49 97 92 36 14 75 62 10 63 23 31 96 95 7 78 27 20 24 52 44 70 60 48 +Card 201: 70 23 37 4 33 64 99 91 52 5 | 59 3 33 13 9 76 4 53 63 48 31 88 12 29 58 23 86 40 54 18 37 78 70 64 75 +Card 202: 15 29 52 63 19 81 99 3 77 75 | 99 14 23 47 86 3 32 77 52 36 89 13 20 8 61 84 19 15 65 7 34 28 66 81 94 +Card 203: 33 12 44 96 75 53 21 14 68 27 | 98 69 13 67 70 2 40 49 76 7 82 50 45 93 56 59 31 87 22 19 62 80 72 97 47 +Card 204: 16 11 54 49 45 98 68 92 80 6 | 60 84 68 27 95 33 70 92 3 36 55 88 32 15 14 75 44 43 10 65 93 63 54 69 77 +Card 205: 73 65 24 75 10 8 35 83 78 67 | 89 57 38 93 70 5 9 92 29 55 54 36 37 34 21 40 71 68 33 1 18 80 42 52 72 +Card 206: 31 99 35 8 92 37 9 90 77 76 | 2 41 11 80 62 74 50 78 72 60 95 69 59 46 15 23 43 34 61 87 97 82 52 14 54 +Card 207: 63 55 50 32 43 71 39 20 16 38 | 74 31 40 38 20 85 48 21 61 37 59 66 34 94 30 57 2 13 42 28 64 51 41 49 62 +Card 208: 78 51 42 63 24 19 35 99 87 97 | 75 20 90 78 50 79 56 41 1 73 46 26 36 8 43 70 6 83 80 98 57 52 17 7 14 +Card 209: 61 7 9 81 20 54 92 74 53 63 | 85 4 79 68 58 91 90 71 50 30 65 17 18 77 76 22 82 47 84 75 59 32 57 35 86 diff --git a/data/5_2020.txt b/data/5_2020.txt new file mode 100644 index 0000000..c6d87c9 --- /dev/null +++ b/data/5_2020.txt @@ -0,0 +1,850 @@ +BFFBFBBRLR +FFFFBBBLRR +FFFFBBFLRL +BFFBBFFLRR +BFFBFBBLRR +FBBBBBFLLR +BBFFBFFRRR +BFFBBBBLLL +BBFFFBFRLL +BFBFFBBRRR +FFFBBBFLLR +BFFFBFBRRR +FBFBFFFRLR +BFFBFBBRLL +FFBBBFBRRR +BBFBFBBRRR +BFFBFFFLLL +FBBFFBBRLL +FBFFBFBRRR +BFFFBFBRLL +FBFBBFBRRL +FBFFBFBRLL +FBFFFFBLRR +BFBBBFBLLR +FFBBBBBLRR +BFBBBFBRRR +FFBFBBFLLL +BFFFFFBLRL +FBBBBFBRRR +FBBBFBFLRL +BBFFFFFRLR +BBFFBFBLLL +BBFBBFFRLL +FBBFFBFRRL +BFBBFFFRLL +BFFBFFBLRL +BFBBBBFLLR +BBFFFFBLLR +FBBBFBBRLR +BFFFBFFLLR +BFBBFBFRLL +FBBBBFBLLL +FBFBBBFLLL +FFFBBBBRLR +FBBBFFBRLL +BBFFBFBLRR +FBFFBFFRRL +FBBBFFFLLR +FBBFFFFRLR +BFBFFBFLLR +FFBFBBBRRL +FBBFFBBLLL +FFBFFBBRLL +FFBBFFFRRR +FBBFBFBRRR +FBBFFFFLLR +FBFBFBFLLL +BFBFFFBLRL +FFBBBBFLRR +FFBFFFFLRR +FBFBFFBRRR +FFFBBBFRRL +FBBBFBBLRL +BFFBBBFLLL +FFFBFBFRLR +BFBFBFBLLL +FBBBFFFRRL +FBBBBFFRLR +FFBFFBFLRR +BFBFFBFLRL +BFFBFBFRRR +BFBFFBFRRR +BBFFBBFLRL +BFFFBBBLLL +FBFFBBBLRL +FFBBFBBLRL +BFBBFFBRLL +FFBFFFFRRL +FBFFBBBRLL +FBBFBFBRLL +BBFBFBBRLR +FBFFFBFLRR +BFBBFFFLRR +BFBBBFFRRR +FFBFFBBRLR +BFBBBBBRRL +FFBFFBFLRL +FFFFBFFRLL +FBFBBBBRLL +FBFBBFFLLL +FFBBFBFRLR +FBBFFBBRLR +BBFFFBBLLR +FBBFFBBRRL +FFBFFBBRRL +BFFFFBBRLL +FBFBFFBRLR +FFFBFFBRRL +BFFBFFFRLL +FFBBBFFLLL +FBFFFBFRRR +BFBFBBFRRR +BFBFFBFLLL +FBFBBFFLLR +FBBBFFBLRL +FFBFFFFLLR +FFFBBBFRLR +FBBFBFFRLL +FFBFBFBLRL +BFBFBBBLRR +BBFBBBFLLR +FFFBBFBRRL +FBFBBFBLRL +BFFFBBBLRL +FFFBFFBRRR +FBBBFFFLRL +FBBBBBBRRL +BFBBBBBRRR +FFBFBBFRLL +FFBBBBFRRR +FBBFFBFLRL +FBBBBFBLLR +BBFFBBFLLL +FBBBBFBLRR +BFFFFFFLRL +FBBFFFBRLL +BBFFFBBLRL +FFBBFFFRLL +BFBBFBBLLR +BFBFBBBRLR +BFFFFBFLRR +FFBBFFBRRR +BFFFBBBRRL +FBFFBBBLRR +FFFFBFFLRR +FFBBFBFLLR +BFBBFFBLRL +BFFBFFFLLR +FFBBBFBLLL +BBFFFBBRLR +FBBBFBBRLL +FBFFBBFRLR +BBFBFBBLLR +BFBFFFBLLL +BBFBBFFLRR +BFBBFBFRRL +FFFBBFBRRR +BFBFBBFLLL +FFFFBFBRLL +FBFFFFBRLL +FBBFFBBLLR +FBBBFFBLRR +FBFFFFFLLL +BBFBFFFLLR +BFFFBBFLRR +FBBBBFFRRL +BFFBBBBLLR +FFBBFBBLLR +BFFBBBBRRR +BFFBFFBRRL +BBFBBFBLRL +FFBFFFBRRL +BBFBBFBLLL +FFBFBFBLLR +FFBBFBFRRL +BFFFFFBRLL +FBBBBBBRLL +FBBFBBBLLR +FFFFBBFRRR +FBBBFBFLLL +FBFFBFBRRL +BBFFFFBRLL +FBBBBFBLRL +BBFFBBBRRL +BFFBFFFRLR +FFBFBFFLLL +FFBBBBFLRL +BFFBBBFRRR +BFFBFFBLLL +FFBFFBBLRL +FBFFBBFRLL +FBFBBBFRRR +FBFFBFFLLR +BBFFBBFRRL +BFBFFBFRLR +FBBBFFBRRR +FFFBBBFRRR +BFFBBFBLRL +BBFFFBFLRL +FBBFFBBLRL +FBFBBFFRLR +BFFBBBFLRR +BBFFFFBLLL +BBFBBFBLLR +FFBBBBBRRR +FBFBFFFLRR +FBFBFFFLLR +FFBFFFBLLR +FFBFFBFRLR +BFFBFBBRRR +BBFFFBBLRR +BFBFBFFRLR +FFBBBBFLLR +FFBBFFBLRR +BBFBBFFRLR +BBFFFBFLLR +BBFFBBBLRL +BFFBBFBRRL +FFFBFBBLLR +BBFFBFFRLR +BFFFFBBLLR +FBBFBFFLLR +FFFFBFBRLR +FBBFFFFLLL +BFBFBBFRLR +BFFBFFBRLR +FFFBFFFLLR +FFBBBBFRLR +FBBBFBBLLL +FFBFBFBRRR +FBFFFBBLRR +BFBBFFFLRL +FBFFBFBRLR +BFBFFBFLRR +BBFFFBFLLL +FFBFFBBLRR +BFBFFFFRRR +BFFFBBBRLL +BBFBBFBLRR +FFFFBFBRRL +BFFBBFFRLL +FBFFBBBRRL +BBFFFFFLRL +BFFBBBFRLR +BFFFBFFRRL +BFBFFFBRLR +FFFBFBFLLL +BFBFFBBLLL +FBFBBBFRLR +FBFFBBFLLL +BFBFBBBLRL +FFBFBFBLRR +BFBBBBBLLL +BFFBBBBRRL +FFFFBBBRLR +BFBFBBFLLR +FBBBBBFRRR +FBBFBFFRLR +BBFBBFBRRL +FFBFBBBLRL +BFBFBFBLRL +FBFBBBFLRL +FBFBBBBLLL +FBFBBBBRRR +FBBFBFBLLR +FBFBFBBRLR +FFBFFFBLRR +BFFBBFBRLL +BFFBFBBLLL +FBFBFFBLRL +BFFFFFFRLR +BBFFFFFRLL +FFBFBFBRRL +FBBFFBFRRR +BFFFFBBLRL +FBBFBBFLRL +FBBFBBFRLL +BBFBFBBLRR +FBFBFBBLRL +BFBBBFFRLL +FBBBBBBLLL +FBBBBBBLRR +BBFFBFBRRL +FBFBFBFRRR +FBBFBFFRRR +BBFBBFFRRR +FFBFBBFLRL +FFBFBBBRRR +BFFFFFFLRR +BFBFFBBLRR +BFBFBFBRLL +FBFBBBBLLR +BFFFFBBLLL +FBBFFFBLLR +BFBFBFBRLR +BBFFFFBLRL +BFBFBBBLLR +FFFBBBBRRL +FBFFFBFRLL +FBBFBBBLRL +BFBFFBBRLR +FBBFFFBLRR +FBBBBBFRLL +BBFBFFBLRL +BFFFBFFRLL +FBFBFFBLLR +BFFFFFBRRR +FBBFBBBRRL +FFFBBFFRRR +BFBBFBFLLL +BFFBBFBRLR +FFBBBBBLLL +FBFFBBBRLR +FFFBFFBRLR +BFBFFFFLRR +BFFFBFFLRR +BFFFFBBRLR +FBFBBBFLLR +BFFBFBBRRL +FBBFBBBRLL +FBBFBBFRLR +FFBFBFFLRR +FFFBFFFLLL +BFBFBFFLLL +FFFBFBFRRR +BFFBFFFLRL +FFBFBFBLLL +BFFFBFFLRL +BFBBBFFLRL +FFFFBFBLLL +FBBBBFFLLR +FBFBBFBRRR +FFFBBBBLRR +BBFBBFFLRL +FBFFBFFRLR +FFFBFBBLRL +BBFBFBFLLR +FFBFBFFRRL +BFFFFBFRLL +FFBFBFFLRL +FBBBBFBRLR +FBFBFFFRRR +BFBBBBFRRL +BBFFFFBLRR +FFFFBFBRRR +FFFBFFFRRR +BFBBBFFLLR +BBFBFBFRLR +FFFBFBBLLL +FFBFBBBRLR +BBFFBFBLRL +FFBFFFBLLL +FBFFFFFLRR +FBBFBBBRLR +FBFFFBBLLR +FFBFBFBRLR +FFBBFBFLRL +FBFBFBBLRR +FBBFFBFLRR +BBFFBBBLLR +FFFBFFFRRL +FFBFFFFRLL +BFBFBFFRRL +FBFBBBFLRR +FFBBFBBRRL +BFBBBFBLRL +FFFFBFFRLR +FFFBBBBLLR +FBBBFFFLLL +BFFBFFFRRR +FFFFBBBLRL +BFFFBBFLLR +FBFBFFFLRL +BFFFFBFLRL +FBFFBBBLLL +FFBBBFFRLL +BFBFFFBRRL +BFFFFFBLLR +FFBFBBFRRR +FBFBFBFRLR +BFBFBFFLLR +BFBBBBBLRL +FFFBBFFLRL +FBFFBFFRLL +FFFFBFFRRR +FBFFFBFLLL +BBFBFBFRLL +FBBFBFBLLL +FBFFFBBRRR +FFBBBFFRRL +FBBFBBFLRR +FBBBFFBRLR +FFFBBFFRRL +FFFBFFFRLR +FBFFBFBLLL +FFBFBFFRRR +BFFBBBBRLR +BBFFBBFLLR +BBFBFFBRLR +FBBFBBFLLL +FBBFBBFRRL +BBFBBFBRLL +BFFFFBFRRL +FBFBBFFRRR +BFFFFBFLLL +BBFFFBFLRR +FBBBFBFRLR +FFFBFFBLRR +FBBFBBFLLR +FBBFFFFLRR +BFBBBBFRRR +FBFFFFBRLR +FBBBBBFLRL +BFBFFBBLRL +BFBBBBFLRL +FBFBFBBRRR +FFFFBBBRRR +FBBFFFBRRL +FBFFBFFLRL +FFBFFFBRRR +BFFBBFFLLR +FBBBBBFRRL +FBBBFBBRRL +FFFBFBBRLL +BBFFBFBRRR +FBFBFBFLRL +FBBFFBFLLR +FFBFFFFRRR +BFFBBFFLLL +BFBBBFFLRR +FFBFBBFRLR +BBFFBFFLLL +BBFBFBFRRR +BFFBFFBRRR +BBFFBBBRLR +BFBFBBBRLL +BBFBFFFRLR +FFFFBBBLLR +FBBFBFBRLR +FFBBFBBLRR +FBFFFBBLRL +BBFFBFBRLL +BFFBFFFRRL +FFBBBBBRRL +FBFFFFFRLR +FFBFFFBRLR +FFFBFBBRRR +BFFBFBBLLR +FFFBBFFRLL +BBFFBFFLRL +FFFBBFFLLR +BFFFBFBLRR +FBBFBFBLRL +BFBBFFFRRR +BFBBBFBLRR +FFBBBFBRRL +FFBBBBFRRL +FFBFFFBLRL +BFBFBBFLRL +BFFBBFFRLR +FFBBBFFLRL +BFBFFFBLRR +FFFBBFBLRL +FFFBFFBLLL +BFBFBFBLRR +FBFBBFBRLR +BBFFBBBRRR +FFFBFBBRLR +BFFBBFFRRL +BFBBBBBRLL +BBFBFFFLRL +FFFFBFBLRL +BFBBFBFLLR +FBFBFFFRLL +BFBBFBFLRR +FBFBFBFLRR +BBFFFBFRRL +FFFFBFFRRL +FBFBFFBLRR +BFBFBFFLRR +FFFBBBBLLL +BBFBBFBRRR +BFFBBBFLRL +BBFFBFBLLR +BFBBFBBLLL +FFFBFBFRRL +FBBBFBBRRR +FFFBBFFLLL +BFBBBFBLLL +FBFFBFBLRL +BBFFFFBRRL +BBFFBFFLRR +FBFFFFBRRL +FBBFFBFRLR +FBFBBBBLRR +BBFFBBBLLL +BBFFFFFLLR +FBFFBBFRRR +FBBFFBFLLL +FBFFBFBLLR +BBFFFFBRRR +FBFFFBFRLR +BFBFBFBRRR +BFBBBFFLLL +FBBFFBBRRR +FFBBFBBRLL +FFBBFBBRRR +BBFBFFFLLL +FBFFBBFRRL +BFFFBFBLLR +FBFBBBFRRL +FBFBFBBRRL +FBFFBBBRRR +BBFBFBFLLL +FFBBFFFRLR +FBBFFFBLLL +FFBFFBBRRR +BFFFBBFLLL +FBFBFBBLLL +FBBFFFFRRL +FFBBFBFRLL +FBBBBBFRLR +BFBBFBBLRL +BFFFFBFRLR +BFFFFFFRRR +FBFBBFFLRL +FFBBFFBLRL +FBBFFFBLRL +FBBBBFFRLL +BBFBFFFRLL +FBFFFFFRLL +FFBFFBBLLL +FBFFFFBLRL +BFBFBBBLLL +BBFBBFBRLR +BBFFFBFRRR +FBBFBFBRRL +BFFBFFFLRR +BFBBFFBRRR +BFBBBFBRLL +BFBBBFFRRL +FBFBFBFLLR +FFBFBFBRLL +FFBBBFFLLR +BFBFBBBRRR +BBFFBFBRLR +FFBBBFBRLL +FFFBBFFLRR +BFBFFFBLLR +FFBFBBFRRL +BBFFBBFRLR +BBFBFBBLLL +FBFBBFBLRR +BBFBFBFLRL +FBBFFFBRRR +FBFBBFFRRL +FBBBFBFRRR +BFFFFFFRRL +BBFFFFFRRR +BFBBBFBRLR +BBFFFBBRRR +FBFFFFFRRR +BBFFFFFLRR +FFFBFBBRRL +FFBBBFBRLR +FFFBFFBLRL +FFFBBBBRLL +FBFBBBBLRL +BFBBBBBRLR +FBFBFFBRRL +BFBBFFBLLR +BFFFFFBLLL +BFBBBBFLRR +FFBFBBBLLR +BBFBBFFLLR +BFBFFBFRLL +FBBBBFBRRL +FBFFFBFLRL +FFBBFFBLLR +BFFBFFBLLR +FFBBBFBLRL +FBBBBFFLRR +BFFBFBFLRL +BFFBFFBLRR +FFBFBBBLLL +FBFBFFBRLL +FBBBFFFRRR +FBBBBBBLRL +FFBFFBFLLL +BBFFBFFRRL +FFFBBBFLRL +BFBBFBBRLR +FFFBFBFLRR +FBBBFBFRLL +BFBBFFFLLR +FBFBFFFLLL +BFFBBBFLLR +BBFBFFBRRL +FFBBBBBLLR +FFFBBBFLRR +BFBFBBBRRL +BFFFFFBRRL +FBFFBBBLLR +BBFBBBFLRR +BFFBBBBLRR +BBFBFFFLRR +FBBBFBFLLR +BBFFBFFRLL +FFBBFFFLRL +BBFBFFBLRR +BFFBBFBLLR +BFBBBBBLLR +BFFFBBFRLL +FBFBBBBRRL +FFBFBFFLLR +BFFFBFBLLL +FFFBBBFRLL +FBFFBBFLLR +FFFBBFBRLL +BFBFFFBRLL +BFFFBFFLLL +BBFFFFBRLR +FBBFFBBLRR +BBFFBBBRLL +BFBFFFFRLL +FBBBBBBRLR +FFFBFFBLLR +FFFBBBBRRR +FFFBBBBLRL +FBBBFFBLLR +BFBFBFBRRL +FFFFBBFRLR +FFBFFBFLLR +FFFFBBBRRL +FBBFFFFRLL +BFFBBBFRRL +FFFFBBFRRL +BFBFFBBRLL +FBFFFFFLRL +FFFBBFBLRR +FBFFFBFRRL +BFBFFBBLLR +FFFFBBFLLL +FBFFFBBRRL +BFFBBBFRLL +BFFFBFBRLR +BBFBFBBRLL +FBFBFBBRLL +BFBFFFBRRR +BFFFBBBLRR +FFBFBFFRLL +BFBBFBFRRR +BBFBBFFRRL +BBFFFBBLLL +FBFBFFBLLL +FBFFFFBLLR +FBFBBFFRLL +BBFBBBFLLL +FFBFBBFLRR +BFFBFBFLLR +BFFBBBBLRL +FFBFBBBLRR +FBBBFFFRLL +FFBFFFFLLL +FBFFFFBLLL +FBBBBBBRRR +BFBFFBBRRL +FFBBFFFLLL +FFBBBFBLRR +FFBBBBBLRL +BBFFBBFRLL +FFBBFBFLLL +BFFFFFFLLL +BFBBFBFRLR +BBFFFFFRRL +FFBBFFFRRL +FFFFBFBLRR +BFFFBBBLLR +FBFFBFFRRR +BFBFFFFLLL +FBBFBFFLRR +FFBBBFFRRR +FBBBFFFRLR +FFFFBBFLRR +FBFBFBBLLR +BFFFFFBRLR +BFFBFBFRLR +FBFFBFBLRR +FBFFFBFLLR +FBFFBBFLRR +FFBBFBBRLR +BFFFBFBRRL +BFBBFBBRLL +BBFFFFFLLL +FFBBBBBRLR +BBFBFFBLLL +BBFFFBBRLL +BBFBFFBRLL +BFFBFBFRRL +FFBFFBFRRL +BFBBFFBRRL +BFFFFFFRLL +FFBBBBFRLL +FFFBFBFLRL +FBBBBFFLLL +BBFBBFFLLL +BFFFFBBRRL +BFFFBFBLRL +FFFBFBBLRR +BFFFBFFRRR +FFBBBFFRLR +BFBFBBFRRL +BFFBBFFRRR +BFFBBFFLRL +FBBBBFBRLL +FFFFBBFLLR +BFBFFFFRLR +BBFFBFFLLR +BBFBFFBLLR +FFFBBFBLLL +BFBFBFFRRR +FBBFBFFLRL +BFFBFBFRLL +FFBBFFBLLL +FBBBBFFLRL +FFBBFFFLLR +FFFBBFBLLR +BFBBFFFLLL +BFFBFBFLLL +BFFBBFBLRR +BFFBFBFLRR +FBBFFFFRRR +BFBBFFBRLR +BFFFBBFRRR +BFBBBFBRRL +FFBBFBBLLL +FBBBFBBLLR +BBFBFBBRRL +FFBFFBFRLL +FFFFBBFRLL +BBFFBBFLRR +FBFBFBFRRL +FBBBFBBLRR +FBFFBFFLRR +FFFBFBFLLR +FBBFBFFRRL +FBFFFBBRLL +FFBFFBBLLR +FFBFBFFRLR +FFBFBBBRLL +FFFBFFFLRL +FFFBBFFRLR +FBFBBFBRLL +BFFFBBFLRL +BFBBFBBRRR +FBBFBBFRRR +FFBBFBFRRR +BFFBFBBLRL +FFFFBBBLLL +BFFFFFBLRR +FBBFBBBLRR +FBBBBBFLLL +FFBFFBFRRR +BBFFBBFRRR +FFBFBBFLLR +FFBBBFFLRR +BFFFBBFRRL +BFBFBFFLRL +BFBBFBFLRL +FFBBFBFLRR +FFFBBFBRLR +FBFBBBBRLR +BFFFBBFRLR +FFFBFFFLRR +BFBBFFFRRL +BFBBBBBLRR +FBFFFFBRRR +FBBFBBBLLL +FFFFBBBRLL +BBFFFBBRRL +BBFBFFFRRR +FFBFFFFRLR +FFBBFFBRLL +FBFFFBBLLL +BBFBFBFLRR +FBBBFBFLRR +BFBFBFFRLL +BBFBBBFLRL +FBFFFFFLLR +BFBFBFBLLR +BBFBBBFRLR +BFBBBFFRLR +FFBBFFFLRR +FBFFFBBRLR +FFBFFFBRLL +BFBBFBBRRL +FFBBFFBRLR +BFBBFFBLLL +FFBBBBFLLL +BBFBFFFRRL +FBFBBBFRLL +FBFBBFFLRR +FBBFBFFLLL +BFBFFBFRRL +FBFBFFFRRL +BFBFBBFRLL +BFFFBFFRLR +FBFBFBFRLL +BFBBFBBLRR +FBBFBFBLRR +BFFBFFBRLL +FFFBFFFRLL +FFBFFFFLRL +FBBBFFFLRR +FFFBFFBRLL +BFFFBBBRLR +FBFBBFBLLR +BFBBBBFRLL +BBFFBBBLRR +FBFFFFFRRL +BFBFFFFRRL +FBBBBBBLLR +FBBFFFBRLR +FBBBFFBLLL +BBFBBBFRLL +BFFBBFBLLL +BFFFFFFLLR +FBBFBBBRRR +BFFFFBBLRR +BBFFFBFRLR +FFFBBBFLLL +BFFBBBBRLL +BFBBBBFLLL +BFBFBBFLRR +BFBFFFFLLR +BBFBFBFRRL +FFBBFFBRRL +BFBBBBFRLR +FBBBFFBRRL +BBFBFBBLRL +BFBBFFBLRR +FBBFFFFLRL +FBBBBFFRRR +FFBBBFBLLR +FBBFFBFRLL +FBFBBFBLLL +FFFFBFBLLR +FBBBFBFRRL +FBFFBBFLRL +BFBBFFFRLR +BFFFFBBRRR +FFBBBBBRLL +BFFFBBBRRR +FBBBBBFLRR +BFFFFBFRRR +BFBFFFFLRL +FFFBFBFRLL +BFFFFBFLLR +BBFBFFBRRR +FBFFBFFLLL diff --git a/data/5_2021.txt b/data/5_2021.txt new file mode 100644 index 0000000..6873750 --- /dev/null +++ b/data/5_2021.txt @@ -0,0 +1,500 @@ +959,103 -> 139,923 +899,63 -> 899,53 +591,871 -> 364,644 +739,913 -> 310,484 +460,309 -> 460,705 +351,389 -> 351,837 +420,55 -> 420,541 +916,520 -> 382,520 +136,604 -> 295,604 +343,59 -> 142,59 +951,206 -> 806,206 +984,950 -> 61,27 +739,388 -> 988,388 +374,370 -> 644,370 +403,504 -> 798,899 +943,535 -> 229,535 +149,227 -> 583,661 +62,126 -> 62,352 +131,391 -> 131,717 +254,944 -> 254,220 +572,111 -> 572,47 +336,249 -> 830,743 +898,858 -> 203,163 +203,320 -> 825,942 +19,318 -> 19,120 +740,432 -> 740,39 +591,383 -> 220,754 +445,592 -> 19,592 +202,370 -> 837,370 +473,916 -> 600,789 +118,955 -> 884,189 +377,376 -> 533,532 +160,264 -> 160,62 +627,572 -> 627,679 +217,690 -> 217,629 +685,323 -> 866,504 +391,309 -> 493,207 +872,776 -> 357,776 +116,326 -> 116,426 +82,900 -> 832,900 +594,862 -> 594,593 +802,636 -> 802,223 +862,226 -> 862,787 +313,573 -> 834,573 +145,631 -> 13,499 +545,433 -> 420,308 +427,623 -> 427,808 +898,120 -> 511,120 +859,811 -> 859,28 +715,958 -> 715,893 +115,234 -> 484,234 +125,253 -> 50,253 +737,265 -> 158,265 +523,965 -> 523,983 +118,51 -> 118,766 +455,774 -> 455,357 +680,881 -> 925,881 +191,186 -> 187,186 +821,629 -> 792,658 +397,906 -> 397,962 +988,811 -> 988,427 +91,733 -> 519,733 +46,172 -> 566,172 +740,619 -> 880,759 +609,465 -> 609,702 +289,211 -> 289,620 +622,135 -> 622,929 +113,53 -> 872,53 +559,713 -> 559,132 +894,237 -> 211,920 +237,259 -> 237,39 +738,542 -> 976,542 +163,34 -> 525,34 +681,672 -> 264,255 +37,827 -> 722,827 +60,803 -> 514,349 +433,866 -> 433,257 +379,493 -> 379,643 +697,588 -> 192,83 +875,646 -> 318,89 +634,983 -> 634,111 +636,69 -> 636,41 +911,780 -> 701,570 +792,71 -> 956,71 +682,338 -> 608,412 +257,768 -> 450,575 +112,25 -> 795,708 +730,86 -> 730,65 +966,785 -> 789,608 +390,263 -> 483,356 +90,852 -> 90,471 +507,914 -> 769,914 +803,535 -> 803,245 +710,787 -> 570,787 +138,842 -> 270,710 +862,988 -> 862,656 +56,408 -> 849,408 +16,10 -> 979,973 +982,14 -> 12,984 +647,915 -> 38,306 +797,487 -> 19,487 +539,933 -> 924,933 +509,734 -> 176,734 +813,505 -> 976,505 +474,987 -> 474,896 +21,200 -> 164,200 +986,973 -> 31,18 +919,830 -> 111,22 +32,574 -> 456,150 +743,595 -> 842,595 +623,306 -> 722,306 +878,367 -> 519,367 +924,221 -> 924,231 +86,950 -> 773,263 +950,248 -> 537,248 +149,155 -> 962,968 +449,568 -> 179,568 +186,304 -> 868,986 +921,320 -> 639,602 +602,262 -> 602,500 +602,33 -> 602,248 +380,731 -> 423,774 +535,110 -> 638,110 +552,317 -> 552,75 +173,667 -> 173,847 +707,480 -> 195,480 +833,398 -> 267,964 +276,716 -> 413,716 +342,816 -> 922,816 +24,184 -> 715,875 +762,330 -> 717,285 +718,886 -> 718,551 +707,834 -> 707,704 +479,578 -> 161,896 +145,297 -> 145,435 +760,651 -> 536,875 +954,629 -> 954,816 +305,949 -> 305,919 +55,132 -> 55,233 +469,85 -> 439,85 +653,990 -> 536,990 +876,531 -> 432,87 +698,207 -> 698,672 +11,70 -> 766,825 +591,357 -> 30,918 +697,987 -> 697,823 +610,903 -> 370,663 +319,678 -> 319,504 +337,150 -> 309,150 +876,57 -> 311,57 +673,268 -> 345,596 +895,364 -> 518,741 +327,662 -> 941,48 +77,709 -> 110,742 +194,78 -> 661,78 +587,24 -> 825,24 +503,317 -> 719,317 +459,632 -> 704,387 +717,292 -> 835,292 +912,927 -> 72,87 +510,527 -> 146,527 +336,771 -> 336,266 +566,961 -> 496,961 +969,335 -> 122,335 +925,443 -> 925,397 +316,812 -> 606,812 +815,795 -> 116,795 +169,36 -> 354,36 +358,274 -> 389,274 +302,147 -> 839,684 +762,372 -> 972,372 +172,721 -> 682,211 +265,150 -> 248,167 +753,559 -> 307,559 +823,121 -> 823,126 +498,856 -> 498,135 +75,977 -> 75,381 +541,297 -> 541,320 +735,108 -> 866,108 +434,907 -> 868,907 +915,959 -> 255,959 +967,666 -> 967,209 +361,600 -> 361,222 +314,580 -> 314,497 +175,989 -> 523,641 +957,97 -> 311,743 +956,227 -> 12,227 +95,364 -> 95,742 +857,141 -> 193,805 +388,651 -> 468,731 +582,177 -> 324,177 +68,272 -> 68,720 +543,490 -> 910,490 +508,281 -> 902,281 +823,380 -> 823,296 +23,10 -> 946,933 +813,70 -> 813,450 +881,893 -> 598,893 +535,781 -> 973,781 +80,890 -> 909,61 +604,630 -> 307,927 +836,917 -> 184,917 +76,727 -> 10,727 +727,235 -> 727,578 +629,80 -> 892,80 +110,655 -> 663,102 +985,12 -> 11,986 +830,656 -> 830,761 +660,869 -> 660,543 +381,340 -> 381,562 +392,735 -> 417,735 +855,24 -> 320,24 +801,669 -> 278,146 +730,964 -> 107,964 +523,158 -> 385,20 +27,833 -> 27,987 +569,707 -> 500,707 +527,732 -> 527,424 +74,88 -> 273,287 +143,974 -> 143,735 +247,388 -> 813,954 +577,14 -> 945,382 +49,43 -> 953,947 +332,210 -> 332,143 +69,280 -> 949,280 +25,923 -> 904,44 +306,569 -> 306,470 +158,273 -> 113,228 +771,355 -> 694,278 +515,115 -> 245,385 +427,381 -> 427,729 +16,987 -> 987,16 +319,463 -> 319,234 +854,977 -> 66,189 +794,194 -> 794,183 +576,65 -> 576,843 +37,964 -> 734,964 +740,920 -> 740,877 +245,487 -> 245,957 +404,794 -> 853,794 +660,656 -> 660,756 +921,605 -> 127,605 +650,894 -> 916,894 +968,893 -> 481,406 +986,979 -> 21,14 +154,303 -> 498,647 +720,338 -> 229,338 +62,936 -> 62,897 +55,820 -> 55,923 +812,31 -> 551,31 +338,466 -> 951,466 +663,492 -> 775,604 +449,602 -> 39,602 +44,403 -> 44,144 +58,62 -> 339,62 +713,730 -> 713,502 +704,525 -> 976,797 +372,709 -> 372,680 +709,387 -> 153,387 +922,103 -> 615,103 +629,839 -> 121,839 +206,722 -> 529,722 +232,556 -> 422,746 +300,470 -> 300,726 +376,820 -> 622,574 +834,25 -> 255,604 +271,200 -> 271,875 +804,934 -> 872,934 +900,753 -> 900,632 +604,323 -> 604,70 +890,911 -> 890,41 +464,169 -> 812,169 +850,196 -> 850,903 +34,574 -> 34,54 +718,59 -> 462,315 +431,923 -> 737,923 +433,573 -> 433,420 +297,478 -> 297,775 +756,545 -> 544,545 +247,708 -> 247,702 +736,835 -> 173,272 +319,85 -> 319,827 +931,775 -> 683,775 +292,315 -> 451,315 +397,435 -> 380,435 +987,978 -> 82,73 +227,349 -> 227,724 +349,741 -> 899,191 +965,325 -> 765,125 +849,306 -> 88,306 +516,548 -> 516,902 +919,395 -> 568,395 +736,507 -> 192,507 +960,782 -> 196,18 +431,413 -> 510,492 +911,696 -> 911,830 +888,225 -> 174,225 +57,790 -> 57,953 +858,399 -> 119,399 +59,302 -> 290,302 +456,907 -> 456,599 +374,743 -> 374,565 +183,107 -> 183,171 +58,699 -> 288,699 +886,970 -> 109,193 +940,395 -> 806,261 +781,480 -> 596,665 +456,724 -> 265,724 +414,406 -> 299,521 +115,898 -> 115,863 +34,543 -> 34,496 +900,843 -> 900,457 +165,209 -> 189,209 +976,627 -> 539,190 +252,202 -> 137,202 +584,339 -> 550,373 +580,153 -> 380,353 +232,412 -> 650,830 +910,833 -> 88,11 +418,245 -> 829,245 +298,823 -> 907,214 +91,876 -> 495,876 +315,874 -> 650,539 +907,635 -> 365,635 +339,313 -> 320,313 +362,435 -> 362,938 +152,664 -> 152,391 +253,210 -> 272,210 +216,396 -> 216,726 +852,912 -> 15,75 +882,828 -> 689,828 +674,533 -> 674,523 +469,719 -> 469,79 +733,169 -> 665,101 +734,632 -> 717,632 +615,565 -> 615,114 +979,720 -> 243,720 +827,125 -> 827,919 +605,419 -> 601,419 +749,13 -> 433,329 +990,902 -> 990,843 +186,679 -> 186,457 +374,796 -> 736,796 +133,867 -> 133,801 +757,622 -> 812,567 +351,179 -> 351,509 +214,748 -> 575,748 +177,903 -> 861,219 +747,981 -> 747,64 +588,125 -> 588,557 +464,338 -> 769,338 +645,669 -> 125,149 +579,352 -> 138,352 +77,605 -> 520,605 +698,816 -> 698,917 +112,943 -> 112,834 +731,720 -> 724,720 +887,440 -> 976,351 +676,301 -> 676,741 +870,732 -> 870,648 +250,826 -> 413,826 +399,720 -> 543,864 +834,93 -> 468,459 +415,475 -> 415,641 +793,415 -> 47,415 +365,476 -> 365,31 +195,154 -> 813,154 +503,605 -> 773,605 +553,121 -> 851,121 +25,420 -> 423,818 +943,110 -> 258,110 +775,436 -> 826,436 +16,161 -> 16,889 +702,555 -> 920,555 +589,858 -> 533,802 +932,404 -> 932,539 +647,275 -> 647,962 +87,179 -> 326,179 +931,588 -> 931,287 +868,96 -> 557,96 +879,28 -> 875,28 +375,132 -> 287,44 +484,352 -> 644,512 +448,566 -> 448,214 +734,460 -> 717,460 +550,379 -> 550,674 +964,184 -> 820,328 +167,504 -> 387,504 +594,777 -> 952,777 +328,712 -> 837,712 +600,773 -> 546,773 +955,954 -> 82,81 +863,790 -> 863,86 +831,773 -> 32,773 +987,11 -> 19,979 +901,878 -> 901,177 +427,341 -> 721,635 +690,835 -> 567,835 +557,724 -> 14,181 +591,20 -> 205,406 +846,865 -> 846,859 +644,646 -> 742,548 +187,376 -> 187,563 +367,806 -> 250,923 +332,731 -> 468,731 +378,431 -> 469,431 +844,949 -> 844,452 +172,320 -> 735,320 +597,639 -> 633,639 +353,831 -> 353,307 +355,392 -> 465,392 +624,179 -> 548,255 +441,928 -> 401,888 +442,680 -> 442,569 +567,385 -> 908,44 +10,561 -> 603,561 +851,289 -> 13,289 +832,143 -> 832,64 +366,851 -> 67,851 +890,404 -> 333,961 +83,22 -> 963,902 +10,783 -> 821,783 +369,481 -> 369,611 +943,356 -> 846,356 +675,95 -> 335,435 +442,928 -> 442,764 +500,643 -> 334,643 +90,207 -> 620,207 +520,412 -> 745,187 +586,89 -> 613,89 +411,424 -> 595,424 +938,650 -> 232,650 +216,773 -> 76,773 +895,690 -> 895,294 +250,886 -> 250,605 +296,422 -> 863,989 +534,626 -> 534,707 +577,608 -> 52,83 +61,674 -> 714,21 +844,126 -> 844,694 +565,541 -> 253,229 +62,24 -> 986,948 +588,901 -> 588,212 +541,508 -> 541,141 +516,376 -> 589,449 +390,215 -> 749,215 +324,878 -> 296,850 +592,408 -> 592,158 +433,207 -> 172,207 +139,72 -> 139,121 +471,676 -> 268,676 +374,433 -> 374,95 +672,459 -> 640,427 +348,577 -> 843,82 +903,466 -> 903,348 +437,759 -> 726,470 +152,101 -> 325,274 +933,897 -> 335,897 +516,877 -> 505,866 +890,715 -> 570,715 +78,124 -> 871,917 +360,645 -> 967,645 +645,271 -> 645,57 +693,878 -> 693,159 +49,77 -> 49,744 +935,914 -> 97,76 +941,726 -> 941,464 +756,985 -> 756,480 +887,378 -> 887,529 +405,925 -> 405,533 +533,156 -> 201,156 +565,535 -> 120,90 +51,15 -> 967,931 +660,218 -> 660,339 +522,682 -> 571,682 +958,899 -> 729,899 +521,687 -> 288,687 +643,148 -> 468,323 +989,971 -> 68,50 +729,273 -> 311,691 +245,205 -> 305,205 +634,747 -> 634,605 +280,407 -> 488,199 +109,931 -> 706,334 +849,694 -> 615,928 +794,84 -> 218,84 +669,184 -> 865,184 +936,834 -> 234,132 +691,445 -> 914,668 +423,161 -> 515,69 +81,674 -> 37,674 +292,423 -> 292,741 +188,306 -> 844,962 +204,309 -> 204,705 +961,652 -> 746,652 +985,987 -> 11,13 +139,153 -> 936,950 +436,978 -> 244,978 +921,633 -> 921,340 +872,63 -> 233,63 diff --git a/data/5_2022.txt b/data/5_2022.txt new file mode 100644 index 0000000..a22feef --- /dev/null +++ b/data/5_2022.txt @@ -0,0 +1,513 @@ +[N] [Q] [N] +[R] [F] [Q] [G] [M] +[J] [Z] [T] [R] [H] [J] +[T] [H] [G] [R] [B] [N] [T] +[Z] [J] [J] [G] [F] [Z] [S] [M] +[B] [N] [N] [N] [Q] [W] [L] [Q] [S] +[D] [S] [R] [V] [T] [C] [C] [N] [G] +[F] [R] [C] [F] [L] [Q] [F] [D] [P] + 1 2 3 4 5 6 7 8 9 + +move 3 from 9 to 4 +move 2 from 5 to 2 +move 8 from 1 to 9 +move 4 from 7 to 1 +move 5 from 3 to 8 +move 3 from 3 to 7 +move 11 from 8 to 3 +move 7 from 3 to 6 +move 2 from 5 to 9 +move 3 from 1 to 6 +move 6 from 2 to 4 +move 6 from 7 to 5 +move 1 from 6 to 1 +move 1 from 9 to 4 +move 16 from 4 to 9 +move 2 from 1 to 2 +move 1 from 4 to 6 +move 1 from 3 to 7 +move 2 from 2 to 4 +move 1 from 7 to 9 +move 22 from 9 to 8 +move 1 from 6 to 3 +move 18 from 8 to 5 +move 3 from 8 to 2 +move 3 from 2 to 9 +move 13 from 6 to 7 +move 1 from 6 to 7 +move 4 from 3 to 6 +move 2 from 6 to 3 +move 2 from 3 to 8 +move 3 from 7 to 8 +move 14 from 5 to 2 +move 3 from 2 to 5 +move 2 from 8 to 4 +move 4 from 8 to 6 +move 4 from 6 to 4 +move 11 from 5 to 2 +move 3 from 9 to 2 +move 7 from 2 to 3 +move 11 from 7 to 2 +move 1 from 5 to 7 +move 5 from 6 to 8 +move 30 from 2 to 7 +move 23 from 7 to 2 +move 4 from 3 to 4 +move 3 from 9 to 6 +move 4 from 8 to 2 +move 1 from 8 to 2 +move 2 from 7 to 9 +move 4 from 2 to 3 +move 1 from 5 to 9 +move 6 from 4 to 7 +move 5 from 3 to 6 +move 1 from 3 to 6 +move 1 from 9 to 2 +move 16 from 2 to 5 +move 7 from 7 to 6 +move 9 from 2 to 1 +move 2 from 1 to 4 +move 8 from 5 to 3 +move 5 from 7 to 4 +move 1 from 9 to 8 +move 9 from 3 to 6 +move 25 from 6 to 8 +move 2 from 9 to 5 +move 3 from 4 to 2 +move 7 from 4 to 1 +move 1 from 8 to 7 +move 6 from 5 to 2 +move 11 from 8 to 5 +move 1 from 7 to 9 +move 10 from 1 to 2 +move 6 from 5 to 1 +move 1 from 4 to 2 +move 13 from 8 to 1 +move 17 from 1 to 2 +move 5 from 1 to 9 +move 1 from 8 to 4 +move 1 from 1 to 3 +move 1 from 3 to 6 +move 1 from 9 to 3 +move 2 from 4 to 5 +move 1 from 4 to 8 +move 1 from 9 to 1 +move 8 from 5 to 7 +move 1 from 8 to 1 +move 7 from 7 to 6 +move 2 from 1 to 2 +move 1 from 3 to 6 +move 2 from 5 to 4 +move 8 from 2 to 1 +move 1 from 9 to 7 +move 1 from 5 to 1 +move 2 from 7 to 3 +move 2 from 3 to 7 +move 2 from 7 to 8 +move 2 from 1 to 5 +move 3 from 9 to 2 +move 2 from 8 to 9 +move 1 from 9 to 2 +move 1 from 9 to 8 +move 1 from 8 to 7 +move 6 from 6 to 5 +move 1 from 6 to 2 +move 2 from 4 to 5 +move 2 from 6 to 8 +move 1 from 7 to 1 +move 2 from 8 to 4 +move 11 from 2 to 5 +move 18 from 5 to 6 +move 6 from 2 to 6 +move 10 from 2 to 7 +move 1 from 4 to 3 +move 7 from 2 to 8 +move 7 from 1 to 4 +move 6 from 7 to 8 +move 2 from 7 to 3 +move 8 from 4 to 7 +move 1 from 1 to 3 +move 1 from 2 to 1 +move 4 from 7 to 1 +move 4 from 1 to 3 +move 2 from 3 to 9 +move 2 from 5 to 4 +move 1 from 2 to 1 +move 2 from 1 to 5 +move 1 from 3 to 1 +move 2 from 5 to 2 +move 1 from 2 to 6 +move 5 from 7 to 4 +move 1 from 1 to 2 +move 10 from 8 to 1 +move 2 from 2 to 7 +move 2 from 7 to 1 +move 1 from 7 to 9 +move 1 from 5 to 7 +move 3 from 8 to 7 +move 3 from 3 to 6 +move 3 from 7 to 1 +move 5 from 1 to 4 +move 1 from 7 to 6 +move 22 from 6 to 3 +move 2 from 6 to 2 +move 19 from 3 to 4 +move 15 from 4 to 8 +move 9 from 8 to 4 +move 5 from 6 to 8 +move 2 from 2 to 8 +move 2 from 9 to 4 +move 7 from 1 to 5 +move 1 from 1 to 3 +move 1 from 9 to 7 +move 5 from 8 to 3 +move 4 from 8 to 1 +move 5 from 1 to 5 +move 10 from 4 to 3 +move 3 from 4 to 2 +move 2 from 8 to 3 +move 12 from 4 to 8 +move 1 from 7 to 6 +move 3 from 2 to 9 +move 2 from 4 to 5 +move 5 from 3 to 7 +move 1 from 7 to 2 +move 1 from 1 to 6 +move 1 from 7 to 2 +move 15 from 3 to 8 +move 10 from 5 to 6 +move 3 from 7 to 8 +move 1 from 5 to 8 +move 1 from 2 to 3 +move 7 from 6 to 1 +move 3 from 5 to 3 +move 5 from 3 to 5 +move 3 from 5 to 4 +move 2 from 4 to 9 +move 2 from 3 to 5 +move 14 from 8 to 5 +move 1 from 9 to 1 +move 16 from 5 to 3 +move 16 from 3 to 6 +move 2 from 9 to 8 +move 21 from 6 to 7 +move 2 from 1 to 7 +move 1 from 2 to 7 +move 4 from 1 to 7 +move 1 from 4 to 7 +move 16 from 8 to 5 +move 20 from 7 to 4 +move 1 from 9 to 8 +move 1 from 7 to 4 +move 3 from 8 to 6 +move 1 from 9 to 1 +move 2 from 1 to 4 +move 2 from 5 to 2 +move 5 from 4 to 7 +move 1 from 6 to 9 +move 11 from 7 to 6 +move 2 from 7 to 5 +move 12 from 6 to 2 +move 13 from 2 to 1 +move 1 from 2 to 3 +move 1 from 8 to 4 +move 6 from 4 to 1 +move 1 from 6 to 7 +move 7 from 4 to 9 +move 8 from 9 to 3 +move 2 from 8 to 3 +move 10 from 5 to 4 +move 11 from 1 to 8 +move 1 from 1 to 3 +move 5 from 1 to 8 +move 8 from 5 to 6 +move 13 from 8 to 9 +move 12 from 3 to 5 +move 12 from 5 to 9 +move 1 from 7 to 9 +move 1 from 1 to 2 +move 1 from 1 to 4 +move 3 from 8 to 5 +move 1 from 2 to 5 +move 1 from 4 to 8 +move 5 from 6 to 3 +move 1 from 8 to 4 +move 13 from 4 to 7 +move 3 from 7 to 6 +move 1 from 1 to 4 +move 4 from 4 to 2 +move 1 from 6 to 3 +move 2 from 5 to 9 +move 2 from 5 to 9 +move 1 from 4 to 8 +move 6 from 9 to 4 +move 22 from 9 to 2 +move 8 from 7 to 4 +move 7 from 2 to 1 +move 3 from 3 to 8 +move 2 from 6 to 7 +move 14 from 4 to 2 +move 2 from 6 to 1 +move 1 from 8 to 7 +move 3 from 3 to 9 +move 1 from 8 to 4 +move 3 from 1 to 9 +move 3 from 9 to 3 +move 31 from 2 to 8 +move 8 from 8 to 4 +move 1 from 9 to 1 +move 9 from 4 to 5 +move 7 from 5 to 6 +move 2 from 5 to 1 +move 1 from 2 to 1 +move 1 from 7 to 9 +move 1 from 2 to 9 +move 2 from 6 to 4 +move 4 from 7 to 4 +move 4 from 9 to 8 +move 6 from 4 to 1 +move 1 from 3 to 2 +move 1 from 3 to 6 +move 1 from 9 to 2 +move 2 from 2 to 4 +move 1 from 9 to 1 +move 1 from 3 to 1 +move 17 from 1 to 9 +move 4 from 6 to 2 +move 1 from 9 to 7 +move 4 from 9 to 7 +move 1 from 8 to 4 +move 3 from 7 to 6 +move 1 from 4 to 9 +move 10 from 8 to 5 +move 6 from 6 to 5 +move 1 from 7 to 2 +move 1 from 1 to 4 +move 1 from 4 to 5 +move 9 from 8 to 3 +move 4 from 3 to 9 +move 1 from 4 to 6 +move 1 from 6 to 5 +move 1 from 4 to 8 +move 2 from 3 to 8 +move 1 from 3 to 8 +move 3 from 8 to 9 +move 5 from 2 to 9 +move 1 from 7 to 9 +move 5 from 8 to 7 +move 3 from 8 to 4 +move 2 from 8 to 5 +move 24 from 9 to 7 +move 1 from 3 to 5 +move 2 from 9 to 4 +move 22 from 7 to 9 +move 1 from 3 to 4 +move 6 from 4 to 6 +move 4 from 6 to 7 +move 10 from 5 to 3 +move 8 from 3 to 5 +move 2 from 3 to 4 +move 2 from 4 to 6 +move 10 from 7 to 3 +move 21 from 9 to 1 +move 2 from 3 to 4 +move 4 from 3 to 8 +move 2 from 4 to 8 +move 1 from 7 to 8 +move 4 from 6 to 8 +move 3 from 5 to 4 +move 8 from 8 to 2 +move 18 from 1 to 6 +move 3 from 4 to 1 +move 1 from 2 to 8 +move 5 from 1 to 8 +move 3 from 3 to 6 +move 3 from 2 to 9 +move 3 from 8 to 1 +move 11 from 5 to 2 +move 3 from 8 to 7 +move 10 from 2 to 9 +move 1 from 7 to 9 +move 3 from 8 to 1 +move 2 from 7 to 8 +move 6 from 9 to 5 +move 4 from 2 to 8 +move 8 from 5 to 8 +move 1 from 3 to 7 +move 2 from 5 to 6 +move 3 from 1 to 6 +move 2 from 1 to 6 +move 4 from 9 to 8 +move 4 from 9 to 8 +move 1 from 9 to 4 +move 9 from 6 to 9 +move 16 from 6 to 9 +move 1 from 4 to 7 +move 1 from 2 to 9 +move 5 from 8 to 5 +move 4 from 5 to 1 +move 6 from 1 to 7 +move 12 from 8 to 4 +move 5 from 8 to 1 +move 6 from 9 to 3 +move 1 from 1 to 6 +move 2 from 5 to 8 +move 12 from 4 to 7 +move 2 from 8 to 4 +move 1 from 4 to 8 +move 1 from 7 to 6 +move 1 from 4 to 6 +move 14 from 7 to 1 +move 3 from 3 to 2 +move 7 from 9 to 7 +move 3 from 3 to 5 +move 15 from 1 to 2 +move 2 from 5 to 9 +move 1 from 8 to 9 +move 16 from 9 to 1 +move 1 from 5 to 9 +move 5 from 6 to 2 +move 12 from 7 to 2 +move 20 from 2 to 6 +move 10 from 2 to 6 +move 11 from 1 to 7 +move 2 from 7 to 4 +move 2 from 2 to 5 +move 1 from 2 to 3 +move 2 from 5 to 6 +move 1 from 9 to 5 +move 1 from 5 to 9 +move 25 from 6 to 7 +move 25 from 7 to 6 +move 1 from 3 to 1 +move 1 from 2 to 5 +move 1 from 4 to 3 +move 33 from 6 to 3 +move 1 from 9 to 5 +move 2 from 3 to 5 +move 28 from 3 to 9 +move 5 from 1 to 9 +move 4 from 1 to 8 +move 2 from 3 to 2 +move 2 from 8 to 1 +move 1 from 4 to 6 +move 3 from 5 to 3 +move 1 from 2 to 4 +move 2 from 2 to 8 +move 1 from 6 to 5 +move 30 from 9 to 2 +move 7 from 2 to 6 +move 1 from 1 to 3 +move 1 from 1 to 7 +move 1 from 5 to 6 +move 1 from 5 to 4 +move 5 from 7 to 4 +move 4 from 7 to 3 +move 1 from 3 to 7 +move 3 from 8 to 7 +move 8 from 3 to 1 +move 3 from 1 to 7 +move 4 from 1 to 4 +move 3 from 9 to 8 +move 8 from 6 to 2 +move 18 from 2 to 6 +move 6 from 7 to 2 +move 1 from 1 to 7 +move 3 from 4 to 7 +move 5 from 4 to 8 +move 2 from 8 to 7 +move 7 from 2 to 5 +move 5 from 2 to 7 +move 10 from 7 to 9 +move 5 from 5 to 9 +move 1 from 3 to 9 +move 5 from 2 to 6 +move 3 from 7 to 9 +move 2 from 5 to 6 +move 2 from 2 to 9 +move 2 from 8 to 7 +move 1 from 4 to 5 +move 8 from 9 to 2 +move 5 from 6 to 7 +move 4 from 9 to 1 +move 4 from 8 to 9 +move 12 from 9 to 1 +move 16 from 1 to 4 +move 12 from 6 to 2 +move 3 from 7 to 6 +move 3 from 7 to 3 +move 1 from 9 to 4 +move 12 from 4 to 5 +move 2 from 4 to 3 +move 1 from 7 to 1 +move 4 from 4 to 3 +move 1 from 8 to 2 +move 6 from 3 to 1 +move 1 from 1 to 8 +move 7 from 2 to 5 +move 1 from 8 to 1 +move 4 from 5 to 4 +move 5 from 5 to 9 +move 1 from 3 to 8 +move 1 from 9 to 7 +move 1 from 8 to 1 +move 4 from 5 to 6 +move 5 from 5 to 9 +move 7 from 9 to 5 +move 11 from 6 to 4 +move 1 from 9 to 4 +move 1 from 9 to 1 +move 1 from 7 to 2 +move 9 from 4 to 3 +move 5 from 1 to 9 +move 3 from 5 to 1 +move 5 from 9 to 8 +move 8 from 3 to 1 +move 2 from 5 to 3 +move 7 from 2 to 5 +move 1 from 6 to 4 +move 3 from 5 to 9 +move 3 from 6 to 9 +move 3 from 2 to 9 +move 5 from 3 to 6 +move 1 from 9 to 5 +move 4 from 8 to 3 +move 1 from 8 to 4 +move 8 from 1 to 3 +move 12 from 3 to 7 +move 1 from 2 to 4 +move 3 from 2 to 8 +move 6 from 7 to 6 +move 4 from 5 to 7 +move 5 from 9 to 7 +move 2 from 9 to 2 +move 1 from 9 to 5 +move 4 from 5 to 1 +move 1 from 5 to 4 +move 14 from 7 to 6 +move 1 from 1 to 7 +move 10 from 4 to 5 +move 4 from 1 to 2 +move 1 from 4 to 6 +move 1 from 7 to 4 +move 17 from 6 to 8 +move 1 from 5 to 7 +move 10 from 5 to 4 +move 1 from 2 to 6 +move 4 from 2 to 6 +move 13 from 6 to 1 +move 9 from 4 to 3 +move 2 from 2 to 4 +move 1 from 6 to 7 +move 1 from 4 to 3 +move 8 from 3 to 5 +move 1 from 3 to 4 +move 17 from 1 to 3 +move 15 from 3 to 7 +move 3 from 4 to 1 +move 6 from 8 to 9 +move 6 from 9 to 1 +move 2 from 3 to 1 +move 2 from 5 to 2 +move 6 from 7 to 6 +move 3 from 6 to 9 diff --git a/data/5_2023.txt b/data/5_2023.txt new file mode 100644 index 0000000..dbfd24b --- /dev/null +++ b/data/5_2023.txt @@ -0,0 +1,226 @@ +seeds: 1310704671 312415190 1034820096 106131293 682397438 30365957 2858337556 1183890307 665754577 13162298 2687187253 74991378 1782124901 3190497 208902075 226221606 4116455504 87808390 2403629707 66592398 + +seed-to-soil map: +2879792625 0 201678008 +2425309256 1035790247 296756276 +2722065532 1759457739 157727093 +400354950 1917184832 1164285801 +0 201678008 400354950 +1564640751 602032958 433757289 +1998398040 1332546523 426911216 + +soil-to-fertilizer map: +3434127746 3670736129 29685965 +1809924203 1168707872 308179 +2108903682 1437989162 44479258 +237181023 2915565442 27901445 +1173998623 2434447796 13633544 +75539025 740516241 29278225 +41104738 706081954 34434287 +3279397405 3488165796 12149874 +3463813711 3827946213 157129363 +1810232382 769794466 15695437 +877824710 677909236 28172718 +2215709448 1746651561 307558709 +1825927819 1692597620 54053941 +104817250 420198730 132363773 +2916210208 392942051 27256679 +1022591555 2448081340 151407068 +3925105941 3985075576 182313682 +1897186025 2212065968 211717657 +2198981202 1304666789 16728246 +850656807 2054210270 27167903 +3766599721 3500315670 158506220 +3419071398 3279397405 15056348 +7830088 2126976435 33274650 +3620943074 3658821890 11914239 +1264213180 2599488408 138420934 +811586355 2160251085 12020898 +3632857313 3354423388 133742408 +1612763314 1169016051 108601184 +1721364498 2172271983 39793985 +1187632167 601328223 76581013 +823607253 1277617235 27049554 +728944387 2737909342 82641968 +0 2426617708 7830088 +3291547279 3700422094 127524119 +1402634114 1482468420 210129200 +905997428 1321395035 107714902 +4107419623 3294453753 59969635 +1879981760 785489903 17204265 +2153382940 2081378173 45598262 +277361019 802694168 366013704 +1761158483 552562503 48765720 +646208806 2832829861 82735581 +2523268157 0 392942051 +1013712330 1429109937 8879225 +643374723 2423783625 2834083 +265082468 2820551310 12278551 + +fertilizer-to-water map: +4253122607 1473424614 41844689 +3040447798 2659805568 46237011 +0 146022665 42081460 +55436822 188104125 65067713 +42081460 132667303 13355362 +2429043181 3587614447 54605699 +888256662 672288214 24436041 +4064969883 1978094070 95324589 +3086684809 977403736 339965972 +120504535 253171838 93494065 +2810558403 2603914183 55891385 +3898695123 2901215107 166274760 +2483648880 4002918707 103777141 +1300545784 2848997109 52217998 +2418717938 1463099371 10325243 +1022681665 808998429 30429585 +2866449788 1411682577 4750813 +1181605510 4172708724 118940274 +2078503930 2466708865 42530000 +1105548530 1545561518 76056980 +978705579 2573458117 30456066 +2324405069 1317369708 94312869 +1991848966 3429793336 22435712 +4190586687 2706042579 43180396 +1352763782 1416433390 46665981 +3760606255 1683093685 138088868 +1399429763 3452229048 135385399 +2121033930 839428014 137975722 +2940673664 2749222975 99774134 +1053111250 2073418659 52437280 +3426650781 1821182553 152991287 +1534815162 2195329002 252024339 +730962658 3067489867 157294004 +3579642068 710244275 98754154 +1786839501 3224783871 205009465 +2259009652 1974173840 3920230 +2587426021 370264097 223132382 +2871200601 2125855939 69473063 +213998600 44701447 87965856 +4233767083 2447353341 19355524 +2262929882 1621618498 61475187 +1009161645 696724255 13520020 +3678396222 593396479 78891735 +912692703 4106695848 66012876 +3757287957 4291648998 3318298 +301964456 0 44701447 +2014284678 2509238865 64219252 +370264097 3642220146 360698561 +4160294472 1515269303 30292215 + +water-to-light map: +4066036887 2992193346 95912236 +531075515 493316918 162009008 +3260565192 854248031 437396028 +1341316194 4205924684 89042612 +1879858967 2058162578 692895326 +452475911 655325926 78599604 +2997176790 1690328655 208783332 +2731804884 3324847814 265371906 +355611136 0 96864775 +2572754293 1899111987 159050591 +1081338600 3590219720 138271571 +1430358806 2779435417 212757929 +3234337635 4179697127 26227557 +854248031 3728491291 227090569 +4161949123 3955581860 102409244 +3205960122 2751057904 28377513 +50952557 147817332 304658579 +1219610171 4057991104 121706023 +4264358367 1291644059 30608929 +3697961220 1322252988 368075667 +1643116735 3088105582 236742232 +693084523 452475911 40841007 +0 96864775 50952557 + +light-to-temperature map: +2756401132 2384899493 13749631 +1163093625 0 117407544 +3603435593 3599927411 262731037 +2081436411 2089913126 119300659 +693703633 117407544 395383894 +1672621164 1405157690 24997208 +3873714258 2780774148 107551276 +3355072403 2593861641 186912507 +1953100586 3862658448 62069331 +143286272 672639421 194814248 +1562062673 1010739941 110558491 +2869050867 2888325424 31673634 +3159859886 2398649124 195212517 +2900724501 3298674599 34708838 +2243940568 4059045429 56605170 +691405879 1193483066 2297754 +2300545738 2005749676 25248062 +3541984910 3924727779 61450683 +2200737070 3986178462 43203498 +3981265534 2030997738 58915388 +2530829166 4276276595 18690701 +621411866 641250212 31389209 +1784026205 4037549491 21495938 +1519774068 1362869085 42288605 +3866166630 3584674072 7547628 +652801075 1430154898 38604804 +2015169917 4029381960 8167531 +2770150763 2936555750 98900104 +1813227854 2258880377 123316040 +3032290681 1784026205 127569205 +0 867453669 143286272 +1805522143 3592221700 7705711 +4040180922 3043888225 254786374 +2023337448 3035455854 8432371 +3029587605 2382196417 2703076 +392553196 1468759702 228858670 +2710145863 3538418803 46255269 +1089087527 567244114 74006098 +2325793800 3333383437 205035366 +2549519867 4115650599 160625996 +338100520 512791438 54452676 +2935433339 1911595410 94154266 +1280501169 1121298432 72184634 +1352685803 1195780820 167088265 +2031769819 2209213785 49666592 +1936543894 2919999058 16556692 + +temperature-to-humidity map: +1606220966 2958863752 268926464 +2994413958 1467440292 348583188 +1347324773 3453966662 171497865 +3342997146 3227790216 188948930 +0 211826810 113744983 +1875147430 1816023480 774831860 +699941162 0 211826810 +443679044 325571793 256262118 +3531946076 1280528675 186911617 +1280528675 4228171198 66796098 +113744983 581833911 329934061 +1518822638 2590855340 50170812 +1568993450 3416739146 37227516 +2967816890 4201574130 26597068 +3718857693 3625464527 576109603 +2649979290 2641026152 317837600 + +humidity-to-location map: +3244927 955737016 9389705 +380524056 2531586403 38604778 +3713586211 965126721 158937945 +3122843287 1406574654 236795236 +776685423 1643369890 534268825 +2053493196 0 55930434 +582662115 695344450 194023308 +3885666529 3855399097 320692779 +88096722 283368340 98672354 +1901561222 3703467123 151931974 +1317500428 2570191181 151780331 +3872524156 3690324750 13142373 +2109423630 249685414 30437999 +1310954248 4199813128 6546180 +1751790747 382040694 149770475 +3056474029 889367758 66369258 +2139861629 4176091876 23721252 +12634632 2721971512 75462090 +186769076 55930434 193754980 +419128834 531811169 163533281 +3359638523 2177638715 353947688 +2163582881 2797433602 892891148 +1469280759 1124064666 282509988 +0 280123413 3244927 diff --git a/data/6_2020.txt b/data/6_2020.txt new file mode 100644 index 0000000..1c60d77 --- /dev/null +++ b/data/6_2020.txt @@ -0,0 +1,2195 @@ +fkpueoxactsrgqyvhbijn +iynrufeagqxokpbhtcsjv +drqjyepacthxknigbvsuof +gbotjfyiaqhvuxpksecnr +ktfejiyncvgsqpobhxwrua + +bzny +nyozb +ybzn + +xtnjpebhdgfok +spjhxgkobdfen +xhejtdisgofbkpn +kphromvbdqecuawnjxg + +qhkbnovmdfawg +gfbhwqodvna +noudvhfagqjlbw +nbvodhkfamqwg + +sdbeyza +isydea +dmoyaqwse + +ursxqyzdci +wldiyktxoufbzge +mcxdhyiquzr +usdrziyx +xuydiz + +bplcwfdhaz +lcpwhzfbad +ewhbadcfzpl + +msq +qboi + +khvfuxgenp +ouwtvfsgxcbm + +ifkgztujyh +uvhjgqynxmbzptsk +hjukgizyrt + +utcsmod +lhwygnd + +kbxniomjpuhsc +jpkuobimcsnhx + +oayquklhwgsct +nytkoujhagbsf +tauyopkgshw +uhxacotgysk + +t +t +t + +oxc +xoc +cox +jcox + +sjno +tynojvs +jprqn + +iokfpr +pkorfi +koifrp +orikfp + +mkzy +ykzim +mykz +mykz +kzym + +mep +ufyel + +hsnfy +esdyfh +ifsgmjythl +rfqywshb +chpavsykf + +uijntgdzbomvheyks +jotugislmyenkhd +iumrgkojdytcqshen +kyxaimsdvnueotghj + +ojpc +jcpo + +wsvbjptzryoqdgacinl +hcrstzvjaipfqwlxgyn + +itzbohpsyaw +rswypqoha +ouspyhwa + +ypzbaosfdjhr +edamsvlfwru + +syfnuomitwcpjbv +uhxfwgbmcjnipv +mbizqvxjcwpfnu +uwmicdbvjpnf +jbwvfcinupzm + +ur +ru + +ajrp +np +p + +uxktjnm +zwgd + +bytvnqazg +pnacoldekvqy +nrfswqjuxhim + +warltkyoxifpvdbezunhm +pmuogztiefnylvwabhrk +lkzhutwoiepbvnmrfay +ljstvehpuknbfiwmaozyr + +abdcretphymz +hobuzedarqsnmyct + +hvkcgtfluxd +uydcgvxtq +gduwxmtvpscj + +jytw +twjy +wyjt + +w +w +wa +yd + +tbxm +bt + +ghfpauex + +igm +qihvtgmpl +eimg +izgkm + +x +xu +qxj +xohw +x + +fmqewoxjzlgtrsvyn +ohvwpbgszurtleq + +oxskqlijrnmhpcv +xlcphirjonkqvms + +tsejvzcqpwbuki +qjxbutscviwzek +wiqbujvecztks + +odvtsyuenpg +tefoduyvgn +arxmvkwhjontydqbue +vcziedutnloy + +tkypewxahgrvjczndio +zagvpcdtenfoyrhwmjkxi +iybgvpahzsxwncoderjkt +pdrehgiwkxcnotvzjya + +wzgcqdv +qwvczgd +vzdwcqg +qwvdcgz + +tmvpqwojgnrdizc +iwqvtcromnpzjgd +pjgcdwznqvimotr +ziwopvncdmrgtjq +wopictvnzqmrjgd + +flzawcrihe +chifrw +hricfw +wfhirc + +o +jo + +qlcsduhagji +hciuamxds +cihaqdslbu + +hbvoypfx +hxsdvp +nguxhmtajwpvi +phxsv +xvphr + +qztefkuwl +ldkguzfew +wzkcleudfx + +hqxvgdel +qgtkdvrwjlpm +dszoqiulcnb +qdxl +yrladqp + +mgwnqtrpjxyle +lpytnqxwmegjr +pgyirqjnmlxtwfve +mpxgyezlnjqrwt +jxrnwegpylmtq + +ubqd +ub +ub +ubo +kbocu + +rofmgjcw +jmownpsdbr +otvwlar +hopnxegwjcr + +gvnk +g +g +g +g + +hld +hld +hdmlek +hdl + +uex +t +e +g + +twmvon +vno +nov +inoxcrfv + +qptwudlrsxfvkzh +vhkqwudrslxptzf +zuvfldstkhpwxrq +okhvbsqxwpltfdzrju +qxdsvkhlrtwpuzf + +vceoazlbsqtrnwdyuifhmpxj +ubynpdfacsjxlqohwmizrtve +teoihnmfpajywrzquxsdclvb +nwjliraedqbthufoxpsmycvz + +ftshiendrzx +mdzjnpocaywxslkbq + +zhetbxdrf +rthbxjeznd +tehdnzrxb +hycwgtdbzoxre + +nb +b +b +b + +qoai +qnoia + +ciogzkhajmrevlynpsq +ghoyimnlseqxzvcjprk +plkcejymvonziqghsr +sgjphyermvnciqzokl +vfjskemirnpqhlayzocg + +pguiclrqx +scxa +mcsoxey + +yomqcfzvkhtxg +tgvyleifhqxnkao +oxkyftghvq +ghxvorfqjytk +bxvhogwkjptyqfd + +qngzfchtwidvlu +lmuvrfwcingqhz + +d +d +d + +vfcndgbeaxstmrpo +ogpxndmvfctbrsae +vmesaogcfrdnxptb +btxrnsvacfmdpgoe +aoegvbrnxscftmdp + +kswzvabjrphxnqdcf +rcawfnshkqvdjpl +pvjrfxwandqcgs +vejysatmrwpifuncqod + +udgovlqnkrczsafwthjypmx +tvcuafxrkzoegys +zatvgfxcrosyku +cxrabtyvuksfiozg + +y +j + +ofqw +wqo +qwo +oqw +qwo + +kyrbjqahno +khvyouazpwrqxdgjb +mkqohrajby +kmaboqysihjr +jrobqkmhay + +jstgyrl +ljfstgry +jsrbgtyl +jtsylipdgr + +qdcpknl +qklncp +lkqpcn + +r +dr +yr +yrb + +wlqatikzhbsxnv +lvqinxtbaskzwh +zvstnwhiqxlakb +xavnwszhlbiqkt + +pk +pk +rc + +d +m +f +x + +vye +pvy + +mtrk +mkrt +kmrt +mrtk +mtrk + +rvjwqfk +kmfryq +xupsfghknq +jmqfk + +gqnejwr +jwqnerg + +iskapybrcz +rzinaqljco +hxzatidf +anmzikc +zagilj + +fkgmywz +gwbfjk +jfwgk + +abpxyrjnwi +jwihns + +zryui +ycitozu + +aleyvurditb +hfwsztecxvopm + +elwxpnfqacm +crxlenmpq +ipslocexnqm +panhqmedlcx + +ogxmdtyjsqzbfnkulp +ojbluypnzmqkfxgtd +tyfoupkgxdjmlzqbn +kdbfxugozltjnypqm + +pmqdojswtzlfigayc +dfozijglqawpstcym +fmtzpsdagowqjiycl + +ciglp +p +pws +ps +pw + +npiokrtmecy +ksmicuxyah + +jwhmnplxey +bgas +fc +su + +ifldomjytc +yjtcifmaol +cloytfimj +jtlyfmcio + +tkqcmbidxvgjwfpzu +wbfcgvjiduztxmpk + +bnwvemhkucqytogslazx +qsovbtwzmcyxehulakgn +khbzvleunytacowxgmsq + +dfubolixjteam +eldtbujiafpmxo +fdextjboauilm + +ngk +mfngx + +kxdbqngzfioypjctvlswmre +ndgwcrvzebtklmxhiyqpfsoj +pmovsdbgcqkxjlfrwzineyt +vkoixebdswgrzfytlmpcjqn +edqplgsxinrvkwtjfbyomcz + +kmbz +zkmb + +neupwjrtifokvxcqsdh +mnlxyksrjvdgzhiwb + +gpnsro +on +no + +dxtesfluiajcyr +metpqhgkfy + +ewzrdvnp +nrdpz +dnprz +rnzpd + +vikxrsd +sxdv +dxkvso +edvxwnsg + +pqzvjcyxf +qrfcalzpjxy + +kor +kro +rok +ork +ork + +gcjqsxnmyziafhtkluwpbdvo +jhztmfvbpkniwxsyuldgqoca + +vptgbeuijl +ptgbiulvje + +sozyipjblvwkre +ywsinrkdjoplvzeb +vyjekrsbglozpiw +rewbzksvopjily +oivlwksbegpyrzj + +vgqrmae +mivgfkrtnqea +mearoqvug + +nb +nzb +nb +bn + +pjcurngahzklesvi +iakolgenjvhurztsc +eplhyjvgrazkcuisn +euczlrnkyjiavhgs +ynlacujvrzshgeik + +giu +r + +pul +lofmve + +czydonjkglx +zljxdygockn +zdcnxogjlyk + +dc +dcl +cd +cd +cd + +fprlomivdtawbeskhxqczugy +ihstyrdlufamoxgbvqwcpkz +bhrwozuagtxpyksdimcvflq +asgmoiyqcvztxbdfwluprkh +kwydpacmlthqosbgzxufirv + +dmizpa +midzpa + +eoqyjus +eiyjo +myjozet +yetjo +jyieto + +ntrkgvmjcqxiyhwased +scevmnjahtrwkgdxiyq +acnhgrmdqsjexivwykt +mtsvnriqgadjxeckhwy +cntqxmwdjahgkiyersv + +evnyr +vmlye + +vyjs +orgnjlk +hj +iufj + +mbuctoalp +vmznlhdw + +maowfeustjhrkdnpby +kuaypfmvzbnhwcgsjdlqt + +ehc +vjxsa +kolecn + +wyzcnomdqx +xgmnzqcif +cagnqxfzpbm +cxhjamznpq + +yukdmnjaiorg +ijrakonmy +conrimayjk +kpcyjiomnraf + +m +m +l +m + +tupa +hltj +t +tf +thj + +fbxpehklvyamw +pfbhswlmakvexy +paexhybnfumdlwkv +xywbmelkpahvf + +akzysejlx +sejazylxk +ykaljxzes + +jntzcdflhsopmbqivxk +ljasexumtcyfqihkpznd + +rlhsexvutizgmcdna +axsnlieyzmhctuvd +nlaxtsviumcyzhed +cenlvkzdsuxhiatm +dznacseiuvhxylmt + +aor +oa +ao +ao +ao + +xrb +xrb +rbx + +cvan +vac +cvan +vica +chav + +wj +iow +rwo +wlp + +qhsloaykd +klahyzqsd +dhkslaqy + +ix +xi +ix + +wbmhzsjklfaetrpn +zpwmnbharsjkleft +hnmzlekrfbswapjt + +ybsrchtiouzpgwv +ishrzucytbgvpowe +ricpsvgzybuhtow +uvsiypghozbtwcr +coruhtzwkjvbsyxgmip + +mrnqbckhp +jmqhbgrf +bhjgfqmrvyew + +gajwxmziuykqdtlco +wojlkquihbmtfscdagx +ctjoxkamywgliqdu +ckjytloimqwduxga +zcwigxamoktqldju + +kqfdbzpemvlnw +pvcdmzbnukqwlfe + +aqlusoiptbg +agoklsjruptib +gexastluyoip + +fvm +fmvc +ifvm +vmf + +gdnqybuslvexh +hlofwbmdn + +fgrkyo +grfokyv +gykfodr +rgflkoyd + +hicsm +nsi +csi +shi +drvialsku + +j +j + +ykjmolvu +ucky +bhuky + +wq +qw +wq +wq + +ojflxpyrvc +rwyipokexldc +uyrplqodxc +gynslorxwpc + +sibvmkqpahoxl +tvmbdcxnsugfyw + +cxiplbdohteks +jkxqewcpidshbot +ohdcipbtksxeva +izexkpdbcltghos +exbiodhpkcts + +cqsghdrailex +ucwzxfgiqabojprd + +w +w + +xslfm +xfoebsjm +mdfqr +fnwimc + +afizclbmgkynedwqh +zfalypbdngekwmc + +hrp +xr +r + +dphxwjrt +qrtpxjhl + +wusgmnb +sbcuw +betusw + +axmdhkztcnrqus +xrizkamcthus +gczshakmxutr +ckrmtxwzahsu +omksczxfrtluahj + +nzhtpx +hnceqzx +znhbvyl +qwzhnsamx + +orijceqxvdhsfzty +gxuwha +mnbxhk +klahxm + +reacjnlu +lcueanrj +aleucrnj +ucrelnaj + +skyvtmhrwbzngqx +vwucgmxtfz +imvgetlwzx +mxpvwzigt +lwgxvtmz + +tkfuloayhr +hycujaowkfbn +fukhqmxeyopais +yghlavfzkcdou + +f +f +pf +bf +nqfk + +k +k +k +k +k + +lamfcdzuyksov +mozsuflcvay +yducsflvzamo +ozcfsuvamlyb +gomrpvlfuzncqytsea + +h +h +h +zh +h + +mrzbktpednyxa +yxcntrezdmkgbpa +exkjpinybdzrhmtawl +epztcrbxndamky +eykroamdqxbnpvzct + +lexhigkrwudcyp +uchriexylgdpwka + +vlipcgxhywnosmerbqj +giochlbxrvpqndejyswm +ljvipohbrsnwmxgecyq +rsiwefqojavpmcyxgblnh +snwhecvbpxjoymlgqri + +ei +cwp +yqut + +ipbthrwlunxo +uprmglinxbwh +hizuflrnwpsedxby + +vwisylanteudr +uydtwargnsvle +uvtnslwypaoqrde +zjfnlershdyubatwv +aumydtlnkewrscv + +sijnvxwzgraolbyq +etculpdfivhwaqmxkg + +becgoijdmzp +mobcedipjgz +icdzejmgpbo +mdcbpzgoijne +obgpdjciezm + +lkhypbauremx +vypxakzobgrqewm +xkrabpcmfety +ykpenarbsildxm + +suifrntqoekpgb +iorqfgbusnpekt + +niewzsmhxbdrvkojytluf +gnwbvtepcdfszijmohu +fondibmezvwhjruts +ftmjzdsuibavonhwe +ljhwsetfombnidzvu + +vkgcitzyesmnqrxjhbofual +cwjbtxosralny + +k +y + +hn +hjoant +indyr +xnoj +n + +tyxrlizqa +xzvliqytura +yirzxlqta +tiaylqzxr + +dtklmpwshqxevy +ojyse +syzige +nzoiyruse +seyb + +brnmeojyatvgxkwdczp +szynjthmfiebackorx + +sjz +sntjz +szj + +lajkreydmwuonctgzshpibf +copriyefzanjlgukdwhbmst +ahdjmitswcgrnolkzbfpeyu +jnohzslqceigrudwfkmbtapy + +mvjkp +fzpvso +vnqrehld +xpwvubz +vkoci + +aksjmdtevnf +rqtfavikgjnwxd +navfdjktm + +zqf +fyqkr +hprf +lxf +tjvencfagomw + +vusdqkcbznxlrywfhpa +plfxarynshqzckwudvb +nxbzpslkdvafywquchr +lkwahyzpdfxvucrnqbs + +fkwus +ufwkbri +naudxklw + +vtjcubmzexgswpdralynkq +mzrdtaqbjsuyxpnecwgvk + +ihnyzgxsqk +qyablx +olxymuqd + +cqtrek +uezqtj +dhbqglvwe +menjq +qiposefax + +hpezigrsbwf +pzgywbuiclehs +iwsphebgaz + +szwynqptkdoaifhver +dfkegqvoznlypwsir + +cypuevftoqbn +kqucwtajeypforn +epuftqonycl + +ecgzkloxbp +oxpnlkczb +lbopkfaucxr + +xevgbokncljurqsfm +fiomqbarsekzv +zksvbewmrofhq + +yisedovjlt +ydjorxtehnil +ojtiydlev +ovetdyilj + +sw +ws +ws +ws +sw + +gxnpoevmf +vnfgxopm +xnfpovgm +mfpxovgn +xgvnfmpo + +t +t +e +v + +fwlre +tbelnr +rlhqek + +xjwnzibrde +iojdanwert +divnjwre +jnwdier +adjnewrti + +sjkltguxwzr +sjwkluxtrz +qrikxwltsjzuaf + +lipfetkyvcgjh +lhyjciekvxp + +zkaihxsvfwqncpjgm +nvqsbuptdle + +toic +ico + +abvqohjiykmxflepguts +oesqbvampylghjiftkxu +rhfygklmvstuixejpbaoq +ajhypumoextvkbfglqsi +jnsealoptxgbmcufzhvqkyi + +dexlmpufkyznjcbosh +pojfunlewymchsxbzdk +kjzpdhnycblxfsemou +cxmunsfelodhjzbpyk + +qsokeypilv +epkyolsvwi +zseiyklojv + +surjiz +sujizv +busifanezqj +msjziudx +ujsdkzi + +zkxformqynabtdhie +mhxtrfzbeyakqndio +irhxoatqbfkmzyden +idyqfrbetanhxzmok +rtobqdymiezknhfxa + +smiqfvlkywtr +uirswlmvqkyt +ivrywmlbnstqk + +pgdjxqicntkyvwmruolzsh +mwkzrutnevoqfdxysi + +wk +gwk +ktw +kw +wk + +vwfm +jc +clud + +aqwndheomflbkt +ukzflaywdvqngtobsh + +szatu +skzvta +tsaz +ztsa +zsat + +sqaeyrgcfumivwdthpkon +cnfikyoaqsephvtmwurd +kiqdenartucmywvsoph +onmicaqdhytlzskewuvbpr +rhtomkpdywsiqunaevc + +ckzatfpglyvmi +iptvcygzkfalm +yfzplimgtkcva +acktglpifmzvy +ylczamiftkgpv + +euorcidmpjsgh +uicedmhjpxor + +zsyfrnitqohkplum +pifmqruhonljkty +ynfkuqivlorpmwta +ftruoniqplkmy +cpilxmrbkygtqnfuo + +pe +pet +dheqpzu +ep +besp + +xnu +un +un +nu + +leidzac +tdw +bhjdgfsxqv +diuzp +iuzdt + +ipq +qpi +iqp +iqp + +ucphfyrseonl +qoctrfnkpsm + +pwznms +smnzw +wzmsn + +vmzlqsidgnxwcoraeypfjbuk +jkoxgsfzcdbuamypvenwilrq +kilqwvrfpxumysacegjbonzd +skijwrbouypefatqmvczxlngd + +cozfmwxesdhy +wscfxmzehod +qeokmhswdcxzf + +ipshbworm +boimwhrpjs +rosihzmwbp +mrwhokpsnib + +ivzugcmxrpesa +ocezuxgsmvpia +egzvasxipumrc + +dngqwjsmckpyerz +qhepdbznmksgryj +pnykmsgrjhedtzoq + +jia +jqa +nsjvhdet +j + +qceg +lgc +opaicgfw +zvcg +ecxg + +jadh +hdgfka +qcehwda +hjda +szadxh + +bvfhote +egyojpb +ogenb + +auszlnmqdxrpokeghyi +qidzcwsvktflb + +ebklnsjmfyoxdgwuracp +jxuwkarpofsdgenlmbcy +msjxdpwcaybokerlnzfu +pfldocweburjgnkxsaym +kxgocspayrwmfnblejud + +mnpsqbjxdwciavfyrohlt +riwovbpcmaqdjfynhstlx +xpvhsjeongdlzwctmiyqbarf + +bgkpwrquym +gpbqwmukry +nyprgwumkbq +pwmqybrugk +wyuqgkprbm + +tfaomqwp +vapwguyfqmts +pqwbfamrt + +gcadlk +agkculdzp +cgdkla +lkdacg + +wncq +wqnkcv +wcnlq +cwqvn + +ihrkgavdbocqysux +kcuxbwravetiyqom +qkcyxrmpuavbio + +ftwrhpz +wzfrp +fpwrz +fzrpw + +niaz +jpvogdb +yjbo + +diqmazcwuy +fmsizvkqhtdcjgub +qilczmodu + +q +q +q +q + +ntwsgbfom +wgmofbtnv + +irtaqnlb +wlintrqa +ldirzn +qalrtijn +rcgnluif + +ocrbqenmazhuwdt +njtbhcamuerxqo +mxuqhatebconr + +lmugvpqhno +wouhglmv +mhudolvg +vagulyhmeo +bokhjvdluigmx + +jtrmvalwqgi +iasfuljhqyvgt + +iyjz +zcjiy +iyjz + +ifsjecamotprq +rtaqms +tsqrma + +rh +rzh +rxhw +rh +hr + +mqki +filbk + +dxojtvy +tdyjvo +yvtojpd +yjtvdoa +ydjtov + +bhgfoykulqteawcs +fygwbadjonpkeuqlztmh +elgshoaqbwftkury + +ufwlobj +acmkbhln + +nvmukhlfaogxse +tpxqhnvwydkjirfauo + +wrhia +w + +wujdrlyksoimh +ujyirswdoh +wsyuohirdj +pudysiorwjhzn + +weaqpkfnj +qkwtaepjfn + +x +x +x +x +x + +securqganfwb +vlugjkzcyo +hfgicau + +ku +ukl +uk +ku +uk + +fmoikxrwlugyjdnaecbszqv +sfvwirdxujcbyapmngoeqtlkz +yzxkesvjwdcgqanbiforlum +vfcnbdlizugrmweoqxkjsay + +feutobny +nebcwdpvtsm +ztnjlebh + +wrjfmlc +jml +tqsgbkmiauzehd +xjwnvmor + +vtfghrenaqpclos +gleftocparvshqn +alhgrqepfcvonts +lsviofgenhpaqryktcd + +hsklicagewor +ubtjpvz +vmfyxdqnz + +qtjyocrpmulewngz +wrmfsujctnyqpzeo + +iovknpaef +oibnkhuvpf +opkavinf +kvfenpio + +tbiysluxjcvrmwhfpnoqgd +objmvigdcsfwlhxqpntuy +hsbwdgitupoqycjflnvxm + +brlhap +abrp +faqctr + +xfosvqpgrejy +lhucgtnsb +lksdgi +uhbsg +ghcsi + +gfpojtzl +gzby +plfkzoxrga +zwmkpgxf + +rqozfxbhiskpt +zkbrpixftoqhs +irotfpbsxqzkh +bfizoskrhpxqt +afpqozrksbxthil + +gmb +gbm +bgm +mgb +bdmg + +sgo +gso +osg +gso + +ucb +cu +uc +hcuypq + +cijwvo +vticmjo +oncvij +ojbcdvzxik +jwivofc + +rmqpd +rpqmld + +ftedsmvahqkrjubn +luocrgwfakqzixyvb + +g +g +g +g + +mdnuqty +aibjtpl + +dc +cd +dc + +gejmrwiuhyctfnvo +cynrvwfejhoitum +vqcoilkzfnyhtuewjmr + +kogvqsfrylnu +mjsrofteqbygkdl +qkwczlargfyso + +vihsk +skidf +ksotaiy +hfjwnidks + +c +cj +c + +i +d +r +ed +d + +zqoefk +udjayhrcv +grhmx + +s +s +s + +osuxdqfberwh +iwxrfehqsdbou +refhsquoxwdb +uoexsrfqdwbh + +uoczbstekfjq +usctqfkjeozbl +tbucsfjzokeq +bzkcuqotefjs +ctsfizujekbqo + +wqbme +qmb +bmqf + +xw +xw +wx +xw +wxg + +yzeai +zai +eaiz +irzsna +agzi + +atpbnxu +flzvqyjcingh +mnswdr + +lbuakfjr +rjvkhaubod +artnzkbujie + +di +jdxir +id + +nqgkymzwopfivbt +jzfnkqbywitg + +ui +iu + +y +yp +y +yk + +oxguvyemc +amovexqygc + +ldcfxqoprueiat +oxpbhkaefiuclmdqrv +oqduxifplrcea +agxiqduroceflp +qfectiaudyrlpox + +bzwhvlasnoujimptdcqyk +ldimpatjvzocyhqksnwub +idynpbawolvsczkjhumqt +kuictpqosmjayhdzlbwnv + +xugiqtpdyvfhb +vxqgdpiyufhbt +fxvdpitbuyghq +vbupfxtqzygdih +ydxtfibvphuqg + +ktesrpfjvw +fksrpxtce + +witumkqg +qugmtw +lhsagowvmtuq +mytwuqg + +yhiqdsf +ybfshizd +tcifhvdsy + +bpqygikjnocrzu +ieczbftslhadjwgx + +lomhaegk +omlaghk +lgmkaoh +aghkmlo + +o +v +p +v + +beydjlnamcrqkps +glqzdbrwcsykvmaxpj +sdmrpkbjcoylqan +kbnlmypadqrcjes + +omzw +zwmo +ozmwv +womz + +un +l +mh +bn + +wpxhsd +dphxws +wpxhdvs + +zcnjargsdqxbmu +ancxshbqymgjufr +nxajbqugsrcm +uemrcosxaqjbgnv +cgapnlxmkusjrbitqw + +umbwjczisyekhtg +byjuhetkwizscmg +miesyhjgczuwbtk +kcmgzwybsuhteij +hcstiukwemzgjyb + +buifoxragnytkcqp +selvw + +eklaidfxrumtzqgjvbspwnc +gqpszjmedkinvxrcwbtufla +zqbvsjpdmfwxkraiectlngu +vwdruzbtjkiaglmfqnexpsc +devlmsqragfbcwkujtinpxz + +h +z +z +e +h + +qpbtzjmdueg +eabzdjptqmg +gqpezmtbjd + +eocdbq +bjqelcotyx +cbom +pagckifnovu +torczh + +kzirbmq +imrbkz + +v +v +vk + +txkbhrzwlaqoygjivcu +zjrvcnagqdtfsuyeoipxkwl + +qtdzpyrbgjsncxfkuihle +ketigzfqorjshxncydbulp +kdnfrspgyebtiqxczujhl + +qwnfxgsub +fkqepsxgwna + +adtbmsyc +gbdjwokcsay +dhcyrplqasb +cdbhpsqyza +udszaycb + +oave +yolketmw +oebpa +jfschroepv +oeib + +nrwijhyk +ruti +uirqab +rit +ilra + +ptlxnzbi +xltnbipz +lzbpnxit +zxlnptbi +nitxplzb + +pnwav +dbtiqygz +rwoacpv + +kucagyzwqm +xzmwckvgya +whgkaqyzm +gazomljykwb +gwzakmy + +iuzbdafncmxhv +ciagvhfmxdznurs +vacmzdxfhuni +nfhzvdxajiucm +fhxumdzncpaiv + +uk +uo +u + +mgrycuvqhpdjniztxsflbeowak +moabnqsfkjtwxzrgyvlphiuced +zujltcgxkdfpswyiaemqbnorhv +cwzalrgoihvefybdjusqmkptxn +gklhzjmcadupnobqsevftxirwy + +yw +yld +y +jx + +sumdop +zkelr +tinxghjqf +vwcby +rsawzp + +rclsnk +kxrlcns +lckrns +sncrlk + +hrbgz +woulmtiv +efxnpdqkcyjas +grv + +eahnskifwyv +rsaintykevf +aiksfenyv +iapfnvkcsye +yvcnfkusdizea + +smxn +s +shyj + +cvygpmexz +gzcy +oshatqjizyg + +nxqwduea +diqukewvnxa +qcwxueand +awudqnex + +bofvegymunw +bgrfmvyoan +nguymbvof + +walzpiotsgubeky +vfwnrium +ihduqw +mwcxuhir + +ia +zolya +vaigw +cwae +eaum + +kujrwgnadptfhqzimvseoc +vpjohsmicwnqfukgeltadz +kronhpcijedmsxfzuvwaqgt + +hg +jh +felq + +jcrya +racj +acrj +cajr + +vjh +jv +qkjy + +qdyv +ebtsnya +vy +yg + +gw +eypwogh +qgw +wqg +gw + +ndgjbexlpywz +eynzlxgdjpb +jgydlezpnbx +gpxdbjynzel +xgbnjzlydpe + +w +urij + +aklpcotx +xytpocakl +oaktlpuxc + +owyvjstfu +zguwaohyfv +bpxvifmnudowlq +cufkevrwo + +awdgfciburpkxlymstzvh +zorihvfctjumglbkpaysd +kflsupdrythvigqcabzm + +nmzavoblg +gqauomd +fxmkwgcjypoaseh +onrgiam + +irqxwkchzlyp +vzyownjutdeamg + +uvcnzsrplkgbeixdwtqyjaho +vbngtldhicasjwozxrfuep + +ojhyfzswevugcmxiplqkbn +qukvprlghciefsabyntoz + +efxq +fxqe +xqnefyr + +yo +qoy +uzkoys +yqo +yo + +oxdwepnktag +dxaoptkge +kdxpegaoyt +tagmoedspxk +ptxgeokda + +smjvlgyuwn +zpsnmivjxgr + +ozikwlt +wdzfext +anmjhpyrgbcq + +tjfrih +fokjihrtl +ihtyrjf + +gpfx +xfpg +fpgx +fxprg + +zx +izx +xtazev + +u +fr +u + +kqlnjafdospygmvbcr +bxcqnmjkpfvlywsgtdra +gpyvrkqncafjbmusld +pmbkafdsyrqvnlcgj +adpjnylcsmkfvqbgr + +p +u +u +u +u + +tuxhzfvmo +dxhfpmvcawoz +ovzfhxm +fzvoxumh + +ywvbus +lyvubw +cwvugyb +uwrbvylk + +s +m +gad + +jqatgolxvezpwnudfcbr +xougvranedfbtqjzcpwl +jgndawuzoxclpbfrtveq + +rxngzq +gxqnrz +nrxqzg +gzxqrn + +gzrxpfoqtnvumwhcdka +kplcduigfowjatvbr + +daoicvw +coaidv +daivoc +fviadco + +mswonfc +uvxrjnafi +pftn +glnf +ewkpfhn + +wrpzqmujyvxs +tbcdag + +s +rq + +mx +mx + +wrytbzmnpedku +dbzyptwknermu +wrneybtzmpduk +enbydzrwtukmp + +stugavyimwkx +vxbtgs + +wbc +lpwrgko +czw +nszw +sw + +chniymatjorvlsfwpzxdqe +hmvydekcgtjxqwpsfolabzui +hmxplwivjzscenaotqyfd + +lktiuyjhmczbfqsde +dkgmlfhycjbquozetis + +j +jda +vk +yq +ays + +amoulvenfdiphs +lshundapovimf +sindupolmvhfa +hualnvmsipdfo +niumvalfdshqop + +qgmiekzfclntj +jukzgnlifmtrxveq + +uv +ucv +vu +vu +qvmuf + +hbewokupjnrszd +rvsdwjnkeboph +rnfgdpjkesotbhw +wbeznrkjshpdqo +jbrzcdekshwnop + +vfpljrmwzyigucatknehqdobsx +qhwditenrymjxuagpbfckozlvs + +sewvzdjxmc +wljgxzedoiscm +cmedjwtxazs +wbkzxydmsjec + +fuwaskpgmq +tdchwnz + +xdwoimuej +xmiuowdej +oivuxwmdej + +bmkovugzfqaw +ogazvmkwdbuqf +uabvfwmqgkrz +fqbzvguakomw + +lrknvaeijzbt +ryszopdfcgjum + +tmqjkcf +jqfkctm +jmtfkcq +jcpkqmft + +ztwgpbn +sbgnwz +bwlvxdginzk +zsrnwgb +btjgzwn + +esx +eyxs +esx +xes +exs + +xeylgunftrzvw +nreylzgvfwxut + +qbwgtamzlfsjyvdnukri +qfurjaviwztykgndl +yavfuqrkdltgzjiwn +klvijdqwzgrftyuan + +kgcieraqsylnpvfjbow +cpnqlgabviwrkosef +gckfqarbwplnsiveo + +dvqtawrxmk +rqwkmtxavd +tdvxwrkmqa +arwdtkqxmv +mvqsdkowratx + +asng +sgna +ngas +gsna + +pm +pm +pemf +mp +mp + +xuoqwnrycvmsa +xwshjnekycumva +vsnuzyatcmbpxi + +b +f +y +ub + +xmward +mawidrx +dxmrwa +xwmrda +adxrmw + +y +y +y +y +y + +cohtgxi +hcgtior +imhcogxat +iotchgaf +togihc + +hrysbenaqxtlckzguv +txerpyiqsgvkaczlh +wjdvcgyhxrkqtesalz +wqjoyczhesarlxpktgv + +utwdslnzvhkipcfyarmgojxeq +xwgmrtpioejyhnuclzasvdfkq +thfkzoprimqlacgjswxvdeynu +idtkfclmvnuyhszqjaoperwgx +asguqdcmoxilkfetwnjpvzhyr + +v +v +v +v + +hpnefiodlyvts +ijevflondhy +dyfvenliho +efilyhnwodv +mydilvfneho + +wvsmypxrbcuk +xbsfwzvnym +yckvwxmujsb + +cr +qchrd + +kelcwdvtqxuipsnzbrhyjgfo +cwdroegflpiysuqhnzbkxvjt +qwlktsjayxhperfcdzovnmbigu +xjsrdvqktplnfcwhozybeugi +teqpuvfywlgcbhrjzkdxonis + +ycipzkndsmoujlthxvqwrgb +plyvmxbhdsntjcziwrkuqgo +misdhuwxqbyzprjtnlcgokv +oxqyitpbdgvznwrklhjmcsfu + +mylxhqweudkzsofbc +gaiuwslebzvkpxjncy + +g +qtw +w + +ujr +v +q +b +di + +omkxbdngwapsuv +igbswxvpdukonam +axosmiupnbdvgkh +mdkovnpgaxbsu +ulndkpbogaxmvs + +vwjlrctdoqbyspmufgzaxenk +tjlsneqcauyokdmfvwbxrgzp +bxqvcwudzyskjgfpretlmona +kejvaplyrxndcgwztqsfobum + +qjnushva +ec +ecb + +eaxtkwvzfyblmrch +phgmloyedsqwkuxb + +grz +rqgz +gzr +rgz + +ufjsdpn +jkdunfs +jusfnd + +aluvifkntwqerxy +synawlfukqvd +ysauvjnwkflq + +gmntv +gynt +tgn +tnpxg +gxnetp + +zvt +vizy +vz + +apvm +mpbv +avmop +vpmw +gjvtpms + +mblhyciovqfrtksdujgap +spiwglrhqey +rplwnshiqexyg + +xkcovjzsfw +xfsckjzwov +fowzxkjsvc + +cebwqgyhdjra +m + +bfekuam +vhubfek +rwifsoeuzbk + +qikrtaxpf +ituqfnrlkbas +itkfarqm +raiqtfk +rtmaqkief + +fdqoiulh +ejbmfvwq +mfqvacej +fgkbq + +aeqvt +jax +dra + +zwlumdofcpbnqy +wdqzyuoptlnmfb + +mltsnvfoardxpyzgwqkuc +swxqfuljcmntpdogrhvzay +fudqmywsxpgltzecvionra +dzmbuglotnwrvqypixacfs + +wzd +z +ud +lq + +lipqz +hm + +nlhgk +nqlr +gnlpeu +faizcnltd +lnu + +itcdlgzm +mtdyzc + +yzju +rkj +dplrjxv +qntfwj +hbyij + +cauvwyzsgke +euydcavkzwsg +lzksugeavycw + +pslwczoxqrtyi +bvcpmekrhgowuxfndy + +licuogwtxyp +ufocnkpwj + +xfq +zf + +upd +dps +dpj + +ebj +xh +ocfsb +bv + +jfxwcmntgpdabhky +dbcsynapqgrzwf + +rzdnqolv +rqnlvoyd +zlrvoqd +vomqjzrld +iqfgovldkr + +qwksvixpof +qsndipkuehx + +tvowqkumcr +hslqanzfgtpivjx + +uacsj +scu +cseu +qbumsc + +gwo +wo +yow + +cbwszktlgp +leyfdknoimq +vghjbrlzcxks +ukal + +yehbvsqjmt +melbjptsyaq + +mekrpbacytgwuhxl +laxurkbthypngmewc +xqhgcbekrypuwfmtla + +ijmp +dmjp +pjm +pmidj +lpjafmzv diff --git a/data/6_2021.txt b/data/6_2021.txt new file mode 100644 index 0000000..ba3c3cc --- /dev/null +++ b/data/6_2021.txt @@ -0,0 +1 @@ +5,4,3,5,1,1,2,1,2,1,3,2,3,4,5,1,2,4,3,2,5,1,4,2,1,1,2,5,4,4,4,1,5,4,5,2,1,2,5,5,4,1,3,1,4,2,4,2,5,1,3,5,3,2,3,1,1,4,5,2,4,3,1,5,5,1,3,1,3,2,2,4,1,3,4,3,3,4,1,3,4,3,4,5,2,1,1,1,4,5,5,1,1,3,2,4,1,2,2,2,4,1,2,5,5,1,4,5,2,4,2,1,5,4,1,3,4,1,2,3,1,5,1,3,4,5,4,1,4,3,3,3,5,5,1,1,5,1,5,5,1,5,2,1,5,1,2,3,5,5,1,3,3,1,5,3,4,3,4,3,2,5,2,1,2,5,1,1,1,1,5,1,1,4,3,3,5,1,1,1,4,4,1,3,3,5,5,4,3,2,1,2,2,3,4,1,5,4,3,1,1,5,1,4,2,3,2,2,3,4,1,3,4,1,4,3,4,3,1,3,3,1,1,4,1,1,1,4,5,3,1,1,2,5,2,5,1,5,3,3,1,3,5,5,1,5,4,3,1,5,1,1,5,5,1,1,2,5,5,5,1,1,3,2,2,3,4,5,5,2,5,4,2,1,5,1,4,4,5,4,4,1,2,1,1,2,3,5,5,1,3,1,4,2,3,3,1,4,1,1 diff --git a/data/6_2022.txt b/data/6_2022.txt new file mode 100644 index 0000000..68bd997 --- /dev/null +++ b/data/6_2022.txt @@ -0,0 +1 @@ +pjbjvjtjljplppjssvtvwtwptptztltbtrrjgrjrzrqrjrbrhbrhrlllbpbdbbzqqgsqshqssjjbsjbsbmbhhmchhrqrcqqbwbqwwqrrznnsbswwwdjwdwmmsvszzlbbgddbgdgfgttzjzrjzrjzzvrvqqgpqggtbgtgvvrhvhtvtjjbpjjfjhjbhbddbjjjmzmtmgmpgmmmljlnljjmpmbpmbmrrlhhlppdgdfgfbbqlbbtffjjgvvnpvpbpttqmmnhhgfgrrwhrrbnbznzccmbmvmmzszsvsbvbccsrslsjsbbtdtwtvttvpvzzvbzzwczwcczhzhwhjhjghgppgpgttdwdhwhphnppqmpqqhthcchdhmhnnbcnbcbbggbfblljttwsswspsggpjjzszcscsmcmdmnngzzhrzrbrhbhzbzvzgvgffnlnljlrrhchhsvhssmpmccncdnccgdgbglgtlggnllsvvpfvpfpbffsgglddjrrzzphhptprtppwrwffzllrbrmrpmpdmpdmpplpspcphcphhgmmqnmmvnmmdvmvsmmqjmmlmlbmlbmlltlptphpnncscbscbcggwhhgjgqjqmjmdjmdjdrrvgvvzlldgdnnvttmmpffdjjvvchcwwbhwbwzzlmlccrttcntccpcgccpgcpggdrrbtrthhlrrbqrrpspdsdldbldblbzbpbgggtngtgqqtwwdjjmmcrmcrcvclcddhllpzpdzzmccrtccfvffccfhccpscctbbbzqzvvllgwlgwgvwwjswjswsvvwhhvjvsjvjmmjhjrhrmrvrnrccmnmzzmdzzbtbvbqvvgzgcgvvvvlltvllbfbqqrppwhpwpffzddzdzwdzzrggmhmfhmhbbzjzsjzzhhjdhhdnndsnssnfffbmffwhwrhhmmbnnbrnrbrrtqtztnzzzzblbhbdhbbfmfqfmmsgszzvfzfmfwfnwfwggwngnqnwqnwqwvwqvwvdvrvjjfnjnmnfmmwzzltztjjqnnnmlmzlmmrcmclcqqhrhdhccdfdvfvccvtcvvdmmtmccwjjcbcrrjmrjrdrffgwwvbvlvsspwpsspzsschssmqsqmqmlqmmqgqfqcqjcjtthjttlddfvvwwjvvtpvvfsvffqnffznzqzszgzmmjttwztwzzhqqccqsqmqnmqqjhqhzhwhvhdddsndsdfftvffwlwnnmmdpmmnhhrqrrclcdlcddhcdcppgrprnpnptnpphgpbqfngdgzvgndwcgrwcsfmhzsvddhzbgjmvvdjjzswvgnpmvgdpwsgbgjzjpsrfdzdzjzzrpplbhsmgddqzjbdzdzltqqwqjzqvwfmcdppbdbprrwzhmnrqclzrnmdjnfbwmvdrwtpwvgscrqgpndqnzbjsbljcbthbpgdjdcdwfhpvjnbsfjdlrjldvvmtfdslrhlfwmvclqrljrqmmjgqfwmfgwdjzzptgcthvtgdswsqjrqvnzmtqldjjcqnfhtvbwhjqlvpptfwjrdpcwvzddgcjzvqbhtsnnnjqqmqlbgvqmvjhvvpbzcbdmhgmcjbfcccsvlzjztvjzrrlhtgwccdcgcptqlmdhmdhvqzfntbjqtsmvqgwsltqntgszllntrljfgfsghtbbcqrdgwqphmbqtzmjqccrgvqpqpchzjstdmmtvntwjqsbcqjgnhzlllcfbpgtgrhwwhqqdlgrlsbzbmchvjnsgpdnmqvtgwqjpgflqgfngjfcfwqzmvvgzmmhbgfnbzvzclwclqdcccgbrrzpwdtprgsvhbgsnbntgrvnzhrnzfzdmnlbnrbqvmjbwpgvjlhbcvsrlqmcsnlrvtfdwtvcbmlndgbctsnmtctjszlpddqmzbtphhhfznwbdfsgppmdmczmhmmrzpllfqqbgvlsrscpfgznhdhgrnnnvrchgvzlqbgvcfghjvlvrvpclfcshbmvglcfrjbzrbcjmjjrfgqthwfrqbgtjldmbnfwllspmwrvstvrltvrlvrtjvprgtgzjlrgclvjhqpfcwcdbdtzwdsdfrtsvtvgjmsszdfqlmhqqlzswjfndswlmhcrhglphvpnfjpbmggbwlmzjchpnrllbjpmgmzjjrqpqgsbrszqhdljcpnclvrvbntgtcdcmhtdhgslhpvdjpvrszfrjhsbvcvtfwvvgczprnpbhmnnlmctbtqdjspgvhvnhwvspwgnjvzllwlnjhfjwsslppmjbfbdnthcpzbcmnnbvhctgwgdvhvlrbltmdnlfcsncqgrmjprshdvvtvcccgzhszcjgczhmhtvmccjpchqshhdzjjhbfpzqdjszdhdvlmgctmwcjprwlsqbcqhlcrfdgnqzfdfvqslmqlppbsvbmjmfbrtdmpmtqvwvppcfzddjzhhzlrrnnhbrlhmzlqwftprfvctnfhfhfzrnrvggfqmqwcwszhtbfjncprgwcqbjlvtnrprlwwghswvprjmsbmqvwnnfggprndvshfvvwtrqjpwghgbppftgzhqjslfzhngwfsjnmjzdsjqgpmglwnjlcgmczgvndszrszcpnzqpbzjmgrfsbjlghwrbqsqdhlnhzsvsgbqhbcdffjlgrbdrrjvclzqpftlhdvvcrvlgvlpnjcqdcbdjtlwnldjhhhzrwsqlhlsztwrznfsszptlrhjmqwmnfwjtjwmmmtvwzhpmjgzgsscbddgvvhpcnhvnggzhbzvvjlmdftpbcsvtsttrvgghptmmcdclbdvmnsdntthfbdznbclwccnlzcvdwzrqgddjszvbdqcjppzrtpnrhfcvvwpjqczgqwzzzvzmlnlzqszvtllftthgwgftjzsndpzzcnqpcvmsdvvfrjdsvfclsqqhsjrrctfvdrlhfmhprjggdcmqrrbqtwnrllhhztvjgmzqszbvqfwsgllvhsvfrjffvdscwjzqlzlwdpgthddpgzjfdbdqpsnntwpslvsdpqfnsgcllszcjwvtqhwhpfrlfdgwrfmgfpjmvnstrmtfcvgwlqdfqvntltqtrmjjtwcthvwntqgvncssplnmvlnstlcphvlcmvjnstwldtntchcbmzmlzhgjfbrdlgzvqpgcndmfdnmcnwhmpdnpqstfddddcrpgrpfwfbzjqtnzwwqpzrqpmrjpfznrndfgwhtlvrcrphqfjzjbttwhgnsngqwvnsbvcqtjlmhvmnmnnmjcmlpnpgmrqsbmgljvsfqvrlljqzmzqqbgpvcrwdjmgsglssjswmnvtshhfqjhqmfmvcjwfpwsppgtrqsbhhcdljnjphnjszqpvdplbwzpwmmpwfhmhngtllzqvpmgdctmfqwwqjszssmjhwnrjdtmmvpdnwlqtcbpfcmwtbjmmsmmdpqgzdhsblgjmjbpzgqvqhnggtwmhztbbhlflllgwblncjjsngdgvsfdmsbsvlpnjjzqqbzhsqclmjnnmmwlpvtgwqmcgmrqdwdddlgbvhntbztbjnqhdlggnzwsdtdzprgddhtcttjrcpszgchtfwqjsdlnbntfwqpzpfsqrqjhthmcfszwtwcqwbvfzdnrrpmzjdrhsgmhfbsldvcrjdwvpqpszzlvbptljgvccqsdhhnztjpghbvhfptgplqdvldjzfthpspwvgljwnnndwrqzbrstnqbvrrcghssnrpvtrhmvcmbngwndzfswmgjwnnzqdcjhpthcgvthsnwqzrnzrvdjmctchhsbnrtvctzqfpcjhzmhnfjlqftbjztfbcppgmwvrzzrvlcpnpwwpvtcpdplrcfpgfqjtlfjtphhpcltwqcbqbznbtjrtdrpgtvzmgsclhpptrssqqbctdrftqzmwjmrmjtgmjmsnbnspjvcqpqnmgzgjrmfhghvsfsdqnbdjsbcpczsdswdcvhfzlgpzbtmztcnbpcvjnlcdmmlbtwzsfqtfnlrwjtwmgslcgptgbdsfwdhppvfwbbgdfdqtrbncbznmqtchzsdzlhlhjnnbpdvnnfjrdfbdqmvcb diff --git a/data/6_2023.txt b/data/6_2023.txt new file mode 100644 index 0000000..e850b8b --- /dev/null +++ b/data/6_2023.txt @@ -0,0 +1,2 @@ +Time: 62 73 75 65 +Distance: 644 1023 1240 1023 diff --git a/data/7_2020.txt b/data/7_2020.txt new file mode 100644 index 0000000..d2cce45 --- /dev/null +++ b/data/7_2020.txt @@ -0,0 +1,594 @@ +muted coral bags contain 1 bright magenta bag, 1 dim aqua bag. +muted orange bags contain 2 bright red bags. +dim olive bags contain 2 dull silver bags, 4 posh blue bags. +dim white bags contain 4 shiny indigo bags, 4 posh tan bags, 3 faded blue bags. +dotted salmon bags contain 5 bright black bags, 3 bright purple bags, 5 bright olive bags. +faded purple bags contain 4 pale beige bags, 2 striped violet bags, 3 muted olive bags, 4 vibrant chartreuse bags. +dark maroon bags contain 1 muted chartreuse bag, 1 muted violet bag, 2 bright lime bags. +bright tomato bags contain 4 dark chartreuse bags, 2 striped blue bags, 2 drab magenta bags, 2 faded gray bags. +light orange bags contain 2 bright tomato bags, 5 muted olive bags, 1 mirrored green bag, 3 drab bronze bags. +posh cyan bags contain 5 pale blue bags, 5 mirrored bronze bags, 4 dim magenta bags. +pale lime bags contain 4 light violet bags, 4 dotted black bags, 3 pale chartreuse bags. +striped lavender bags contain 4 shiny yellow bags, 1 mirrored green bag, 1 light blue bag. +dull orange bags contain 1 shiny white bag, 3 clear crimson bags, 5 posh tan bags. +posh lavender bags contain 5 vibrant orange bags, 3 dim aqua bags. +light beige bags contain 5 dim silver bags, 2 bright teal bags, 3 dotted tomato bags. +drab lime bags contain 5 faded lavender bags, 3 muted violet bags, 1 muted coral bag. +faded lavender bags contain 5 wavy blue bags, 2 plaid aqua bags. +dull bronze bags contain 2 dark lavender bags, 1 dotted silver bag. +plaid lavender bags contain 1 drab red bag, 4 wavy lime bags, 2 shiny olive bags. +vibrant plum bags contain 4 clear indigo bags, 3 light bronze bags, 1 striped coral bag. +dull cyan bags contain 4 striped cyan bags, 5 bright magenta bags, 2 pale brown bags. +clear gold bags contain 4 faded black bags, 1 shiny chartreuse bag, 1 mirrored green bag. +dotted olive bags contain 5 striped cyan bags, 2 dark chartreuse bags, 1 bright aqua bag, 1 pale blue bag. +light cyan bags contain 1 mirrored green bag. +faded tan bags contain 2 dim teal bags, 4 wavy green bags. +dull olive bags contain 1 striped teal bag, 2 drab green bags, 2 light red bags. +plaid red bags contain 2 muted cyan bags. +faded coral bags contain 1 striped maroon bag. +light aqua bags contain 2 muted plum bags, 5 mirrored bronze bags, 4 striped coral bags, 1 posh violet bag. +bright aqua bags contain 2 pale coral bags, 4 mirrored bronze bags, 1 light gold bag, 2 plaid lime bags. +muted yellow bags contain 1 wavy blue bag, 5 drab violet bags, 3 wavy black bags, 2 bright teal bags. +vibrant yellow bags contain 4 dull silver bags, 4 dark tan bags, 2 drab magenta bags. +clear purple bags contain 1 posh bronze bag, 5 vibrant black bags, 3 bright bronze bags. +faded tomato bags contain 2 shiny turquoise bags, 5 vibrant yellow bags. +muted gold bags contain 1 vibrant purple bag, 5 clear aqua bags, 1 mirrored white bag. +drab magenta bags contain no other bags. +posh brown bags contain 5 muted plum bags, 5 mirrored aqua bags, 3 wavy chartreuse bags, 1 dull lavender bag. +bright red bags contain 3 drab violet bags, 3 clear blue bags. +striped red bags contain 4 vibrant orange bags, 2 vibrant turquoise bags. +dotted green bags contain 1 pale green bag, 2 posh teal bags, 1 muted blue bag, 2 clear tomato bags. +pale fuchsia bags contain 3 dim blue bags. +light plum bags contain 4 clear green bags, 3 clear crimson bags, 1 vibrant aqua bag, 5 faded gray bags. +dim violet bags contain 3 faded bronze bags, 5 dark turquoise bags. +wavy indigo bags contain 2 pale green bags, 2 clear tomato bags, 2 dotted black bags. +dark salmon bags contain 4 dotted silver bags. +plaid bronze bags contain 2 shiny magenta bags. +mirrored aqua bags contain 1 wavy green bag, 1 striped bronze bag, 4 light blue bags. +mirrored gray bags contain 2 clear beige bags. +wavy olive bags contain 3 dim brown bags, 5 clear green bags, 4 pale white bags. +vibrant magenta bags contain 3 striped cyan bags, 3 mirrored purple bags. +dotted teal bags contain 4 pale coral bags. +posh orange bags contain 1 wavy chartreuse bag, 2 mirrored orange bags, 5 dark white bags, 1 vibrant salmon bag. +dotted brown bags contain 5 drab silver bags, 5 bright tomato bags, 3 mirrored coral bags, 2 striped bronze bags. +posh purple bags contain 5 striped purple bags, 1 wavy beige bag, 3 clear beige bags. +dark bronze bags contain 5 posh white bags, 5 muted coral bags, 4 light blue bags. +plaid violet bags contain 5 dark fuchsia bags. +drab gray bags contain 5 plaid bronze bags, 4 dark salmon bags, 5 mirrored blue bags. +muted tan bags contain 1 striped olive bag, 5 vibrant magenta bags, 5 mirrored green bags. +wavy magenta bags contain 2 striped beige bags, 4 vibrant blue bags. +dull violet bags contain no other bags. +drab blue bags contain 1 drab red bag, 4 dark gray bags. +shiny crimson bags contain 1 shiny magenta bag, 5 shiny silver bags, 4 striped salmon bags, 5 light magenta bags. +muted teal bags contain 2 shiny teal bags, 5 dim fuchsia bags, 2 dim red bags. +dotted gold bags contain 2 clear red bags, 1 wavy beige bag. +dotted white bags contain 4 plaid chartreuse bags. +muted lavender bags contain 1 striped silver bag. +vibrant teal bags contain 1 faded blue bag. +striped tan bags contain 3 muted salmon bags, 4 striped purple bags, 3 striped silver bags. +light blue bags contain 2 drab violet bags. +dim salmon bags contain 1 pale chartreuse bag. +dark lavender bags contain 2 dull brown bags, 5 pale teal bags, 2 muted lime bags, 4 pale beige bags. +wavy beige bags contain 4 posh tan bags, 3 muted brown bags, 1 pale magenta bag, 5 muted magenta bags. +drab olive bags contain 1 striped indigo bag, 2 dull beige bags, 5 bright magenta bags. +pale cyan bags contain 2 bright olive bags. +dark blue bags contain 1 posh indigo bag, 2 bright lime bags. +dark chartreuse bags contain 3 muted brown bags, 3 light violet bags, 1 mirrored green bag. +dim bronze bags contain 1 muted plum bag, 5 pale red bags. +dotted fuchsia bags contain 3 drab violet bags. +posh fuchsia bags contain 1 mirrored maroon bag. +bright coral bags contain 2 vibrant gray bags, 2 drab aqua bags. +dark orange bags contain 2 bright salmon bags, 1 plaid cyan bag, 3 plaid beige bags. +dotted turquoise bags contain 4 wavy green bags, 1 plaid lavender bag, 1 dotted olive bag, 1 dark silver bag. +plaid salmon bags contain 3 faded plum bags, 4 dark teal bags, 2 wavy green bags. +clear cyan bags contain 3 dull tan bags, 2 shiny olive bags, 5 shiny brown bags. +posh tan bags contain 5 dim lime bags, 1 shiny indigo bag, 2 dark chartreuse bags. +muted violet bags contain 1 wavy blue bag, 1 dark silver bag. +dull indigo bags contain 3 posh plum bags, 5 shiny coral bags, 5 dull crimson bags. +mirrored violet bags contain 2 posh plum bags, 5 dark indigo bags. +pale tomato bags contain 1 bright tomato bag, 3 striped salmon bags, 1 posh silver bag. +shiny tomato bags contain 3 shiny coral bags, 5 striped orange bags, 1 posh bronze bag, 1 wavy silver bag. +dull silver bags contain 3 light violet bags, 2 dim white bags, 2 dull beige bags, 3 pale maroon bags. +dark gray bags contain 5 drab green bags, 5 mirrored green bags, 4 faded gray bags, 3 drab white bags. +wavy orange bags contain 1 light maroon bag, 3 shiny beige bags, 5 drab silver bags. +pale lavender bags contain 4 shiny white bags, 4 bright indigo bags, 5 shiny teal bags, 3 clear crimson bags. +pale chartreuse bags contain 3 dark lavender bags. +posh green bags contain 1 plaid plum bag, 3 drab maroon bags. +clear lavender bags contain 1 vibrant purple bag, 4 pale orange bags. +dim red bags contain 1 posh coral bag, 5 pale yellow bags, 5 plaid aqua bags, 3 striped bronze bags. +light violet bags contain no other bags. +dull aqua bags contain 3 posh bronze bags, 2 muted plum bags. +faded beige bags contain 5 vibrant orange bags, 5 clear magenta bags. +vibrant black bags contain 5 wavy orange bags. +faded silver bags contain 1 wavy olive bag. +dark brown bags contain 3 light indigo bags, 1 muted salmon bag. +mirrored green bags contain no other bags. +plaid tomato bags contain 1 faded gray bag, 3 striped teal bags, 2 dotted beige bags, 2 dark coral bags. +faded salmon bags contain 1 vibrant purple bag, 1 dark cyan bag, 3 muted maroon bags. +faded white bags contain 1 mirrored tan bag, 2 pale fuchsia bags, 3 wavy gray bags, 3 plaid maroon bags. +posh crimson bags contain 2 dull tan bags, 4 striped silver bags, 1 clear fuchsia bag. +striped silver bags contain 5 dull tan bags, 3 striped blue bags, 1 dark silver bag, 1 clear green bag. +dim green bags contain 1 striped coral bag, 3 plaid gray bags, 4 clear green bags, 3 drab indigo bags. +shiny gold bags contain 2 dark chartreuse bags, 2 bright silver bags, 1 striped bronze bag, 2 pale maroon bags. +wavy coral bags contain 1 clear magenta bag. +bright white bags contain 4 dim teal bags, 4 plaid violet bags, 5 dotted chartreuse bags. +dull lime bags contain 5 vibrant salmon bags, 1 wavy fuchsia bag. +dark red bags contain 2 mirrored gray bags, 5 drab tomato bags, 1 faded purple bag. +mirrored cyan bags contain 5 bright cyan bags. +dim blue bags contain 3 dull beige bags, 3 shiny white bags, 4 posh purple bags. +pale teal bags contain 3 striped tomato bags, 1 plaid plum bag, 5 mirrored green bags, 1 striped blue bag. +posh silver bags contain 1 light violet bag, 3 dull blue bags. +faded black bags contain 2 bright tomato bags, 1 striped teal bag, 1 dim maroon bag. +posh plum bags contain 5 faded gray bags. +striped beige bags contain 4 dotted fuchsia bags, 1 pale teal bag, 5 shiny cyan bags, 5 striped indigo bags. +striped indigo bags contain 4 muted olive bags, 1 dotted silver bag, 3 clear fuchsia bags, 3 dull orange bags. +dull black bags contain 4 dark gold bags, 4 dark tan bags, 2 pale orange bags, 2 light gold bags. +dark yellow bags contain 3 posh teal bags. +vibrant gold bags contain 3 dull cyan bags, 1 mirrored maroon bag. +dull gray bags contain 5 plaid plum bags, 4 mirrored aqua bags. +muted chartreuse bags contain 4 dull blue bags, 1 dull tan bag, 2 light green bags, 4 mirrored green bags. +dim maroon bags contain 1 striped teal bag. +bright orange bags contain 3 muted maroon bags, 5 muted tomato bags, 4 striped maroon bags, 1 faded gray bag. +faded orange bags contain 3 posh lime bags, 1 clear purple bag, 4 dotted magenta bags. +dotted red bags contain 4 plaid tan bags, 1 dull tan bag, 2 posh beige bags, 5 bright turquoise bags. +dotted orange bags contain 4 bright black bags. +wavy plum bags contain 3 dull plum bags, 3 dotted cyan bags. +clear turquoise bags contain 2 striped blue bags, 4 wavy plum bags, 2 dark olive bags, 2 striped maroon bags. +wavy chartreuse bags contain 3 shiny yellow bags. +muted turquoise bags contain 2 plaid indigo bags. +dotted bronze bags contain 2 pale red bags, 3 dull lavender bags, 4 striped crimson bags. +clear black bags contain 3 striped plum bags, 3 plaid violet bags, 3 shiny chartreuse bags, 4 bright tomato bags. +shiny brown bags contain 5 posh lime bags, 1 posh bronze bag, 4 wavy brown bags. +posh bronze bags contain 1 mirrored gray bag, 2 bright plum bags, 5 dark gold bags. +dark crimson bags contain 4 wavy orange bags, 4 wavy green bags, 1 muted brown bag, 2 dotted purple bags. +faded red bags contain 2 plaid violet bags, 5 dull orange bags, 1 mirrored tomato bag, 3 dim aqua bags. +drab purple bags contain 1 posh violet bag, 1 dotted cyan bag, 3 muted magenta bags, 2 wavy black bags. +dotted beige bags contain 4 shiny green bags, 5 striped maroon bags. +dim magenta bags contain 1 dull violet bag, 3 striped tomato bags. +striped white bags contain 4 dim maroon bags. +vibrant tan bags contain 1 bright lime bag, 3 faded black bags, 3 bright olive bags. +bright olive bags contain 5 drab orange bags, 2 drab black bags, 4 muted salmon bags. +dark white bags contain 2 mirrored beige bags, 1 bright teal bag, 2 posh beige bags. +pale gold bags contain 5 dark orange bags. +vibrant indigo bags contain 1 muted purple bag. +faded turquoise bags contain 5 pale indigo bags. +faded bronze bags contain 1 clear magenta bag, 4 faded gold bags. +shiny gray bags contain 3 striped crimson bags, 2 dim brown bags, 3 drab red bags. +mirrored magenta bags contain 3 wavy maroon bags, 2 pale beige bags. +muted lime bags contain 4 clear beige bags, 5 vibrant chartreuse bags, 1 dark turquoise bag, 5 dim crimson bags. +vibrant crimson bags contain 1 dotted fuchsia bag, 1 pale tomato bag, 4 dark turquoise bags. +vibrant cyan bags contain 4 mirrored brown bags, 3 wavy green bags. +pale orange bags contain 1 pale gray bag, 2 wavy green bags, 5 plaid plum bags. +vibrant maroon bags contain 3 bright red bags. +light bronze bags contain 1 dull blue bag, 2 posh crimson bags, 5 drab magenta bags. +dim beige bags contain 4 shiny yellow bags, 4 muted lavender bags. +pale black bags contain 5 mirrored fuchsia bags, 4 striped salmon bags, 2 dark turquoise bags, 4 dotted orange bags. +dark turquoise bags contain 2 striped purple bags, 5 bright teal bags. +drab crimson bags contain 1 faded turquoise bag, 4 vibrant crimson bags. +pale maroon bags contain 3 dull violet bags. +bright salmon bags contain 5 pale lime bags, 4 bright cyan bags. +dull beige bags contain 3 striped tomato bags, 3 dotted black bags. +clear fuchsia bags contain 4 shiny white bags, 1 mirrored fuchsia bag, 4 drab violet bags, 1 pale magenta bag. +wavy gold bags contain 1 vibrant black bag, 2 dotted indigo bags, 5 faded silver bags, 1 muted cyan bag. +plaid maroon bags contain 3 bright silver bags, 5 mirrored coral bags. +dim cyan bags contain 3 muted white bags, 2 wavy maroon bags. +wavy purple bags contain 4 bright teal bags, 4 dull turquoise bags, 2 vibrant aqua bags. +muted cyan bags contain 3 muted olive bags, 3 dim brown bags, 4 striped indigo bags. +striped olive bags contain 2 clear blue bags, 2 plaid indigo bags, 3 faded blue bags, 3 bright tomato bags. +plaid orange bags contain 2 bright indigo bags, 2 vibrant blue bags, 5 light gray bags, 3 faded tomato bags. +striped plum bags contain 5 posh gold bags, 5 bright bronze bags, 2 clear gold bags, 2 dark lime bags. +dim crimson bags contain 4 posh tan bags. +drab aqua bags contain 3 mirrored lime bags, 4 pale salmon bags, 2 wavy coral bags, 4 light brown bags. +bright silver bags contain 4 muted salmon bags, 2 striped salmon bags, 5 shiny turquoise bags. +shiny beige bags contain 2 light plum bags, 4 dim maroon bags, 3 pale brown bags, 1 pale maroon bag. +shiny tan bags contain 4 posh chartreuse bags, 3 dim tan bags, 2 pale green bags, 5 light tomato bags. +wavy silver bags contain 3 drab magenta bags. +light brown bags contain 5 dim fuchsia bags, 3 drab brown bags, 4 posh bronze bags, 4 bright cyan bags. +striped green bags contain 5 bright bronze bags, 1 striped gray bag, 4 wavy fuchsia bags, 2 striped indigo bags. +faded brown bags contain 3 dim brown bags. +clear maroon bags contain 2 mirrored magenta bags, 3 light cyan bags. +dim black bags contain 3 dull turquoise bags. +muted bronze bags contain 3 bright green bags. +drab green bags contain 4 posh gold bags. +muted magenta bags contain 5 muted brown bags, 2 dark chartreuse bags, 5 pale magenta bags. +light chartreuse bags contain 5 dim lime bags, 1 faded blue bag, 5 striped salmon bags. +dull teal bags contain 3 shiny teal bags. +faded blue bags contain 5 shiny indigo bags, 5 drab magenta bags, 1 dim lime bag, 5 striped teal bags. +pale red bags contain 1 dull brown bag, 1 bright tomato bag. +dim indigo bags contain 2 vibrant white bags. +light gold bags contain 5 shiny gold bags. +clear green bags contain 2 muted brown bags, 4 mirrored orange bags. +posh red bags contain 1 striped salmon bag, 4 posh silver bags, 1 pale blue bag. +dull coral bags contain 2 pale bronze bags, 3 shiny lime bags, 5 muted chartreuse bags. +dotted plum bags contain 4 plaid fuchsia bags, 1 mirrored coral bag, 4 clear beige bags, 4 bright gray bags. +shiny black bags contain 5 dotted indigo bags. +drab white bags contain 5 wavy lime bags, 1 posh bronze bag, 3 striped crimson bags. +light fuchsia bags contain 3 striped maroon bags, 3 muted coral bags, 3 light green bags. +dotted tan bags contain 1 wavy aqua bag, 3 dull turquoise bags. +dark tomato bags contain 4 dull violet bags, 4 shiny gold bags, 2 clear fuchsia bags, 5 striped teal bags. +posh yellow bags contain 1 dotted brown bag, 5 mirrored aqua bags. +dark silver bags contain 3 striped blue bags, 3 faded gray bags. +clear chartreuse bags contain 2 faded green bags, 4 vibrant lavender bags, 5 faded lime bags, 5 plaid lavender bags. +dotted gray bags contain 3 drab orange bags. +vibrant beige bags contain 2 bright olive bags, 2 plaid gold bags, 3 drab lime bags. +light lime bags contain 1 bright teal bag, 1 shiny cyan bag. +dark aqua bags contain 4 striped silver bags, 1 vibrant bronze bag, 2 plaid orange bags. +shiny plum bags contain 3 bright tomato bags, 2 clear crimson bags, 2 dull violet bags, 2 posh bronze bags. +posh gray bags contain 4 pale maroon bags, 4 plaid gold bags, 3 bright red bags. +dark olive bags contain 4 pale aqua bags, 4 bright brown bags, 2 dotted gray bags. +dim tan bags contain 5 mirrored orange bags, 5 pale magenta bags, 3 striped teal bags. +drab chartreuse bags contain 3 posh olive bags. +clear lime bags contain 1 vibrant gold bag, 1 faded beige bag, 2 dark lime bags, 1 faded gold bag. +pale plum bags contain 5 dim lavender bags, 3 dim turquoise bags, 5 muted aqua bags, 4 bright maroon bags. +mirrored lime bags contain 4 dim brown bags, 2 muted tomato bags. +wavy violet bags contain 3 mirrored chartreuse bags, 5 wavy gold bags, 1 faded gray bag, 2 dim maroon bags. +posh coral bags contain 5 bright turquoise bags, 2 dark fuchsia bags, 4 light crimson bags. +shiny olive bags contain 2 shiny coral bags, 2 posh bronze bags. +faded yellow bags contain 5 striped black bags, 1 dotted black bag. +dotted chartreuse bags contain 3 shiny maroon bags, 2 pale magenta bags, 5 wavy beige bags, 5 dim silver bags. +dotted lavender bags contain 5 muted silver bags, 2 striped purple bags. +posh olive bags contain 5 dotted yellow bags, 1 light salmon bag. +shiny magenta bags contain 1 striped yellow bag, 1 dotted yellow bag, 1 bright teal bag, 3 striped tan bags. +clear red bags contain 5 shiny teal bags. +posh black bags contain 1 shiny lime bag, 1 shiny salmon bag. +dotted yellow bags contain 3 dull gold bags, 3 dotted fuchsia bags, 1 shiny teal bag, 2 bright black bags. +drab salmon bags contain 5 plaid white bags, 4 dull lavender bags, 4 striped red bags, 1 posh bronze bag. +shiny white bags contain 4 striped tomato bags, 4 posh tan bags. +clear olive bags contain 2 bright plum bags, 1 clear green bag. +light tomato bags contain 5 dark purple bags. +wavy crimson bags contain 2 plaid plum bags, 1 vibrant tomato bag, 4 mirrored plum bags. +muted indigo bags contain 1 posh coral bag, 1 posh lavender bag, 1 muted coral bag, 4 faded lime bags. +mirrored coral bags contain 3 vibrant chartreuse bags, 5 muted magenta bags, 2 shiny salmon bags. +bright violet bags contain 2 dotted aqua bags, 3 dark yellow bags, 1 clear purple bag. +mirrored white bags contain 1 wavy chartreuse bag, 3 clear aqua bags, 3 bright tan bags. +mirrored orange bags contain no other bags. +drab violet bags contain 1 drab magenta bag, 4 striped purple bags. +pale white bags contain 1 muted maroon bag, 1 clear crimson bag, 3 dotted fuchsia bags, 3 clear bronze bags. +dull green bags contain 3 mirrored fuchsia bags, 4 mirrored purple bags, 2 dotted green bags. +pale tan bags contain 2 dark fuchsia bags, 5 shiny white bags, 4 bright red bags, 5 posh plum bags. +dull tan bags contain 5 clear blue bags, 1 shiny turquoise bag. +shiny turquoise bags contain 5 striped teal bags, 5 clear crimson bags, 4 dim lime bags, 2 faded gray bags. +shiny lime bags contain 1 plaid indigo bag, 1 dim lime bag, 5 dotted beige bags, 2 dotted indigo bags. +bright fuchsia bags contain 4 plaid chartreuse bags, 1 drab red bag. +wavy lavender bags contain 1 muted olive bag, 3 shiny tan bags, 5 posh tan bags, 4 bright green bags. +shiny violet bags contain 2 dull lime bags, 1 dotted crimson bag, 5 dark lime bags, 4 shiny salmon bags. +dotted maroon bags contain 1 vibrant crimson bag. +mirrored bronze bags contain 5 posh silver bags, 3 mirrored lime bags. +light green bags contain 1 pale indigo bag, 4 vibrant chartreuse bags, 1 dull beige bag, 5 pale aqua bags. +clear indigo bags contain 5 dull turquoise bags. +faded indigo bags contain 3 muted tomato bags, 2 dotted fuchsia bags, 4 striped silver bags. +shiny green bags contain 3 striped salmon bags, 4 posh gold bags. +muted crimson bags contain 4 dark indigo bags. +posh gold bags contain 4 mirrored fuchsia bags, 3 muted brown bags, 5 dim lime bags. +pale brown bags contain 3 striped teal bags, 2 bright magenta bags. +dark indigo bags contain 1 muted tomato bag. +light turquoise bags contain 2 vibrant turquoise bags, 2 bright silver bags. +shiny salmon bags contain 4 pale gray bags. +faded fuchsia bags contain 4 light chartreuse bags, 4 posh lime bags. +mirrored teal bags contain 4 dull orange bags, 1 muted turquoise bag, 2 vibrant aqua bags, 3 faded blue bags. +muted tomato bags contain 4 drab green bags, 3 pale coral bags, 5 bright green bags. +bright plum bags contain 4 drab magenta bags, 5 light violet bags. +striped brown bags contain 3 vibrant turquoise bags, 2 plaid crimson bags, 2 wavy gray bags. +muted white bags contain 5 posh white bags. +muted beige bags contain 3 shiny cyan bags, 4 dim brown bags, 3 clear blue bags. +dim coral bags contain 4 wavy fuchsia bags. +light indigo bags contain 2 faded bronze bags, 3 dim magenta bags. +dark black bags contain 5 faded fuchsia bags, 5 mirrored olive bags, 3 dotted fuchsia bags. +vibrant green bags contain 5 bright purple bags, 5 muted chartreuse bags. +plaid fuchsia bags contain 5 bright aqua bags, 2 shiny indigo bags. +light red bags contain 1 vibrant aqua bag. +light gray bags contain 2 bright maroon bags, 3 dim turquoise bags, 2 faded gold bags. +faded gold bags contain 3 dull tan bags, 2 dotted black bags. +striped lime bags contain 5 muted fuchsia bags, 3 bright tomato bags, 3 drab teal bags. +dim purple bags contain 4 drab lavender bags. +plaid aqua bags contain 4 shiny indigo bags, 2 pale teal bags, 3 clear crimson bags, 2 striped purple bags. +wavy fuchsia bags contain 4 shiny turquoise bags, 3 muted salmon bags. +bright lavender bags contain 4 light gold bags, 1 bright magenta bag. +striped tomato bags contain no other bags. +bright indigo bags contain 4 striped yellow bags, 2 clear crimson bags. +dull tomato bags contain 5 mirrored orange bags, 3 vibrant yellow bags. +striped violet bags contain 1 clear beige bag, 4 drab violet bags. +vibrant turquoise bags contain 4 light violet bags, 2 plaid gold bags. +dim aqua bags contain 1 bright teal bag, 1 wavy silver bag. +dim lavender bags contain 2 dull aqua bags, 1 plaid maroon bag, 1 light gray bag, 4 wavy maroon bags. +vibrant violet bags contain 3 posh gold bags, 3 shiny plum bags, 4 muted coral bags, 4 posh indigo bags. +shiny chartreuse bags contain 5 light violet bags, 5 plaid aqua bags. +dull brown bags contain 1 dull violet bag, 1 striped salmon bag, 1 wavy tan bag. +muted silver bags contain 4 dark red bags, 2 muted violet bags. +striped blue bags contain no other bags. +plaid silver bags contain 5 dotted red bags, 2 faded teal bags, 2 faded olive bags. +faded lime bags contain 3 vibrant chartreuse bags. +vibrant silver bags contain 3 pale violet bags, 3 dark purple bags. +clear tomato bags contain 3 clear salmon bags, 2 light blue bags, 2 striped yellow bags. +pale indigo bags contain 3 clear green bags. +dim turquoise bags contain 3 pale teal bags, 4 shiny white bags. +bright tan bags contain 3 dotted beige bags. +light tan bags contain 3 dark teal bags, 4 muted brown bags. +plaid white bags contain 3 clear white bags, 1 dotted gold bag, 1 striped beige bag, 3 mirrored lavender bags. +faded aqua bags contain 1 bright plum bag. +pale crimson bags contain 2 mirrored magenta bags, 2 bright tan bags, 4 clear maroon bags. +mirrored tomato bags contain 5 bright bronze bags. +bright bronze bags contain 3 light red bags. +plaid green bags contain 5 striped green bags, 3 vibrant orange bags. +drab teal bags contain 4 plaid orange bags, 4 dotted teal bags, 1 vibrant chartreuse bag. +posh chartreuse bags contain 3 shiny teal bags, 5 dark tan bags, 1 dull olive bag. +dim lime bags contain 3 pale magenta bags, 5 striped tomato bags, 2 drab magenta bags, 4 striped blue bags. +vibrant fuchsia bags contain 5 plaid tomato bags, 2 dark coral bags, 5 mirrored lime bags, 3 plaid violet bags. +mirrored turquoise bags contain 5 wavy gray bags, 3 faded lavender bags, 5 muted fuchsia bags, 5 clear red bags. +plaid magenta bags contain 1 clear bronze bag, 3 muted cyan bags, 3 clear fuchsia bags. +muted blue bags contain 4 dotted indigo bags, 5 dim magenta bags. +dotted lime bags contain 5 vibrant aqua bags, 1 clear olive bag, 1 clear green bag. +dim teal bags contain 5 mirrored teal bags, 4 dotted teal bags, 1 mirrored tomato bag, 2 dull violet bags. +plaid blue bags contain 5 posh yellow bags, 2 mirrored crimson bags, 4 drab lavender bags, 5 plaid fuchsia bags. +drab turquoise bags contain 1 dotted plum bag, 4 dim gold bags, 3 mirrored white bags, 2 posh coral bags. +striped maroon bags contain 2 dim coral bags, 4 light cyan bags. +vibrant blue bags contain 2 dotted beige bags, 4 shiny green bags, 3 posh bronze bags, 3 posh olive bags. +posh teal bags contain 5 wavy beige bags, 1 striped black bag, 3 dotted teal bags. +light yellow bags contain 1 wavy olive bag, 4 shiny green bags, 2 clear teal bags. +dim silver bags contain 1 dark lime bag, 1 bright red bag. +drab gold bags contain 4 mirrored purple bags, 3 wavy maroon bags. +striped gray bags contain 3 wavy silver bags. +bright maroon bags contain 5 dull olive bags, 4 shiny gold bags. +dotted silver bags contain 4 dim tan bags, 3 posh tan bags, 1 clear crimson bag. +dark green bags contain 4 dim teal bags, 5 dull tan bags, 1 pale blue bag, 5 clear aqua bags. +clear crimson bags contain 1 posh gold bag, 1 dull violet bag, 4 mirrored green bags. +bright green bags contain 5 clear bronze bags, 2 wavy beige bags. +drab yellow bags contain 2 dim lavender bags, 4 striped indigo bags, 4 wavy green bags. +bright brown bags contain 5 drab maroon bags, 2 wavy beige bags. +dark purple bags contain 5 dark green bags. +striped magenta bags contain 2 vibrant blue bags, 3 muted yellow bags, 3 muted violet bags. +dim orange bags contain 4 dim fuchsia bags. +drab brown bags contain 3 plaid lavender bags, 3 mirrored plum bags, 1 faded black bag. +light magenta bags contain 2 clear beige bags, 3 shiny plum bags, 3 drab violet bags. +faded gray bags contain 5 mirrored green bags, 3 dull violet bags. +dull crimson bags contain 1 light gray bag, 2 dull gray bags. +dotted blue bags contain 2 faded lavender bags, 2 mirrored fuchsia bags, 2 dark blue bags. +bright black bags contain 4 dark chartreuse bags, 5 dim turquoise bags, 5 clear green bags, 2 striped teal bags. +dim plum bags contain 4 posh silver bags, 3 clear red bags. +plaid gray bags contain 2 clear silver bags, 1 posh lime bag, 3 striped gray bags, 3 dotted maroon bags. +muted plum bags contain 4 plaid aqua bags, 1 wavy gray bag, 2 light crimson bags, 1 dull red bag. +dark magenta bags contain 4 drab white bags, 5 dark lavender bags, 5 dim teal bags, 5 bright tan bags. +clear brown bags contain 2 mirrored teal bags, 1 striped silver bag, 3 mirrored purple bags, 3 faded gray bags. +muted brown bags contain 1 striped teal bag, 3 pale magenta bags, 3 striped tomato bags. +bright gray bags contain 1 dark fuchsia bag. +wavy teal bags contain 5 faded gold bags, 5 bright plum bags. +wavy bronze bags contain 4 posh turquoise bags, 5 muted red bags, 3 plaid crimson bags. +shiny lavender bags contain 4 bright tan bags, 5 drab teal bags, 1 shiny tan bag. +pale silver bags contain 2 mirrored beige bags, 2 drab crimson bags, 4 clear coral bags, 3 plaid brown bags. +drab silver bags contain 1 dark fuchsia bag, 3 drab magenta bags, 4 pale violet bags, 5 dull tan bags. +bright chartreuse bags contain 1 bright green bag. +light salmon bags contain 2 dim brown bags, 4 dark gold bags, 2 dull silver bags, 4 bright bronze bags. +clear silver bags contain 4 shiny gray bags, 3 drab green bags, 5 dim aqua bags, 2 drab olive bags. +wavy tomato bags contain 3 wavy green bags. +dotted magenta bags contain 4 posh purple bags. +striped fuchsia bags contain 4 vibrant maroon bags, 4 wavy tomato bags, 3 clear coral bags, 3 striped indigo bags. +wavy green bags contain 1 plaid aqua bag. +clear plum bags contain 2 wavy silver bags, 3 posh red bags, 2 dark gray bags, 4 dull brown bags. +striped aqua bags contain 5 dull gold bags, 5 mirrored green bags. +dull maroon bags contain 5 posh crimson bags, 1 muted tomato bag, 5 shiny gold bags. +muted green bags contain 5 faded blue bags, 2 dark tan bags, 1 mirrored bronze bag, 2 dotted crimson bags. +mirrored purple bags contain 3 clear green bags, 2 bright plum bags, 4 muted olive bags. +dull purple bags contain 3 plaid tan bags, 5 bright turquoise bags. +pale coral bags contain 1 clear olive bag. +wavy gray bags contain 4 light gold bags, 5 clear beige bags, 4 dim lime bags. +wavy cyan bags contain 2 striped olive bags. +drab orange bags contain 1 mirrored purple bag, 2 muted cyan bags, 4 posh purple bags. +wavy lime bags contain 2 striped indigo bags, 3 plaid plum bags, 3 drab violet bags, 5 muted magenta bags. +dull blue bags contain 3 drab magenta bags, 1 shiny teal bag, 5 mirrored fuchsia bags, 2 posh plum bags. +dark teal bags contain 4 shiny gray bags. +pale beige bags contain 4 faded blue bags, 2 dull red bags, 3 wavy beige bags, 2 dull tan bags. +pale purple bags contain 2 pale maroon bags. +clear magenta bags contain 3 muted olive bags, 3 bright teal bags, 4 dull salmon bags, 2 mirrored coral bags. +dark tan bags contain 2 plaid plum bags, 5 bright purple bags, 4 mirrored aqua bags. +pale turquoise bags contain 3 striped silver bags, 2 bright gray bags. +shiny indigo bags contain 5 mirrored fuchsia bags. +plaid plum bags contain no other bags. +plaid yellow bags contain 5 bright beige bags, 2 dull tan bags, 3 dim crimson bags, 1 vibrant tomato bag. +pale gray bags contain 5 mirrored green bags, 3 plaid aqua bags, 5 pale violet bags. +dotted crimson bags contain 5 striped lavender bags, 3 shiny orange bags. +plaid teal bags contain 2 bright aqua bags, 1 posh olive bag, 4 shiny white bags, 3 dotted beige bags. +dim brown bags contain 5 striped tomato bags, 5 wavy black bags, 3 pale magenta bags. +vibrant gray bags contain 4 dark cyan bags, 5 drab purple bags, 2 mirrored crimson bags, 4 dark turquoise bags. +light olive bags contain 2 mirrored teal bags. +posh aqua bags contain 5 muted cyan bags, 1 plaid aqua bag, 4 mirrored plum bags. +wavy tan bags contain 5 clear fuchsia bags, 1 bright silver bag, 5 clear green bags, 2 bright teal bags. +shiny cyan bags contain 3 clear green bags, 2 bright black bags, 3 muted magenta bags, 4 mirrored orange bags. +mirrored fuchsia bags contain no other bags. +plaid beige bags contain 4 wavy indigo bags, 2 bright green bags, 1 light magenta bag, 2 plaid tomato bags. +drab cyan bags contain 5 posh yellow bags, 5 dull white bags. +drab tan bags contain 5 wavy teal bags. +muted aqua bags contain 3 dim blue bags, 1 dim tan bag, 3 dim white bags. +posh tomato bags contain 1 clear purple bag, 4 vibrant crimson bags. +pale aqua bags contain 5 wavy fuchsia bags, 2 striped bronze bags. +pale magenta bags contain no other bags. +pale violet bags contain 1 pale maroon bag. +shiny teal bags contain 4 striped tomato bags, 1 bright plum bag, 1 dim crimson bag, 1 plaid aqua bag. +vibrant aqua bags contain 4 mirrored green bags, 4 dim crimson bags, 4 faded blue bags. +faded violet bags contain 1 dark green bag, 4 mirrored maroon bags, 1 dark lavender bag, 4 bright black bags. +mirrored tan bags contain 3 mirrored magenta bags. +faded cyan bags contain 5 dotted crimson bags, 1 vibrant yellow bag, 3 shiny bronze bags. +posh violet bags contain 4 dotted beige bags. +striped salmon bags contain 3 posh purple bags, 4 clear green bags. +mirrored indigo bags contain 2 posh plum bags. +dim gold bags contain 2 posh gold bags, 5 faded gray bags. +striped bronze bags contain 4 mirrored orange bags. +light white bags contain 3 shiny plum bags, 5 striped indigo bags. +muted purple bags contain 2 dull orange bags, 4 drab maroon bags, 4 striped lavender bags, 4 dim teal bags. +clear violet bags contain 5 plaid yellow bags, 3 dark lavender bags, 2 wavy salmon bags. +dotted black bags contain 1 pale brown bag, 1 drab magenta bag, 5 plaid plum bags, 5 clear crimson bags. +wavy black bags contain 5 dim lime bags, 4 drab magenta bags, 5 mirrored orange bags, 3 plaid plum bags. +plaid purple bags contain 4 dull maroon bags. +dotted cyan bags contain 4 pale indigo bags, 1 dark coral bag. +bright magenta bags contain 3 clear fuchsia bags, 2 plaid plum bags, 1 clear blue bag, 1 dim white bag. +posh blue bags contain 4 dark purple bags. +vibrant tomato bags contain 5 muted tomato bags, 5 striped indigo bags, 3 clear crimson bags. +drab black bags contain 3 dotted orange bags, 1 pale tomato bag, 2 bright maroon bags. +clear salmon bags contain 3 pale maroon bags. +mirrored beige bags contain 5 dark lavender bags, 5 light violet bags, 3 striped tomato bags. +muted gray bags contain 4 muted gold bags, 4 clear indigo bags, 4 light maroon bags. +posh indigo bags contain 4 faded aqua bags. +wavy red bags contain 3 dim crimson bags, 3 clear red bags, 3 wavy beige bags, 1 vibrant purple bag. +striped purple bags contain 4 mirrored orange bags, 3 drab magenta bags, 1 bright plum bag, 3 striped teal bags. +dull magenta bags contain 2 dim crimson bags, 2 wavy olive bags. +wavy brown bags contain 3 faded tomato bags, 1 muted olive bag, 2 light tomato bags, 1 shiny orange bag. +clear coral bags contain 2 shiny maroon bags. +dotted indigo bags contain 1 posh silver bag. +pale green bags contain 1 striped crimson bag, 3 dim coral bags, 5 mirrored aqua bags, 4 light cyan bags. +vibrant chartreuse bags contain 1 clear beige bag, 4 muted magenta bags, 2 mirrored orange bags, 5 pale teal bags. +muted salmon bags contain 1 muted brown bag, 5 dark chartreuse bags, 3 posh gold bags, 2 shiny indigo bags. +mirrored gold bags contain 2 dotted bronze bags, 3 muted bronze bags, 4 clear orange bags. +light purple bags contain 2 light blue bags, 5 muted black bags, 4 posh indigo bags. +clear aqua bags contain 2 muted chartreuse bags, 2 dotted black bags, 4 wavy black bags. +faded crimson bags contain 5 shiny salmon bags, 2 striped plum bags. +bright cyan bags contain 2 wavy olive bags, 3 muted turquoise bags. +pale yellow bags contain 1 pale beige bag, 3 striped cyan bags. +striped crimson bags contain 5 shiny indigo bags, 4 dim brown bags, 5 muted salmon bags, 5 mirrored green bags. +mirrored brown bags contain 1 pale tomato bag, 1 striped purple bag, 5 posh gold bags. +bright lime bags contain 2 muted red bags, 1 pale lavender bag, 1 posh white bag. +posh turquoise bags contain 3 pale white bags. +drab red bags contain 3 dark fuchsia bags. +striped gold bags contain 1 mirrored brown bag, 5 drab lavender bags, 4 dotted lavender bags. +dull red bags contain 2 dim crimson bags. +striped cyan bags contain 3 striped salmon bags, 3 wavy beige bags, 2 dim tan bags. +vibrant lime bags contain 1 pale lavender bag. +dotted violet bags contain 4 plaid gold bags, 3 clear green bags. +pale olive bags contain 3 light orange bags, 4 wavy silver bags, 4 shiny indigo bags. +plaid olive bags contain 4 dim purple bags, 5 wavy chartreuse bags, 3 posh plum bags, 4 light violet bags. +dotted coral bags contain 1 striped olive bag, 1 wavy gray bag, 1 vibrant chartreuse bag. +drab lavender bags contain 1 mirrored crimson bag. +mirrored crimson bags contain 3 dark gold bags. +vibrant orange bags contain 1 light blue bag, 3 mirrored brown bags, 2 mirrored plum bags, 3 pale lavender bags. +dull chartreuse bags contain 3 dotted bronze bags, 3 striped teal bags. +wavy turquoise bags contain 4 muted fuchsia bags. +shiny purple bags contain 5 drab salmon bags. +plaid brown bags contain 2 bright green bags, 5 clear aqua bags, 2 plaid plum bags. +pale bronze bags contain 3 bright red bags, 3 pale black bags, 1 wavy lime bag, 4 light maroon bags. +vibrant white bags contain 5 striped yellow bags, 4 dark tan bags. +mirrored blue bags contain 1 plaid indigo bag, 5 muted chartreuse bags, 2 plaid lime bags, 2 drab green bags. +wavy aqua bags contain 4 mirrored orange bags. +drab bronze bags contain 1 bright purple bag, 5 dim coral bags, 4 shiny green bags, 2 pale beige bags. +mirrored chartreuse bags contain 2 mirrored tomato bags, 4 posh lime bags, 5 posh tan bags, 4 pale aqua bags. +bright blue bags contain 3 dark violet bags. +mirrored yellow bags contain 2 pale tomato bags, 4 vibrant gold bags, 1 faded teal bag, 2 bright purple bags. +plaid black bags contain 2 plaid purple bags, 5 dotted bronze bags. +shiny silver bags contain 1 dull lavender bag, 5 pale magenta bags, 2 drab white bags. +mirrored salmon bags contain 1 muted lime bag, 4 shiny bronze bags. +muted maroon bags contain 3 muted lime bags, 1 muted turquoise bag. +light black bags contain 3 striped beige bags, 2 shiny olive bags, 2 drab olive bags. +wavy blue bags contain 2 dull violet bags, 1 pale magenta bag, 3 bright black bags. +light silver bags contain 1 shiny bronze bag, 2 faded lavender bags. +shiny coral bags contain 2 mirrored tomato bags, 2 faded fuchsia bags, 2 striped violet bags, 4 shiny orange bags. +striped coral bags contain 1 clear indigo bag, 3 muted bronze bags, 4 shiny turquoise bags. +shiny bronze bags contain 4 light gold bags. +bright crimson bags contain 4 mirrored blue bags, 3 dull aqua bags, 5 muted lavender bags, 1 dotted turquoise bag. +striped turquoise bags contain 3 striped indigo bags, 3 clear fuchsia bags, 4 bright black bags, 1 vibrant aqua bag. +faded green bags contain 3 posh olive bags, 4 bright violet bags, 5 dull yellow bags, 3 dull olive bags. +dark coral bags contain 2 wavy green bags, 2 shiny cyan bags, 5 light red bags, 3 bright red bags. +clear teal bags contain 3 plaid beige bags, 5 faded aqua bags, 2 dim yellow bags, 5 bright gray bags. +plaid chartreuse bags contain 2 dark magenta bags, 5 wavy olive bags, 2 plaid plum bags. +shiny aqua bags contain 1 wavy indigo bag, 1 dull bronze bag, 4 shiny bronze bags. +wavy salmon bags contain 2 pale lime bags, 4 drab silver bags. +striped yellow bags contain 4 faded black bags. +mirrored black bags contain 5 muted yellow bags. +bright gold bags contain 2 mirrored crimson bags, 1 vibrant purple bag. +vibrant purple bags contain 1 muted tomato bag, 5 shiny green bags, 1 dark turquoise bag. +dull fuchsia bags contain 1 wavy gold bag, 2 plaid yellow bags. +light maroon bags contain 5 striped indigo bags, 3 muted red bags, 3 muted lime bags, 2 striped lavender bags. +clear yellow bags contain 3 plaid beige bags. +clear tan bags contain 2 vibrant red bags, 4 light chartreuse bags. +dotted tomato bags contain 5 vibrant black bags, 5 dotted gray bags, 5 plaid red bags. +dark plum bags contain 5 dotted orange bags, 2 mirrored blue bags, 1 light indigo bag. +posh magenta bags contain 3 dim gold bags, 1 drab coral bag, 3 shiny tomato bags. +posh salmon bags contain 4 posh tomato bags, 3 pale silver bags. +vibrant bronze bags contain 4 posh orange bags. +dim tomato bags contain 2 dull black bags, 1 striped aqua bag. +posh white bags contain 3 shiny plum bags, 2 wavy olive bags. +mirrored plum bags contain 5 dotted teal bags, 2 bright maroon bags. +light coral bags contain 3 dull brown bags, 4 pale red bags, 4 dull orange bags, 5 dim crimson bags. +striped teal bags contain 1 plaid plum bag, 4 striped tomato bags, 1 mirrored orange bag, 5 mirrored fuchsia bags. +striped orange bags contain 4 dark crimson bags, 5 drab green bags, 5 striped tan bags. +dark gold bags contain 2 bright plum bags, 1 striped purple bag, 3 wavy beige bags. +drab fuchsia bags contain 5 wavy orange bags. +dull salmon bags contain 2 dull olive bags, 4 bright silver bags, 1 muted tomato bag. +shiny fuchsia bags contain 2 mirrored fuchsia bags, 1 bright black bag, 2 clear orange bags, 4 wavy gold bags. +clear bronze bags contain 4 posh purple bags, 3 dim gold bags, 3 light chartreuse bags, 1 shiny cyan bag. +dim gray bags contain 5 muted beige bags, 1 dim purple bag. +faded magenta bags contain 3 mirrored aqua bags, 3 vibrant maroon bags, 5 drab red bags, 1 light magenta bag. +muted fuchsia bags contain 1 dim indigo bag, 5 vibrant purple bags, 2 posh silver bags. +posh beige bags contain 3 dark gold bags. +bright yellow bags contain 2 mirrored blue bags. +clear orange bags contain 4 vibrant purple bags, 2 clear fuchsia bags. +pale salmon bags contain 4 wavy black bags, 3 muted olive bags, 5 wavy teal bags, 3 dotted orange bags. +dim chartreuse bags contain 1 mirrored bronze bag, 5 shiny lavender bags, 4 dark red bags. +clear gray bags contain 4 bright indigo bags, 5 wavy coral bags, 4 drab tomato bags, 1 mirrored tomato bag. +drab maroon bags contain 2 dotted lime bags, 2 muted beige bags, 2 clear aqua bags, 4 drab silver bags. +muted black bags contain 4 wavy fuchsia bags, 1 striped cyan bag, 4 faded purple bags. +clear blue bags contain 2 striped teal bags. +mirrored red bags contain 3 posh plum bags, 2 striped beige bags. +dull lavender bags contain 2 vibrant purple bags. +shiny maroon bags contain 4 vibrant chartreuse bags. +dim fuchsia bags contain 1 striped maroon bag, 3 faded gray bags, 4 vibrant aqua bags. +faded plum bags contain 5 posh black bags, 4 striped turquoise bags, 1 striped plum bag. +plaid cyan bags contain 1 dim turquoise bag, 1 mirrored tan bag, 5 plaid fuchsia bags. +muted olive bags contain 5 wavy beige bags, 5 striped tomato bags, 5 posh tan bags, 2 pale magenta bags. +dark cyan bags contain 5 wavy green bags, 4 muted violet bags. +vibrant lavender bags contain 1 mirrored orange bag, 4 dull yellow bags, 5 bright silver bags. +drab beige bags contain 1 drab yellow bag. +plaid indigo bags contain 5 clear olive bags, 4 striped teal bags, 4 pale violet bags, 4 shiny gold bags. +dark fuchsia bags contain 3 drab magenta bags, 1 mirrored orange bag. +faded chartreuse bags contain 5 pale blue bags, 3 dim tan bags, 5 dull red bags, 4 wavy maroon bags. +shiny orange bags contain 3 dark gold bags, 2 posh silver bags, 1 dull cyan bag, 4 drab silver bags. +striped black bags contain 5 wavy teal bags, 5 light chartreuse bags, 4 wavy coral bags. +light crimson bags contain 2 dim gold bags. +wavy yellow bags contain 2 dark lime bags, 1 bright fuchsia bag, 2 plaid purple bags, 4 dark bronze bags. +faded teal bags contain 3 posh bronze bags, 1 striped yellow bag, 3 dim aqua bags. +plaid gold bags contain 5 bright black bags, 2 shiny yellow bags, 5 mirrored orange bags, 5 dark lime bags. +clear beige bags contain 3 faded blue bags, 1 plaid plum bag. +dull plum bags contain 1 mirrored green bag, 3 mirrored lime bags. +bright beige bags contain 4 shiny white bags, 5 faded teal bags, 3 mirrored plum bags. +plaid turquoise bags contain 4 striped gray bags. +dark beige bags contain 5 plaid brown bags, 4 bright plum bags. +dull white bags contain 3 posh coral bags. +vibrant red bags contain 4 plaid red bags. +drab indigo bags contain 5 shiny black bags, 3 mirrored brown bags, 4 muted olive bags, 2 mirrored coral bags. +plaid lime bags contain 4 dim gold bags. +plaid tan bags contain 2 dark fuchsia bags, 3 dotted purple bags, 5 dull bronze bags, 3 light blue bags. +mirrored maroon bags contain 4 mirrored green bags, 1 dark tomato bag. +shiny red bags contain 1 dim salmon bag, 1 plaid plum bag, 4 drab orange bags, 5 shiny teal bags. +dark lime bags contain 4 shiny white bags, 3 shiny indigo bags, 4 light cyan bags, 2 muted brown bags. +dull yellow bags contain 3 muted brown bags, 1 light maroon bag. +mirrored silver bags contain 3 pale brown bags, 5 mirrored yellow bags, 1 pale teal bag, 4 plaid red bags. +light teal bags contain 3 posh plum bags. +drab tomato bags contain 2 pale coral bags, 5 clear olive bags. +mirrored lavender bags contain 3 plaid fuchsia bags, 3 muted yellow bags. +drab plum bags contain 5 plaid olive bags. +dotted purple bags contain 2 plaid red bags, 4 mirrored bronze bags, 5 shiny teal bags, 3 dim blue bags. +vibrant coral bags contain 1 dotted lime bag, 5 shiny salmon bags, 3 mirrored blue bags, 2 striped indigo bags. +faded olive bags contain 1 drab blue bag, 4 vibrant indigo bags, 3 dotted lavender bags, 5 muted silver bags. +wavy white bags contain 3 mirrored maroon bags, 2 dim white bags, 2 dark magenta bags, 4 clear fuchsia bags. +clear white bags contain 2 light chartreuse bags, 5 plaid fuchsia bags, 2 drab lime bags, 1 clear indigo bag. +pale blue bags contain 2 dim crimson bags, 4 light green bags, 4 vibrant aqua bags, 5 drab white bags. +mirrored olive bags contain 2 bright gold bags, 4 bright tomato bags. +vibrant salmon bags contain 5 dim maroon bags, 2 dull cyan bags. +plaid coral bags contain 1 bright gray bag. +plaid crimson bags contain 2 muted black bags, 3 drab turquoise bags, 2 mirrored beige bags. +faded maroon bags contain 5 drab tan bags, 4 mirrored brown bags, 1 light silver bag. +vibrant brown bags contain 2 faded salmon bags, 2 posh plum bags, 5 wavy lime bags, 2 shiny beige bags. +dull gold bags contain 5 shiny salmon bags, 3 drab silver bags, 1 wavy beige bag. +bright turquoise bags contain 5 wavy blue bags, 4 muted chartreuse bags. +light lavender bags contain 1 drab olive bag, 1 posh violet bag. +posh maroon bags contain 5 bright chartreuse bags, 4 muted black bags, 3 dull tan bags, 2 mirrored gray bags. +muted red bags contain 1 striped crimson bag, 5 light blue bags. +dark violet bags contain 2 muted blue bags, 1 light bronze bag. +striped chartreuse bags contain 1 dark violet bag, 1 faded turquoise bag, 3 vibrant tomato bags, 5 dotted teal bags. +dull turquoise bags contain 3 drab tan bags. +vibrant olive bags contain 2 drab purple bags. +shiny yellow bags contain 2 faded lavender bags, 4 shiny cyan bags. +posh lime bags contain 3 light plum bags, 4 clear magenta bags. +dotted aqua bags contain 3 dim lime bags, 2 light green bags. +dim yellow bags contain 4 bright brown bags, 4 wavy coral bags. +shiny blue bags contain 4 dotted yellow bags, 1 dim crimson bag, 1 clear black bag. +wavy maroon bags contain 4 vibrant aqua bags, 4 striped bronze bags, 3 dotted silver bags. +drab coral bags contain 1 wavy teal bag, 3 plaid orange bags, 2 posh orange bags, 1 mirrored olive bag. +bright teal bags contain 2 pale magenta bags. +bright purple bags contain 4 shiny chartreuse bags, 5 plaid lime bags, 2 dim magenta bags. diff --git a/data/7_2021.txt b/data/7_2021.txt new file mode 100644 index 0000000..db56e7b --- /dev/null +++ b/data/7_2021.txt @@ -0,0 +1 @@ +1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,104,709,235,932,796,119,731,120,462,837,152,100,214,411,71,28,91,1231,401,417,900,1733,683,107,101,582,159,72,11,514,566,1054,638,774,413,222,568,526,53,303,635,664,21,67,133,913,292,95,963,7,440,78,1455,283,104,106,431,749,468,325,319,922,433,2,108,10,95,89,1074,190,91,52,1313,242,475,964,395,437,604,277,525,162,191,923,124,219,35,707,18,1123,30,1163,41,467,290,420,393,279,159,59,206,160,592,52,267,696,218,151,807,301,262,424,102,1871,406,443,149,1035,1286,141,403,37,872,1031,788,1138,962,89,357,885,367,499,175,556,157,1571,759,989,2,1305,38,132,579,335,1452,171,627,175,557,1108,274,263,1036,482,432,21,1769,63,17,731,83,1329,131,101,6,1135,317,110,41,706,142,292,473,783,566,230,34,243,405,32,55,987,646,62,92,52,597,48,319,1159,827,769,125,420,308,60,345,461,159,229,1064,298,1200,861,364,1051,26,584,702,1717,19,61,35,581,297,63,945,1469,3,1168,588,339,1182,1357,823,293,85,77,40,847,235,326,364,474,619,732,105,517,153,32,198,65,1026,278,1170,1092,941,1747,147,124,86,975,856,1173,350,51,206,17,319,111,89,49,94,97,319,887,307,991,372,175,409,359,129,1242,1409,644,205,424,1644,1515,1134,299,571,78,695,101,365,385,1188,1162,17,106,972,198,381,656,9,291,1415,95,1048,541,162,1408,776,308,308,278,495,1679,302,1,138,7,382,981,455,719,607,541,136,449,1059,227,453,1614,315,283,583,143,1806,499,1062,1115,219,22,160,650,326,70,316,4,200,1542,1554,266,377,123,1302,1814,139,383,304,324,167,850,63,306,365,83,490,201,41,352,593,118,45,554,75,1352,49,92,1399,231,104,289,134,1307,9,247,883,999,1069,301,307,743,729,365,3,1251,415,304,40,330,293,72,393,562,12,183,41,229,306,209,281,1557,126,1119,286,12,18,1010,729,741,738,44,615,748,193,598,423,68,174,36,70,1455,325,0,229,409,211,423,183,271,233,952,601,320,109,1051,502,684,546,239,1279,215,1497,125,427,489,500,10,415,189,630,261,63,102,1459,79,1113,199,684,251,801,573,16,99,1805,716,45,18,631,290,508,67,0,2,461,63,325,607,697,812,58,262,316,754,37,848,60,101,202,1000,128,20,355,313,140,279,833,168,1197,1668,1062,255,626,205,326,321,591,243,1093,38,26,986,508,424,229,143,163,1173,608,349,468,571,95,140,10,279,112,12,552,0,326,258,195,113,470,651,1298,439,53,134,151,447,299,905,40,19,23,719,10,557,1339,474,119,329,1487,55,602,255,284,162,783,524,452,899,327,236,1826,295,265,598,1825,220,517,592,862,57,762,465,313,499,694,1328,5,81,137,936,46,852,448,1301,1101,35,77,1283,11,193,937,757,9,208,160,736,54,1574,87,546,51,373,29,25,79,1091,1432,125,158,728,835,1,614,172,389,173,808,1788,223,125,135,25,318,6,691,724,104,467,269,66,39,362,155,100,165,425,1844,41,284,602,226,294,172,942,223,1,14,199,1292,235,434,612,980,139,61,735,276,62,864,56,460,652,713,98,408,1314,320,116,171,114,93,804,260,339,451,392,31,156,176,60,279,1272,271,1494,164,170,451,857,317,1379,44,166,115,823,349,4,352,54,389,1548,302,454,1412,231,86,2,239,117,272,462,1030,171,14,301,249,66,114,360,676,510,1149,58,91,46,317,425,1219,64,1538,638,1227,62,214,386,1148,180,327,1084,27,886,565,157,215,313,462,129,1293,397,823,753,50,539,705,813,531,779,30,501,1072,1125,2,1640,691,1140,573,1081,1232,488,721,113,113,127,270,1095,6,68,301,465,43,322,88,892,841,323,981,642,1231,346,247,623,161,1291,76,709,1148,306,87,1147,645,818,1520,692,352,133,71,443,1190,271,1171,42,980,589,493,312,211,78,1369,329,304,1057,202,405,1294,49,363,835,1295,53,530,20,24,947,885,1054,252,1170,337,460,476,50,657,1201,715,555,132,344,26,1369,675,234,1362,875,224,1910,338,175,93,595,27,211,210,787,790,990,425,1176,48,43,201,15,279,344,203,15,790,255,125,159,45,162,290,198,796,52,146,512,200,1051,1850,1202,775,237,767,13,180,294,26,896,1263,749,1239,1621,642,607,88,123,651,630,1178,135,5,686,989,1250,60,1266,360,49,1089,175,355,162,375,350,1203 diff --git a/data/7_2022.txt b/data/7_2022.txt new file mode 100644 index 0000000..03576f6 --- /dev/null +++ b/data/7_2022.txt @@ -0,0 +1,1031 @@ +$ cd / +$ ls +150555 bch.lht +276291 ccqfdznj.sqg +dir csmqbhjv +dir czdqfr +dir fpfwfzrt +192660 qnbzgp +142026 rpphgdhp.jfr +dir sqphfslv +38077 tvpzh +$ cd csmqbhjv +$ ls +52822 bch.lht +dir dgj +dir fmmblb +dir hjwwtw +dir mtmhst +dir njsccfms +dir wmjsvq +$ cd dgj +$ ls +266484 bch.lht +dir brwncbh +dir dtdzsqps +216678 gvmdvcs.fmq +225948 mdjrhmhf +dir tvpzh +301487 tvpzh.wbp +2555 whsnd.spb +$ cd brwncbh +$ ls +238441 jwmr.plh +$ cd .. +$ cd dtdzsqps +$ ls +294443 fmmblb +81441 nsljm.fcz +$ cd .. +$ cd tvpzh +$ ls +186671 bch.lht +dir czdqfr +dir fgmz +300898 gvmdvcs.fmq +dir rjnv +dir szcrlzmr +dir tvpzh +dir vbrn +$ cd czdqfr +$ ls +dir czdqfr +dir hrhqhcjg +$ cd czdqfr +$ ls +8551 zmcqmq.zvf +$ cd .. +$ cd hrhqhcjg +$ ls +8255 wfvj.lnd +$ cd .. +$ cd .. +$ cd fgmz +$ ls +145921 wfvj.lnd +$ cd .. +$ cd rjnv +$ ls +305697 bch.lht +dir cdqv +dir czdqfr +288685 nsjnqh.fzq +210447 qlg +34660 rbnlc.gmc +143353 vsjg.njm +$ cd cdqv +$ ls +294789 czdqfr.nvt +$ cd .. +$ cd czdqfr +$ ls +298572 bch.lht +dir fmmblb +5599 tvpzh.pnf +47873 vmm +$ cd fmmblb +$ ls +dir cjtb +dir llg +dir rcb +190831 rwf.rzd +$ cd cjtb +$ ls +306568 fmmblb.hns +$ cd .. +$ cd llg +$ ls +68274 hbj.glq +261526 jplstj +285699 rmq +$ cd .. +$ cd rcb +$ ls +dir lmgrr +$ cd lmgrr +$ ls +306217 bch.lht +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd szcrlzmr +$ ls +dir mdjrhmhf +195828 pnllrfpr.lhl +dir rns +286738 sgzhcwj +$ cd mdjrhmhf +$ ls +dir clmdlmc +dir fmmblb +299416 fmmblb.ftr +dir mnm +22720 zpgvqpbr.glm +$ cd clmdlmc +$ ls +289014 fmmblb.njt +246797 gvmdvcs.fmq +92044 tvpzh.cfj +$ cd .. +$ cd fmmblb +$ ls +81512 czdqfr.ltc +173394 ntcdzdc.spn +$ cd .. +$ cd mnm +$ ls +260096 bch.lht +dir czdqfr +dir rwnqgjmm +$ cd czdqfr +$ ls +269467 nfphbtz +$ cd .. +$ cd rwnqgjmm +$ ls +218872 ldflbsm.rzh +256978 lwhhc +dir pgrtzw +$ cd pgrtzw +$ ls +32086 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd rns +$ ls +282353 fcwhvqd.qvb +dir fwjb +dir prdd +dir rtrglmt +$ cd fwjb +$ ls +dir jlhqd +217527 tgvqql +$ cd jlhqd +$ ls +196505 qbrbcrgt.wqj +$ cd .. +$ cd .. +$ cd prdd +$ ls +144295 brwncbh +87560 dsrm +$ cd .. +$ cd rtrglmt +$ ls +219787 tcsrq.wzt +$ cd .. +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +dir swrgwp +$ cd swrgwp +$ ls +dir cqzs +dir wtcsc +$ cd cqzs +$ ls +284674 rlhjp.dlf +$ cd .. +$ cd wtcsc +$ ls +50313 wfvj.lnd +$ cd .. +$ cd .. +$ cd .. +$ cd vbrn +$ ls +11650 czdqfr.ccz +dir fmmblb +145626 whsnd.spb +$ cd fmmblb +$ ls +204558 rdh.rms +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fmmblb +$ ls +dir bhvpslz +$ cd bhvpslz +$ ls +dir jsmrb +$ cd jsmrb +$ ls +1472 fgctpsl.rgf +258119 whsnd.spb +$ cd .. +$ cd .. +$ cd .. +$ cd hjwwtw +$ ls +291890 fmmblb.zrt +$ cd .. +$ cd mtmhst +$ ls +dir dfqm +dir fmmblb +178539 jtmflfb +dir mdjrhmhf +dir rdzg +dir tvpzh +dir wqlf +$ cd dfqm +$ ls +dir czdqfr +dir fmmblb +dir gngvhs +dir ppjdlbp +dir shs +dir srdrb +$ cd czdqfr +$ ls +85242 gwqzn.ppr +$ cd .. +$ cd fmmblb +$ ls +76800 bqbnwdq.zfr +72865 fmmblb +119311 hfbtwgb.nmn +305342 wfvj.lnd +$ cd .. +$ cd gngvhs +$ ls +dir fmmblb +dir jfptn +dir jlqzq +dir mdjrhmhf +dir scmjf +dir tvpzh +$ cd fmmblb +$ ls +174392 whsnd.spb +$ cd .. +$ cd jfptn +$ ls +dir vjm +$ cd vjm +$ ls +193871 bch.lht +$ cd .. +$ cd .. +$ cd jlqzq +$ ls +dir fmmblb +187410 hcfdppj.hjh +dir mdjrhmhf +dir nhb +107865 qntnnqcp +dir wlqjpsh +$ cd fmmblb +$ ls +dir ccpvdzg +240944 fqsjc.cmc +$ cd ccpvdzg +$ ls +304195 whsnd.spb +$ cd .. +$ cd .. +$ cd mdjrhmhf +$ ls +242269 whsnd.spb +$ cd .. +$ cd nhb +$ ls +83616 mtfq +$ cd .. +$ cd wlqjpsh +$ ls +249472 gdg +$ cd .. +$ cd .. +$ cd mdjrhmhf +$ ls +213465 bbsltzd.fvd +dir tqmwn +$ cd tqmwn +$ ls +54460 bwnztql +262257 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd scmjf +$ ls +dir fhfg +268890 wqdcbprh +$ cd fhfg +$ ls +234806 whsnd.spb +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +79625 zqbsb.mnq +$ cd .. +$ cd .. +$ cd ppjdlbp +$ ls +249976 zdqlmnll.nps +$ cd .. +$ cd shs +$ ls +107840 bsfcgmrw.dzw +dir fmmblb +307016 gvmdvcs.fmq +185876 jjhdj.vpn +254920 ltmp +dir rrg +312847 whsnd.spb +$ cd fmmblb +$ ls +161417 wppzrz.hjz +$ cd .. +$ cd rrg +$ ls +304639 bch.lht +$ cd .. +$ cd .. +$ cd srdrb +$ ls +dir bgchgtg +238106 hcfdppj.hjh +dir lgz +dir zmlm +$ cd bgchgtg +$ ls +dir hhbmwp +166735 psbpml.jdb +dir rtdwhlsq +171684 zcb.dlr +$ cd hhbmwp +$ ls +105599 cppw.mlb +dir dvzmpfzn +72811 fmmblb.bdd +293591 fnh.fdv +dir fspwz +dir gznwz +259403 tvpzh.bfj +$ cd dvzmpfzn +$ ls +127885 nbb.jgs +126415 whsnd.spb +$ cd .. +$ cd fspwz +$ ls +dir fzpfbcvv +dir jzrqvds +$ cd fzpfbcvv +$ ls +114984 czdqfr.pmn +157782 gzwrcdp.mtz +$ cd .. +$ cd jzrqvds +$ ls +47749 hcfdppj.hjh +$ cd .. +$ cd .. +$ cd gznwz +$ ls +77780 lnbtzj.bhz +$ cd .. +$ cd .. +$ cd rtdwhlsq +$ ls +300900 bbs +dir cchdchd +246695 djbmcmn +195895 fvwm.hrd +67210 hcfdppj.hjh +101017 zhnvhfm.wps +$ cd cchdchd +$ ls +52763 gvmdvcs.fmq +124993 tvpzh.nwc +dir zzsbq +$ cd zzsbq +$ ls +263814 zvhnm.sbv +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd lgz +$ ls +121541 wfvj.lnd +134550 whsnd.spb +$ cd .. +$ cd zmlm +$ ls +91948 cjqdnnh.hzr +250728 czdqfr.zjb +dir jnbhfnn +dir rnmghbht +dir tjhnp +144737 whsnd.spb +$ cd jnbhfnn +$ ls +49839 whsnd.spb +$ cd .. +$ cd rnmghbht +$ ls +69330 hcjspd +dir mfgbbvcc +dir qdh +$ cd mfgbbvcc +$ ls +dir gmgdfss +$ cd gmgdfss +$ ls +266023 hcfdppj.hjh +dir mdjrhmhf +dir ndcmqpc +291530 vqwf.bfc +$ cd mdjrhmhf +$ ls +dir brwncbh +$ cd brwncbh +$ ls +dir fmmblb +$ cd fmmblb +$ ls +dir ppwp +$ cd ppwp +$ ls +299841 mdjrhmhf.bdg +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd ndcmqpc +$ ls +71727 mdjrhmhf.njs +218233 nwvfb.qzt +$ cd .. +$ cd .. +$ cd .. +$ cd qdh +$ ls +294005 jgbcmg.hjg +$ cd .. +$ cd .. +$ cd tjhnp +$ ls +dir vhjtqdg +$ cd vhjtqdg +$ ls +28638 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fmmblb +$ ls +111152 cnvzdz.cdb +252709 gvmdvcs.fmq +168368 lpfbzh +dir mdjrhmhf +dir mzrzzhpt +72606 qbbllr.shq +160820 whsnd.spb +$ cd mdjrhmhf +$ ls +32945 fmmblb.jpf +$ cd .. +$ cd mzrzzhpt +$ ls +dir gdsv +130898 hcfdppj.hjh +44339 hvnqt +dir mdjrhmhf +297785 mdwng.pbr +dir wwqmlhgg +281612 zvftqhm.pzl +$ cd gdsv +$ ls +10562 cprgfn +$ cd .. +$ cd mdjrhmhf +$ ls +284882 dpjs +202491 lrtgstpp.grn +3714 wfvj.lnd +$ cd .. +$ cd wwqmlhgg +$ ls +84563 fwvhfrh.cfp +4654 hcfdppj.hjh +248672 whsnd.spb +$ cd .. +$ cd .. +$ cd .. +$ cd mdjrhmhf +$ ls +dir mdjrhmhf +25175 mdjrhmhf.nrg +dir mslwjsp +207567 prrqb.qwj +282436 tvpzh.hjh +$ cd mdjrhmhf +$ ls +43516 jzrjwdd.vss +27326 wfvj.lnd +$ cd .. +$ cd mslwjsp +$ ls +141951 cqvh.zzq +$ cd .. +$ cd .. +$ cd rdzg +$ ls +312895 brwncbh.cpb +$ cd .. +$ cd tvpzh +$ ls +228240 bch.lht +dir fjtwlj +dir jnpgqsb +90201 ldh +271575 rfhh.vzr +69760 whsnd.spb +$ cd fjtwlj +$ ls +46126 rhdr.jgg +$ cd .. +$ cd jnpgqsb +$ ls +dir rllbvnm +$ cd rllbvnm +$ ls +212620 hcfdppj.hjh +$ cd .. +$ cd .. +$ cd .. +$ cd wqlf +$ ls +210864 fmmblb +dir jswfprpl +dir nztbsbq +$ cd jswfprpl +$ ls +dir fmmblb +dir lmwz +dir qvj +$ cd fmmblb +$ ls +201940 mhjlhc.npl +$ cd .. +$ cd lmwz +$ ls +dir brwncbh +dir dhff +288199 flgch +187825 gvmdvcs.fmq +203272 nvfllgvn.cjj +dir tvpzh +dir vrv +53288 zsrz.mrd +$ cd brwncbh +$ ls +174732 whsnd.spb +$ cd .. +$ cd dhff +$ ls +dir lddw +dir mfwnzprw +222134 tvpzh.gfm +$ cd lddw +$ ls +296685 bch.lht +$ cd .. +$ cd mfwnzprw +$ ls +6260 dvrcqzp.pmd +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +dir gmvswdr +dir hfzdqdz +dir hhjwt +228542 htljf.tfl +57417 mdjrhmhf +248369 whsnd.spb +$ cd gmvswdr +$ ls +215582 fnzh.mhs +$ cd .. +$ cd hfzdqdz +$ ls +82080 dcw.vmt +142007 fmmblb.fnq +dir ggqcqcc +36091 hcfdppj.hjh +219562 mqb.qsm +2323 wfvj.lnd +$ cd ggqcqcc +$ ls +4679 whsnd.spb +$ cd .. +$ cd .. +$ cd hhjwt +$ ls +dir lbqpgd +dir tdb +$ cd lbqpgd +$ ls +177175 wfvj.lnd +$ cd .. +$ cd tdb +$ ls +270893 bch.lht +$ cd .. +$ cd .. +$ cd .. +$ cd vrv +$ ls +dir bqmnhdts +171679 czdqfr +$ cd bqmnhdts +$ ls +64972 pjzzs.qqd +$ cd .. +$ cd .. +$ cd .. +$ cd qvj +$ ls +dir bfwtb +dir bpnppqg +271362 gcs.srv +dir gvlqddlb +70000 gzdr.ndb +103231 pwspfm +dir swgfvtf +$ cd bfwtb +$ ls +200600 czdqfr.sbv +dir wmbhgcw +$ cd wmbhgcw +$ ls +310044 zwfrcld.mtb +$ cd .. +$ cd .. +$ cd bpnppqg +$ ls +120203 dggplss.whb +$ cd .. +$ cd gvlqddlb +$ ls +12163 bch.lht +154059 llpw +dir pglr +dir rbfpbcpd +dir rstg +209132 tvpzh.djc +287422 wlhjvsz +$ cd pglr +$ ls +145907 brwncbh.cqp +$ cd .. +$ cd rbfpbcpd +$ ls +292475 brwncbh +dir czdqfr +dir dcnh +dir fmmblb +dir qwrsrdr +$ cd czdqfr +$ ls +66107 tvpzh.wfd +$ cd .. +$ cd dcnh +$ ls +297110 rpzsrws.sft +$ cd .. +$ cd fmmblb +$ ls +25829 wmmhq +$ cd .. +$ cd qwrsrdr +$ ls +199762 fmmblb.qpm +$ cd .. +$ cd .. +$ cd rstg +$ ls +236706 bch.lht +$ cd .. +$ cd .. +$ cd swgfvtf +$ ls +227938 lrbcddd.btw +282992 rlnwrd +$ cd .. +$ cd .. +$ cd .. +$ cd nztbsbq +$ ls +116544 czdqfr +dir fhwmhvdn +68451 gvmdvcs.fmq +247136 hcfdppj.hjh +dir mzvq +dir tvpzh +dir wtllfshw +$ cd fhwmhvdn +$ ls +122155 cmtlhcdw +39927 twbfczfb.lcp +$ cd .. +$ cd mzvq +$ ls +dir lnjtfgh +$ cd lnjtfgh +$ ls +161712 phfn +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +dir jgpr +dir mdjrhmhf +dir rnntmvpr +$ cd jgpr +$ ls +85238 gvmdvcs.fmq +$ cd .. +$ cd mdjrhmhf +$ ls +231007 gzrsgvp +$ cd .. +$ cd rnntmvpr +$ ls +285020 tvpzh +$ cd .. +$ cd .. +$ cd wtllfshw +$ ls +135281 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd njsccfms +$ ls +dir zdddqvq +$ cd zdddqvq +$ ls +91520 whmwbpd +$ cd .. +$ cd .. +$ cd wmjsvq +$ ls +dir fmmblb +dir htmb +dir lmzhpth +dir mrjq +142052 wldwl +$ cd fmmblb +$ ls +173331 fmmblb.fbm +$ cd .. +$ cd htmb +$ ls +dir gtm +$ cd gtm +$ ls +7647 hcfdppj.hjh +$ cd .. +$ cd .. +$ cd lmzhpth +$ ls +dir tvpzh +dir vdqg +dir zvhmfm +$ cd tvpzh +$ ls +259073 wfvj.lnd +$ cd .. +$ cd vdqg +$ ls +199919 bch.lht +169430 fmmblb.ttq +231127 hcfdppj.hjh +$ cd .. +$ cd zvhmfm +$ ls +274752 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd mrjq +$ ls +dir fqcspsv +dir fvvmlbf +252802 gnclv +82538 gvmdvcs.fmq +296461 jvbnhrpd +104809 lbh +46038 tfq.gtv +$ cd fqcspsv +$ ls +dir fjqnf +$ cd fjqnf +$ ls +dir tvpzh +$ cd tvpzh +$ ls +dir lhwdrcwz +$ cd lhwdrcwz +$ ls +129410 lcd.dzd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd fvvmlbf +$ ls +263142 brwncbh.fgg +232863 cvwv +100409 qphswnlb.vpq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd czdqfr +$ ls +dir czdqfr +307029 lntbmr.brq +dir mdjrhmhf +dir tvpzh +$ cd czdqfr +$ ls +289585 gvmdvcs.fmq +$ cd .. +$ cd mdjrhmhf +$ ls +137110 brwncbh.dbt +$ cd .. +$ cd tvpzh +$ ls +258325 wfvj.lnd +$ cd .. +$ cd .. +$ cd fpfwfzrt +$ ls +221993 hcfdppj.hjh +56206 lphphf.thd +255850 mdjrhmhf.hqt +$ cd .. +$ cd sqphfslv +$ ls +104415 mdjrhmhf.gbr +dir pjtzm +dir spnr +61982 stbwbpzf.hwm +$ cd pjtzm +$ ls +dir brwncbh +178769 jnmgzcqh.mht +dir tvpzh +153193 tvpzh.cdc +dir zstcqndd +$ cd brwncbh +$ ls +117400 brwncbh.mvq +dir fbzvn +3239 fmmblb.hzm +73631 hqtnwbgw +dir npzf +172382 pdgg +$ cd fbzvn +$ ls +152876 bch.lht +293370 czc.jtt +43408 czdqfr +dir fqg +105569 qqmcwjz.bzd +19734 whsnd.spb +$ cd fqg +$ ls +88780 jffmmm.qff +22385 lqrhch.vlm +$ cd .. +$ cd .. +$ cd npzf +$ ls +190792 pdtlbrqt.ghq +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +dir blgjrjt +dir dlzjtlbt +dir jnwm +dir qprbng +305178 tbvg +dir tvpzh +308117 wrbldl.jhp +$ cd blgjrjt +$ ls +125644 bch.lht +104319 ctglz.lmd +131972 hcfdppj.hjh +312663 tbgqwf +$ cd .. +$ cd dlzjtlbt +$ ls +98262 bvfldnd.sls +173244 dlmf.mzh +75842 rlbpgjh.wtb +$ cd .. +$ cd jnwm +$ ls +58963 vjftmflp.dcs +$ cd .. +$ cd qprbng +$ ls +308054 fzbrm.jdt +310679 gnwn.psf +257810 tpsgjjdq.mdw +dir tvpzh +305633 vpbwhqs.cqb +$ cd tvpzh +$ ls +220904 rlpj.rdc +$ cd .. +$ cd .. +$ cd tvpzh +$ ls +dir fmmblb +$ cd fmmblb +$ ls +104020 crhq.pnb +74914 czdqfr +$ cd .. +$ cd .. +$ cd .. +$ cd zstcqndd +$ ls +dir brwncbh +dir jwpbtpr +306359 ljg +dir wbssjjd +$ cd brwncbh +$ ls +114145 wfvj.lnd +$ cd .. +$ cd jwpbtpr +$ ls +94567 bch.lht +dir czdqfr +dir fsqvbv +134187 wnpcqmw.tws +$ cd czdqfr +$ ls +dir mdjrhmhf +$ cd mdjrhmhf +$ ls +122398 mdjrhmhf.zts +dir svhh +101920 whsnd.spb +dir zcsnqjj +$ cd svhh +$ ls +120875 tvpzh.jls +$ cd .. +$ cd zcsnqjj +$ ls +279979 tljnvzbq.sgj +$ cd .. +$ cd .. +$ cd .. +$ cd fsqvbv +$ ls +114278 hwrhzs.jbj +dir tvpzh +$ cd tvpzh +$ ls +17235 gvmdvcs.fmq +$ cd .. +$ cd .. +$ cd .. +$ cd wbssjjd +$ ls +dir mdjrhmhf +$ cd mdjrhmhf +$ ls +11336 fqsp +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd spnr +$ ls +298067 sznwzj diff --git a/data/7_2023.txt b/data/7_2023.txt new file mode 100644 index 0000000..fbb248a --- /dev/null +++ b/data/7_2023.txt @@ -0,0 +1,1000 @@ +8A7J7 301 +QAAT7 677 +J3K4K 622 +KJJ62 577 +49AAA 298 +45585 855 +33KKK 115 +4Q777 438 +7KK77 836 +5T55T 397 +85855 56 +Q6Q38 157 +AA8AA 85 +32J33 293 +KKQQA 247 +888J4 944 +2AJ2K 482 +33777 338 +KT434 696 +K3K63 648 +86866 136 +93983 584 +57857 489 +5JJ2Q 76 +82335 133 +J25T4 559 +9TQ2A 211 +596J6 926 +ATAAA 513 +6KKKQ 277 +AAA22 554 +J2265 332 +8Q3QQ 486 +6735A 28 +Q5555 595 +J9888 262 +5QQQ2 626 +J7777 953 +643TA 572 +8579Q 99 +23294 683 +55J54 501 +9JK93 567 +64388 941 +3J8T5 40 +29K29 422 +JQ4K2 401 +AA6A3 78 +2KK44 821 +9AA2A 884 +43434 386 +J7A67 177 +4JKKT 956 +AA999 296 +2A2T9 519 +9T9KT 342 +Q5J5A 19 +QJK7A 925 +AA9AA 337 +4T2QT 751 +77888 324 +343QT 914 +33229 576 +J5Q5Q 169 +22952 620 +J4444 17 +T9JTT 172 +48888 729 +28522 138 +66363 302 +68TTJ 778 +5Q885 66 +24KJ3 229 +5A68K 731 +A79A7 906 +QQQAQ 698 +J34AJ 109 +TTTTJ 503 +3J528 183 +5A5AA 598 +5AAAA 782 +TT77J 968 +24Q62 178 +T6K7A 811 +99788 53 +494K6 560 +7JQ87 327 +Q9QQQ 597 +496Q2 392 +2252K 995 +Q85TA 2 +KT66Q 165 +383T6 509 +9997Q 724 +4TT4T 368 +35TQA 707 +33534 24 +KKKJ4 469 +A9TAA 830 +A445A 481 +3Q63Q 192 +AATAT 680 +2225J 436 +Q4869 471 +A4JA4 330 +5K35T 545 +TK3A4 877 +8K62J 596 +9Q7T8 582 +898KK 813 +5AJJA 504 +T5TKQ 289 +6T88Q 359 +A8AAJ 526 +393J3 817 +Q2Q22 212 +Q8Q22 89 +265T8 757 +Q2584 807 +T33TT 853 +T22TA 391 +46999 61 +9AA9J 57 +6T538 674 +3T253 271 +63TAJ 395 +34943 323 +6QQQQ 497 +TA75K 938 +4T467 141 +36AQK 197 +884A4 228 +77277 453 +AQ854 50 +Q56QJ 456 +T4TKT 319 +K63Q4 30 +79793 110 +AJKQ6 421 +22278 996 +222TT 357 +42J74 647 +Q4QAT 634 +66574 951 +2KK22 446 +Q65Q3 533 +77887 267 +58533 719 +287K9 51 +Q5656 199 +564AQ 106 +QJ579 77 +9732T 46 +JAK23 808 +688K8 364 +A993A 651 +Q9QQ9 93 +74777 929 +QT722 723 +76QAQ 621 +8K836 573 +77557 783 +A5555 65 +TTT6T 643 +83595 933 +J3J97 734 +JTTA3 87 +TTAQA 282 +A555A 765 +4TQTT 538 +T777Q 763 +T82J9 63 +83359 213 +AQQAQ 363 +47AT9 311 +96A9T 310 +K5TK5 450 +ATKK8 429 +7K777 541 +5TJAK 987 +KAQ73 687 +TTATA 874 +J4TJ2 857 +666KK 204 +AA777 990 +J98A8 946 +7A95A 288 +3K2K3 820 +79K42 112 +A65KT 300 +596T8 266 +J5664 585 +75585 964 +73AT2 491 +2J2KT 375 +6888T 480 +A5765 992 +KK555 224 +AT2TA 514 +TTTTQ 753 +Q4348 273 +KK66K 887 +44JQ9 67 +Q339Q 341 +833Q8 574 +K456T 766 +J98KK 209 +K4644 328 +43935 79 +8848K 380 +K22A2 834 +8654Q 703 +4K2AT 96 +K276J 863 +8K64J 320 +AAA7A 571 +72747 950 +4A4Q9 120 +66636 814 +33637 881 +KK2AK 895 +J8677 851 +A48A8 430 +56656 866 +55355 976 +66J77 370 +3353J 896 +56556 237 +3KJ5Q 270 +J22J2 261 +AJ2AA 163 +JJJJJ 517 +48A28 819 +K4443 799 +TJTJ5 345 +T3K9J 868 +49AJ9 605 +45455 741 +KJJKK 754 +63333 789 +76677 989 +AJ774 264 +JKJ2A 531 +TQQQT 809 +Q6KJ6 411 +KQK7Q 704 +2A4Q5 410 +68KK8 652 +8K938 194 +72J22 242 +9J672 43 +7Q6Q5 903 +64666 95 +J2372 798 +A263T 781 +JK598 909 +55J92 625 +A2567 343 +4A7A7 174 +8KA3J 68 +JQTQ3 528 +74444 127 +QA5AT 306 +T9K7T 254 +75TT7 166 +83388 325 +888Q8 982 +8Q7A6 84 +2K7JA 663 +T9959 937 +3KA87 921 +4KJ92 786 +28A83 442 +99T8J 699 +TKKKK 457 +25552 431 +TTATK 862 +QJQKK 664 +QJQQ9 552 +T4J77 206 +Q7777 352 +QJ747 534 +9K9KK 656 +44646 479 +5T64Q 455 +QQQQK 475 +73478 827 +Q3J33 975 +Q655Q 930 +7T7T7 231 +53A72 409 +3333A 833 +29928 787 +97J58 307 +T2555 673 +Q44A5 382 +J5A57 144 +7J447 131 +8KK99 600 +99555 349 +43682 205 +63259 518 +AA3A8 591 +J444J 58 +52J23 772 +5KK3K 660 +5KT2K 329 +54K6K 252 +49J24 864 +673Q5 780 +TT848 333 +227A5 424 +JT9J5 675 +7K9QJ 825 +732Q7 461 +24343 859 +TJ333 604 +T33AJ 149 +KJ5KK 129 +54555 249 +25222 3 +TQJA3 38 +7Q7Q7 460 +999J4 557 +J6766 831 +K4KKK 185 +363K3 566 +K888J 885 +55855 488 +97979 565 +2597T 493 +77456 233 +Q9Q5Q 202 +99K23 98 +63763 7 +TQ498 849 +74626 590 +K44KK 73 +9AA97 498 +Q6696 706 +95555 697 +69969 670 +JQ294 203 +24246 425 +6QJ6A 16 +AQAAA 916 +6K6JK 313 +9AK99 41 +4T6J5 219 +6Q6T6 549 +96999 983 +79977 522 +57Q8A 732 +AQ6AQ 156 +284Q6 351 +K88KJ 123 +57A8A 606 +4J97Q 592 +5JTQ3 369 +A467T 742 +2878J 669 +KKAJ6 668 +T5TTT 570 +8AA88 665 +3238A 428 +67286 979 +88585 997 +T6866 132 +88T83 912 +68888 832 +A95TK 371 +T8Q33 167 +333K8 286 +KK888 722 +7TAK7 281 +A7J77 216 +9T85Q 969 +54444 918 +77822 151 +9KJ2T 759 +Q8483 536 +9JJA9 788 +J8Q8T 272 +27KJQ 958 +76666 671 +5T932 182 +887T4 628 +6499T 607 +447Q4 718 +9736J 716 +AQJAQ 611 +T4933 690 +3TJAJ 923 +K7722 412 +77737 22 +775AQ 812 +5QKQ5 362 +448T8 114 +A7A7A 502 +4Q466 583 +74744 749 +7363J 939 +88388 59 +Q3KQT 861 +42222 794 +96669 294 +54959 378 +TTTTA 544 +796JA 867 +92KK9 238 +9TJT9 848 +8A2A2 309 +687K3 515 +KTKKT 610 +J8659 210 +22K4K 423 +586Q9 55 +AAA7K 599 +33J73 198 +K74KJ 936 +55JJ5 943 +Q6QJQ 801 +5435J 137 +QJ5QQ 553 +AAA78 485 +67676 404 +34K33 376 +8Q32J 326 +A66KA 649 +52K8Q 179 +A32A2 561 +JTQJQ 645 +59KK7 11 +6763Q 189 +KKK88 426 +8KTJ8 681 +2222T 767 +KK5J7 372 +QQQ57 942 +7A72J 904 +2222J 467 +7KQQQ 186 +J3993 629 +73437 952 +8A37T 771 +966J9 752 +4KT29 710 +82378 840 +4QT72 785 +3629T 934 +JTK77 977 +KKQ33 915 +4242A 744 +TQA9A 215 +A6666 854 +23333 170 +TTT9T 587 +J3377 34 +6JJ66 835 +A3AAA 897 +96936 427 +8JJJ4 686 +32332 173 +QJ868 640 +67388 111 +88988 613 +4TJTT 435 +T988T 702 +K59K5 894 +Q8Q88 688 +5Q847 347 +9J599 154 +958K6 462 +AAQQA 959 +JKJKQ 846 +7992T 72 +9899A 510 +22Q22 389 +939J7 971 +J4K4A 367 +TT7TQ 816 +KKKT3 297 +97KK6 793 +7QQQ7 824 +ATQQA 102 +J597K 797 +78J88 473 +87A87 42 +828A7 527 +K8777 107 +8963J 949 +29399 998 +3TKA8 190 +3TQ66 889 +JJ5T5 985 +J566T 568 +T38K2 815 +2J5KA 646 +A8J32 184 +622Q6 777 +TK7QT 26 +47766 790 +2J5Q6 932 +9K969 878 +82235 64 +3A3JK 152 +49494 540 +7JJJ7 350 +39233 437 +5466Q 239 +Q3QQQ 961 +A8J5Q 623 +Q3333 739 +4T396 90 +25T2J 284 +TK7T3 9 +5555K 993 +J2666 383 +22292 250 +J5T95 478 +22T29 226 +24242 126 +99939 121 +73373 414 +78Q92 738 +A5362 826 +3KK2J 756 +77877 291 +T9TT9 879 +3JJTT 145 +3T363 524 +6Q6QQ 619 +Q2QQQ 8 +8J58J 967 +65KJK 398 +KTA2T 464 +T7JJJ 922 +44888 948 +2KJ2K 755 +63858 353 +49K4T 483 +5833J 180 +62822 105 +99JK9 635 +QAJAA 962 +977T5 691 +655KK 274 +9966A 393 +55J5T 303 +284K5 589 +27636 872 +K29KK 774 +K9JJ4 792 +6JKTT 108 +TK8TJ 745 +T3A7K 400 +9J3TQ 901 +ATJKK 917 +666A5 448 +A5AT6 588 +6T4J6 822 +Q9A9A 260 +594J3 241 +Q3A34 279 +A9999 220 +7AQQ9 49 +737Q3 999 +JQQ8Q 882 +78977 399 +53333 689 +2K2JQ 25 +34848 800 +2585T 334 +5T799 908 +69864 644 +659TK 278 +J4363 633 +T9J97 101 +QJ94T 615 +363J6 373 +J777J 379 +99J93 966 +TT26T 312 +TA8T8 870 +3J535 245 +86A63 283 +2KTK2 508 +Q9Q2Q 162 +59QJT 667 +6JJKQ 71 +55J25 200 +89993 980 +45474 581 +Q4394 159 +45697 346 +KK99Q 496 +J3J53 466 +3QQ3Q 348 +7843J 612 +T733K 164 +42589 818 +Q9K36 232 +QQ22Q 762 +5AA3J 287 +48KKK 449 +7QQQJ 248 +K5KJA 616 +KQ387 965 +Q4898 12 +A3T9Q 227 +K7KTT 269 +JTJ22 768 +85K88 875 +6T666 624 +97K7Q 586 +7854J 804 +T4TTT 609 +8T44T 415 +3T3KK 601 +5AAAJ 258 +8555K 828 +4Q8JQ 593 +JT823 396 +J9K96 838 +55565 632 +7J77T 713 +36353 578 +5Q962 529 +5KQ9T 181 +82697 627 +66654 88 +7747J 919 +A3AAJ 441 +569KJ 805 +TTQJ5 445 +444T4 661 +29959 37 +62J26 955 +Q4JT5 214 +KQA4T 44 +24424 758 +2Q4AK 222 +729A4 195 +4Q35T 928 +329T8 551 +6T5T5 33 +T25Q9 978 +9Q9J9 407 +A4KT7 911 +27397 603 +4244Q 490 +JA255 384 +2AAJ2 876 +6222K 125 +AA46A 360 +J4343 672 +JAJQ9 880 +888J2 468 +Q5K9J 268 +A85Q9 387 +J4A35 705 +66A64 97 +QAQQ8 700 +55TJ4 31 +88J58 650 +693AK 679 +259K2 806 +9998J 176 +6822T 235 +9J699 913 +7QQQQ 602 +T7T4T 317 +6226T 725 +JJ9J9 316 +55575 761 +A6A66 796 +K9T29 764 +33334 608 +KKK7K 893 +99988 579 +J8JJJ 259 +4AJ89 390 +9QQ84 14 +9KJ3K 580 +77736 433 +KK22K 555 +755J2 940 +4JA9A 492 +9Q555 484 +6J687 542 +99K53 910 +6236J 36 +9J999 54 +6663J 454 +85JJK 122 +966J3 171 +QJ2KK 747 +KJA2A 676 +788J5 858 +78833 218 +6KJ6J 308 +T75AT 318 +7JQ36 728 +AJ8TA 354 +96KTQ 899 +52993 402 +9K5AJ 898 +Q7JQJ 748 +5Q5QQ 48 +A5858 148 +85888 988 +2TJ82 556 +9AJK4 843 +TJ26Q 406 +2296K 356 +22K22 18 +KJ6KQ 253 +T444T 117 +6T257 715 +AA444 113 +39737 693 +877QQ 521 +TK454 735 +38QA8 562 +KT4A4 984 +JKKKK 920 +666J6 452 +8JAJT 280 +A62QJ 945 +868TT 243 +KQ66K 511 +J3J33 512 +T9K9K 160 +66TT3 537 +J3T48 234 +44999 158 +9876A 666 +JJ73Q 546 +85A3Q 20 +3333K 750 +6AJ73 381 +Q3Q58 637 +69644 654 +J6669 641 +8K2KK 733 +33535 447 +32K56 153 +TA94Q 994 +7979A 543 +Q663Q 432 +KQJ7Q 516 +66K65 6 +484T4 991 +88387 15 +96229 21 +7AK62 499 +88KK7 618 +3K344 69 +6A6KK 569 +22J24 784 +QKT53 837 +7K2KK 1 +87T95 810 +2228Q 82 +Q66AQ 548 +J6Q66 366 +5J42Q 465 +8QQJ8 246 +JAAKJ 630 +5TT99 408 +5T7Q6 779 +768A7 631 +22262 201 +664AA 104 +A96A6 128 +T666K 5 +3984K 684 +3335K 208 +79A77 891 +K7K76 285 +AQ8A6 678 +36535 130 +JT443 760 +477T9 547 +48A33 532 +AA66A 321 +56666 776 +3AQKJ 888 +K6Q68 83 +2J727 902 +3TT33 339 +85Q6T 714 +QT333 717 +7T74T 335 +J3A85 974 +8J888 617 +K974K 802 +8777Q 947 +A9Q6K 175 +77757 75 +7JA22 458 +3K499 791 +98TTJ 256 +5555J 505 +QTQQJ 70 +T232T 506 +Q9999 907 +J4A88 74 +A4K58 191 +K3888 263 +2QJ22 23 +3368Q 155 +QKKKQ 743 +JK222 139 +KQ84Q 905 +T25T2 91 +Q9TJJ 844 +QQ8Q8 720 +335KK 355 +29T76 963 +39AQ6 292 +27222 276 +88JJ8 388 +52A22 134 +7A95Q 86 +7TTTA 314 +9642K 187 +A33A3 416 +6Q66Q 92 +93A23 403 +77722 523 +33J34 196 +J8333 639 +K8TJ5 736 +222AA 116 +JT3TT 970 +87A65 225 +82555 459 +22JT2 255 +Q2223 972 +K63JA 143 +8AQ86 653 +JJ3J9 614 +3A77A 365 +KK9KT 47 +5T959 385 +7JKQ4 477 +497T3 711 +34A33 770 +57557 869 +777KJ 193 +KKK5Q 892 +9Q299 230 +34J83 795 +3KTTQ 692 +66696 695 +57472 960 +77J26 841 +TAT2T 685 +33969 662 +9Q393 295 +QKQ88 142 +TTT98 32 +25555 374 +265QK 924 +JAAJA 440 +9999K 257 +346KT 500 +JJ299 535 +QJ4KA 135 +7A422 305 +A2T85 773 +4T69J 52 +73Q8A 463 +KK6KK 420 +8Q7QJ 251 +QQK3K 168 +66644 150 +44424 444 +84T53 299 +AKAAK 240 +6A952 35 +Q5875 217 +22888 829 +38589 642 +94848 417 +32222 727 +966Q9 27 +JQ9QT 336 +52K2T 886 +J7787 721 +AAQ3A 147 +6K823 957 +6668Q 839 +AAA88 39 +KJ33K 4 +J5J5J 419 +2A7T9 275 +4A777 470 +7KK7K 377 +99992 418 +93TA8 865 +95T34 709 +K34JA 322 +94674 658 +AJAA7 45 +JQ22A 304 +K83Q2 13 +A6923 439 +98977 331 +689J6 769 +99953 931 +QQQJQ 94 +J5AA5 871 +TJTJT 413 +ATA28 530 +6T66T 564 +KAKKK 873 +T43QQ 657 +TTTT2 563 +9898J 118 +QQQQ8 659 +99997 236 +88826 188 +6KKK5 394 +2QQJ2 495 +8T864 900 +888K8 655 +28KQ4 361 +33732 472 +AA2A7 845 +TTT7T 726 +68A84 852 +3KKKK 161 +343Q2 358 +75792 476 +AAAJA 550 +KK9A9 558 +72569 737 +4AT33 708 +KKKQ9 119 +8JJJ6 315 +78A77 850 +JJQJ7 140 +3A5A5 740 +78278 344 +Q4Q44 103 +44JA4 146 +74T95 636 +2A2AT 507 +TK5Q5 474 +7T982 712 +AJ378 1000 +75858 494 +AAA99 746 +72T94 981 +TT77T 803 +393K3 124 +T8T95 265 +AJA66 244 +AA4TA 207 +44777 638 +68QT2 973 +9K628 340 +7595K 443 +9A949 682 +KJKTT 954 +23T26 100 +5KJ5T 434 +66626 81 +K33K3 856 +J7555 525 +JQJJ5 60 +868J6 935 +22299 823 +J4445 539 +9KKK7 890 +JAA48 80 +755Q5 520 +4JQQJ 223 +997T9 405 +8A888 575 +K369T 730 +A5565 847 +39JQ4 29 +QQQJJ 694 +86789 860 +333J3 10 +9A94A 221 +J99JT 62 +87888 701 +AA6A2 290 +T5QK4 775 +35354 927 +323Q3 451 +25TA5 883 +2954J 487 +376J6 594 +2K975 842 +AAAA6 986 diff --git a/data/8_2020.txt b/data/8_2020.txt new file mode 100644 index 0000000..51d6878 --- /dev/null +++ b/data/8_2020.txt @@ -0,0 +1,629 @@ +jmp +583 +acc +9 +jmp +525 +jmp +302 +jmp +287 +jmp +412 +acc -16 +acc -19 +acc -19 +jmp +423 +acc -4 +nop +13 +acc -8 +jmp +37 +acc +0 +acc -5 +acc +48 +acc +0 +jmp +232 +acc +39 +acc +5 +jmp +69 +acc +31 +jmp +425 +acc +31 +jmp +93 +nop +166 +acc -7 +jmp +192 +acc +1 +jmp +391 +acc +11 +acc +20 +jmp +1 +acc +24 +acc +7 +acc +27 +jmp +162 +jmp +580 +acc +9 +acc +39 +acc -18 +jmp +283 +acc +28 +acc -14 +nop +464 +acc -12 +jmp +358 +jmp +523 +jmp +212 +acc +16 +acc -13 +acc +10 +acc +46 +jmp +207 +jmp +266 +jmp +1 +acc +36 +jmp -19 +jmp -3 +acc -16 +acc +3 +jmp +229 +acc +44 +acc +0 +acc -17 +acc -14 +jmp +132 +acc +38 +nop -30 +acc -12 +jmp +506 +jmp +511 +acc -15 +acc +4 +acc +29 +jmp +129 +jmp +419 +jmp +1 +jmp +45 +acc +14 +acc +20 +acc +11 +jmp +153 +jmp +78 +acc +32 +nop +212 +acc -7 +acc +42 +jmp -65 +acc -17 +jmp +458 +acc +10 +acc +18 +acc -11 +acc +8 +jmp +215 +acc +33 +acc +25 +jmp -21 +nop +92 +acc +0 +nop +353 +jmp +188 +acc +43 +jmp +82 +jmp +399 +acc +33 +acc +16 +acc -3 +jmp +174 +acc -12 +acc -3 +nop +171 +jmp +73 +nop +362 +jmp -48 +jmp +218 +acc +5 +jmp +486 +acc +43 +acc -1 +acc +0 +jmp +476 +acc +21 +jmp +44 +acc +7 +acc -6 +jmp +1 +acc +3 +jmp +95 +acc +12 +acc +38 +jmp +202 +acc +17 +acc -12 +jmp +114 +jmp -33 +jmp +367 +acc +45 +acc +40 +jmp -81 +acc -5 +acc +27 +acc +6 +jmp +374 +acc -6 +acc +10 +acc +19 +jmp +1 +jmp +171 +acc +8 +acc +46 +acc +12 +jmp +234 +acc +45 +acc +28 +jmp +337 +acc +8 +nop +10 +acc +17 +jmp +368 +acc +2 +acc -3 +acc +29 +jmp -160 +acc -7 +acc +11 +jmp +174 +acc +48 +acc -3 +acc +33 +jmp +6 +acc +3 +acc -10 +acc +9 +acc -13 +jmp +428 +acc -13 +acc +35 +nop -112 +jmp -147 +acc +13 +acc -4 +acc +50 +acc +46 +jmp -118 +acc +38 +acc +36 +jmp +375 +nop -3 +jmp +93 +acc +10 +acc -1 +jmp +211 +acc +6 +acc +38 +acc -12 +jmp -6 +jmp +1 +acc +41 +jmp -117 +acc -17 +acc -15 +jmp -120 +acc +17 +acc +48 +acc +37 +acc +0 +jmp +139 +acc +7 +acc -12 +acc +0 +jmp +98 +acc +47 +acc +3 +acc -18 +acc +26 +jmp +141 +jmp +236 +acc +18 +jmp +275 +acc -10 +acc -11 +jmp +12 +acc -19 +acc +17 +jmp +300 +acc +32 +nop +145 +jmp +84 +jmp +34 +acc -17 +acc +12 +acc +37 +jmp +182 +acc -7 +jmp +154 +nop +375 +acc -1 +jmp +108 +jmp +1 +acc +16 +acc +49 +jmp +355 +acc -16 +acc -19 +acc +47 +acc +26 +jmp -171 +jmp +285 +jmp +84 +acc +28 +acc -11 +acc +6 +jmp -252 +nop +228 +acc +10 +acc -17 +acc +42 +jmp -221 +acc +34 +acc +8 +jmp +201 +jmp -225 +acc +45 +nop +125 +acc +25 +acc -7 +jmp +318 +nop +348 +nop +40 +acc +42 +jmp +284 +acc -1 +acc +46 +jmp +1 +acc +41 +jmp +231 +acc +30 +acc +45 +acc +10 +acc +45 +jmp -227 +acc +25 +acc +13 +jmp +219 +acc -10 +acc +27 +acc +45 +jmp -186 +acc -18 +acc +50 +acc +31 +acc +19 +jmp +89 +nop -240 +jmp +173 +nop +65 +acc -8 +jmp +1 +nop -146 +jmp -156 +acc +27 +jmp +106 +acc +4 +acc +45 +jmp +35 +acc +44 +acc +47 +jmp -254 +jmp +57 +acc +1 +jmp -274 +acc +32 +acc +6 +acc +1 +nop +179 +jmp +122 +jmp +1 +jmp -310 +jmp -273 +acc +46 +acc +9 +jmp -187 +acc +36 +acc +0 +nop +47 +acc +17 +jmp -137 +nop -116 +acc -17 +acc -6 +acc -8 +jmp +106 +acc +36 +acc +50 +acc +3 +acc +22 +jmp +190 +acc +48 +jmp -336 +jmp -164 +jmp -32 +acc +44 +nop +242 +jmp -215 +jmp +7 +acc +36 +acc +3 +acc +27 +acc +24 +jmp -8 +jmp +156 +acc -5 +acc +42 +nop +37 +jmp +107 +jmp +247 +acc +12 +acc +30 +jmp +44 +jmp -306 +acc +36 +jmp -354 +nop +192 +nop +153 +jmp -106 +jmp -284 +jmp +1 +acc +33 +acc +18 +acc +13 +jmp +232 +acc -4 +nop -64 +acc +38 +acc +29 +jmp -349 +acc -7 +acc +44 +acc +4 +acc +48 +jmp -35 +acc +13 +jmp -144 +acc -7 +jmp +196 +acc -8 +jmp -316 +jmp -138 +jmp -381 +jmp -156 +acc +21 +jmp +189 +acc +30 +nop -85 +acc +34 +acc -13 +jmp -326 +jmp -7 +jmp +1 +acc +2 +acc +24 +jmp -56 +jmp +152 +acc +42 +acc +25 +acc -6 +jmp +174 +jmp -96 +jmp -86 +jmp +20 +acc +23 +nop -93 +acc +3 +jmp -42 +acc +0 +acc +6 +jmp +100 +jmp +20 +jmp -147 +acc +19 +nop -367 +jmp -80 +nop -318 +nop -289 +acc +45 +jmp -321 +nop -4 +acc +13 +jmp +74 +acc +0 +acc +15 +jmp +153 +acc -5 +acc +24 +acc +21 +jmp +1 +jmp -48 +jmp -262 +nop -317 +jmp +93 +acc +20 +jmp -32 +acc +44 +acc +50 +jmp -350 +acc -19 +acc +46 +jmp -431 +acc -11 +nop -227 +acc +48 +jmp +103 +acc +44 +acc +31 +acc -15 +jmp -15 +acc +0 +acc +34 +acc -3 +acc +38 +jmp +108 +acc +28 +nop -60 +acc +28 +acc +26 +jmp -20 +jmp -440 +acc +48 +jmp -257 +acc +11 +acc +8 +acc +14 +acc +30 +jmp +8 +acc +47 +jmp -323 +acc +15 +acc +10 +acc -15 +acc +13 +jmp -169 +acc -11 +acc -12 +acc +24 +acc +5 +jmp +125 +acc +34 +acc -17 +acc +2 +acc +32 +jmp -83 +jmp -120 +jmp -11 +acc +25 +nop -54 +jmp +1 +jmp -29 +acc +13 +acc +17 +acc +6 +acc +31 +jmp -420 +acc +25 +acc +13 +jmp +117 +jmp -3 +nop +68 +acc +32 +acc -11 +acc +31 +jmp -374 +acc -4 +acc +34 +acc +38 +acc +23 +jmp -113 +acc -19 +acc +50 +nop -216 +jmp -134 +nop -331 +acc -7 +acc +28 +jmp -357 +jmp -216 +jmp -128 +acc +34 +acc +16 +jmp -54 +acc -16 +acc +0 +jmp -64 +acc +7 +nop -322 +jmp -306 +nop -414 +acc +38 +acc +15 +jmp +77 +acc +18 +jmp +1 +acc +0 +acc -8 +jmp -248 +acc +26 +jmp -6 +acc +17 +acc +21 +acc +30 +jmp -142 +acc -13 +acc -18 +nop -330 +jmp +27 +acc -14 +jmp +60 +acc +31 +acc -6 +acc +49 +acc +16 +jmp -289 +acc +11 +acc +0 +nop -141 +acc +19 +jmp -143 +acc +44 +jmp -286 +acc +42 +jmp -209 +acc +34 +acc +10 +acc +3 +jmp -461 +acc +2 +jmp -358 +acc +42 +acc +0 +acc +26 +jmp -191 +acc +16 +jmp -230 +acc +31 +jmp -244 +nop -456 +acc +16 +nop -196 +jmp -475 +acc +24 +jmp -553 +acc +42 +acc +24 +acc +3 +jmp -572 +acc +31 +jmp +7 +jmp -144 +acc +20 +acc +23 +acc -14 +nop -506 +jmp -17 +acc +19 +nop -428 +jmp -286 +acc +2 +acc +6 +acc +28 +acc -13 +jmp -291 +jmp -377 +acc -3 +acc +32 +jmp +1 +jmp -205 +acc +18 +acc +32 +nop -523 +jmp -79 +acc +32 +jmp -30 +acc +40 +acc -17 +jmp +1 +acc +28 +jmp +1 diff --git a/data/8_2021.txt b/data/8_2021.txt new file mode 100644 index 0000000..9bff6cc --- /dev/null +++ b/data/8_2021.txt @@ -0,0 +1,200 @@ +abdfce bedag acdefgb cg febcga fbdac fcdg cabdg bcg bgacdf | fdcab adbcf gcb acdebf +bgeacdf dgebca gbc fbgd fceba fecdg bcgef cfgbde gb fegacd | dbfg abecf dfgb gaecdf +dfega bedag af agf fdagcb cbaedgf feac dfecg dcegfa gcfdbe | fag edcgf fga bfgcad +ca afc bdafe bgface afdebc dcab cgedf fcaed cdebfga fabged | fcdea abdc fdcbea fdbcega +gabde beacg cgafe gcfeab gebdcf fedagc edfgcba bc acfb bcg | fagedc bgc bgace cbg +df cfd geabfc ebgadcf dfae dcgfe decgb agdcfb aecdfg cgfae | fd fd ecfgd gfbcea +fcebdga cf faebgd fecgbd bcdfg egbdf cgadfe bgadc gcf cefb | fcg gfc fgc dfcega +abedcg afdcgb ae fcgad fbcge gea dfae deafgc efgca cagebfd | gea fgcbade ea ega +dc egcbf dgbce abdge acdg dbfeac dbeagf gecfbda dec cgdabe | agebcdf cadg agbfed cd +bag ecgfb beagf ga edbaf aegc bfgdac bedcgfa gabcfe fdebgc | debacfg bga degcfb bacgfde +gebcfa efbcgda fbgdae egcdb aecbg dfegac eagbf fbca ac aec | gaebdf cabf aegbdf fegba +bedg abcdg dcagef gd cfgba fdaebc cdg badgec bcaed egcadbf | gabced gd bcdag ebgd +gbdfca agedfc acedg fcgeb dbacfeg ab cba cbadeg daeb gbace | adbfgc ecfdbga ebfcg ab +bfdag cbegafd dfabeg bge ge bdcae gabfdc faeg gefdbc gdeba | dbega dgecbfa adbce fecbadg +edbf efcabg edfbgc gdcbf ecgdf egdacf cbf bf cbegfda gadcb | dfbe gfdbc fcb bf +gcefa egdb gcfeb fdgbace dfbcg be bgfdca caedfb bec cbfgde | bec dgeb ceagf egfcbda +eabcd ceagfb bdgcea cgdeb bgcfde gadc fabde abc ac dfgebca | agfcbe bcadge abc cab +agfedc edabfcg bf fgcdab ecabd dfb dfagc afbegd cbfg cfabd | fbcg cfadg geafbd deabc +afdeg ce eafbcdg bgcfa fedagb dcgbfe aedc gcaedf fcage cge | dfcbgae ec fecga caed +bec cbgedf fagbcd abdec agbed feacdb fdcab acfe dgbcafe ce | cgfbad abdge bec badcfe +begac ade egcadb dfceagb acdg degfb eafcbg da bedacf dageb | debga faedcb acgeb fgdeb +ecdga gfab adcgb cgdebaf edcbfa ab bfcdg fcegdb acbdfg bda | dcaeg egdfabc dagbfc dgabcf +agb cbgea bafcdg edbgfca egacfd edbac gacef bg gefb fbaecg | aegcbf decfga gb aecgf +bfdec fegacd cfdbeag dba fadcb bdfgae cagdfb ab acbg dcgfa | efcdag cabg geadbf ab +dfegcab cba facdbe agdcf egadb aebdgf cb cbdga gceb bedacg | bac cgeb cb cfaedb +dfbeg cdgabf efgbad cgfbdae dbfag eg beg fdebc gbacde efag | gbe eg bgfde gafe +dafce ba fbeagcd acdfb abce dab cedgaf fcedab cdbgf efgabd | bcgafed beac abd caeb +efadg ebfag cbaf bga bfecgd ab gcebda becgf eagfcbd aegcbf | dcfegb fbgea cagdebf cefdbg +fgae fcgdab dacgbef gdfba eba ae bdcfe befda gdabef ecbdag | afdgecb efadb daegfbc gdfba +edbfac begcfd acedbg decbf ead ae cfedbag ebfad bdfag afec | cfae dbcef ade debcgf +bgf gcaef fgceb fgcebad fedbc gb dcegfa abcfgd geab bcgafe | fdcabge abeg fbcagd gb +fgbcea bdf bdcae gdef fd ecfdb agfbdc fbdaecg fgdbce bcefg | cbgfe gefd fedg fbecg +edcabfg fbagce ac dcagb agc gbecd gdfab fbdecg dbcgea dace | fdagb deac adec cga +eafcbg dbage egbcdf eagbfdc gf edbfc gfb cafbde fdgeb gdcf | ebdga fbegd fg fbg +ebgaf bdegacf cbgf dcfeab fbe bgaecf cegaf egbad bf eadfcg | fb bf bcfg gcfea +cagfde eag gbcde acfebgd bcefad cafg aedcf fbdega ga gcaed | cfeda cagf ag dfcea +bdaegf bfdgac feb defa abdgcef abgfd gbfed gfbcea ef dbceg | edfbg ef dbfge fe +cefgb cegdafb begcda agb fdacg ba agbcf gdefcb agcfeb ebaf | cfegb ab gfadcbe dgbcfe +feabd fc eafdcbg gcaeb efagdb cbaef dcbagf ebfcad fca dcfe | cfaedb cbgae afc cdebfa +degfcba cga bafgce eabgd dgcba bgdcf afdc ac gfbdca fegdbc | bgcafd ca cag ac +bcdefa gf fdeabg bgf bagce gabfe dgef dfcgab fdbea cfgdeab | gf egdbaf afegb egfd +fbed gefadc dfeabc bcdae adb db dfeac gbdcfa cgeba cfegabd | cgfead dcaef dba edfb +dfcbe gd dbafec cfgedb aecdfg cgafb cfebagd gdc egdb gcdbf | dg dg gd dgc +gcef gdbac cbadfe aedfgb ecfda ge bcdfaeg gae acedg ecgafd | aeg cedfagb bacfged eagdc +de ebcdfg acgebd abegc becafg edb abged afdgbce deac gbadf | ecfagbd gabec gebda ed +gadebc gcfdaeb abefg ebgcdf eagfc ab gfbed eab fbda baegdf | edcbga abe baecfgd dbaf +bfced fe bfdac fgadbe fed cdgbe fcea adgfcb dfebagc adbfce | feac adcegfb gbfdae edgafbc +fgcbda abfdge dbe acfbe gdcebfa dgef ed gadfb gecdab eabdf | dbgace febda fdgbac dgebac +fabgce fceda faebdgc bfecd gbdfea degbfc bcdg bfd bd bcfeg | egbcf dfb gcefabd degcbf +bfdga agdbef cafdg dacgbfe afb aebd bcefga fdgeb ab decgbf | fdecbga ab bfa fbegd +cbg cfdb fabecgd acbged acefg gdbfae cb dfbegc cfegb egbdf | gdacbe gbfed cb dfbc +cabfeg ebdcfag cb dagfbc cgfda fbcd gcb ebgda dfcega gcabd | cdgafb dabeg fdgcab adcfg +gfdba fcabd ca bac fbecag abdecf cead acgebfd bedcgf cebdf | dcafb gbedcf facgedb acb +gecfbda febda fg cgdf ebacfg gbfde cdeagb gebdcf gecbd efg | egfdbc gcefba dgbfe adcgefb +egbdf ged aefgb dgfbec abfgdec cbgdf de gcadef dfgacb edbc | dfecag de gaecfdb gcefda +gacfe fbdegca gdfb edg baecfd befad aedfg bdgcae gd befgda | bafegd dgfb bdafe daebgf +becgda gd gbed bdefgac agfbce cbage dcfbga edfac agedc dgc | cgbea dgc gfabedc cdg +dgfec gaf efca gcadbf faedg efdbagc af ecfbdg gacfde abged | ecfbgd cfegd fa bgdefc +ecbadgf efbg egcdbf edf dcgfb ecdag ecfbda agbcfd dgcfe ef | gcefbd efacdbg acfegbd ebgf +dacfbg aegfdc fcgeabd dcgaf fdae fe bgeac dbfegc aegcf ecf | fe afceg fe gecdfb +bfdeg feagbd aebd gab fdcgeb begaf ba cdeafgb ecafg dbfacg | cgfbda agcef afgbe egcdfb +bafgc cgefa bdgfa gbdacf bc agefdb gbc gcfdeba bfdegc bcad | dafbg dfbcge dagfbc fcega +dbfge defbga gbeadfc bgdcfe bc gceda bcg cbdge gcaefb dbfc | cb bgc egfdcb abegcf +fda fadce da ebcaf adcb feacdb gedfc cbadgfe egabdf beafgc | egfbda bfcgade ad feabgcd +dcegf eafdcg afgc fgbeacd debcf abgedf gec eadgcb cg dgeaf | fcged afcgde dgcafe gdbecfa +becafd dafcgbe feb fgab fdebg bf abdefg gefacd gafed bedgc | faebdc fdagbe dgebf bgfa +cfgbeda ba fgacd bfca ecgfad bga gdacbf bdgac bdgfea cgbde | adfcge gfadce ab bga +dcbgafe defga edabcg cadefg dbegf facge fbaceg ead da fcda | begfd gfbcae dae eda +acebg bac dfbgca dcega cefabg ba fgdcbe aebf fcbdage fbcge | cdagfeb efba abc ab +acfge gde gecfbd ecgabf dg daceg acdegf gfda cadbe eacfdbg | dacfge fgabec gde fecgdab +edagf cfdge adf bdacfe ecdgfb cagd ad fdeacgb egfba gcfeda | fdaeg efgab ceagfd efbga +fgabd efbdg gfcde ecfadg dfcegb gecbad be efcb deb acefdgb | ecfgd bcef deb dbgaf +abgcf dgebaf eg gfbadc ega cadfe fgaec gdceafb egbc fbagce | bgafce afecdbg fcdae egcb +dbaecgf abdcgf dgbfce gdbef gcf dabegf ecfb dfcge caedg cf | gdefc cgedfab gdcbaf efcb +gcdeab acgbfd cefdg fbcgd aefbgdc bcafg fcabeg db bcd dbaf | cfedgab bdfa cbd cdgbea +gb fedbga gbdaf fbcda bdcgea gbd facdge gdceabf agefd gfeb | bgecfda gbefda gbd gcfabed +dga defcbg eabg dbcgfa ag ebcfagd gbecad fecad cegdb cegda | acbdfg cedagb ga gdeca +gcefba dabgf dcgaefb cafgd aedcg dcef cbgade dgaefc cf afc | cedf gbaced fc dfgecab +egcfa fbgce cbdfgea fgadce cbdagf edafg cade ac beagfd cag | fgbce febdgca adbgfce gac +gfdce eabdcfg ag gcadf agd cdfbge acge bdafc gefabd cedagf | gad gace gfeadb afdgeb +dfbgea bdcea cgd bcfg gc cafdge bfdga bagcfd gbdac abdgecf | cgdab dbfage fbcg dgc +cabdf bac cdgfa cdeb eabdf fedabc adfbecg dgefab ceafgb bc | fcabde bc bdcfa abedcf +fedacbg gb bgf bdag fecbda dacbf cbgfa agfce bcfadg dfcgeb | gbf dbfcea gb cbfad +fbdcea bcafe fac cfdbe cfbdeg adgbefc fgdcab af feda bgcea | cfa bfcaed cebdaf cafdeb +agf cdefg gcaebf cgbdea af begadf badf agfed dagebfc bdeag | fcegbad gbecda begda fegbad +fbdec gfbace egdfb acbfe dcba dcf gfdbcae decfag aecfdb dc | dgfcbea cd acfegb cdefab +ecfbag ba gab afbc cgabe bdecagf fecag facdeg bafged cebgd | fegadb gba cfage ba +abfeg bdgfe fbecda cbfdage egcbd gfcd efd gfcdbe df eabdcg | gfdbe dgecfb bdgeca eafgdcb +fc debfa cfb ebgcfa fgcbde acfbe dbgeac gaceb egabfcd facg | cgbae fc cgbaed cbf +ac egbfcda gfbec gecbfa dgfceb fcba dcbaeg faegc gac fdeag | gcbfae ceabfdg eadgcfb ca +bga cefbgda gfebc eafgbd edgacf cdba fcadg bagcf ab adcfgb | bgcafd gdbfac dbcgaf dcab +bdecfa gbcfa bec fbaed cbeagd cabef ec egcfbad aegbdf dcfe | edgabf cabegdf ec bdcagef +gcfaedb bfgec ceagb cbdfeg eabdcf fg fbcde gef gcdf bgafed | egf fgdc dcgaefb gfceadb +edag dab fbdag da gdcfb edacbf efagb abdecgf agebdf bagecf | deag fgdba bfeagdc efacgb +dgfc fgcbde edbacf abgef fdgbe fd dbf egcdb fbcdage aegdcb | cbdeg bcegd cbdage bdf +bcgfda dcbef facgeb gadcef bfg afdgc adgb gdfcb eacdbfg gb | cbdfaeg abgcedf egacbf becdfga +gafdbc gcefa egacb gaedbc fga fa faebcdg befa ecdgf gecbfa | egcab facdbg edgfc af +fagcde gef eagdf gfdba cdgfeb fadgbec eg badcef dfcea geca | gdabf fge adegcbf aebdgfc +bedgaf cb fcabdeg dcebfa bacgde cba gcafe dabef cbeaf fcbd | cb bdfc dafebc gceadfb +dafbe gf abdfg dfbeagc bgacd ebfg dbcefa dafgce gdf beadfg | gcdba cfegad cdfabe fgbe +dfabg cfbedg dgcbafe dceba fdagbc aedgbf fgca gc dcbag bgc | dfgceb cgb cbaedgf cgefbad +bdfegca dcegb fadc fegadb df cfbed bfd cbegaf fecba afbedc | gfacbde efbagd egcdb fbegdca +bcfgea eacgf cbdeaf fbedgac gbcfa gcadef baf gbcfd bgea ab | gaecbfd dgfbc afb dfaebc +bafdgce cbgd facde bgcaf dbacf db acgfdb aecgbf abd ebdgfa | fadce abd feacd bdcg +fgcdab efcadg gfdaebc aebfc bdefgc cefgb eg dgbe cgbfd feg | eg cegfbd dabfgc eafcb +acge bedgafc edafgc dfgbac ca bfdega cdeaf acf fdceb fdeag | facde fac ca ecfadgb +dbagf fbdeag cgbfad dbc gcfb gbdca bc ecdbaf egacd fedcbag | cb cdbfega dbc fbcg +dceab egfdacb bfc gfba fcagd bdcagf aefdcg cdafb decgfb fb | cbedfg acgdf bacfd fbc +fea bgcfe af fceag gbfdea fcagbed dgafec cfad dabgce aedgc | fea gceda edcagf fabdge +dfbga abfdce fdb bdeg adebfg gcafb daegfbc bd gcadef adfge | efdagb afgecbd fdgab bged +aebfgd gedfa bf afb ecfgda fgbe aegfcbd agdbf abdefc bcdga | gcbfaed fadeg bf cfdeab +cgaebd cg faecgbd fbagd bfecad aceg gefbdc bcdea cdg bcdga | gcabd cdg dabgc gbfad +deb cfgdeb acfebd fgbce fbdgcea bdfg cdgae dbgec bd fbaegc | ecbfg gabefc fgecbad deb +fca dfeab bacfgd gfdec ac debcfa caeb abfedg efadc bacedfg | fadce bdaefg dbfgca dfgbaec +cegfb egabd df adfcgbe efd bfedga feagdc bfad acbgde bfdeg | daegb fd efdgb bafd +agcedb egbacdf defgcb aefcgb gecab cfg acbfg bfcda gfea gf | adgcfbe cdeabfg fg fgae +fedcb caedf fgdacb dgefb cbf bc gefabd gfcaedb edgfbc bcge | cbf fcaed fbc fcebd +decaf bgfe dfage abgcdfe bfagd gde ge becagd bfgade bcdgaf | ged edg fegadb gedaf +ecgbf fabedc ebdcf fgc gc gfdbcae cbdfag dcbefg cegd ebgfa | cbadfeg fgabe feagb cfg +gfdca cgdfe gdecfa acg deag befadcg agefcb ag dbafc ecbdfg | gac agc edgfc acgdf +adfcbe fdaec agbefc gcfed cg cge fgeadc bfdge gcbefda gadc | facged cg acfde cge +edcf cbfged cbadg bfegcda eadbfg gfc bfgdc cf dfgeb ecbgfa | fc caegbdf abedfg aebgfc +edbafgc fegdba gadeb cdbega bfa afbcge bdfe fdagc fb fagbd | dcgbeaf agdceb bfecag bedf +bdefgc bcadg dfgba bedgafc edcbga cd gcd acfgbe baceg dcea | gcbadef daec bdgac ebgac +cbdag dbeg dbgafec gd cgd gabdec fcebad gbcaf eadgcf bacde | dg gdbe dbgace cgd +dfaebg dacgb bgfda egdbc gca aecbfg dcgfba ca dafc becfdga | bdcag ca ceadbgf dfac +edagc adbefg dgfae befcda gef dfcgeb bedfa afgdbce gf afgb | afdbe bfdgcae afbg gbfa +dgecba fegd begafc egfca agd fdgac aecfdg decfgba fdbca gd | abcfd gad afcbeg gd +ceabgf fbeg bacge fcedag adcbg eg gfecadb gce fbcae fcebda | defagbc cge ecagfb ge +aed fbcde aefbgcd beac gdfba ae beadf fbcaed cefadg fbcegd | ae dbefcga efbad ade +dbeagcf cdgae abfedg gfbdca cgb gdcbfe cdagb fbdag bc bacf | bc abcf cgb bcg +afbegc dabfec cega dbfag acfeb facgb gbc bgefdc efbacdg gc | egcbdf bgc edcfba bgc +bcfe cdegf bgedcf bdfga ebgcadf bfged cgedba eb egacdf dbe | febc cebf bacedgf fbgedc +fgaeb cbg bafcdg gc afgdeb eafdcbg bceda egcf acbgef cgbea | gbc gcef cbg fadgbc +cadbge dacfeg bfdage dgcab abfdc edgac gcbe bg gecadbf dbg | bg beadgfc cbge gb +geadfbc aegcdb cfdgb ebcgd ecdf fdgecb fbc dbafg geafcb cf | decf cf fc cf +cfagdb fbgac cgeaf dgfaebc faebgd ab bcad baf fgbcd bfcged | cgdfb fgcbd ab dbca +fcedg dbgcfea bg bgdf fagedc efdbgc bge aecbd bcgeaf dbegc | geb dfbg bfdg cdbea +defag bfcgde ea abfceg efbdg abde fae eagbdf aebdgfc cfgda | fea cdbfge gdcefba fdgbe +abef af gaf begfd dbfgec egcad aedfg bdaefgc bfcagd dfegab | agebfd cfabdg ebaf afeb +dfecab bcdae eabfg gc gdcfba agbce cbaged gedc cgb ebdafgc | cdeg cdegab dbeca gaceb +dbeg fecdg dcgafe abfec fdbec cfgdeb db bcgfad dbc dfgaebc | efdbc gfdacb bdc ecfba +dfecbg gdb gcde bfdce fgbeda gcdabfe dg gfcbd gcfba acefbd | gd efcagdb gacbf dbefac +fgedac dbaec febadc ag egbfc age agedbc dbag gfbcaed beacg | gae ga bgad adbfec +agfedc bdcefg fcdag gfc fbagd fdace agce cebdfa fcdegab cg | decfa fedca efadcb fcg +edcag ae gdecf ecba gaebdfc cdfbag daebfg eag gecbad abgcd | dcafebg ae egdabfc ae +fbdeag daebc dgbfac fabeg aecbgf dgfe fd daf bdecgaf adefb | dbaec edfg gfed aegbf +efacdg geb be gefdba eabf gcdeafb agbecd gedbf bgfdc daefg | efba gbe bfgcd degaf +decagfb gcfbe abdge adbgfc defagb gbdaec fdae fbgea abf fa | beadgf aedf bgade efda +aedf bagdfce cagfdb dfgac ecfgbd fe fec geabc cgeaf gafced | dcagf fgebcd cef bcefadg +dc dagbec fgbadce cde dacf dfecb fbgde afcgeb fbcdae fbeca | bcfde cd dc befdg +ebac ebfacgd cfe ec agbfe egcfab fgdcb cefgda egafbd ebfcg | cdgfb gdcafe bfgce acfedg +febdgc cge fcdgea dbgcefa bcdeg egadb dgacfb bdfgc ec ebfc | dfbgc adbfgc cefdga ce +cbd afgcedb gefdc cbgde aecdbg afcdbe bd gabce gadb gafceb | bcega ecgdb ceabfgd gebdc +dfabc agcfb gaf gf cebdfa adfbge gcafdeb cdfg bgcea cbfgda | gabcf ecbdaf dcfg fg +adebcf baefd dbegfc gedbacf fdbce fda fgbcad af afec gabed | feac ebfdgc ecgbfd gdeba +cgebad ad fcdbag dfca fbdge cabfg fgabd dag acfgbe eacfbdg | da dag fgcba ad +bface cfbgaed abegdc gdecbf aed dfeba da dgfa bdegf bafgde | dgfa ead fgad dbfgec +afgbdce ebacf abde ed ced cadfg gcdfbe ecdbaf faecd fegabc | ed bade de afdceb +aeg cdbaeg cabdfe fgceb cafgde ga adgb efdagbc eacbd cbaeg | cdaefb defgbac gae dagb +ebgf bcdef bgdca ebafdc dfegcb gf dgbcf cfg cdebgaf caefgd | cbeadgf fg fg cgf +aeg afcde cagbfe gcbdfa bafgc edbcgaf bfge acgfe ecdbag ge | ge ecadbg ecabgd ega +gfdca fabcg eafcbdg efdgc fead egacfd bdaecg da cefbdg dga | feda agd cdgabe bcafdge +gb fgbedc fegba efagbc bgca fbdea cegfa fbcadge aedcfg fbg | fcgbde bfage cgfea fbecgd +gbf acgdef dfabceg ebfadg bgde gfead cgeafb fabgd dcabf bg | fdcgaeb bg gbfcea afbgd +begcf baec cafgb fedcgba bag ba fadcg dfabeg afgbce fdbecg | bcadfeg gcfeb daegfb caeb +badgfc fdagecb bgefa egcab agbfed fa eafd dbfge dcbgfe fag | agf fa faed fga +cdabgf decbg gceabf dfeabg gfeab adb dafe bedga cadfbge da | gebdfa aefgb deaf cbedg +dfaceg fabecdg gedf gbecaf de fcaeg dec cabfd adbecg fdeac | ed cbfda de cbfeag +cgbeaf afbdc bega gbfec cea dcfgbe ae dbaegfc ebacf cegfad | gbae cefba aec gfbec +gb fgdeac efcbgda eacbd agefd gab edbag ebfgac dgfb edabgf | bfgd egdaf gb bag +fdeabcg gabdfc gedfca dabce cfge edbagf geacd dafgc ge ega | gfce ega dfcbga gfedacb +ad dca cefgba abfcdg dcbaeg dbea ecabg gdcea egfcd gafbcde | egfdcab gcdfe bgeca adc +efag eba ea abfecd cedafgb gabfec fgbdac gcdeb acfbg gceab | bae ecgab cbfga gfae +bafcged cfb dfgba afbdec cf daebc bcgfde dagbec dfcba caef | cf agbdf caefdbg fegdcb +cgfadbe dceabg adebg fgaedc gcba dca ca aedbc geafdb dbfce | cdabe gbdea eacfgd adc +eabfdg cfbdag eb bfdeca feb dfcbgae ecgfa aebfc dfcba edbc | ecfba cafge be be +ea agbde cfbdea egdbfa abdgfc ead bfdga cbged agfe begcfad | baecdf adgeb ade cbfadeg +dabfe fgceab adfec aegdb dacegb fgdb bef fb dafbeg bedfcga | abdge abgfde gfdb eagfdb +badcf egabdc gb efdgac gedafb gab fecadgb bgfe gefda abgdf | bag cbedag agdfceb dfcba +aedgcf eacdbg ea gae efcgd gcfab gcebdf facebgd gfaec faed | afde eafd ceadgb cdbage +gbeadc fgdac ecagf ebfg abdfce cgfeab ge dcgbafe aefcb ecg | ebdgca gec ecbdaf dbafec +cdfbe adcfeb acf efgbcad ac dbca befgcd gabef geadcf febac | ac eacbdf caf ecdgbf +aebcfd cdabe abfeg defbagc bfgced fd gbcdea edf fbdae dacf | dcaeb cfad dfe fcad +bdcg fecdba bd cagbef dgeab dbgcfae ebd gedcab eafdg gcaeb | cgbd aecgb bgcea ebd +bcgfe dbecgf fgdbae afgce bedcf dbeafc bg cgdb cadgefb beg | ecdfgb daegfb bfegc ecfbg +ebgcd bdecgfa gdabfe gedfc dgf fg edabcf gcaf eafcdg cfeda | dbaecf efgcd fgedab fgdeac +gefcdb gfadb ea efgab gcefb gea cefa ecgfabd bcafge egcbda | egacdbf gebfc ae ega +cgedfa afd febagdc fadeg dgcabe cabgfd acef febgd cadge fa | afedg fa abgced gacbdf +dbcfea dc dbgae egdafb bcd debgc cgad egbdafc gcebad befgc | cd dcb dgca decbg +ecfad aegcbf fedcbg edcbf gaedcb fb cgeadfb gfdb edgbc cbf | becafg bgdf fcb gecdbf +ce dgecbfa bgdac gdbfae dce egdac acdebf cfeadg adgfe fgce | gaefbcd degca fcge dbcfeag +fd eafcgb cdf dcfgeb fabce gecda dbfa beagcfd deacf abfcde | defca fecab cdaeg ecafb +cagdbf ca gacfd cgbeafd dcfge gac gafdb dacb bfgaed becgaf | gcdfa cdab dcab bcfeagd +gadef aedgc afg gcadbf ecdfag fg gfbdeac adfeb cfge bgaedc | gf bdcgfa dgafe bgcdaf +agdc gefdbc dbgfa ad cfbaed dba cbdfg ecfdagb egfba dgcabf | ecdgbf ad bgcdef abgef +cadgfb bcgfae fedac efbca cagfb eb bae ecdgabf begc agbedf | gedafb acbdegf aeb eb +cdega efbg fbdegac ef daebcf badefg efagd efd fbgdca dbfga | fadecbg bgfe ef agdbf +fbedca fbcgaed dabcg fgdbce cgfadb gb bdafc afbg dgcae dbg | bdacgf adfbc bg gedca +befcg edb bgadfc dfaecb cdfegab egda agcdbe ed dcabg debgc | geda aegd gcdafb dcefab diff --git a/data/8_2022.txt b/data/8_2022.txt new file mode 100644 index 0000000..3346920 --- /dev/null +++ b/data/8_2022.txt @@ -0,0 +1,99 @@ +131102031022411233124153000402524132243245422402002121234345453535321113450535302430144220243210033 +210030011133442111442145434004231353202400601331445042106230540242340014332243105022302133441101011 +201302044230110302341330012044051130055046354663404014033243655520410125432425532024143403330032232 +210303103204034020151134514120046162664361356330261302226530654326452225134535222440444443410101130 +021310332113230035544033314213544254421233042151226601345516101654005025035545035333140023212102212 +220140301231432453044535532323066560244052510442522465306425021511260132313424322110345422300411332 +103013240142011245425311001542145655516105003352455141424412415222100145355043202120423034202120403 +314103304322445325255534650156565303510461206034672755654106425161056213552330050310445352323213402 +243430113305332145305400366156126611120357766767667531265661631510215134106224240155532142014202020 +344044011305120500223111213354316112154646744635155132374774442641061323024416155344101304242413014 +210001340311202411013214565026366577746364242672331436164352252445110000414212215202321411504422400 +001030344254033552521244445311464542617442572153467545366653342426676363026234406640015310103000111 +123004351234415456501532136126535464236513321263256111263236363424471316560661104630322511135024314 +243444301010130503501065440067414335615573435151661324666436573133444251763541254166141130405531401 +301333054435342646553265615125271561444757162666247563564724434377461174733226461663122454115301022 +313333115034033032461152521554721624436564356545874583322623147632365263427634464233444421123452114 +434441324240044110131332722354256132333522657745624745724323263635746316535120231124164652542245541 +020013043025261604606066777717675561448878622688884553346728286853164272251311263510330645452212040 +225405401530036646635664123763243188844858643328244728344354343287813231363771264361344552214134043 +444013205241103641532477643143435563484567276423226466226434857664377176552653732212146514023430325 +235444033555452351644577725572733823223422438445886848336238372267477767173715122521014452405344110 +022222500504231055646646534633724257646568684735488756288737857786232268232655151633323530463425151 +412102254551210100735562467375656382325864659764674335534465738553284326347575542675435335613154320 +202304233522424114651647265763556544532358373769578879369385574555386666783363244334360301665155255 +400235422666401262236327746826382638573848989589958764697958946664233887757677777164614616200413302 +413211350405512664175712772346875822558798479568486643787487763573785465875336133314155235265153544 +412112650043523364626154522655787734369585968849884958638795656846722736645822544573361050432101002 +040151232015244534675233447267274466883354564933934639355395374945757347634723116764261154205631025 +053511566106055552733487866435428673379594867554589579573759867856436754328455243315565403452366550 +402441261342655261311663778728277373873487457867467678497684746937764462833722831553364205512206541 +401560462601374333165687778774966694644847875679669694796453568554383377242683474675113640166014002 +245431640441276372256235534578677594558499466595957658548574676357557473852362834636123725105611001 +140325466637452621767678632447835458776865576466546548894776445753494487385328422645157221103664133 +253440020224216474125727543697395446885846849486744757588954688447585337348374328857266123303626032 +522360463154354425644334277863647479565896696996775849896649575745746557964548536537415577142552050 +402351634474624167474857559553949899894799879644496759587555549787974996993634823833353424316316042 +414140006077774645384224689955449865767867876647679668857949995687773539976755288762714471242526254 +032242255462211412258653836566746764685477947565799869886769647489953985859547537844111624535631156 +241646435225236526565228495485878686676559956669957869665758947786478934645637286347261114426145563 +512215356337536722737525437473645894558456658976958699776986594778559569864962457825216143344215016 +322625244746336257345525895486859454957989669585766859958667775649875866654855238722721513671212305 +044600535247217686848675385837958687859856856865869679556868995579875763985654342678317263541605554 +430320424173321746345287493633447589689698796959599858768985856685945573454358785585284454656334025 +232026013361136674773333583555589876467998965697988698997966777468454666855894285223681327425505166 +354332536226232536453676489538955896788985786767799998876886965757444485955456462568453444425456521 +016154147271566788586769489946847647867857556667888797775895768988576579978395627453672756147414326 +463454162462563733454784956555887864475857986666689767978699985965647598648778424456255355723655466 +021001072567511684363734454496747746785559778677966778897776558954997794766634668356686124441524525 +234605435156344755776859794859864756797769876888968689787579998559856654953446748662382433262116262 +030666223611312438477278595797684446757958596668696976678757986797965899875556377876865147373650335 +245046541536764737224694794369857786796969878968689968797958865856864988656773724353268427134461620 +265066622261247542566375373496969757789659688887789988798956868878668565665794723743572475263161166 +422245453144736877586299945587888888767997586686876996879786788998867747683776448657845662361505315 +210351625547722865278485967857788659769765586689699988976775596895984657648869967252632246417436621 +141004614422116428487735355858968995455599988699767679796595755979678769336598642342483777532511004 +533362561377622426377686383498446767487997987976886899988585956569875694463399574483265564264622314 +456163507723454276868637866355647859456998677889778989889969998954684957667483346372863274465245646 +030644251421316636263479555487765499846688669798677798668968599994746869757876565775844144255106462 +510135336311735337436764935399965949469956999767696876898578576969547984463869253278467243311543030 +466524526117724766584368696865578944888566858759789698699778689456856774865884337672615767136523254 +254110631463762333865539645936466585858655857657659586556989585456479575455563845762632676471423233 +562434653773762262468663566995359545869887797866957588766855659579865834576343438465353323754454240 +112066240641477224475587449447989749648974898785555767886979489566644938356955638286634724441631625 +330443313353347713822865768695549469777556759786896565758769775757475566378642426537546311412140051 +040065350247621726448577745444446666557767548565886798996759654466566755698345662584625446342463260 +330536625076531353825376746548345995946649894668956867559446757474398638639624464682343654214032311 +530251120326432762683357643388548466489576697998869899549584977659746869733837538723573545213461105 +255356015316555756432734833639785737748988987965669458947565666746847669548847254811135737404226043 +454354550123557227257454326863468487794448666674495859497588676766356646553276336612337324063553462 +144340525160235512164242786385886753536996894579865659848488534457479379684556654637432614663443613 +305316054035171372138527636345993984687638579458566486795488343446895753373444445772513544116215313 +543055400456632262131666826787874497775946535566897457748984377394483964377555447341647525602315351 +412546632444321676125286364645444448636496473746537653585847369856994564666782226566264742530022340 +044233444612165527122563533685825959374668734768758953663536843946435452847223172365277563546141540 +340030454102343151253211647666557354334348799955649644348678747758347287426221514313112316663165454 +011020051334501654522762446268866586389746656669789443696677886848328248582411315534364123146250501 +305413453334030464614216442476475733478966457359966737766476988846463467574624373625606065562242335 +034215112203016427473135421577622448726677469646375339565639944867546662453345521671403262325021214 +132210543140531252452317342463454885388566728556533533877354846446665578244115675240031664244524501 +201140051634662646614612354714626525722377445426842485568735384726362363654642742661135663265002510 +025011353243541235316415314133578633558245363633567643474723462264656821637416273202656565602515322 +121540314222665224011553176734444466578255884322834667368468238484254776573264467333645106223352155 +233134314541654641520531771126551528746557387438726348653238283875537147555615754035502132555444301 +424510000505066600303343337525732714723283556468834467558232644677477536766533666404266150255104242 +041433452552331436330125237255465337374884372735358382327855756643676341445255435062065033314033212 +141025211241314363206626056633223121353133645783244374622462256271457773212200625560321421020100213 +224101010422251643133220616233621223532466525114754865347141165612135423157400060111225313054434032 +004040052225144131342364656025377722754756627621767354111575442445436452322335541156250421012350243 +043322120521041516241540153402233524371432721521521276133447761312616332565246332656140342120501432 +200232013354533102134562014146621725413251577715376671261144475237357064044430050234040121014304202 +011420212054031401033241133121106532344212712314572323662643147467661343340045361122545415103011124 +102223410325432324313243446514164004156475643254444557477323147134144354265066260422110450012141414 +031411112311321035125554420606413626050373327654774373667767140605036115333551650220414205214132024 +210204032200320524351051665115025502044361230251377575706601164652440120455165201034431244211004301 +331131223444034015143142430503454436431142412165246111316106164251614223504203533022310134023423343 +120300034332102045152234220042512653414152606411234665213124345325420542210314454221024423343223220 +200230420442302210441134513143532363040132120013505235035543064245636124512505054404233133430423011 +000202411243122420140310501035333204626352325031215630345206242502134153000033354044334042221310101 +111301302244231442013332415144033330063530643146335532313306033656410450441505505240142210004121122 diff --git a/data/8_2023.txt b/data/8_2023.txt new file mode 100644 index 0000000..4d69ff0 --- /dev/null +++ b/data/8_2023.txt @@ -0,0 +1,776 @@ +LRLRRRLRLLRRLRLRRRLRLRRLRRLLRLRRLRRLRRRLRRRLRLRRRLRLRRLRRLLRLRLLLLLRLRLRRLLRRRLLLRLLLRRLLLLLRLLLRLRRLRRLRRRLRRRLRRLRRLRRRLRLRLRRLRLRLRLRRLRRRLLRLLRRLRLRRRLRLRRRLRLRRRLRRRLRRLRLLLLRLRRRLRLRRLRLRRLRRLRRLLRRRLLLLLLRLRRRLRRLLRRRLRRLLLRLRLRLRRRLRRLRLRRRLRRLRRRLLRRLRRLLLRRRR + +QSF = (JQX, GGN) +VBT = (XTD, KGR) +SMK = (SNK, LBX) +LSJ = (JMQ, TJJ) +QFG = (XLT, TVF) +BTF = (SLQ, DJX) +XDF = (JKG, XFH) +PFR = (JGJ, SPB) +QVS = (PXH, PXH) +HVA = (NMF, CTG) +FRS = (GSX, JQK) +GJX = (BRV, LVQ) +NDD = (XMG, PTS) +RDJ = (GHT, TPR) +PJG = (KMR, GCV) +SQM = (KFD, VPC) +DTN = (NCL, HHT) +TRX = (NGH, BBT) +DVR = (JGL, VBL) +FSH = (HVL, XXL) +NSK = (NCX, QHD) +HKC = (XNV, MHL) +QRV = (QNS, FQH) +BVQ = (KHF, VLM) +DXS = (TNK, PVV) +SNL = (DMG, NFH) +DTM = (XMF, BTF) +QHD = (CXS, KXX) +STP = (QNH, FGM) +CMJ = (KCD, LGF) +SDM = (XXT, GKQ) +MXN = (KKH, DXG) +DCS = (HND, MBD) +BKV = (VBT, TNH) +JNS = (QSF, PRS) +BDB = (JXM, NMH) +KQC = (PQS, BJV) +CVC = (JNS, NDN) +FSJ = (RPS, SDM) +LHG = (VMQ, LBF) +KKN = (LPC, MJQ) +CXL = (VKM, QPC) +LNL = (GRQ, DXM) +DFV = (SDM, RPS) +JHQ = (VNF, GBS) +XXT = (BSF, QJX) +NRL = (BJV, PQS) +PVD = (GFK, NVN) +DXM = (LQX, KTN) +JGL = (HSC, CTT) +LLH = (NCV, NKL) +KLN = (HQM, JPV) +TTG = (GJX, QRT) +BFB = (LXC, HNR) +QBX = (CLB, XLR) +DBV = (SSL, CXV) +MBB = (THC, LDK) +JVJ = (VHF, CNL) +GJB = (NGH, BBT) +CNT = (CTS, SKH) +KBX = (LNS, BTN) +VJF = (PXQ, QMF) +CVH = (BGQ, XBL) +TKD = (MFV, PPF) +XLG = (XJK, XBH) +XRK = (RLQ, PDX) +TCS = (SCM, KCB) +DLD = (VPV, BKD) +RNK = (TMJ, MVH) +JJG = (TBT, HGC) +MRV = (KQL, XDB) +JFN = (BTS, DCB) +TMR = (KRR, DKC) +XXL = (VMC, FNR) +LSB = (QRB, TFM) +SRH = (FXT, JQN) +FDS = (LMM, PRM) +QVB = (DQX, LDD) +NSQ = (CMP, MBB) +JMC = (JQK, GSX) +VXF = (BKV, KTH) +NJF = (MFV, PPF) +KMG = (KXD, GNB) +VPV = (VDP, GRG) +HSC = (RBP, TBQ) +RSR = (DLD, MBC) +JGF = (TDM, LSB) +KGP = (CHX, XDR) +DHQ = (BXX, FKB) +VDP = (HCX, RGB) +XLX = (NQX, CLR) +VPB = (LNJ, KDH) +TML = (HMS, NHC) +KLT = (MDQ, NFK) +SHV = (GDL, MKV) +VVX = (DGT, QPK) +VMC = (FRQ, BVH) +MPN = (XHB, DXS) +QGF = (STF, XSH) +HBM = (JDQ, RKC) +RRR = (LLD, HPK) +LVG = (SDF, QVT) +PMR = (BHP, VVQ) +LNP = (MCN, HXT) +XBX = (HRJ, CNH) +LBL = (RKV, FVM) +KFP = (NLX, HCG) +KBM = (QQV, FKL) +HVL = (VMC, FNR) +FKL = (FLX, GHH) +LCB = (SGN, CDX) +RKC = (MQR, DPM) +HLV = (GBS, VNF) +RXD = (SJJ, CXL) +HFK = (QRT, GJX) +GRV = (CRT, BNZ) +LJB = (LCN, CKX) +RMQ = (RBV, RBK) +BGQ = (LSJ, LLK) +HDH = (XFK, LQV) +KXS = (DBV, FVV) +JDQ = (MQR, DPM) +QXP = (FQH, QNS) +MJD = (TDM, LSB) +PKC = (DPN, DQL) +DLJ = (NCK, SSN) +TTK = (VVK, GHD) +MDF = (CDP, NJL) +FQH = (QJT, FGK) +JGJ = (FDS, DFL) +SKH = (FTN, HBT) +PGP = (TLX, QMX) +NDN = (QSF, PRS) +RBK = (HBM, JGV) +FTM = (PBK, TJQ) +DLG = (DPN, DQL) +SDF = (JGF, MJD) +SBV = (MLH, LNL) +MLH = (DXM, GRQ) +NKN = (MVS, NRR) +MLX = (VLK, KTD) +HDJ = (LVG, TKC) +SDP = (CFH, FBJ) +QQV = (FLX, FLX) +KBF = (HBP, PVD) +XJS = (MSK, TTK) +JFC = (LLH, XMJ) +HBT = (TSF, DJJ) +SRS = (JCT, CLN) +KGR = (LJB, BXQ) +TMP = (PVG, PVG) +PXC = (DTM, MXH) +KMJ = (TXV, FJT) +VRP = (BSV, RBF) +VLK = (PMR, MQQ) +GJG = (CLC, JVM) +CPF = (NNP, DCS) +CMP = (LDK, THC) +PTB = (XTL, DVH) +PVG = (DKP, DKP) +KCB = (VGS, NSQ) +THC = (TNN, TLG) +RBV = (HBM, JGV) +NRX = (CSF, DLK) +XTD = (BXQ, LJB) +TXV = (JPT, BFB) +CKB = (FGM, QNH) +VVR = (SJG, KXS) +HMS = (FRG, NNM) +DXG = (KGB, LSV) +XKB = (KHF, VLM) +GKG = (DXS, XHB) +GSC = (XNT, SBV) +RGN = (DBF, RFT) +LXR = (XBX, LGT) +SCM = (VGS, NSQ) +PXM = (TMP, LBG) +BXX = (DVR, MQV) +SJH = (TKD, NJF) +JPT = (HNR, LXC) +XHC = (NRL, KQC) +LQX = (NDT, MNM) +HHT = (TPT, TKK) +KFD = (SFF, RCP) +GSK = (GFB, DLJ) +DVN = (HCG, NLX) +SXF = (CSD, TQJ) +KRR = (TGF, DMC) +QRB = (JHQ, HLV) +LBA = (TBT, HGC) +SBN = (FMH, SNL) +BBK = (CTS, SKH) +HQM = (GXM, KJV) +HVN = (FSJ, DFV) +GXM = (TTG, HFK) +MVS = (BGS, DHQ) +RDS = (VXP, SRS) +MFX = (XQX, FSH) +KQL = (VQM, BFP) +CHF = (RFD, BBQ) +VFS = (TCM, HXD) +CSD = (CMJ, PRT) +GQF = (KTD, VLK) +CXV = (KRD, RRR) +LMF = (LQL, QLJ) +JJC = (SRH, HQG) +HGS = (JBR, TBH) +SHJ = (HBP, PVD) +PKM = (FVM, RKV) +CMV = (NMF, CTG) +JKS = (KJC, LLN) +XLR = (PLQ, DLN) +CTG = (BJM, BHH) +HJB = (TTK, MSK) +QJT = (NCC, SFB) +BFP = (JSG, KJJ) +CHX = (VGP, SRT) +HCX = (DMB, FPG) +LTN = (GBK, XMH) +KTH = (TNH, VBT) +JBC = (LBX, SNK) +MDL = (NTS, KFJ) +JPQ = (NJF, TKD) +GHM = (SSD, XTX) +CLR = (RMT, TLR) +GNT = (NFK, MDQ) +QNV = (RDS, XGC) +NVN = (TJG, TCS) +TPR = (TQT, GRJ) +GTQ = (BLJ, DGL) +LMM = (NXN, RXH) +CTB = (LRS, NDD) +MCN = (KCJ, NVD) +JGV = (RKC, JDQ) +NRR = (BGS, DHQ) +DJQ = (SXF, CQG) +MNC = (CHX, XDR) +MFV = (JNK, JBJ) +JBJ = (KLQ, SQM) +DCB = (PXX, RJR) +FXA = (MQX, NDF) +FVJ = (DLK, CSF) +PXH = (JJG, JJG) +CBT = (HQP, NDS) +NKC = (BLJ, DGL) +TFM = (JHQ, HLV) +LSF = (LRS, NDD) +XNV = (GDJ, KBX) +TXQ = (MHQ, VXT) +PNV = (VDD, FKH) +MSK = (VVK, GHD) +SRL = (GNS, BKJ) +XXC = (CKR, DCJ) +FBJ = (LFK, TJR) +FRL = (KMJ, NMT) +JQN = (BRL, NMG) +RVQ = (TML, KNH) +CMQ = (FMH, SNL) +NDF = (PPK, VPB) +HRJ = (TVL, CPX) +XTR = (HPT, JFM) +XNT = (MLH, LNL) +LBG = (PVG, MNS) +QRF = (XCG, XCG) +NXN = (LNP, QGG) +SLQ = (GSK, NDG) +TNN = (DPL, CKF) +PQS = (JBC, SMK) +TJR = (KMG, KHR) +CGL = (LXR, XRG) +GGN = (TDT, RXD) +PQP = (NKN, KNK) +KRJ = (CTB, LSF) +FGK = (NCC, SFB) +RCP = (GKG, MPN) +HTP = (LBF, VMQ) +VMQ = (HBQ, JBB) +NDM = (CMV, NMZ) +PJF = (QMF, PXQ) +CFX = (JGJ, SPB) +TLF = (TKC, LVG) +HVK = (PXH, QFQ) +CHB = (JPQ, SJH) +MVH = (HBC, DJQ) +FPG = (TBJ, RVQ) +JCT = (FKM, MRV) +DLK = (NSK, SFN) +GRQ = (KTN, LQX) +PRQ = (RDJ, CGP) +LBJ = (CMV, CMV) +RJR = (SXG, QNK) +RBP = (JMP, TMR) +RNV = (QKN, KRJ) +SJJ = (QPC, VKM) +GDJ = (BTN, LNS) +XHJ = (CVH, FSG) +GKQ = (BSF, QJX) +SSD = (CKB, STP) +KPT = (FHX, DTN) +TKC = (QVT, SDF) +SFN = (QHD, NCX) +JQX = (RXD, TDT) +SSC = (BKB, VQQ) +TBH = (PFR, CFX) +SRT = (GLQ, CPF) +MDQ = (HDJ, TLF) +RFT = (QXP, QRV) +QHG = (LDD, DQX) +SFF = (GKG, MPN) +RDQ = (DQQ, XLM) +QDS = (KTH, BKV) +JHC = (DFV, FSJ) +TGF = (FTM, XSD) +XDB = (VQM, BFP) +SGD = (KJC, LLN) +TDM = (QRB, TFM) +CFH = (TJR, LFK) +VDD = (FRR, CBT) +PTS = (PTB, LVB) +RLX = (GDL, MKV) +SFB = (HJM, SRD) +CGP = (TPR, GHT) +GBL = (TMP, LBG) +JSG = (QVS, QVS) +LSM = (TMJ, MVH) +BKD = (GRG, VDP) +NJL = (RSR, TNZ) +PSS = (STF, XSH) +PLQ = (NRX, FVJ) +CPX = (PSK, XRK) +JLK = (GSC, CKL) +BHH = (DRV, HQH) +GBK = (FDD, FDD) +KFJ = (HFG, BCR) +KMV = (NRL, KQC) +TNK = (RDQ, DKS) +HCG = (CXN, JLR) +LVQ = (MFX, CPJ) +RGX = (CHT, TTX) +TVF = (VKL, CLT) +FVT = (JMC, FRS) +SMT = (KVV, NFL) +DMG = (PSV, HGD) +MDS = (KDR, JMT) +DFK = (TXQ, HTM) +HBC = (SXF, CQG) +NFK = (TLF, HDJ) +BNZ = (HHG, MLN) +HGD = (CHB, MHT) +QNK = (VFS, BVV) +KNH = (HMS, NHC) +RMT = (XKB, BVQ) +KKH = (LSV, KGB) +MXH = (XMF, BTF) +HHG = (NKC, GTQ) +XFH = (DFK, CPS) +FDD = (CRT, CRT) +GBS = (FHF, HDB) +PRS = (GGN, JQX) +GXR = (KXS, SJG) +XSH = (KSB, RKF) +KTD = (MQQ, PMR) +FRR = (HQP, NDS) +VQQ = (FKQ, TRM) +HBP = (NVN, GFK) +FCH = (PVP, QFG) +DFF = (BKJ, GNS) +FKM = (KQL, XDB) +PXQ = (BQV, DMV) +GHA = (DLD, MBC) +RLQ = (GJG, FGQ) +PVP = (TVF, XLT) +RBF = (XCX, MDS) +BGS = (BXX, FKB) +CHT = (JCG, XTR) +MNK = (BKB, VQQ) +NNM = (MXN, QTC) +LVB = (DVH, XTL) +CKR = (TGL, SFJ) +FXT = (NMG, BRL) +PCP = (RQK, KNF) +HFB = (XHP, LTN) +TJQ = (NTM, PXC) +CXH = (PQP, GRL) +LDK = (TLG, TNN) +GSX = (KBM, RCT) +ZZZ = (XLR, CLB) +GND = (NPS, JVJ) +DQQ = (KPT, FVC) +JVM = (KMV, XHC) +KVV = (HQQ, RNV) +XHP = (GBK, GBK) +HGF = (XCG, CJF) +VKL = (XLX, DPD) +SPB = (FDS, DFL) +VHF = (NLM, LGX) +TDT = (SJJ, CXL) +JQK = (KBM, RCT) +QKN = (CTB, LSF) +NTM = (DTM, MXH) +PPF = (JNK, JBJ) +QMF = (DMV, BQV) +LSV = (QBL, VVX) +NMT = (TXV, FJT) +NHC = (NNM, FRG) +GNB = (GQF, MLX) +GHD = (DFF, SRL) +TRM = (LGL, RGX) +FJC = (DCJ, CKR) +DRV = (HDR, PJG) +MHL = (GDJ, KBX) +HRF = (XHP, LTN) +LNS = (KBF, SHJ) +JGX = (FSG, CVH) +TVL = (PSK, XRK) +DQX = (BBK, CNT) +VLM = (TRX, GJB) +BVH = (QFP, JFN) +JPV = (GXM, KJV) +HPB = (XBH, XJK) +RQK = (JKS, SGD) +JBB = (FCH, NJB) +KJC = (CXH, QFN) +NFL = (HQQ, RNV) +NVL = (NPS, JVJ) +XHB = (PVV, TNK) +QRT = (LVQ, BRV) +KNF = (JKS, SGD) +PRN = (NTS, KFJ) +BVV = (HXD, TCM) +HXM = (VJF, PJF) +BTS = (RJR, PXX) +TJG = (KCB, SCM) +LXC = (RGD, QCR) +HJM = (KLM, KKN) +JCG = (HPT, JFM) +LBX = (GTV, CHF) +NPQ = (CSP, KHM) +NLM = (HPQ, VRP) +MQV = (JGL, VBL) +DJJ = (HGS, LJJ) +JLR = (SDP, GJC) +LDD = (CNT, BBK) +RGD = (HMN, CVC) +HNR = (RGD, QCR) +CKX = (DLG, PKC) +TLG = (DPL, CKF) +BKB = (FKQ, TRM) +TNZ = (MBC, DLD) +CLC = (KMV, XHC) +BQS = (KHH, RBR) +KHH = (QTR, PNV) +NCX = (CXS, KXX) +SDK = (RBK, RBV) +QTR = (VDD, FKH) +VPC = (SFF, RCP) +SRD = (KLM, KKN) +BDJ = (CDX, SGN) +LRS = (PTS, XMG) +RJP = (GSC, CKL) +SJT = (JMC, FRS) +JXM = (BPQ, QNV) +XMH = (FDD, GRV) +BBT = (DDV, SCH) +FJT = (JPT, BFB) +NLX = (JLR, CXN) +PPH = (XDF, VLV) +BHP = (CMQ, SBN) +PBK = (NTM, PXC) +CRT = (MLN, HHG) +HQG = (FXT, JQN) +LBF = (JBB, HBQ) +HDB = (HLT, RCX) +NNP = (HND, MBD) +PSA = (MLN, HHG) +CSF = (SFN, NSK) +CJF = (MHV, GNZ) +BQV = (QRQ, GHV) +JPJ = (QRF, HGF) +VQM = (JSG, KJJ) +SFS = (QRF, QRF) +DCN = (KVV, NFL) +SGN = (BQS, CKP) +FLX = (LBJ, LBJ) +BJV = (SMK, JBC) +NQX = (TLR, RMT) +CTT = (TBQ, RBP) +BCR = (GXR, VVR) +HQH = (PJG, HDR) +VJP = (SRH, HQG) +LGT = (HRJ, CNH) +LLD = (BDB, XDT) +QMX = (HKC, MCP) +HBH = (XVX, TBP) +XMF = (SLQ, DJX) +TPT = (NRN, TSK) +CKF = (XJS, HJB) +QTC = (DXG, KKH) +KDR = (CXR, PRQ) +RCX = (CGL, GFM) +KCD = (QDS, VXF) +LNJ = (QGF, PSS) +KNK = (NRR, MVS) +FKQ = (RGX, LGL) +VXG = (QMX, TLX) +JMQ = (BLT, PRD) +RCT = (QQV, FKL) +SNK = (GTV, CHF) +FMH = (NFH, DMG) +TJJ = (BLT, PRD) +LGF = (VXF, QDS) +XCG = (MHV, MHV) +MNS = (DKP, MSD) +CXN = (SDP, GJC) +QCR = (CVC, HMN) +VBL = (HSC, CTT) +GCV = (NVL, GND) +DFL = (LMM, PRM) +CQG = (CSD, TQJ) +NCV = (CLJ, PPH) +GTV = (RFD, BBQ) +NCK = (JGX, XHJ) +XLT = (CLT, VKL) +KCJ = (JJS, JJS) +LLN = (QFN, CXH) +TQJ = (PRT, CMJ) +VTT = (KHM, CSP) +SJZ = (HGC, TBT) +NCL = (TPT, TKK) +CNL = (NLM, LGX) +FKH = (CBT, FRR) +GRG = (RGB, HCX) +FSG = (BGQ, XBL) +HXT = (KCJ, NVD) +DLN = (FVJ, NRX) +MQR = (VJP, JJC) +HCS = (KMJ, NMT) +LQV = (QHG, QVB) +KLM = (LPC, MJQ) +CGD = (DBF, RFT) +SKX = (XVX, TBP) +SSN = (XHJ, JGX) +SXG = (BVV, VFS) +MCP = (XNV, MHL) +DPD = (NQX, CLR) +JMP = (KRR, DKC) +QRQ = (RGN, CGD) +VGP = (GLQ, CPF) +CLT = (DPD, XLX) +TNH = (XTD, KGR) +DGL = (RLX, SHV) +VVK = (DFF, SRL) +HTM = (MHQ, VXT) +GHH = (LBJ, NDM) +GRJ = (KGP, MNC) +QVT = (MJD, JGF) +QNS = (FGK, QJT) +NMG = (PKM, LBL) +FVV = (SSL, CXV) +HXK = (RQK, KNF) +GNZ = (NDF, MQX) +KSB = (QXN, SCD) +RFD = (JHC, HVN) +CXR = (RDJ, CGP) +KML = (QLJ, LQL) +DCJ = (TGL, SFJ) +VGN = (LQV, XFK) +DGT = (HXK, PCP) +KDH = (PSS, QGF) +TKK = (NRN, TSK) +DQL = (HCS, FRL) +VNF = (FHF, HDB) +TBT = (FJC, XXC) +FTN = (DJJ, TSF) +FGQ = (CLC, JVM) +FVC = (DTN, FHX) +QJX = (PXM, GBL) +CLN = (MRV, FKM) +NTS = (BCR, HFG) +JFM = (SSX, KLN) +BRV = (MFX, CPJ) +CTS = (FTN, HBT) +JKG = (DFK, CPS) +KGB = (VVX, QBL) +DPN = (HCS, FRL) +LCN = (DLG, PKC) +MLN = (GTQ, NKC) +KHM = (HXM, LBN) +TCM = (RKN, GHM) +NMZ = (CTG, NMF) +RXH = (LNP, QGG) +NDT = (PRN, MDL) +QFP = (BTS, DCB) +KJV = (HFK, TTG) +RKN = (SSD, XTX) +QNH = (DCN, SMT) +KMR = (NVL, GND) +PSV = (CHB, MHT) +GHV = (RGN, CGD) +HND = (LSM, RNK) +NCC = (HJM, SRD) +BTN = (KBF, SHJ) +XGC = (VXP, SRS) +DDV = (PRX, VXJ) +CLJ = (VLV, XDF) +SSX = (HQM, JPV) +NMF = (BJM, BHH) +DBF = (QRV, QXP) +DKS = (DQQ, XLM) +FHX = (HHT, NCL) +CKL = (SBV, XNT) +DPL = (XJS, HJB) +TTX = (XTR, JCG) +NJB = (QFG, PVP) +XBH = (DVN, KFP) +DKC = (DMC, TGF) +SSL = (RRR, KRD) +FVM = (HTP, LHG) +MNM = (MDL, PRN) +NFH = (HGD, PSV) +MQQ = (VVQ, BHP) +VXJ = (RJP, JLK) +GFM = (LXR, XRG) +HBQ = (FCH, NJB) +XFK = (QHG, QVB) +JBR = (CFX, PFR) +RHN = (SDK, RMQ) +HPT = (SSX, KLN) +GDL = (MNK, SSC) +DJX = (GSK, NDG) +LQL = (VTT, NPQ) +SFJ = (RHN, GDT) +BLT = (VGN, HDH) +DVH = (HFB, HRF) +VLV = (XFH, JKG) +BSV = (MDS, XCX) +BBQ = (JHC, HVN) +JMT = (PRQ, CXR) +HPK = (XDT, BDB) +CPJ = (FSH, XQX) +QFQ = (JJG, SJZ) +TSK = (SKX, HBH) +HFG = (VVR, GXR) +PRX = (JLK, RJP) +MKV = (SSC, MNK) +XTL = (HFB, HRF) +KHR = (KXD, GNB) +SJG = (DBV, FVV) +TLR = (BVQ, XKB) +CNH = (CPX, TVL) +LGX = (VRP, HPQ) +QGG = (MCN, HXT) +BXQ = (CKX, LCN) +PPK = (LNJ, KDH) +XVX = (JFC, PBJ) +NKL = (CLJ, PPH) +XLM = (KPT, FVC) +XDT = (NMH, JXM) +PRM = (RXH, NXN) +XBL = (LLK, LSJ) +BLJ = (SHV, RLX) +RPS = (GKQ, XXT) +NMH = (QNV, BPQ) +MHT = (SJH, JPQ) +TBQ = (JMP, TMR) +CDX = (BQS, CKP) +HDR = (KMR, GCV) +CKP = (RBR, KHH) +TBJ = (TML, KNH) +XRG = (LGT, XBX) +NDS = (GNT, KLT) +KLQ = (VPC, KFD) +GHT = (TQT, GRJ) +MBD = (RNK, LSM) +XSD = (PBK, TJQ) +PVV = (DKS, RDQ) +KRD = (LLD, HPK) +VKM = (SJT, FVT) +FNR = (FRQ, BVH) +HMN = (NDN, JNS) +NGH = (SCH, DDV) +PRD = (VGN, HDH) +BKJ = (HPB, XLG) +GDT = (RMQ, SDK) +FGM = (SMT, DCN) +MHQ = (SFS, JPJ) +VXT = (SFS, JPJ) +CXS = (LMF, KML) +DMV = (QRQ, GHV) +AAA = (CLB, XLR) +QPC = (SJT, FVT) +PRT = (LGF, KCD) +PSK = (RLQ, PDX) +LJJ = (JBR, TBH) +LBN = (VJF, PJF) +QFN = (GRL, PQP) +SCD = (VXG, PGP) +GJC = (CFH, FBJ) +MQX = (VPB, PPK) +QLJ = (VTT, NPQ) +RKF = (QXN, SCD) +PBJ = (LLH, XMJ) +SCH = (PRX, VXJ) +VVQ = (CMQ, SBN) +KTN = (MNM, NDT) +FRG = (QTC, MXN) +XCX = (JMT, KDR) +CDP = (RSR, RSR) +XMG = (PTB, LVB) +PXX = (SXG, QNK) +MBC = (BKD, VPV) +PDX = (GJG, FGQ) +DPM = (JJC, VJP) +BPQ = (RDS, XGC) +XJK = (KFP, DVN) +NVD = (JJS, MDF) +GLQ = (DCS, NNP) +MHV = (MQX, NDF) +CPS = (TXQ, HTM) +BRL = (LBL, PKM) +VGS = (MBB, CMP) +HQQ = (KRJ, QKN) +LGL = (CHT, TTX) +KJJ = (QVS, HVK) +KXD = (MLX, GQF) +KHF = (TRX, GJB) +GFB = (NCK, SSN) +BSF = (PXM, GBL) +TMJ = (DJQ, HBC) +MSD = (QBX, ZZZ) +TGL = (GDT, RHN) +XQX = (XXL, HVL) +NPS = (VHF, CNL) +LFK = (KMG, KHR) +LPC = (BDJ, LCB) +CLB = (DLN, PLQ) +QBL = (DGT, QPK) +GRL = (NKN, KNK) +MJQ = (LCB, BDJ) +HQP = (KLT, GNT) +NRN = (HBH, SKX) +JNK = (KLQ, SQM) +JJS = (CDP, CDP) +TBP = (PBJ, JFC) +TSF = (HGS, LJJ) +STF = (RKF, KSB) +NDG = (GFB, DLJ) +DMC = (FTM, XSD) +GFK = (TJG, TCS) +GNS = (XLG, HPB) +FHF = (HLT, RCX) +FRQ = (JFN, QFP) +BJM = (HQH, DRV) +RKV = (LHG, HTP) +HGC = (XXC, FJC) +XTX = (STP, CKB) +FKB = (DVR, MQV) +XDR = (SRT, VGP) +RGB = (FPG, DMB) +VXP = (CLN, JCT) +TQT = (MNC, KGP) +LLK = (TJJ, JMQ) +DKP = (QBX, QBX) +XMJ = (NCV, NKL) +HXD = (GHM, RKN) +QXN = (VXG, PGP) +CSP = (LBN, HXM) +HPQ = (RBF, BSV) +DMB = (TBJ, RVQ) +QPK = (PCP, HXK) +KXX = (LMF, KML) +TLX = (MCP, HKC) +RBR = (PNV, QTR) +HLT = (GFM, CGL) diff --git a/data/9_2020.txt b/data/9_2020.txt new file mode 100644 index 0000000..f03ad3c --- /dev/null +++ b/data/9_2020.txt @@ -0,0 +1,1000 @@ +33 +18 +22 +44 +49 +15 +12 +38 +41 +46 +3 +42 +37 +19 +13 +7 +21 +29 +34 +40 +39 +35 +27 +25 +48 +87 +10 +16 +17 +45 +18 +30 +20 +22 +23 +73 +24 +26 +28 +53 +31 +37 +51 +32 +33 +34 +36 +35 +54 +27 +38 +39 +40 +74 +70 +41 +93 +144 +45 +63 +87 +66 +65 +55 +58 +62 +72 +105 +59 +76 +61 +67 +68 +77 +106 +78 +79 +183 +86 +117 +96 +100 +108 +104 +123 +113 +114 +116 +129 +119 +178 +120 +196 +126 +177 +184 +135 +182 +192 +201 +174 +360 +186 +190 +210 +248 +214 +282 +217 +227 +229 +304 +235 +370 +308 +261 +302 +300 +542 +376 +309 +317 +356 +364 +375 +407 +396 +400 +404 +585 +599 +514 +444 +907 +456 +633 +687 +496 +665 +561 +563 +832 +1056 +626 +673 +681 +720 +731 +840 +819 +796 +800 +1033 +1117 +900 +958 +940 +952 +1017 +1019 +1748 +1177 +1422 +1124 +1578 +1189 +1299 +1678 +1307 +1354 +2702 +2476 +1689 +3775 +1740 +2813 +2706 +1977 +1898 +1840 +2630 +2864 +1971 +2439 +2143 +2932 +2301 +2313 +2423 +2488 +2496 +3194 +2661 +2996 +3043 +4416 +3429 +3529 +3580 +3638 +3738 +3983 +4830 +3811 +4114 +4724 +5782 +4394 +4444 +7143 +6623 +6882 +7267 +5149 +7823 +5855 +5657 +5704 +6425 +7026 +6958 +9666 +7109 +7218 +10249 +8535 +7794 +11512 +14327 +9969 +15906 +8838 +10101 +9593 +12082 +10806 +10853 +13451 +17489 +13073 +11361 +12129 +17210 +13383 +13984 +30562 +16329 +14903 +15753 +19306 +16632 +23920 +26456 +26113 +18431 +27032 +19644 +27882 +20399 +37885 +21659 +27976 +24812 +23490 +24744 +25345 +25512 +42785 +27367 +29737 +30656 +45579 +31535 +32385 +35063 +52788 +38075 +38830 +44544 +40090 +40043 +55249 +57897 +42058 +45149 +52712 +48234 +48302 +72946 +50089 +64342 +52879 +103551 +57104 +72428 +62191 +79837 +63920 +71215 +73138 +80133 +84587 +82148 +156430 +90132 +152323 +113146 +90360 +197733 +100946 +105591 +101113 +98391 +288093 +154280 +109983 +204497 +164424 +152975 +137058 +126111 +191473 +181079 +144353 +153271 +170265 +166735 +183261 +180492 +188523 +236094 +235449 +188751 +202059 +262815 +305610 +199504 +208374 +247041 +312042 +254336 +440591 +353175 +442859 +263169 +270464 +616344 +297624 +311088 +320006 +402829 +377274 +363753 +369015 +501377 +388255 +390810 +397125 +401563 +407878 +446545 +455415 +471543 +732768 +524800 +751679 +1043856 +533633 +626922 +568088 +581552 +608712 +699343 +631094 +697280 +779065 +926958 +921925 +868668 +785380 +969651 +856978 +798688 +809441 +989430 +901960 +1036967 +996343 +1285312 +1133512 +1101721 +1195010 +1115185 +1149640 +1330437 +1911355 +1239806 +1328374 +1912577 +1476345 +3239729 +1654048 +1655666 +1594821 +1584068 +1608129 +1758938 +1700648 +1711401 +2365341 +1898303 +2895658 +2098064 +2216906 +4654596 +3293074 +2769233 +2354991 +3039775 +2834627 +3238116 +3810880 +3132011 +3060413 +3178889 +3284716 +3192197 +3202950 +3295469 +4253294 +3928307 +3412049 +4720332 +4993722 +4867297 +3996367 +4571897 +8152013 +4986139 +5124224 +5189618 +6472462 +5394766 +5874402 +5895040 +7003077 +6192424 +7385305 +8181601 +6476913 +6395147 +6487666 +8716699 +6707518 +7408416 +8398188 +7983946 +8568264 +8863664 +8982506 +9120591 +13184431 +10860541 +10110363 +10313842 +10584384 +11289806 +15470172 +11769442 +12382706 +16579789 +15056088 +12872060 +13896082 +12964579 +13102665 +25185888 +24474237 +14115934 +20633106 +16382134 +16552210 +23098440 +19092869 +18103097 +24209924 +24392471 +27842016 +24254385 +28687481 +24152148 +23059248 +38150467 +24641502 +25347285 +25836639 +42357482 +36023827 +26067244 +27080513 +35645079 +49033973 +30498068 +39463219 +42619454 +32934344 +34655307 +29221323 +37195966 +60665329 +62725592 +47313633 +50901264 +47211396 +82958712 +47700750 +48406533 +49988787 +50708746 +51183924 +51903883 +53147757 +88497192 +77789259 +56301836 +86546343 +67694034 +59719391 +70130310 +81340877 +101892670 +63876630 +66417289 +84407362 +96107283 +94525029 +146096070 +94912146 +95617929 +103087807 +101554290 +180025291 +103136544 +102612629 +110903315 +105051640 +109449593 +116021227 +120178466 +122719125 +178932391 +197661573 +123596021 +167971579 +130293919 +283113098 +199576669 +245349680 +199243827 +189437175 +213515944 +190530075 +196466436 +197172219 +233045614 +390106744 +223315010 +225331754 +207664269 +214501233 +396748888 +225470820 +291567600 +312156300 +478395294 +343809863 +253889940 +298265498 +509328519 +319731094 +472550273 +379967250 +385903611 +386609394 +479221694 +711440908 +545201914 +393638655 +629794502 +422165502 +439972053 +680214542 +461554209 +433135089 +468391173 +1024423608 +479360760 +545457540 +552155438 +854294784 +573621034 +617996592 +678232748 +705634705 +699698344 +938840569 +773605905 +772513005 +780248049 +815804157 +1170152030 +826773744 +855192864 +1418201329 +862137555 +1794033433 +1024818300 +894689298 +1051131681 +1163454132 +1031516198 +1052981794 +1119078574 +1125776472 +1191617626 +1450745753 +1485882754 +1377931092 +1405333049 +1472211349 +2266130803 +1546118910 +1552761054 +2576522225 +1642577901 +1717330419 +1681966608 +1749882162 +2300022347 +1886955855 +2216435926 +1919507598 +2242749307 +2084497992 +2150594772 +2157292670 +2172060368 +2244855046 +2317394098 +2569548718 +2891215803 +2783264141 +2850142441 +2877544398 +3762554836 +3098879964 +4533830024 +3195338955 +4384520339 +5066578367 +3399297027 +3568922463 +3636838017 +8170668041 +6514382415 +4373728596 +4467988870 +4322655140 +6446466861 +4307887442 +5674479944 +4416915414 +7406767406 +5100658239 +5352812859 +5978603096 +7105919281 +6498176991 +8669580702 +6294218919 +6735717981 +11048212439 +8021358356 +6968219490 +11573908151 +7036135044 +7205760480 +7944725459 +9423313379 +8630542582 +8790644010 +17868127070 +8724802856 +9408545681 +9982367386 +10453471098 +9517573653 +11079261335 +12792395910 +18253972919 +12272822015 +13400138200 +13233894972 +13029936900 +13262438409 +14912944949 +14004354534 +27677286298 +17188127866 +20436273244 +14241895524 +21790395668 +20502574714 +17421186592 +19499941039 +17515446866 +25912930722 +23687366070 +18926119334 +20435838484 +25672960215 +24109198235 +44865414164 +25065217925 +25302758915 +25506716987 +26263831872 +30683625001 +27034291434 +27504333933 +28246250058 +31192482400 +48104811593 +36921127631 +33168014858 +31663082116 +42486404517 +34936633458 +43188407081 +50683461724 +36441566200 +43991337259 +81786541795 +39361957818 +44545036719 +49174416160 +49411957150 +61876107401 +50367976840 +53549008973 +51770548859 +53298123306 +54538625367 +55280541492 +59909332174 +84348590608 +87706640225 +64831096974 +82346543840 +71025039934 +66599715574 +71378199658 +126331578514 +75803524018 +121746176498 +93956993869 +115923236377 +89729934658 +83906994537 +93719452879 +143131410029 +99779933990 +102138525699 +136119139467 +125563665301 +106309174226 +107836748673 +109819166859 +115189873666 +126509047748 +185622690877 +147177640814 +131430812548 +287761216576 +137624755508 +192931294088 +165533458676 +159710518555 +177626447416 +201793742542 +173636929195 +183449387537 +183686928527 +186045520236 +193499386869 +206089108216 +217655915532 +208447699925 +407882850758 +423745023748 +232818221974 +239267561221 +300145976943 +241698921414 +314880200085 +269055568056 +330627028351 +291141331103 +353209905424 +343159906092 +392134628452 +325243977231 +351263376611 +363671967652 +357086316732 +416505150501 +367136316064 +399588495085 +394493220161 +745756596772 +414536808141 +426103615457 +441265921899 +472085783195 +584858827506 +474517143388 +592477466645 +709373420246 +510754489470 +783641466565 +560196899159 +841653459452 +616385308334 +694423282703 +719737197392 +676507353842 +886622591336 +720758284384 +724222632796 +1071000574003 +810998370662 +1010962442963 +794081715246 +1208618523387 +1150639342145 +1001462821058 +867369537356 +915783065287 +946602926583 +985271632858 +1034714042547 +1176582207493 +1070951388629 +1127139797804 +1587106734748 +1812461191720 +2502889800035 +1292892662176 +1370930636545 +1396244551234 +1607380875720 +3537603842582 +1444980917180 +1795174021425 +1938370111359 +1661451252602 +1709864780533 +2086974377422 +1950497107834 +1813972463939 +1783152602643 +2105665431176 +1986734453916 +1931874559441 +2019985675405 +3108456766934 +2198091186433 +2788591050406 +2420032459980 +2689137213410 +3769887056559 +4136461297792 +2663823298721 +2767175187779 +3003625426954 +4056162539010 +3106432169782 +3228133519823 +3371316033135 +3733649710477 +4887228399843 +3493017383176 +3597125066582 +5109290858130 +3803138278048 +5917270733233 +4125651106581 +3951860234846 +4129965745874 +4218076861838 +4618123646413 +4861914485154 +5109169673390 +7773114156851 +6156840681897 +6840081880259 +5430998486500 +5667448725675 +6500824898256 +6110057596736 +6721150902999 +10235708703317 +7446210381661 +6968441099717 +7090142449758 +8743774752994 +7296155661224 +7400263344630 +8912307951438 +8665052763202 +8077511341427 +8081825980720 +9079991346992 +15069148633335 +10374917543735 +13510320941366 +9971084158544 +11219227270126 +14917593221686 +12271080366759 +11098447212175 +12168273623931 +11777506322411 +12610882494992 +12831208499735 +13689592002716 +14058583549475 +14264596760941 +14368704444347 +14386298110982 +14696419005854 +23369527578934 +20231471844365 +16159337322147 +24824390085349 +25915646275980 +26997180605974 +25678594565297 +22242164525303 +22802292658279 +22139357782475 +21069531370719 +22317674482301 +22875953534586 +25442090994727 +28961015766795 +25836089871886 +26042103083352 +26300474497708 +40284350720327 +28755002555329 +28323180310416 +35334128131660 +51203180292098 +36525655893457 +45044457183582 +45193628016887 +36390809166512 +42074983598127 +48153764354187 +43311695896022 +49176428032294 +43208889153194 +43387205853020 +43871824028998 +44457032264776 +73989854226073 +47759765477028 +48318044529313 +51278180866613 +54591092427215 +69044979025080 +52342577581060 +54623654808124 +57078182865745 +76082945787444 +92610796618963 +71724937298172 +72916465059969 +78465792764639 +79599698319706 +81584437183399 +79702505062534 +122092893092263 +86596095006214 +86520585049216 +87080713182192 +96799609845836 +87259029882018 +99080687072900 diff --git a/data/9_2021.txt b/data/9_2021.txt new file mode 100644 index 0000000..c299a49 --- /dev/null +++ b/data/9_2021.txt @@ -0,0 +1,100 @@ +9976557856799875679875642456989998767978931098989876587878999876565667896543210123567899876794310234 +8765432145789983989864321345978999954569532987679965426567899865423457899654329439698987665679442545 +9898553234567899898765432499767899895689549876567894312458998543212679998785698998999996543458953456 +8987668765679998769986753987656798799899698765456789101345697654323567899896797987899989542557894597 +7698778978895129954397864797543445678978939988367895212467899875534568999999986576789877410136789989 +7539989989943239865298985698432134799654329876238954324588921976646899889998765435698765321245695678 +4321398991294345976129876986553346999743219765359995435789890989887898767899754324569876434557894567 +9932357890989496987235999898764457898752102976998789756899789999999976556689865546894987678967942456 +7893459939878989998499989789898768987643244599896578997947567898899875434599986657975998989878921347 +6899978919965578999987875678999978998754395699789468998933458987798654323678998768976899293989842568 +5767899998764455899976534779899989329895989987685357999212347976539875435678929899987920191099754989 +4356899987643234789987413566789998912989879987531238994301656987645989596789434921098939989198769899 +3245689998432124568998302345678987893979769898750126789212797899787898989899865699999998878999898789 +4346897998543345689863212558789796999868757789942334599433458998999987778999976987899987657899987645 +6567976697654576797654323567896545987654645679643545678945579987899896569998989876999874545678998434 +7988965498865687899875434578987856998763238998759856789757899876798765378987898765689963234567894323 +8999654319976798967989565689498967899542127789898769898968989965669876567896439876799854355989995434 +9498765423498899656798779894329878998743235678999889967899877654554987678989321997898769866798789645 +4349876434599999348939889986445989999987345789998994457898766542443498799678934598969899877895678956 +3256987595989888999423994399578997879996568998987653216789654321012349896579949789345999989924569969 +4345698989865676789212349298999875457899689767499864434578975993153569965456898993234998999212479898 +9559899876543134694325498987899764345698797654398765675678999789234698543234567894399877787993998787 +7998942965421012349434997876798621234899999865239977788789987698946987652126989975989566546889876546 +6897891977632163768949876565689540135679998752145698899898776587799998763234991099877452335679985434 +5956789876543245689769954434578932348799989543234999954987654465688999954756789198765321025899974323 +3347979997659456789898743125567896556999878956399876743498943334567899975678998989876432134679765434 +1234567998767768999987659012389987669898767898989954342349832123479999876989546976987563245678976755 +3569678969889879898998798923568998798789659999969895201298753334567891987895439765987675656789988767 +4678989657996998787899987894567999979678945899756789212459896567978953998998598654399899777893299878 +6989298743235987656799986789789398768599434698645698924599987798989769869897698765478967989965459989 +7892019651019876545899875678990239843489321986534567895989998939599898756789999896569546599996598796 +8989198772124985434599989889789349652578999898423498999878989012399999646796899997678933498989697654 +9678949989234997523678992997678998543456789789212349898956578993989898731234679998989321987679798793 +3568931098949886212789751034567987654567898698901298797543499989876789820124567899999910199568999989 +8689543987898775102457942123457998865689965457992999697621989875465698931435789967989891398459999876 +8797699876987654323568943234567989976799954354989876543210178954324987892387991349877689987378989765 +9898987654599875464899754345789876988898890123976998679633267893219876789998910598765578996569876543 +3979998943456987596789965956899965499997689359895679798545456789439765676789321679654356987679987654 +4568989894569998687892979877919894345986478998654567987656567996598754355698945998543245699789999765 +5699876795678969788921989989109789499894351989743456798767678987987643234567899876542123479899987976 +6989965689789459899542498999998678987643210578932345679878789898998792123676899965432014567929876987 +9976864578994344989656987999876534987654592469321236789989899789329989012345789987843123458912965698 +8985923467890123478968976899987621298766784578910123499993998543219879193456891298954434568929894569 +7654312356921354567899865678998542379879897699321234568932987654598768989569910129865677679998643459 +7842101239892465679999654567999653457989989789432545699653998767697657978978923457978788989998764578 +6543214356789568799998732356899764568997679896543756789979899879898744567899944767989899899899865789 +7654525487897689899876420124678975789996431997679898898998799989999932978967899988999987678789977897 +8775686598979799998765431285789996799987549989989989957899678994598763799545988999129876567698998956 +9989887679865988999896542376798987899999698777899976546789569965699854678934567898999865466567899349 +5698998989534567998987664567987699988931987656789988723499439876989965799123698987689654315456791298 +4567899998676979887699775679999532167899894345678999834568921989879876893244569754598765402367893987 +5989989769989897654545986799898954358998765456789321946789910198765987894997689643459897514589999996 +6795678999998796543235697998767895469999876567898943497899891987654598999889789652667959776689898987 +7894569878997689632123998989656976979981987698967964598998789999743459987679997543489542987896797699 +8932398767586579743434899978945897898870198799459895799878689998432369876568898764678931099945689431 +9543987656323489854575698656934789987653239912349789987964567896543498967456789898799992998756797210 +8665796546212349965689987545895678999795356799498678986543456989654987652345891949898789899898965423 +9976987632101467896798554436789789439896987898987567965432345678969887431337990134987678789969876675 +5698999543232345697987432124592995423997999967896459876521256899998776210126789999876598689756989776 +3569898674346556789996549036693987549979323456789345987432768999987654321234598789989434568934595987 +8698798765456687899989698945789999798765444578993234896545679988798765438756789578998623457899694598 +9987659878767798999878987957897889999879556989654346798959899976549887659867895489876534669998989999 +5699845989979899298767896898986578998989669998765457899767999895326998767998965345997645978987767899 +4987631296989932109656355789975467987898798889976769979978998789435679878999879469998756789896646789 +3986542345698654998743234678954389876569897679899878967989877698945797989999998998999867898765434890 +4987653457789799775810124589643298765456986565678989556299956567896896599878987887899998929854324691 +5698767878892987654321238899955129892349876464899995432198843477897999323459765676998799013992013989 +9979878989991098775543646789876399989498765343487896546297652346969788912399834345899695324989329978 +8767989796789989987655757899987988678997654212346797757986543457956567893987321256789589439878998967 +7656896545678976598866869998999876512987654301237898868997654579544456789875452387893478998767987656 +9738998437899865329877978956798765433496543212578999978998785989432345678986563598954567969659876544 +7629689545678974310989989432349986595987854323456893989129896792101567899997654569767679854546985433 +5434578959899765451398996545689597689898965454578912494298987893243459998999867689978898763434599212 +6545789767953986532567987856789498798769976579789894999987998954956598787895979799989987662125988301 +7856892979892397645698998969892359989656797679896799898976569879897987676796989999699876543019876312 +8769921989799498776789569878999459876545798789945698787895456999769876585689999998567987653236995423 +9878932998688999987893499989698998765434989890199987656965345987656987434567899876439798765345986564 +8989549876567896898992989796587899987325679931987654545893239876545987323489910987649649976456798775 +7497657988456954559789876572456799875456789899996543236789129766434596544595439998798432989987899889 +6569878999567893245699798341248678999578998658789654127679297654323987965689598999897521299999998996 +7698989998688932134987653210234569878989876545699943234568979865434899878799987899995439988913987895 +9987699889799541035699654321234698767999985435567899545678956976645789989899876789987598877894996654 +9876597679899432123498765452345987656899876423456998757789349798756892193998765679398697656999875443 +3987986546998543234679876743456797645799989910287899768996298659977891012989324589219987647899954321 +2199977634987657845789998754567988534678999891235989879765498843298932229876434695456898729999765210 +3398965420199789657893198766678976323459998789345678989879987654129646547986565789667999835798754321 +9987896554239898768999019897789875212345987698969799596997698865439897656798779899989989545679865432 +8766799669999929879198998998898984303459876567998999435989539976545998767899889999998978957999877545 +9954678998789012989297897549957895212569865456897678949878920987676999878942999987987569998910987696 +8765789654699123499986789321245987823498754349976577898769891398987898989656789876643468999699998989 +9986898943488939698765698932359876437987653298765456789655789459598976499867898765432127896587899878 +9998956732367898998983567893467987545698732129954398998744568969329995354978999865321056789456798769 +9899542101456997997542456789579998957789821019894289987623458978910989212989899976435145699212977556 +8789653212568976987631345997698999998997932198743168976545667899999878901296789997543234578909865445 +7698765333457895798545456789997899899876544987654347897996778921987767892345789898654357678998754323 +6549896544679934679656768999876585799987865699765756789889889899876645789556798798765468999698768210 +5431987758989124569867989799975464689999976899879867895678996799865434678967987679987689996569989432 +3210198767891012679878995689864343457998987987989879924899345679876656989979897565699998989432399553 +4523459898942123789989987897653212346897598995498989215679234578988767993298769434569876578941498764 +6735568999643445678990198987543203567965439875357894326789146678999879754579854325678998459653459895 diff --git a/data/9_2022.txt b/data/9_2022.txt new file mode 100644 index 0000000..6ce54a5 --- /dev/null +++ b/data/9_2022.txt @@ -0,0 +1,2000 @@ +L 1 +R 1 +L 1 +U 1 +R 2 +U 1 +D 2 +R 2 +U 1 +D 2 +U 2 +L 2 +D 1 +U 1 +D 2 +L 2 +D 1 +L 2 +D 2 +L 1 +U 2 +R 2 +L 1 +D 2 +L 2 +R 2 +D 2 +L 1 +U 1 +R 1 +U 1 +L 1 +D 1 +R 1 +U 2 +D 2 +R 1 +U 1 +R 1 +L 1 +U 1 +R 1 +D 1 +L 1 +U 1 +R 1 +D 1 +U 1 +D 1 +U 1 +R 2 +L 2 +D 2 +L 2 +R 1 +U 2 +L 2 +R 1 +U 1 +R 2 +D 2 +R 2 +L 2 +U 2 +R 2 +D 2 +R 1 +U 1 +L 2 +R 1 +U 1 +D 2 +U 2 +D 1 +R 2 +L 2 +D 2 +L 2 +R 2 +U 1 +R 2 +L 2 +D 2 +L 1 +D 1 +R 2 +L 1 +U 2 +R 1 +U 2 +D 1 +U 2 +D 1 +L 1 +R 2 +D 2 +R 2 +U 2 +R 1 +U 2 +R 2 +U 1 +R 1 +D 2 +U 2 +R 2 +U 1 +R 2 +D 2 +R 1 +L 1 +U 3 +L 2 +U 1 +L 2 +U 1 +D 1 +U 2 +D 1 +U 2 +R 2 +L 1 +U 3 +R 1 +U 1 +R 3 +L 3 +D 3 +L 2 +U 1 +D 3 +U 1 +R 1 +L 1 +R 2 +L 1 +R 3 +L 3 +D 1 +R 2 +L 3 +U 3 +D 1 +L 2 +U 2 +D 2 +L 2 +U 1 +R 1 +L 2 +R 3 +L 3 +D 3 +R 2 +D 3 +U 1 +L 3 +R 1 +U 2 +L 1 +D 3 +L 1 +U 1 +D 3 +L 3 +U 2 +D 1 +U 2 +L 3 +R 1 +U 2 +D 2 +R 3 +D 3 +U 2 +D 3 +L 3 +R 3 +L 1 +U 3 +L 1 +D 1 +L 2 +D 2 +R 1 +L 3 +R 2 +L 3 +R 3 +L 1 +D 1 +U 3 +L 2 +R 2 +L 2 +D 3 +U 3 +L 3 +U 3 +D 1 +U 2 +R 2 +U 1 +D 3 +L 3 +R 1 +L 3 +U 3 +D 1 +L 3 +D 2 +R 1 +U 1 +R 1 +D 2 +L 2 +U 1 +L 2 +R 2 +L 2 +D 3 +U 3 +D 4 +L 3 +D 4 +R 3 +L 2 +U 3 +R 3 +U 1 +R 4 +U 2 +D 1 +R 3 +L 1 +R 1 +D 3 +R 2 +D 1 +R 2 +L 2 +U 2 +D 1 +R 1 +U 2 +R 3 +L 2 +D 1 +U 3 +R 2 +D 4 +L 3 +U 1 +R 1 +D 2 +U 1 +R 3 +L 4 +D 2 +L 1 +U 3 +L 2 +U 3 +R 1 +D 1 +L 2 +R 4 +D 4 +U 1 +R 3 +U 3 +R 1 +U 3 +L 2 +U 3 +L 2 +D 4 +U 1 +R 1 +L 2 +R 2 +D 2 +L 2 +D 2 +U 4 +D 4 +L 2 +U 2 +D 3 +L 4 +U 4 +D 4 +R 1 +D 4 +R 1 +D 1 +L 1 +R 1 +L 1 +D 2 +L 4 +D 2 +R 3 +L 1 +D 2 +U 3 +L 2 +U 3 +R 4 +D 4 +U 1 +L 1 +U 4 +L 4 +U 3 +D 2 +R 3 +L 1 +D 3 +U 3 +R 1 +L 3 +U 1 +D 1 +R 1 +U 3 +R 2 +L 1 +D 1 +L 3 +U 1 +D 1 +L 2 +R 3 +U 4 +L 5 +D 5 +R 5 +D 3 +U 3 +D 1 +L 5 +R 2 +U 1 +L 2 +D 1 +L 1 +D 4 +R 1 +U 1 +L 1 +U 1 +D 3 +L 4 +D 1 +U 5 +L 1 +R 5 +L 2 +R 4 +D 5 +U 2 +D 3 +U 4 +L 1 +R 2 +U 4 +L 4 +D 3 +R 1 +U 1 +R 3 +D 3 +U 5 +L 3 +D 3 +U 5 +R 4 +L 1 +D 4 +U 1 +L 1 +R 4 +D 5 +L 5 +D 3 +R 5 +U 3 +R 2 +D 2 +U 2 +D 5 +R 5 +D 5 +R 2 +D 5 +U 2 +D 2 +R 1 +L 5 +D 2 +U 2 +R 5 +U 1 +D 5 +U 5 +L 2 +D 5 +L 1 +R 4 +U 4 +D 1 +L 5 +U 4 +L 1 +R 3 +L 3 +R 3 +L 3 +D 3 +R 4 +U 5 +L 2 +D 3 +U 2 +L 1 +R 5 +U 1 +L 3 +U 4 +L 4 +D 4 +R 1 +D 4 +R 5 +D 5 +U 5 +R 5 +L 3 +D 3 +U 2 +R 5 +U 5 +R 2 +D 5 +R 1 +U 2 +D 5 +L 3 +R 5 +U 5 +R 4 +D 6 +L 4 +U 4 +L 6 +R 2 +L 4 +U 5 +L 1 +U 6 +D 4 +R 3 +U 2 +R 1 +D 5 +L 4 +U 2 +R 6 +U 1 +L 2 +D 6 +U 1 +R 2 +L 3 +R 2 +L 5 +U 1 +R 3 +D 3 +L 4 +R 5 +U 1 +D 3 +R 6 +D 5 +R 4 +D 3 +U 2 +D 4 +R 5 +U 4 +R 2 +L 2 +U 5 +D 5 +U 6 +D 4 +U 5 +L 5 +R 1 +D 3 +R 3 +L 3 +D 3 +L 3 +U 6 +R 5 +D 6 +U 5 +L 1 +R 4 +L 1 +U 4 +L 5 +D 5 +U 4 +D 3 +R 3 +L 4 +R 4 +U 6 +L 5 +D 2 +U 3 +R 4 +U 5 +L 5 +D 6 +R 5 +D 5 +L 3 +U 6 +L 3 +U 5 +D 2 +U 4 +R 4 +U 3 +D 1 +R 2 +L 6 +R 2 +L 3 +U 5 +L 1 +R 4 +D 2 +U 5 +D 2 +R 4 +U 6 +R 6 +L 6 +U 6 +L 4 +R 5 +D 3 +U 1 +D 6 +L 1 +D 3 +L 4 +D 6 +U 3 +D 2 +L 2 +U 5 +D 2 +U 5 +D 6 +R 4 +D 1 +U 1 +D 5 +U 1 +L 7 +U 3 +R 3 +U 5 +D 2 +R 7 +D 6 +L 7 +R 6 +L 3 +R 3 +U 1 +L 4 +D 4 +L 6 +R 1 +U 4 +L 3 +R 3 +D 3 +L 2 +D 7 +U 7 +D 7 +R 2 +L 6 +D 2 +R 6 +D 6 +U 5 +L 4 +U 3 +D 6 +U 3 +D 1 +L 7 +U 7 +L 4 +R 3 +D 6 +U 2 +L 6 +D 3 +U 7 +D 2 +R 7 +D 4 +L 4 +R 4 +U 2 +D 3 +U 2 +L 4 +R 4 +L 4 +D 6 +R 4 +U 1 +R 7 +D 7 +U 7 +R 6 +D 4 +U 2 +D 4 +L 5 +U 4 +D 6 +R 4 +U 2 +R 1 +U 4 +D 5 +R 1 +D 7 +R 4 +U 1 +D 4 +U 6 +L 6 +R 1 +D 1 +R 1 +D 6 +R 6 +D 3 +U 1 +D 5 +R 4 +L 1 +D 6 +R 6 +L 8 +U 1 +D 7 +R 4 +L 2 +R 6 +U 7 +L 2 +D 5 +R 6 +D 3 +L 4 +R 5 +U 7 +L 3 +U 8 +L 1 +U 6 +L 8 +R 7 +D 2 +U 3 +R 4 +L 8 +D 4 +L 1 +U 1 +D 7 +U 8 +R 7 +D 2 +L 5 +U 6 +D 7 +R 4 +L 1 +R 3 +U 1 +R 2 +U 1 +D 7 +R 6 +U 7 +D 6 +L 2 +D 8 +U 4 +R 8 +L 5 +D 6 +L 7 +U 7 +R 8 +L 5 +D 5 +R 4 +L 5 +U 8 +D 4 +U 6 +D 2 +U 5 +R 7 +L 8 +U 7 +R 3 +L 8 +R 6 +D 4 +R 2 +D 6 +R 5 +D 2 +U 6 +L 4 +U 8 +R 3 +U 1 +L 6 +R 1 +L 3 +R 1 +U 3 +L 8 +D 5 +U 6 +L 8 +D 6 +R 2 +U 6 +R 4 +L 8 +D 1 +R 6 +D 8 +U 6 +D 6 +L 3 +U 4 +D 2 +L 2 +D 7 +L 5 +U 3 +R 8 +D 6 +R 5 +L 8 +U 5 +L 9 +R 7 +D 5 +R 2 +U 5 +L 3 +D 9 +R 4 +U 1 +L 3 +R 5 +L 7 +R 8 +D 1 +U 4 +L 4 +R 3 +U 8 +L 8 +D 8 +U 9 +R 6 +U 3 +R 2 +U 8 +D 9 +R 3 +L 2 +U 9 +R 9 +L 8 +D 2 +R 1 +L 8 +U 7 +R 3 +L 1 +R 9 +L 4 +R 2 +U 3 +D 8 +R 5 +U 9 +L 9 +R 1 +D 5 +R 5 +U 4 +L 9 +R 6 +D 5 +L 2 +R 6 +U 1 +D 5 +L 3 +R 1 +U 5 +R 4 +D 4 +U 8 +D 2 +U 6 +R 6 +U 5 +R 3 +U 5 +R 5 +L 8 +D 9 +L 7 +R 1 +U 7 +R 5 +U 6 +R 8 +U 2 +R 2 +U 8 +R 7 +D 3 +R 6 +L 8 +R 4 +L 8 +R 8 +U 8 +R 3 +L 3 +U 1 +L 9 +D 9 +R 9 +U 4 +R 1 +L 3 +D 4 +U 5 +R 7 +D 6 +L 9 +U 7 +L 4 +R 8 +U 8 +D 4 +L 5 +D 9 +U 2 +D 9 +R 4 +D 8 +R 8 +D 8 +U 9 +L 6 +R 6 +L 2 +U 9 +L 4 +U 10 +L 1 +R 10 +D 3 +U 6 +R 5 +D 3 +R 4 +L 4 +U 7 +D 9 +R 2 +D 10 +U 9 +L 7 +D 4 +R 2 +L 10 +D 5 +R 5 +U 9 +R 4 +L 7 +R 5 +D 3 +R 6 +D 8 +R 6 +D 10 +R 7 +U 4 +D 5 +U 6 +L 3 +D 3 +U 10 +R 10 +U 10 +D 9 +R 6 +D 2 +R 9 +D 8 +R 7 +U 10 +R 4 +U 6 +R 7 +U 2 +R 5 +U 6 +L 4 +U 8 +L 6 +D 8 +R 2 +U 2 +L 4 +U 4 +R 5 +U 10 +D 8 +U 7 +R 5 +D 3 +L 2 +R 9 +U 10 +L 1 +U 5 +L 1 +D 3 +L 9 +R 9 +U 2 +D 3 +U 8 +R 10 +L 2 +U 9 +D 4 +U 4 +D 10 +L 4 +D 3 +R 3 +L 2 +U 8 +L 4 +D 6 +R 2 +L 3 +D 6 +L 4 +D 5 +L 7 +U 9 +L 3 +D 4 +R 6 +L 10 +U 5 +L 3 +R 3 +D 6 +U 1 +L 3 +R 5 +D 8 +R 11 +U 2 +L 11 +R 7 +U 8 +R 4 +D 4 +U 6 +D 4 +U 9 +D 5 +R 9 +D 9 +U 6 +D 1 +U 3 +L 4 +U 3 +D 11 +U 11 +R 4 +L 3 +U 5 +D 1 +R 4 +U 6 +D 4 +U 3 +D 8 +L 7 +R 8 +L 9 +R 3 +D 4 +U 6 +L 2 +U 6 +R 3 +D 8 +R 1 +L 5 +U 8 +D 3 +R 8 +L 8 +U 3 +R 2 +U 11 +L 9 +U 4 +D 10 +L 7 +D 1 +U 2 +D 7 +R 4 +L 2 +U 8 +L 5 +U 5 +D 1 +L 11 +R 4 +L 7 +U 2 +D 9 +L 4 +U 11 +R 8 +L 1 +D 10 +U 5 +R 4 +L 8 +U 8 +D 11 +U 8 +D 3 +R 4 +U 8 +R 2 +U 3 +R 9 +D 4 +L 2 +D 4 +L 4 +U 4 +R 5 +U 4 +L 10 +U 4 +L 4 +R 8 +D 5 +L 2 +U 5 +D 9 +U 10 +D 6 +R 9 +D 4 +R 10 +U 4 +D 12 +R 7 +L 12 +R 8 +L 11 +U 1 +D 4 +L 1 +D 7 +R 1 +L 5 +R 9 +L 3 +D 7 +L 2 +R 6 +U 2 +D 2 +U 9 +L 4 +U 11 +D 4 +R 7 +D 7 +L 11 +U 11 +L 1 +D 9 +U 6 +R 3 +D 3 +L 9 +R 7 +L 6 +D 6 +R 11 +D 10 +U 11 +R 1 +U 2 +R 9 +L 6 +U 7 +D 5 +U 7 +R 4 +U 12 +R 2 +D 1 +L 7 +R 5 +D 6 +R 1 +D 11 +R 9 +L 6 +U 11 +D 7 +L 7 +R 9 +L 7 +D 12 +U 7 +D 12 +R 3 +L 2 +R 10 +D 1 +L 9 +R 3 +D 6 +R 11 +U 2 +L 2 +U 3 +R 3 +L 6 +U 3 +R 1 +L 5 +R 7 +U 2 +D 8 +L 9 +U 7 +L 9 +D 12 +U 3 +D 9 +U 1 +L 10 +D 9 +L 11 +U 6 +R 9 +U 10 +L 5 +R 11 +U 3 +R 9 +D 12 +U 1 +D 11 +R 12 +U 1 +D 7 +L 1 +U 7 +L 5 +U 8 +L 2 +R 6 +U 13 +R 3 +D 8 +U 2 +L 5 +U 7 +L 7 +U 13 +L 3 +R 5 +D 1 +L 9 +U 2 +L 7 +R 9 +U 12 +R 9 +L 13 +R 1 +U 11 +R 4 +U 6 +D 6 +R 13 +D 13 +U 5 +L 9 +U 2 +D 9 +R 12 +D 13 +U 9 +D 10 +U 11 +R 11 +U 12 +D 5 +L 1 +R 2 +U 2 +D 5 +U 1 +D 8 +R 8 +L 1 +U 9 +L 11 +D 10 +R 1 +D 6 +U 5 +D 11 +L 13 +D 2 +R 1 +L 1 +R 7 +L 1 +U 2 +D 6 +U 4 +L 7 +U 8 +D 7 +L 11 +U 5 +D 5 +R 1 +D 6 +R 1 +U 9 +L 11 +D 6 +U 10 +D 10 +R 2 +U 13 +L 5 +U 9 +L 13 +U 7 +L 3 +D 9 +L 13 +R 5 +L 5 +U 5 +L 13 +U 10 +L 1 +R 10 +L 8 +R 13 +U 13 +R 7 +D 6 +R 4 +L 5 +U 3 +D 6 +R 13 +U 9 +L 10 +U 13 +R 3 +D 8 +L 8 +U 5 +L 9 +U 4 +D 11 +L 14 +U 11 +R 1 +D 7 +U 4 +R 11 +U 3 +R 2 +U 11 +L 6 +R 2 +D 5 +L 1 +U 1 +L 11 +R 5 +U 10 +D 12 +R 3 +L 6 +R 3 +D 9 +L 4 +D 11 +L 11 +D 4 +R 10 +D 3 +L 12 +D 8 +U 7 +R 2 +D 1 +L 5 +U 11 +L 9 +R 4 +U 4 +D 11 +R 9 +D 3 +U 6 +L 4 +U 4 +L 8 +U 6 +L 14 +R 13 +D 5 +R 5 +U 5 +R 2 +U 8 +L 12 +R 2 +U 12 +D 4 +R 3 +L 5 +D 11 +R 7 +U 9 +D 10 +L 1 +D 4 +U 4 +D 1 +R 9 +L 10 +R 11 +L 8 +D 10 +R 10 +L 3 +R 1 +L 9 +D 4 +L 8 +R 7 +U 12 +R 5 +L 10 +R 7 +U 6 +R 7 +U 8 +D 1 +U 1 +L 1 +R 2 +D 14 +U 4 +D 5 +R 2 +D 1 +R 5 +D 6 +R 3 +L 12 +U 11 +D 1 +L 7 +R 10 +U 2 +R 6 +U 11 +R 12 +U 2 +R 4 +L 1 +D 7 +U 2 +D 9 +U 12 +D 11 +U 2 +L 4 +R 10 +U 13 +R 2 +L 8 +R 13 +L 11 +R 13 +L 13 +R 5 +D 2 +U 10 +D 14 +L 8 +U 11 +R 1 +L 15 +U 13 +L 4 +D 9 +L 1 +U 14 +R 10 +D 2 +R 15 +L 12 +R 15 +U 15 +L 3 +U 1 +L 1 +R 9 +D 11 +L 9 +D 3 +U 12 +R 1 +D 7 +L 8 +R 10 +D 2 +L 4 +D 2 +U 12 +D 12 +L 15 +U 3 +D 13 +U 13 +D 3 +R 4 +L 7 +D 6 +U 7 +D 7 +R 2 +D 2 +R 10 +L 12 +U 14 +D 1 +U 5 +L 8 +R 1 +U 5 +D 8 +U 1 +D 15 +U 13 +L 15 +R 1 +L 10 +U 14 +D 15 +R 10 +L 13 +D 8 +L 7 +U 11 +R 7 +U 10 +D 15 +L 1 +U 5 +L 2 +R 6 +L 4 +U 15 +R 13 +U 4 +R 7 +U 4 +R 10 +L 3 +U 10 +R 10 +D 13 +R 11 +L 12 +D 12 +U 7 +R 8 +D 14 +L 4 +R 4 +L 8 +D 6 +R 8 +L 5 +U 6 +L 7 +U 14 +D 14 +R 14 +L 9 +D 5 +U 14 +R 16 +L 4 +R 14 +U 3 +D 10 +L 5 +R 9 +D 4 +R 14 +L 16 +D 13 +L 4 +R 13 +D 5 +R 5 +U 1 +R 6 +L 15 +D 16 +R 15 +D 11 +R 11 +D 6 +U 7 +L 10 +D 7 +U 12 +R 6 +L 2 +U 7 +L 8 +U 14 +L 5 +U 6 +L 10 +R 16 +L 13 +D 13 +U 7 +R 9 +L 8 +U 3 +D 6 +R 2 +L 4 +R 15 +D 12 +U 7 +D 4 +U 2 +L 10 +D 4 +L 11 +D 12 +R 5 +L 13 +U 16 +L 12 +R 3 +L 16 +R 14 +L 8 +R 7 +U 7 +L 7 +D 12 +R 2 +D 5 +R 14 +U 9 +D 15 +U 2 +L 10 +D 1 +U 13 +L 2 +R 13 +D 5 +U 1 +D 2 +L 7 +D 14 +U 12 +D 8 +U 10 +L 3 +R 1 +U 14 +R 8 +L 12 +R 8 +U 2 +R 1 +D 14 +U 5 +D 11 +R 16 +U 1 +R 13 +D 2 +U 14 +R 11 +D 12 +U 17 +R 12 +L 6 +U 4 +R 16 +D 4 +R 2 +D 1 +U 6 +D 11 +R 8 +L 7 +R 3 +U 3 +L 14 +R 11 +L 9 +U 9 +L 2 +R 6 +U 11 +R 9 +L 15 +U 7 +R 6 +D 15 +U 11 +L 5 +U 2 +R 8 +D 13 +L 5 +U 6 +R 13 +D 15 +U 11 +L 10 +R 16 +L 14 +U 15 +R 3 +L 9 +U 11 +L 6 +R 7 +L 6 +D 16 +U 8 +R 2 +U 14 +D 14 +R 15 +D 2 +L 16 +D 14 +U 17 +D 6 +L 16 +D 7 +R 2 +U 17 +D 2 +U 2 +D 15 +U 5 +R 9 +L 10 +D 16 +U 1 +L 5 +U 6 +R 10 +D 11 +R 1 +U 7 +R 13 +U 6 +R 2 +L 11 +D 13 +U 8 +D 4 +R 15 +U 8 +R 14 +L 17 +U 5 +L 12 +U 11 +L 14 +R 12 +L 2 +D 10 +L 14 +D 10 +L 11 +U 15 +D 7 +U 5 +R 10 +U 4 +R 14 +U 3 +D 9 +L 6 +D 10 +L 1 +U 4 +L 15 +R 4 +U 13 +D 18 +R 15 +L 3 +U 17 +R 5 +L 3 +D 3 +L 1 +U 10 +L 3 +R 5 +U 13 +D 2 +R 17 +D 3 +U 4 +L 15 +D 5 +L 18 +U 7 +D 7 +U 10 +L 18 +D 14 +U 18 +L 11 +D 3 +L 15 +D 14 +L 16 +R 2 +D 8 +L 12 +U 11 +R 12 +D 2 +L 3 +R 12 +U 7 +L 9 +D 8 +U 7 +L 10 +D 2 +U 10 +D 16 +L 17 +R 13 +L 12 +R 18 +L 6 +U 2 +D 6 +L 15 +D 8 +U 14 +R 12 +L 8 +R 6 +L 17 +U 5 +D 4 +L 8 +U 16 +R 8 +U 12 +L 1 +R 6 +D 11 +L 10 +U 13 +R 4 +L 9 +R 7 +D 1 +L 17 +R 4 +L 13 +R 8 +D 14 +U 3 +R 10 +L 18 +R 11 +U 3 +D 5 +U 2 +L 14 +R 12 +D 12 +R 11 +U 5 +D 17 +R 2 +D 6 +L 13 +D 4 +L 5 +R 7 +U 7 +L 12 +D 16 +U 6 +L 1 +R 18 +D 4 +R 11 +D 10 +L 11 +D 2 +L 1 +D 5 +U 2 +R 19 +D 10 +U 14 +R 1 +U 11 +R 15 +D 2 +L 15 +U 19 +R 3 +L 2 +D 12 +R 2 +L 15 +R 8 +D 3 +R 8 +D 11 +R 17 +D 5 +R 16 +L 8 +R 12 +L 5 +R 14 +D 3 +R 19 +D 4 +R 18 +L 4 +U 12 +D 7 +L 8 +R 11 +U 14 +L 12 +U 17 +L 1 +D 5 +R 8 +L 18 +U 16 +L 15 +D 13 +U 18 +R 11 +L 7 +R 19 +L 15 +U 10 +L 4 +R 9 +U 7 +R 8 +L 16 +R 8 +L 17 +D 8 +L 17 +D 18 +U 9 +D 2 +L 6 +U 6 +L 7 +D 18 +R 1 +U 13 +L 2 +U 1 +R 8 +U 11 +D 14 +R 6 +U 13 +R 2 +D 11 +L 5 +U 12 +D 7 +U 4 +R 4 +D 19 +R 17 +L 10 +U 5 +L 1 +U 4 +L 6 +D 11 +L 16 +D 9 +R 16 +L 3 +R 1 +D 3 +L 5 +U 18 +D 13 +R 10 +U 5 +D 4 +U 17 +R 4 +D 18 +U 1 diff --git a/data/9_2023.txt b/data/9_2023.txt new file mode 100644 index 0000000..681707e --- /dev/null +++ b/data/9_2023.txt @@ -0,0 +1,200 @@ +21 32 43 50 52 63 128 354 980 2536 6198 14571 33400 75257 167315 367301 795349 1696172 3558635 7344376 14925482 +29 42 53 56 39 -4 -34 127 1001 3868 11543 29740 69331 149906 305152 590695 1095189 1955590 3377721 5663416 9245727 +4 13 31 69 161 382 885 1967 4170 8430 16326 30587 56237 103154 191459 362164 697242 1356689 2647559 5156471 10012899 +8 14 21 35 62 107 169 235 286 352 697 2286 7805 23735 64493 160875 377960 854409 1890137 4141400 9048308 +-2 0 12 46 132 343 844 1984 4452 9527 19484 38295 72924 135831 249908 458206 842858 1561142 2912508 5459800 10242444 +16 42 79 127 186 256 337 429 532 646 771 907 1054 1212 1381 1561 1752 1954 2167 2391 2626 +-4 9 49 128 256 441 689 1004 1388 1841 2361 2944 3584 4273 5001 5756 6524 7289 8033 8736 9376 +6 15 41 99 222 476 978 1915 3562 6297 10611 17111 26514 39630 57332 80511 110014 146563 190653 242427 301526 +17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 +11 16 34 80 183 405 879 1875 3912 7964 15871 31182 60871 118775 232387 456109 896725 1761432 3446324 6695212 12877019 +12 27 71 159 310 551 921 1475 2288 3459 5115 7415 10554 14767 20333 27579 36884 48683 63471 81807 104318 +25 39 67 123 222 381 631 1047 1800 3232 5952 10948 19707 34332 57642 93238 145515 219597 321169 456177 630364 +0 5 27 89 226 485 938 1719 3105 5678 10630 20317 39265 76053 146973 283300 545702 1052215 2030893 3915501 7513460 +17 36 76 147 258 419 648 991 1582 2816 5801 13425 32663 79211 186233 420013 906687 1876052 3730754 7151959 13255880 +7 11 17 38 109 303 743 1609 3143 5659 9569 15440 24101 36823 55599 83555 125527 188843 284353 427754 641261 +8 14 30 74 164 316 543 855 1260 1766 2384 3132 4040 5156 6553 8337 10656 13710 17762 23150 30300 +9 29 71 151 297 560 1025 1822 3137 5223 8411 13121 19873 29298 42149 59312 81817 110849 147759 194075 251513 +2 5 6 11 45 174 534 1367 3067 6242 11801 21078 36008 59373 95139 148908 228512 344779 512504 751661 1088895 +3 -5 -6 15 91 296 783 1837 3951 7968 15412 29285 55880 108627 215786 435173 881471 1775732 3533590 6920582 13323821 +11 18 25 32 46 101 291 827 2155 5217 12011 26726 57918 122488 252680 508039 995457 1902498 3552967 6500842 11692428 +11 24 37 50 63 76 89 102 115 128 141 154 167 180 193 206 219 232 245 258 271 +13 24 35 46 57 68 79 90 101 112 123 134 145 156 167 178 189 200 211 222 233 +22 28 44 84 162 292 488 764 1134 1612 2212 2948 3834 4884 6112 7532 9158 11004 13084 15412 18002 +27 45 67 96 138 201 294 428 633 1028 2015 4713 11804 29030 67658 148319 306727 601895 1127587 2027878 3517838 +8 30 63 121 237 485 1024 2185 4646 9781 20348 41841 85141 171666 343209 680367 1336484 2599512 5004405 9537913 18013797 +10 10 14 42 136 379 933 2105 4463 9056 17866 34769 67544 131882 258944 508821 993268 1912306 3610674 6661600 11986844 +7 13 25 66 168 379 783 1537 2936 5525 10284 18918 34291 61055 106548 182077 304773 500317 807003 1281842 2009738 +11 21 36 60 108 208 400 741 1351 2584 5494 12906 31614 76529 178004 394079 830019 1668255 3212664 5952008 10648248 +2 10 19 29 40 52 65 79 94 110 127 145 164 184 205 227 250 274 299 325 352 +-5 2 29 85 179 320 517 779 1115 1534 2045 2657 3379 4220 5189 6295 7547 8954 10525 12269 14195 +4 14 39 89 175 320 578 1060 1967 3636 6638 12065 22361 43471 89833 195044 433277 960398 2090534 4436219 9163714 +21 41 72 131 253 494 930 1655 2787 4506 7183 11741 20578 39801 84406 189816 436559 1000915 2254664 4953815 10582281 +-5 6 28 69 155 345 759 1638 3478 7327 15428 32567 68787 144607 300592 614104 1227345 2392320 4539856 8380705 15045783 +18 31 56 109 207 370 626 1019 1620 2541 3952 6101 9337 14136 21130 31139 45206 64635 91032 126349 172931 +22 41 77 143 260 474 887 1719 3443 7075 14767 30963 64582 133092 270144 540021 1065144 2078221 4019725 7716207 14698156 +5 12 30 69 144 294 609 1261 2535 4856 8808 15141 24762 38706 58083 83997 117433 159108 209282 267525 332436 +13 23 43 81 141 225 343 546 1025 2377 6244 16709 43130 105590 244973 541055 1144241 2330135 4591621 8791389 16409943 +20 43 84 154 278 505 921 1681 3100 5882 11631 23892 50133 105348 218464 443802 882247 1722191 3322063 6380638 12289547 +13 24 61 153 351 743 1488 2878 5446 10168 18876 35129 66017 125783 242944 474251 932396 1841997 3654208 7281858 14577432 +24 36 61 113 223 451 908 1803 3534 6846 13083 24565 45125 80845 141034 239495 396132 638952 1006521 1550937 2341387 +13 31 58 85 98 78 1 -162 -445 -887 -1532 -2429 -3632 -5200 -7197 -9692 -12759 -16477 -20930 -26207 -32402 +4 16 34 64 118 214 376 634 1024 1588 2374 3436 4834 6634 8908 11734 15196 19384 24394 30328 37294 +0 8 29 77 171 335 598 994 1562 2346 3395 4763 6509 8697 11396 14680 18628 23324 28857 35321 42815 +18 30 52 101 215 464 963 1906 3659 6980 13490 26638 53664 109612 225525 464976 956767 1958266 3975889 7991209 15881332 +10 16 19 19 22 44 118 305 715 1550 3194 6415 12852 26207 55060 119140 262452 579200 1262385 2690847 5579062 +10 23 62 139 267 469 805 1434 2748 5652 12123 26270 56260 117733 239826 475877 922618 1754665 3286004 6077749 11122661 +3 23 59 116 210 384 739 1498 3132 6604 13845 28675 58528 117543 231875 448547 849996 1578028 2873822 5145925 9087381 +10 15 29 72 176 391 804 1583 3072 5981 11728 23000 44642 85151 159526 295296 545638 1017171 1925979 3704516 7195220 +27 50 99 196 384 747 1436 2701 4929 8688 14777 24282 38638 59697 89802 131867 189463 266910 369375 502976 674892 +-1 9 35 73 119 175 265 485 1132 2998 7993 20396 49248 112722 245761 512898 1028997 1991719 3730863 6781403 11989085 +2 -6 -17 -31 -48 -68 -91 -117 -146 -178 -213 -251 -292 -336 -383 -433 -486 -542 -601 -663 -728 +14 28 59 122 244 464 833 1414 2282 3524 5239 7538 10544 14392 19229 25214 32518 41324 51827 64234 78764 +12 22 41 65 90 112 127 131 120 90 37 -43 -154 -300 -485 -713 -988 -1314 -1695 -2135 -2638 +13 37 80 154 282 497 850 1448 2565 4904 10147 22032 48377 104819 221770 457708 925433 1845227 3653286 7220830 14287600 +-1 -6 -6 2 25 96 308 856 2076 4457 8595 15081 24402 37127 54997 84091 142053 272492 571160 1230420 2610879 +3 9 28 62 112 178 259 353 457 567 678 784 878 952 997 1003 959 853 672 402 28 +19 40 87 183 362 678 1222 2163 3844 6979 13012 24714 47109 88835 164061 295096 515841 876250 1447981 2331433 3664380 +0 -5 -10 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90 -95 -100 +7 12 23 54 144 369 856 1795 3452 6215 10775 18687 33821 65670 136226 293290 634805 1351286 2796903 5604532 10866454 +7 14 42 112 253 494 848 1288 1723 1998 1965 1702 2013 5505 19045 59827 170862 459857 1192547 3005047 7361792 +13 18 38 93 226 527 1166 2435 4799 8956 15906 27029 44172 69745 106826 159275 231857 330374 461806 634461 858134 +19 28 39 55 89 186 453 1101 2509 5326 10633 20193 36823 64928 111243 185835 303423 485080 760387 1170115 1769517 +-1 -5 -3 13 55 147 343 755 1591 3207 6185 11461 20543 35879 61459 103763 173199 286211 468277 758061 1213031 +24 49 83 122 168 243 417 870 2031 4877 11546 26544 59038 127052 264818 534995 1047702 1987749 3648997 6468498 11039752 +5 12 36 92 191 344 576 951 1603 2771 4864 8664 15972 31435 67185 153670 363341 859814 1995608 4499528 9824817 +0 6 15 29 64 158 392 933 2105 4491 9066 17358 31631 55081 92033 148124 230454 347684 510057 729315 1018482 +13 11 11 15 27 54 113 251 586 1383 3191 7083 15067 30820 61210 120074 238471 492299 1072847 2455763 5781103 +1 -4 -9 -14 -19 -24 -29 -34 -39 -44 -49 -54 -59 -64 -69 -74 -79 -84 -89 -94 -99 +7 16 28 43 61 82 106 133 163 196 232 271 313 358 406 457 511 568 628 691 757 +10 5 -6 -23 -38 -22 103 512 1550 3835 8396 16851 31630 56248 95633 156514 247874 381473 572446 839981 1208082 +8 34 85 183 373 742 1459 2855 5565 10750 20410 37805 68058 119193 204287 346326 589250 1022625 1835625 3432928 6678819 +5 15 50 129 279 537 952 1587 2521 3851 5694 8189 11499 15813 21348 28351 37101 47911 61130 77145 96383 +7 4 11 39 104 234 474 888 1573 2738 4980 10045 22668 54691 133852 321950 751427 1697236 3714453 7894811 16332024 +17 31 59 109 192 331 593 1157 2431 5231 11035 22325 43030 79083 139105 235229 384077 607903 935915 1405789 2065388 +4 23 47 84 151 266 446 730 1252 2401 5143 11687 26937 61735 140023 314179 696706 1523629 3278065 6926340 14362313 +8 15 29 53 91 154 266 484 972 2210 5475 13795 33632 77579 168379 344727 669988 1247009 2247245 3973269 6994941 +10 28 65 139 290 594 1180 2250 4102 7156 11983 19337 30190 45770 67602 97552 137874 191260 260893 350503 464426 +-2 5 28 86 224 519 1076 2012 3430 5387 7858 10704 13704 16884 21805 35415 80057 217361 602265 1600596 4037315 +16 36 60 88 125 193 363 816 1943 4504 9897 20658 41452 81077 156491 300791 578834 1117596 2164918 4202664 8163063 +3 1 -1 -3 -5 -7 -9 -11 -13 -15 -17 -19 -21 -23 -25 -27 -29 -31 -33 -35 -37 +-3 -1 10 39 110 277 661 1525 3403 7298 14962 29268 54680 97822 168141 278652 446745 695025 1052146 1553589 2242322 +10 30 62 102 143 187 275 543 1318 3284 7777 17305 36414 73001 140100 258154 458293 789341 1337679 2284475 4057632 +-1 8 28 61 124 259 539 1070 1989 3458 5654 8755 12922 18277 24877 32684 41531 51084 60800 69881 77224 +1 16 53 121 234 421 751 1390 2716 5538 11513 23968 49586 101947 208990 428557 880119 1807897 3702851 7531050 15146778 +14 32 63 106 170 293 575 1234 2708 5857 12376 25631 52311 105622 211377 419549 826259 1616051 3144318 6100173 11830933 +21 48 95 167 268 412 653 1149 2295 4992 11163 24683 52958 109468 217681 416849 770313 1377072 2387511 4024335 6609920 +16 28 44 81 180 415 900 1791 3272 5500 8463 11676 13599 10595 -4866 -47200 -142354 -333762 -685820 -1270723 -2098484 +1 -1 11 56 161 364 717 1289 2169 3469 5327 7910 11417 16082 22177 30015 39953 52395 67795 86660 109553 +18 45 88 145 219 334 569 1129 2476 5550 12134 25488 51555 101452 196862 381858 748582 1491751 3020928 6184195 12698771 +3 5 11 21 35 53 75 101 131 165 203 245 291 341 395 453 515 581 651 725 803 +17 33 63 105 164 268 490 990 2107 4560 9868 21181 44836 93123 188975 373592 718381 1343051 2442253 4323809 7462340 +9 23 57 119 219 374 621 1036 1749 2934 4744 7176 9953 12839 17624 34779 101193 321513 955899 2593509 6476439 +7 19 61 148 295 517 829 1246 1783 2455 3277 4264 5431 6793 8365 10162 12199 14491 17053 19900 23047 +21 38 60 87 119 156 198 245 297 354 416 483 555 632 714 801 893 990 1092 1199 1311 +3 1 3 20 71 195 478 1108 2481 5400 11454 23762 48450 97532 194331 383273 746991 1435693 2718066 5073041 9365215 +11 7 1 6 54 205 562 1296 2686 5178 9470 16659 28585 48744 84606 152966 291173 578793 1176475 2391408 4781528 +-3 -4 -6 -4 28 164 572 1594 3899 8799 18916 39570 81597 166944 339586 686518 1377527 2739292 5390832 10486002 20138400 +-8 -8 -3 7 22 42 67 97 132 172 217 267 322 382 447 517 592 672 757 847 942 +-1 0 1 0 -5 -16 -31 -32 54 477 1993 6632 19294 50777 123123 278526 593489 1200454 2319769 4305608 7710333 +11 25 50 85 126 172 244 431 995 2608 6866 17331 41486 94127 202808 415903 813491 1520355 2718546 4653681 7623718 +-8 -2 19 61 144 309 620 1175 2156 3964 7504 14715 29491 59222 117331 227521 431372 803446 1484353 2756569 5217854 +6 16 36 80 175 368 732 1378 2498 4491 8258 15785 31152 62099 122255 234164 433539 776254 1352552 2320115 3983784 +25 42 75 147 293 560 1002 1662 2532 3493 4278 4606 4865 8190 25705 88487 273202 754587 1908904 4510872 10095920 +28 46 73 115 178 268 391 553 760 1018 1333 1711 2158 2680 3283 3973 4756 5638 6625 7723 8938 +10 16 33 64 110 172 269 488 1097 2775 7044 17027 38703 82885 168210 325501 603940 1079578 1866803 3133490 5120668 +8 22 61 145 311 635 1264 2458 4643 8478 14942 25451 42020 67491 105855 162704 245858 366222 538939 784917 1132821 +17 28 44 89 200 432 876 1696 3191 5888 10672 18959 32918 55748 92016 148062 232477 356660 535460 787909 1138052 +-7 -5 13 56 128 221 317 420 655 1507 4357 12657 34461 87730 211050 484406 1067785 2270071 4667481 9300322 17989898 +15 26 37 48 59 70 81 92 103 114 125 136 147 158 169 180 191 202 213 224 235 +17 31 45 59 73 87 101 115 129 143 157 171 185 199 213 227 241 255 269 283 297 +6 0 -2 19 96 274 600 1102 1756 2442 2892 2635 946 -3192 -11102 -24390 -44870 -74420 -114750 -167061 -231572 +16 37 85 182 366 702 1296 2312 3992 6679 10843 17110 26294 39432 57822 83064 117104 162281 221377 297670 394990 +9 21 42 72 111 159 216 282 357 441 534 636 747 867 996 1134 1281 1437 1602 1776 1959 +7 13 28 63 135 281 591 1268 2716 5652 11253 21418 39400 71416 130468 244623 473549 939359 1880978 3745553 7336141 +-3 -1 1 10 54 191 525 1242 2687 5516 10985 21507 41771 81082 158377 313086 628643 1282987 2655535 5549498 11643446 +16 21 27 33 38 41 41 37 28 13 -9 -39 -78 -127 -187 -259 -344 -443 -557 -687 -834 +9 18 32 45 63 125 328 854 1997 4188 8016 14243 23811 37839 57608 84532 120113 165878 223296 293673 378023 +23 50 99 185 340 618 1096 1881 3150 5287 9257 17497 35852 77529 170857 374135 803533 1684672 3446307 6887105 13466072 +-8 2 26 74 163 312 531 799 1033 1075 782 419 1773 10829 43698 139199 384858 969400 2286094 5130524 11067635 +6 17 57 155 364 786 1612 3179 6057 11212 20358 36726 66660 122726 229428 433217 819324 1539135 2853467 5199337 9290808 +20 31 43 73 157 357 767 1526 2854 5131 9039 15783 27399 47145 79955 132916 215704 340887 523971 783029 1137713 +11 19 27 46 112 312 821 1955 4266 8754 17369 34153 67670 135848 275086 556557 1114185 2190937 4213027 7905588 14468576 +22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 162 +-1 -6 -5 19 93 268 645 1413 2899 5630 10407 18391 31201 51024 80737 124041 185607 271234 388019 544539 751045 +11 12 28 88 250 618 1360 2734 5134 9174 15845 26827 45156 76731 133822 243301 465777 939108 1974358 4260058 9281170 +-3 6 37 100 204 357 566 837 1175 1584 2067 2626 3262 3975 4764 5627 6561 7562 8625 9744 10912 +7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97 103 109 115 121 127 +21 33 49 75 117 181 273 399 565 777 1041 1363 1749 2205 2737 3351 4053 4849 5745 6747 7861 +8 3 -9 -24 -30 9 181 674 1874 4579 10454 22950 49070 102617 209940 419748 819340 1560659 2900985 5264908 9336546 +0 -1 -4 -9 -16 -25 -36 -49 -64 -81 -100 -121 -144 -169 -196 -225 -256 -289 -324 -361 -400 +8 22 58 134 278 532 966 1714 3050 5528 10216 19060 35420 64826 116008 202260 343204 567026 913262 1436218 2209114 +14 22 45 109 262 586 1217 2387 4527 8517 16241 31704 63106 126490 252015 494865 954984 1814628 3412789 6395547 12019194 +7 6 2 -10 -35 -78 -144 -238 -365 -530 -738 -994 -1303 -1670 -2100 -2598 -3169 -3818 -4550 -5370 -6283 +-3 -7 -8 4 46 158 440 1124 2698 6097 12974 26074 49781 91047 161262 280425 486675 857613 1556156 2924876 5671816 +26 44 75 127 208 326 489 705 982 1328 1751 2259 2860 3562 4373 5301 6354 7540 8867 10343 11976 +18 34 60 112 219 431 845 1656 3240 6275 11896 21865 38748 66201 109806 179668 297474 513316 941800 1833442 3706877 +15 32 53 87 162 341 750 1621 3353 6594 12347 22103 38004 63039 101276 158133 240691 358052 521745 746183 1049174 +0 11 39 106 244 498 943 1737 3256 6400 13240 28332 61325 132062 280424 585017 1197947 2408229 4755563 9233031 17649795 +18 27 50 95 172 297 508 916 1838 4102 9683 22939 52900 117392 250396 515221 1028290 2002397 3825452 7202899 13411956 +2 7 27 81 203 459 965 1909 3599 6600 12095 22721 44314 89286 182813 373725 753080 1485037 2857027 5359617 9811189 +23 35 61 117 217 383 678 1281 2638 5744 12642 27282 57014 115305 226987 438835 841137 1611045 3097163 5978791 11554847 +21 48 84 122 158 199 280 507 1162 2944 7484 18364 42989 95824 203819 415666 818856 1574720 2997048 5735627 11204595 +11 20 39 66 100 147 244 526 1367 3626 9017 20598 43362 84981 157036 277796 479194 823845 1444298 2629535 5010339 +13 30 65 123 214 374 700 1399 2851 5686 10875 19835 34548 57694 92798 144391 218185 321262 462277 651675 901922 +24 38 56 78 106 147 217 346 584 1008 1730 2906 4746 7525 11595 17398 25480 36506 51276 70742 96026 +26 46 78 124 182 251 341 488 774 1352 2476 4536 8098 13949 23147 37076 57506 86658 127274 182692 256926 +26 52 96 158 239 346 497 726 1088 1664 2566 3942 5981 8918 13039 18686 26262 36236 49148 65614 86331 +8 20 33 41 37 14 -23 -22 196 1106 3814 10687 26506 60580 130707 270788 545700 1080392 2116163 4117365 7968791 +9 15 36 90 202 414 817 1611 3207 6404 12720 25069 49235 97138 193942 392967 805641 1659073 3402208 6894216 13727420 +9 5 1 -3 -7 -11 -15 -19 -23 -27 -31 -35 -39 -43 -47 -51 -55 -59 -63 -67 -71 +-2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -34 -36 -38 -40 -42 +14 29 65 132 250 461 853 1616 3155 6289 12576 24843 48109 91342 171008 318334 593884 1115809 2112483 4016842 7629460 +7 11 14 29 83 215 484 1002 2007 3991 7898 15407 29315 54035 96224 165556 275655 445203 699238 1070657 1601939 +14 20 34 66 147 350 814 1773 3602 6906 12696 22718 40027 69928 121440 209477 357982 604296 1005094 1644274 2643243 +25 50 87 136 208 340 627 1281 2727 5746 11675 22674 42070 74788 127879 211155 337941 525954 798319 1184732 1722780 +10 23 41 74 151 331 711 1444 2791 5242 9755 18198 34197 64937 125330 247907 505764 1063445 2284177 4944950 10648687 +2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 +17 34 62 98 136 159 136 41 -82 31 1180 5366 17198 46829 115941 269729 600768 1296786 2737078 5687933 11697555 +-4 2 24 75 180 380 727 1274 2073 3203 4859 7542 12399 21771 40016 74683 138122 249624 438194 746069 1233102 +0 2 3 14 68 227 585 1269 2453 4421 7740 13629 24629 45688 85801 160525 296431 540825 985869 1829358 3521633 +4 -3 -15 -35 -66 -100 -87 135 972 3286 8687 19870 40906 77315 135639 222090 339668 482923 629269 725443 667334 +8 1 1 16 53 131 299 652 1336 2531 4399 6982 10033 12761 13469 9062 -5600 -38531 -101659 -212108 -393755 +16 38 83 176 363 733 1456 2838 5408 10085 18542 34018 63069 119148 229527 447998 877104 1705456 3268101 6141044 11285031 +15 28 42 57 73 90 108 127 147 168 190 213 237 262 288 315 343 372 402 433 465 +9 19 40 95 210 423 820 1616 3315 7007 14889 31128 63214 123977 234461 427857 754693 1289459 2138806 3451397 5429402 +8 8 7 20 76 224 542 1146 2194 3875 6371 9797 14205 19992 29701 53641 124600 332086 895211 2307026 5603526 +13 24 44 74 127 242 514 1154 2603 5740 12246 25214 50129 96382 179528 324550 570449 976544 1630936 2661666 4251179 +-1 -5 -9 -8 4 47 182 550 1431 3354 7325 15289 31004 61580 120024 229233 427991 779653 1384339 2395614 4042796 +-2 7 26 52 82 129 259 666 1809 4654 11107 24803 52543 106858 210438 403507 755664 1384257 2482024 4357534 7492904 +23 35 52 77 113 163 230 317 427 563 728 925 1157 1427 1738 2093 2495 2947 3452 4013 4633 +23 29 35 39 31 5 -2 172 962 3328 9182 22127 48764 101020 200255 384354 719641 1320311 2379213 4215287 7344821 +-4 -5 -1 17 60 147 335 785 1889 4512 10462 23423 50840 107764 224685 463291 947494 1922849 3866917 7687909 15071384 +3 3 7 21 69 214 592 1480 3431 7523 15800 32054 63236 122034 231623 434567 810055 1508651 2824621 5348275 10284171 +21 32 42 49 58 87 173 382 847 1903 4470 10967 27236 66230 154589 343710 727529 1469994 2846138 5301781 9538222 +6 19 45 94 175 299 503 910 1840 4000 8832 19224 41044 86435 180702 376335 781063 1613369 3311338 6743524 13610498 +13 17 38 89 190 380 735 1404 2700 5321 10834 22649 47865 100620 207965 419860 825719 1581081 2949534 5367057 9538568 +14 34 76 160 323 630 1185 2142 3716 6194 9946 15436 23233 34022 48615 67962 93162 125474 166328 217336 280303 +12 35 77 144 252 442 797 1456 2611 4466 7141 10538 14298 18290 24867 45994 122477 371167 1093487 3013051 7776621 +21 32 47 74 129 236 430 782 1491 3133 7231 17442 41911 97842 220310 479203 1011714 2084459 4211816 8380503 16473754 +9 -1 -13 -22 -23 -1 100 437 1378 3712 9054 20599 44448 91802 182389 349544 647391 1160565 2016845 3402928 5583339 +18 30 53 96 190 403 855 1733 3306 5940 10113 16430 25638 38641 56515 80523 112130 153018 205101 270540 351758 +-2 5 32 104 263 567 1095 1965 3380 5734 9839 17393 31947 60949 120134 242909 499954 1038783 2160586 4463858 9103247 +-3 9 36 87 179 347 665 1295 2610 5478 11842 25781 55287 115047 230590 444272 823767 1474067 2554548 4303535 7074127 +18 27 37 56 110 258 608 1334 2694 5049 8883 14824 23666 36392 54198 78518 111050 153783 209025 279432 368038 +7 10 23 68 188 460 1016 2078 4010 7382 13028 22062 35793 55452 81611 113136 145473 168018 160269 86400 -112166 +19 37 59 87 130 215 403 809 1628 3172 5926 10634 18429 31024 50984 82102 129905 202319 310525 470041 702068 +9 35 82 155 269 469 863 1679 3363 6736 13222 25158 46254 82533 144891 256500 473057 933989 1982762 4432101 10117535 +12 21 46 108 233 456 835 1488 2684 5047 9970 20384 42085 85890 170971 329804 615268 1110537 1942526 3299780 5455833 +-6 -5 11 51 128 277 596 1325 2988 6647 14365 30066 61148 121512 237250 457402 874660 1666206 3176229 6085656 11764662 +0 0 13 53 138 298 595 1157 2229 4249 7968 14652 26433 46917 82212 142610 245246 418166 706367 1180527 1949324 +8 5 15 61 188 492 1161 2523 5091 9586 16903 27954 43260 62044 80358 87401 58574 -57129 -359205 -1033041 -2411304 +1 13 53 139 303 597 1102 1942 3310 5528 9188 15456 26666 47386 86203 158549 290975 527375 937767 1630353 2767705 +14 26 38 50 62 74 86 98 110 122 134 146 158 170 182 194 206 218 230 242 254 +22 34 54 102 210 433 873 1721 3325 6294 11650 21042 37040 63544 106402 174488 281836 452086 727634 1187674 1981962 +-1 7 18 26 31 49 132 407 1141 2844 6445 13628 27507 53962 104163 199087 377195 706893 1305964 2370838 4219375 +14 25 53 114 230 440 837 1648 3375 7017 14404 28710 55306 103330 188803 340996 615344 1118937 2059099 3832618 7183906 +11 17 24 25 22 44 170 570 1595 3984 9336 21163 47176 104104 227581 491997 1049739 2207916 4577110 9357568 18885542 +13 30 66 143 303 618 1197 2189 3794 6315 10322 17076 29512 54353 106383 216620 447187 917180 1845890 3622477 6914757 +23 45 90 175 319 541 858 1295 1931 3010 5145 9649 19071 38152 75731 148745 290543 567483 1110468 2172027 4225151 +24 32 35 33 26 14 -3 -25 -52 -84 -121 -163 -210 -262 -319 -381 -448 -520 -597 -679 -766 |