commit 438edfdb90a57796a8a10dcf967fcf0127cd75a0 Author: Nicola Zangrandi Date: Thu Feb 8 09:55:40 2024 +0100 Split from monorepo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/2015/aoc_d1p1.py b/2015/aoc_d1p1.py new file mode 100644 index 0000000..a4fcfed --- /dev/null +++ b/2015/aoc_d1p1.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +floor = 0 + +with open("inputd1.txt", "r") as f: + for input in f: + for c in input: + if c == "(": + floor += 1 + elif c == ")": + floor -= 1 + +print(floor) diff --git a/2015/aoc_d1p2.py b/2015/aoc_d1p2.py new file mode 100644 index 0000000..36943c6 --- /dev/null +++ b/2015/aoc_d1p2.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python +floor = 0 +pos = 0 +basement_pos = 0 + +with open("inputd1.txt", "r") as f: + for input in f: + for c in input: + pos += 1 + + if c == "(": + floor += 1 + elif c == ")": + floor -= 1 + + if floor < 0 and basement_pos == 0: + basement_pos = pos + +print(floor) +print(basement_pos) diff --git a/2015/aoc_d2p1.py b/2015/aoc_d2p1.py new file mode 100644 index 0000000..7968f06 --- /dev/null +++ b/2015/aoc_d2p1.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +total = 0 + +with open("inputd2.txt", "r") as f: + for line in f: + dimensions = [int(x) for x in line.split("x")] + l = dimensions[0] + w = dimensions[1] + h = dimensions[2] + + lw = l * w + wh = w * h + hl = h * l + + smallest = wh + if (lw < hl and lw < wh): + smallest = lw + elif (hl < wh): + smallest = hl + + total += (2 * lw) + (2 * hl) + (2 * wh) + smallest + +print(total) diff --git a/2015/aoc_d2p2.py b/2015/aoc_d2p2.py new file mode 100644 index 0000000..17edf42 --- /dev/null +++ b/2015/aoc_d2p2.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +total = 0 + +with open("inputd2.txt", "r") as f: + for line in f: + dimensions = sorted([int(x) for x in line.split("x")]) + l = dimensions[0] + w = dimensions[1] + h = dimensions[2] + + total += (2 * l) + (2 * w) + (l * w * h) + +print(total) diff --git a/2015/aoc_d3p1.py b/2015/aoc_d3p1.py new file mode 100644 index 0000000..a655c2d --- /dev/null +++ b/2015/aoc_d3p1.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +visited_houses = [] +current_house = (0, 0) + +with open("inputd3.txt", "r") as f: + for input in f: + for x in input: + if x == "^": + current_house = (current_house[0] - 1, current_house[1]) + elif x == "v": + current_house = (current_house[0] + 1, current_house[1]) + elif x == ">": + current_house = (current_house[0], current_house[1] + 1) + else: + current_house = (current_house[0], current_house[1] - 1) + + visited_houses.append(current_house) + +print(len(set(visited_houses))) diff --git a/2015/aoc_d3p2.py b/2015/aoc_d3p2.py new file mode 100644 index 0000000..04aadfc --- /dev/null +++ b/2015/aoc_d3p2.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +visited_houses_human = [] +current_house_human = (0, 0) +visited_houses_robot = [] +current_house_robot = (0, 0) +count = 0 + +with open("inputd3.txt", "r") as f: + for input in f: + for x in input: + if x == "^" and count % 2 == 0: + current_house_human = (current_house_human[0] - 1, current_house_human[1]) + elif x == "^" and count % 2 == 1: + current_house_robot = (current_house_robot[0] - 1, current_house_robot[1]) + + elif x == "v" and count % 2 == 0: + current_house_human = (current_house_human[0] + 1, current_house_human[1]) + elif x == "v" and count % 2 == 1: + current_house_robot = (current_house_robot[0] + 1, current_house_robot[1]) + + elif x == ">" and count % 2 == 0: + current_house_human = (current_house_human[0], current_house_human[1] + 1) + elif x == ">" and count % 2 == 1: + current_house_robot = (current_house_robot[0], current_house_robot[1] + 1) + + elif x == "<" and count % 2 == 0: + current_house_human = (current_house_human[0], current_house_human[1] - 1) + else: + current_house_robot = (current_house_robot[0], current_house_robot[1] - 1) + + if count % 2 == 0: + visited_houses_human.append(current_house_human) + else: + visited_houses_robot.append(current_house_robot) + + count += 1 + +print(len(set(visited_houses_human + visited_houses_robot))) diff --git a/2015/aoc_d4p1.py b/2015/aoc_d4p1.py new file mode 100644 index 0000000..1d720e4 --- /dev/null +++ b/2015/aoc_d4p1.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import hashlib + +secret = "iwrupvqb".encode('utf-8') +counter = 0 +hash = hashlib.md5(secret).hexdigest() + +while hash.startswith("00000") == False: + counter += 1 + hash = hashlib.md5(secret + str(counter).encode('utf-8')).hexdigest() + +print(counter) diff --git a/2015/aoc_d4p2.py b/2015/aoc_d4p2.py new file mode 100644 index 0000000..82257fb --- /dev/null +++ b/2015/aoc_d4p2.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import hashlib + +secret = "iwrupvqb".encode('utf-8') +counter = 0 +hash = hashlib.md5(secret).hexdigest() + +while hash.startswith("000000") == False: + counter += 1 + hash = hashlib.md5(secret + str(counter).encode('utf-8')).hexdigest() + +print(counter) diff --git a/2015/aoc_d5p1.py b/2015/aoc_d5p1.py new file mode 100644 index 0000000..0e6b515 --- /dev/null +++ b/2015/aoc_d5p1.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +total = 0 + +with open("inputd5.txt", "r") as f: + for line in f: + vowels = 0 + previous_letter = "" + double_letter = False + + for c in line: + naughty = False + + if c in ["a", "e", "i", "o", "u"]: + vowels += 1 + + if c == previous_letter: + double_letter = True + + if (previous_letter == "a" and c == "b"): + naughty = True + + if (previous_letter == "c" and c == "d"): + naughty = True + + if (previous_letter == "p" and c == "q"): + naughty = True + + if (previous_letter == "x" and c == "y"): + naughty = True + + if (naughty): + break + + previous_letter = c + + if (naughty == False and vowels >= 3 and double_letter == True): + total += 1 + + double_letter = False + previous_letter = "" + vowels = 0 + +print(total) diff --git a/2015/inputd1.txt b/2015/inputd1.txt new file mode 100644 index 0000000..2d4ad8f --- /dev/null +++ b/2015/inputd1.txt @@ -0,0 +1 @@ +()(((()))(()()()((((()(((())(()(()((((((()(()(((())))((()(((()))((())(()((()()()()(((())(((((((())))()()(()(()(())(((((()()()((())(((((()()))))()(())(((())(())((((((())())))(()())))()))))()())()())((()()((()()()()(()((((((((()()())((()()(((((()(((())((())(()))()((((()((((((((())()((()())(())((()))())((((()())(((((((((((()()(((((()(()))())(((()(()))())((()(()())())())(()(((())(())())()()(()(()((()))((()))))((((()(((()))))((((()(()(()())())()(((()((((())((((()(((()()(())()()()())((()((((((()((()()))()((()))()(()()((())))(((()(((()))((()((()(()))(((()()(()(()()()))))()()(((()(((())())))))((()(((())()(()(())((()())))((((())))(()(()(()())()((()())))(((()((()(())()()((()((())(()()((())(())()))()))((()(())()))())(((((((()(()()(()(())())))))))(()((((((())((((())((())())(()()))))()(())(()())()())((())(()))))(()))(()((()))()(()((((((()()()()((((((((()(()(())((()()(()()))(())()())()((())))()))()())(((()))(())()(())()))()((()((()(()()())(())()()()((())())))((()()(()()((()(())()()())(((()(()()))))(())))(()(()())()))()()))))))()))))((((((())))())))(()(())())(()())))))(()))()))))))()((()))))()))))(()(()((()())())(()()))))(((())()))())())())(((()(()()))(())()(())(())((((((()()))))((()(()))))))(()))())(((()()(()))()())()()()())))))))))))))(())(()))(()))((()(())(()())(())())(()())(())()()(()())))()()()))(())())()))())())(())((())))))))(())))(())))))()))))((())(()(((()))))(()))()((()(())))(()())(((((()))()())()()))))()))))()))())(()(()()()))()))))))((()))))))))))()((()))((()(())((())()()(()()))()(()))))()()(()))()))(((())))(())()((())(())(()())()())())))))))())))()((())))()))(()))()()))(((((((()))())(()()))(()()(()))()(()((()())()))))))(((()()()())))(())()))()())(()()))()()))))))))(())))()))()()))))))()))()())))()(())(())))))()(())()()(()()))))())((()))))()))))(()(((((()))))))))())))())()(())()()))))(())))())()()())()()())()(()))))()))()))))))))())))((()))()))()))())))()())()()())))())))(()((())()((()))())))))())()(())((())))))))))))())()())(())())())(()))(()))()))())(()(())())()())()()(()))))(()(())))))))(())))())(())))))))())()()(())())())))(())))))()))()(()())()(()))())())))))()()(()))()))))())))))))))()))))()))))))())()())()()))))()())))())))))))))))()()))))()()(((()))()()(())()))))((()))))(()))(())())))(())()))))))(()))()))))(())())))))()))(()())))))))))))))())))))))))()((()())(()())))))))((()))))(())(())))()(()())())))())())(()()()())))()))))))())))))())()()())))))))))))()()(()))))()())()))((()())(()))))()(()))))))))))()())())(((())(()))))())()))()))()))))))()))))))(()))))()))))()(())))(())))(()))())()()(()()))()))(()()))))))))()))(()))())(()()(()(()())()()))()))))))))(())))))((()()(()))())())))))()))())(()())()()))())))()(()()()()))((())())))())()(()()))()))))))))(()))(())))()))))(()(()())(()))))()())())()))()()))())))))))))))())()))))))()))))))))())))))()))))())(()())))(())()))())())))))()()(()()())(()())))()()))(((()))(()()()))))()))))()))))((())))()((((((()()))))))())))))))))))(((()))))))))))))(())())))))())(()))))))(()))((()))())))()(()((()))()))()))))))))))())()))()(()()))))())))())(())()(()))()))())(()))()))))(()()))()()(())))))()))(())(()(()()))(()()())))))(((()))))))()))))))))))))(())(()))))()())())()()((()()))())))))(()))))())))))))()()()))))))))())))()(((()()))(())))))(((())())))))((()))()(()))(()))))(()())))(()))())))))()))))(())(())))()((()))(())())))()()))()))))))))()))(()()()(()()()(()))())(())()())(((()))(())))))))))(((()())))()()))))))))()(())(()))()((((())(())(()())))()))(((())()()()))((()))(()))())())))())))(()))())()())())(()(())())()()()(())))())(())))(())))(())()))()))(()((()))))))))())(()))))))())(()()))()()))()(()(()())))()()(()((()((((((()))(())))()()()))())()))((()()(()))())((()(()(()))(()()))))()())))()))()())))))))()()((()())(())))()))(()))(())(()))())(()(())))()()))))))(((()(((()()))()(()(())())((()()))()))()))()))()(()()()(()))((()())()(())))()()))(((())()()())(())()((()()()()(()(())(()()))()(((((()())))((())))))(()()()))))(((()(())))()))((()((()(())()(()((())))((()())()(()))(((()())()()(()))(())(((()((()())()((())()())(((()()))((()((())(()))(()())(()()()))((()))(())(()((()()())((()))(())))(())(())(())))(()())))(((((()(()(((((()())((((()(()())(())(()()(((())((()(((()()(((()()((((((())))())(()((((((()(()))()))()()((()((()))))()(()()(()((()()))))))(((((()(((((())()()()(())())))))))()))((()()(())))(())(()()()())))))(()((((())))))))()()(((()(()(()(()(()())()()()(((((((((()()())()(()))((()()()()()(((((((()())()((())()))((((((()(()(()(()())(((()(((((((()(((())(((((((((())(())())()))((()(()))(((()()())(())(()(()()(((()(())()))())))(())((((((())(()()())()()(((()(((())(()(((())(((((((()(((((((((()))(())(()(()(()))))((()))()(())())())((()(()((()()))((()()((()(())(())(()((())(((())(((()()()((((((()()(())((((())()))))(())((()(()((())))(((((()(()()())())((())())))((())((()((()()((((((())(((()()(()())())(()(()))(()(()))())())()(((((((()(((()(())()()((())((()(()()((()(()()(((((((((((())((())((((((())((()((((()(()((((()(((((((())()((()))))())()((()((((()(()(((()((()())))(())())(((()(((())((((((()(((((((((()()(())))(()(((((()((((()())))((()((()((()(()()(((())((((((((((((()(((())(()(((((()))(()()(()()()()()()((())(((((((())(((((())))))())()(()()(()(()(((()()(((((())(()((()((()(((()()((()((((())()))()((((())(())))()())(((())(())(()()((()(((()()((((((((((()()(()())())(((((((((())((((()))()()((((())(()((((()(((())())(((((((((((()((((())))(())(()(((()(((()((())(((((()((()()(()(()()((((((()((((()((()(()((()(()((((((()))))()()(((((()((()(()(())()))(())(((((((()((((()())(()((()((()(()))())))(())((()))))(((((((()()()())(()))(()()((()())()((()((()()()(()(()()))(()())(())(((((()(((((((((((()((()(((()(((((((()()((((((()(((((()(()((()(((((())((((((()))((((())((()()((())(((())()(((((()()(((((()((()(()(((((((()(((((()((()((()((())(())((())(()))()()))(()()(()(()()(((((((()(((()(((())()(((((()((((((()())((((())()((()((()(()()())(()))((((()()((((((()((()(()(()((((()((()((())((((((()(()(())((((((()((((((((((()((())()))()(()(()(((((()()()))((())))()(()((((((((((((((()(((()((((()((())((()((()(((()()(()(((()((())(()()())))()(()(()(((((()()(()(()((((()(((((())()(()(()))(((((()()(((()()(())((((((((((((((())((())(((((((((((())()()()(())()(()(()(((((((((())(((()))(()()())(()((((()(())(((((()())(())((((((((())()((((()((((((())(()((()(())(((()((((()))(((((((((()()))((((()(())()()()(())(()((())((()()))()(((())(((((())((((((()()))(((((((((()((((((())))(((((((()((()(()(())))())(()(()))()(((((()())(()))()(()(())(((()))))())()())))(((((()))())()((()(()))))((()()()((((((()))()()((((((((())((()(()(((()(()((())((()())(()((((())(()(((()()()(()(()()))())())((((((((((())())((()))()((())(())(())))())()(()()(())))())(()))(((()(()()(((()(((())))()(((()(())()((((((())()))()))()((((((()(()(((((()())))()))))())()()(((()(((((())((()()(()((()((()(()(()(())))(()()()()((()(())(((()((()))((((()))())(())))())(()))()()()())()))(((()()())()((())))(())(()()()()(()())((()(()()((((())))((()((()(())((()(()((())()(()()(((()())()()())((()))((())(((()()(())))()()))(((()((())()(((((()())(())((())()())())((((((()(()(((((()))(()( diff --git a/2015/inputd2.txt b/2015/inputd2.txt new file mode 100644 index 0000000..5f3335f --- /dev/null +++ b/2015/inputd2.txt @@ -0,0 +1,1000 @@ +29x13x26 +11x11x14 +27x2x5 +6x10x13 +15x19x10 +26x29x15 +8x23x6 +17x8x26 +20x28x3 +23x12x24 +11x17x3 +19x23x28 +25x2x25 +1x15x3 +25x14x4 +23x10x23 +29x19x7 +17x10x13 +26x30x4 +16x7x16 +7x5x27 +8x23x6 +2x20x2 +18x4x24 +30x2x26 +6x14x23 +10x23x9 +29x29x22 +1x21x14 +22x10x13 +10x12x10 +20x13x11 +12x2x14 +2x16x29 +27x18x26 +6x12x20 +18x17x8 +14x25x1 +30x15x22 +17x18x7 +28x23x24 +15x12x25 +14x7x20 +29x23x8 +24x5x22 +6x22x8 +1x15x26 +14x5x1 +24x28x28 +17x23x23 +4x15x7 +23x8x11 +6x15x1 +23x18x13 +17x1x26 +23x13x17 +2x18x8 +22x22x1 +10x22x6 +28x29x20 +22x21x25 +14x8x23 +12x30x14 +8x7x5 +3x30x15 +4x3x29 +25x18x3 +16x7x16 +4x3x8 +9x16x30 +20x28x3 +28x24x6 +4x18x2 +23x18x5 +22x4x30 +15x30x9 +7x12x12 +3x22x29 +12x1x9 +9x2x25 +17x11x10 +25x24x7 +7x27x26 +26x4x12 +29x2x26 +19x24x12 +23x23x3 +26x28x16 +18x4x16 +25x30x18 +29x19x19 +16x3x27 +29x25x29 +18x19x5 +14x21x30 +19x13x26 +19x10x15 +9x4x7 +18x6x6 +24x25x29 +9x12x27 +15x3x22 +30x17x21 +18x19x28 +9x11x12 +8x28x22 +11x3x4 +28x17x20 +24x18x15 +11x12x13 +6x19x24 +28x4x5 +28x22x23 +13x29x2 +9x16x15 +29x28x1 +10x18x30 +19x11x12 +26x28x25 +23x17x13 +25x1x21 +17x1x27 +17x27x28 +28x13x15 +14x13x25 +11x29x7 +22x29x5 +13x6x14 +23x18x13 +25x7x17 +18x9x20 +21x11x2 +28x11x13 +13x25x1 +19x29x25 +16x29x4 +10x21x10 +7x25x17 +5x9x3 +1x15x6 +8x27x29 +23x6x30 +22x22x29 +6x20x30 +26x25x29 +10x19x19 +20x30x9 +5x30x24 +17x10x27 +30x14x30 +8x17x4 +7x18x6 +3x5x4 +24x17x15 +14x20x17 +22x27x15 +18x14x15 +23x9x11 +21x16x29 +7x18x21 +9x3x29 +10x13x4 +2x30x4 +23x20x4 +8x22x21 +29x28x4 +13x16x25 +21x9x11 +7x26x26 +13x23x30 +19x7x10 +9x23x21 +21x9x17 +9x21x15 +20x29x22 +23x13x15 +19x25x2 +12x11x30 +20x21x6 +21x6x17 +24x26x9 +29x21x29 +29x26x16 +6x16x1 +2x12x6 +6x7x20 +7x2x22 +6x22x4 +13x11x27 +25x27x14 +11x8x6 +26x11x14 +30x3x29 +27x21x20 +15x16x26 +6x22x10 +11x9x25 +23x13x6 +13x9x3 +30x22x13 +29x23x14 +25x19x6 +7x29x11 +19x18x5 +29x25x13 +25x24x27 +1x9x12 +22x9x17 +14x12x28 +19x21x17 +13x25x17 +14x25x12 +4x14x30 +7x15x28 +3x6x25 +6x2x16 +15x19x11 +17x30x20 +20x23x7 +26x21x6 +26x29x24 +2x4x30 +4x22x18 +13x3x28 +27x6x21 +5x3x27 +12x7x11 +28x11x9 +12x9x2 +1x22x20 +15x13x28 +14x19x16 +28x20x3 +20x4x9 +26x7x26 +18x19x25 +7x1x13 +20x23x29 +27x26x8 +11x15x15 +10x21x23 +29x2x11 +21x28x20 +3x18x23 +26x17x17 +14x26x17 +20x7x17 +18x12x8 +4x8x8 +8x15x23 +24x29x5 +1x25x8 +1x28x17 +16x18x13 +29x24x22 +13x16x10 +14x7x16 +15x11x29 +12x15x19 +17x6x28 +4x3x9 +15x16x8 +29x27x11 +2x24x20 +4x21x3 +29x24x27 +18x22x22 +7x8x18 +20x7x8 +19x9x2 +20x17x2 +2x29x10 +19x25x1 +28x9x3 +29x27x20 +7x21x7 +10x4x22 +26x8x5 +26x14x1 +5x27x9 +2x18x3 +3x27x17 +30x17x23 +30x11x20 +4x6x7 +6x29x27 +30x16x20 +24x30x28 +19x20x26 +18x1x25 +26x12x12 +19x15x29 +16x21x24 +23x13x26 +25x16x10 +8x9x18 +24x14x1 +24x15x21 +19x9x14 +8x23x11 +22x2x16 +29x9x26 +3x16x25 +15x20x30 +3x11x12 +15x2x3 +13x7x4 +2x7x27 +9x26x11 +30x24x19 +28x17x21 +10x8x2 +11x15x26 +10x12x20 +24x24x27 +25x26x16 +13x4x20 +25x13x11 +12x22x3 +20x7x1 +12x18x6 +26x8x20 +14x2x7 +23x12x1 +26x24x24 +27x26x23 +26x17x5 +17x24x2 +26x5x6 +23x5x1 +5x18x30 +24x21x19 +5x28x11 +21x20x14 +25x4x22 +26x24x11 +7x5x8 +13x1x30 +5x1x6 +14x5x2 +8x11x7 +13x20x1 +17x30x14 +29x22x10 +12x26x3 +27x17x3 +26x27x4 +5x26x17 +22x11x19 +8x26x3 +24x19x22 +7x1x4 +6x27x30 +4x28x14 +16x14x18 +4x5x20 +19x25x4 +15x15x1 +10x14x14 +16x18x24 +21x27x15 +5x5x10 +1x7x13 +16x2x8 +13x15x11 +3x25x10 +20x29x8 +12x3x2 +10x13x12 +25x27x1 +11x30x19 +7x19x13 +27x6x18 +16x21x19 +21x29x5 +16x23x12 +29x19x15 +5x5x10 +27x15x1 +13x16x22 +29x19x5 +8x12x9 +3x18x5 +13x25x3 +5x9x21 +10x20x16 +9x9x11 +23x21x1 +22x2x15 +27x8x13 +23x7x3 +26x30x15 +29x15x16 +16x27x13 +2x18x9 +10x27x8 +20x9x25 +10x2x17 +16x13x13 +21x26x1 +27x26x24 +9x30x16 +19x17x28 +25x15x1 +10x26x6 +10x11x11 +5x26x25 +30x4x15 +9x8x23 +14x25x7 +8x28x8 +28x18x24 +4x4x25 +16x25x11 +17x27x8 +15x16x9 +24x13x21 +17x3x27 +27x5x26 +8x27x12 +29x2x8 +24x23x30 +1x30x21 +6x18x20 +13x14x12 +25x30x23 +24x6x24 +12x7x21 +11x6x8 +8x30x30 +26x3x12 +28x6x5 +18x7x1 +7x6x20 +14x16x18 +11x22x15 +4x20x10 +19x24x19 +8x24x11 +4x9x10 +6x6x22 +10x9x29 +1x5x28 +19x25x29 +20x30x3 +15x13x13 +9x9x24 +20x14x29 +26x24x13 +2x25x8 +10x26x2 +12x19x12 +18x6x20 +4x5x14 +26x27x10 +16x26x20 +3x21x15 +2x26x18 +14x11x17 +26x26x25 +10x1x11 +17x19x19 +27x28x26 +9x2x10 +19x30x15 +23x30x14 +15x3x20 +2x14x22 +21x18x8 +22x4x29 +19x6x29 +9x26x29 +16x10x9 +22x12x22 +13x28x14 +25x14x28 +28x3x30 +10x17x1 +10x27x22 +10x23x19 +14x25x9 +11x24x8 +30x25x10 +22x13x28 +2x7x6 +11x20x8 +9x22x14 +19x16x9 +11x24x4 +11x17x2 +6x4x10 +26x10x10 +12x14x5 +27x10x3 +15x3x6 +11x7x19 +22x10x12 +21x26x10 +13x20x3 +27x8x8 +1x24x23 +24x9x22 +23x17x23 +3x28x19 +2x20x28 +23x17x24 +26x1x4 +4x1x12 +5x6x16 +13x22x13 +25x21x21 +20x21x12 +9x24x25 +17x16x12 +12x28x9 +18x16x27 +29x12x2 +30x12x15 +24x11x10 +4x9x22 +4x24x5 +19x11x5 +6x25x6 +1x20x17 +22x8x21 +11x26x4 +16x19x3 +8x12x8 +13x2x18 +10x5x11 +8x12x17 +21x2x5 +26x17x26 +23x18x17 +28x11x14 +1x4x27 +29x5x28 +5x9x10 +5x7x25 +20x15x27 +15x11x17 +12x14x1 +29x14x4 +18x14x18 +14x25x24 +26x14x18 +13x8x11 +30x1x23 +3x4x12 +12x24x9 +8x6x16 +14x15x30 +12x30x8 +22x11x18 +16x30x28 +17x18x4 +13x14x23 +2x28x8 +3x28x30 +29x30x8 +4x6x26 +6x30x17 +11x30x30 +19x4x3 +12x15x20 +22x28x4 +26x30x2 +6x12x7 +1x10x5 +25x29x7 +17x9x18 +16x21x29 +21x14x7 +15x16x11 +26x6x15 +8x24x7 +2x20x4 +2x9x3 +19x8x13 +18x7x22 +27x14x17 +2x13x8 +18x15x26 +15x27x27 +18x11x15 +1x29x20 +21x12x11 +20x2x15 +28x23x9 +1x1x17 +7x23x9 +30x9x27 +9x16x18 +15x24x28 +30x11x18 +29x26x10 +9x5x25 +2x1x19 +14x3x14 +6x3x6 +30x15x20 +20x17x27 +28x10x9 +14x24x28 +17x11x6 +12x3x6 +8x8x15 +23x14x21 +11x21x7 +5x13x30 +4x29x25 +30x28x24 +18x4x9 +3x15x6 +13x9x19 +30x14x7 +7x9x9 +17x11x26 +24x26x13 +16x21x16 +27x17x25 +2x21x11 +9x11x27 +3x3x7 +13x8x14 +20x20x26 +13x29x22 +30x11x1 +7x10x19 +27x5x9 +23x17x15 +21x6x13 +24x15x16 +18x4x14 +18x16x6 +22x11x18 +14x2x5 +15x3x7 +10x20x29 +16x1x10 +30x23x1 +10x15x11 +17x14x5 +22x8x13 +7x11x28 +26x17x3 +2x23x2 +28x13x19 +18x12x28 +22x23x16 +14x12x1 +20x8x19 +17x19x13 +29x2x12 +2x26x27 +29x16x4 +13x8x18 +16x15x30 +23x16x2 +28x8x27 +21x8x23 +13x20x26 +19x6x17 +17x30x15 +7x4x30 +2x13x30 +18x7x19 +4x13x27 +8x6x5 +18x20x25 +2x3x30 +23x27x13 +22x30x4 +23x25x25 +23x16x19 +25x3x1 +5x6x15 +11x29x12 +25x24x7 +16x7x20 +20x3x2 +12x27x15 +16x10x12 +1x3x14 +22x1x26 +2x24x18 +11x29x16 +15x2x9 +10x1x24 +21x8x11 +30x11x23 +6x30x21 +13x27x29 +14x6x5 +18x29x19 +12x4x28 +29x3x14 +10x30x28 +5x7x15 +14x1x10 +9x25x14 +7x24x18 +28x17x21 +18x13x25 +26x15x1 +21x1x19 +12x16x21 +4x6x13 +7x15x26 +17x19x5 +12x28x2 +1x20x19 +27x7x5 +17x26x8 +12x15x19 +5x23x10 +8x2x8 +16x13x12 +14x27x1 +26x29x3 +24x16x14 +14x13x13 +7x22x23 +2x9x30 +4x27x8 +26x27x15 +23x1x6 +25x29x18 +5x18x1 +20x8x20 +5x10x25 +30x25x15 +7x22x25 +28x26x17 +29x4x1 +21x11x27 +20x9x8 +25x22x12 +2x11x11 +23x2x16 +23x27x20 +2x13x28 +27x2x24 +11x1x17 +12x4x27 +16x20x22 +30x12x10 +5x15x4 +5x2x27 +12x4x25 +1x16x4 +27x4x4 +21x16x3 +27x26x3 +24x6x6 +24x12x12 +20x20x25 +8x29x2 +21x4x5 +2x4x8 +4x13x19 +3x20x10 +12x15x16 +6x5x4 +12x16x20 +22x19x17 +8x17x22 +25x16x15 +7x1x19 +10x1x7 +23x23x5 +28x6x12 +2x25x12 +10x27x12 +24x27x19 +14x14x20 +4x1x5 +16x27x29 +20x20x24 +28x24x30 +6x15x15 +9x15x30 +23x26x3 +17x24x21 +22x25x25 +18x29x10 +20x25x1 +24x11x16 +20x7x21 +20x7x9 +7x26x2 +5x18x1 +16x26x28 +4x10x18 +27x30x21 +26x9x9 +8x16x14 +6x27x8 +28x9x20 +13x13x4 +9x18x16 +18x15x18 +22x19x14 +14x10x17 +25x29x11 +1x18x19 +8x11x26 +18x6x14 +30x24x13 +27x1x27 +15x9x3 +2x29x17 +2x26x21 +22x9x9 +20x20x20 +22x28x2 +26x5x16 +11x3x14 +21x16x16 +18x26x7 +18x30x6 +7x11x12 +15x10x2 +27x2x16 +27x30x24 +28x14x24 +7x4x8 +6x28x15 +13x19x1 +22x26x30 +7x30x24 +2x17x21 +19x26x2 +19x24x15 +14x23x2 +21x27x15 +30x15x14 +21x29x5 +23x30x2 +4x1x2 +15x5x13 +21x2x30 +20x7x16 +1x21x25 +2x25x1 +12x29x5 +28x13x16 +26x3x12 +29x20x23 +28x12x20 +4x30x8 +16x15x16 +6x16x29 +2x28x13 +24x25x2 +26x15x22 +17x20x11 +18x12x7 +19x1x18 +8x27x13 +22x16x8 +19x26x17 +13x11x10 +22x12x3 +13x12x14 +29x17x9 +6x14x10 +14x20x10 +8x26x9 +25x13x22 +3x30x25 +14x28x1 +30x29x12 +3x17x15 +3x24x14 +28x24x22 +16x6x1 +20x25x14 +17x17x13 +6x19x27 +10x15x20 +8x23x20 +7x29x21 +18x9x25 +10x5x22 +2x27x27 +16x18x30 +15x5x12 +26x29x29 +28x11x10 +9x29x28 +24x15x23 +26x9x10 +5x1x25 +22x27x16 +7x29x3 +1x3x5 +8x7x29 +19x21x11 +28x13x30 +17x16x20 +5x10x25 +9x14x15 +15x14x23 +16x4x17 +21x8x2 +9x9x8 +22x22x4 +10x2x27 +12x19x10 +15x29x4 +22x14x7 +29x18x5 +1x7x27 +24x1x15 +23x23x26 +12x17x23 +26x10x24 +8x22x2 +8x1x10 +22x19x12 +2x23x13 +11x27x25 +26x15x27 +27x7x21 +18x9x6 +22x21x22 +7x12x26 +23x21x13 +14x3x8 +5x9x28 +29x29x15 +27x25x23 +12x2x24 +8x2x20 +29x19x4 +12x24x29 +2x27x28 +14x20x9 +28x6x25 +18x29x8 +19x11x30 +15x11x23 +18x7x7 +14x20x14 +26x18x22 +27x25x13 +12x10x30 +30x2x7 +28x10x1 +18x10x30 +22x11x5 +22x16x3 +25x15x9 +5x10x24 +4x28x8 +19x24x18 +3x4x25 +14x4x30 +11x26x3 +12x12x12 +26x7x24 +3x2x14 +1x27x7 +2x2x13 +3x26x26 +12x4x11 +12x17x20 +4x19x30 +5x18x10 +17x6x18 +19x30x20 +11x2x17 +30x13x19 +22x23x7 +17x28x2 +5x17x30 +7x11x4 +21x26x18 +15x28x4 +5x6x27 +12x6x16 +9x17x12 +27x20x5 +14x5x20 +27x14x6 +2x14x21 +4x28x30 +24x5x1 +19x29x29 +11x23x1 +8x16x21 +3x17x19 +10x13x5 +20x21x16 +23x3x6 +27x26x11 +3x2x22 +14x3x5 +10x9x8 diff --git a/2015/inputd3.txt b/2015/inputd3.txt new file mode 100644 index 0000000..e69cd4f --- /dev/null +++ b/2015/inputd3.txt @@ -0,0 +1 @@ +^^<<>^^>^^^><^>v^>v><><><^^v>v^v>>>^<>v<^<^>>>>><>^>>^>v^>><<^>v>v<>^v^v^vvv><>^^>v><>^><^^^v>>^v^>v><>v^^><vv^<<>v>>><<<>>^^^vv>>>^><<<>><><^>v<>^>v<^v^><<<<>^<>v>^v>vv<^<<>>>>^^v>vv^^<>^<>^^^^<^^^vv<^^v^^>v>^v^^^^>><v<>^v^><>^^><<^^<^^>vv<>v^<^v^>^^>^<>v^^vv<>>v><<<>vvv<>v<>><^<^v<>^vv>^^v<^<>>vv<^>>^>>vv^v>^v^<>^>>>>vv>^^>v>vv>v><^vv^<^<<^^vv^^v>^>>v><^<>v<><>^^<>v>><>^^>^^>>vvv^><<<<<^<^vv<^<>^^^<<<^>^^^vv<>^<>v<^v>^<<>^v<>>v<<^<^<<<><><>^>>>>^>v^v<>vv<^vvv^^^^vv>^v^^v^<^vv<^vv>v<^>vv<>>^>^><^>v>^v>vvv<>^>^v<><>vv>><^v^<><>>v^v^><^<^>vv>v<^>vvv>v<<<<<^>^vv>^><><>^<v^>^><><>>^>^>><^^^>^^>^^v^^<^v^^>v^^>>><<><><>^^<<^^v^>v>><>^^^><^vvv<^^^^^v><<><><>>^>vv>>^vv^^><v<^^>^<^^<^>>>^v<>v<^^^>vvv^v<<^><>>>>v>>>^^vvv^vvv<^^^^v^v^^<<^>v^v^<<><>><^v><<>><<<>^v>v<>^^vv>>^<>v^^<<^v>>v<>>^v^^>><^>v^<^v^^>><>v^>^v^v<<v<><>vv>>>>^>v<>v<<<>^^>vv^v<>^<<<<>>^^>^v<>^v<>>^v^<<^<^>>>^vv<>v^>>v<^^v>>^>><<><<<>>>^v>><^^vv>><>v^><>vv<^^v^^^v<>><^vvv<<^<>v>>>v>><>>><>>^v>v>^^<^>^>v><>vv>^v><<>>>>>>>^<<^vv^^vvvv<^^><<vvv<>^><v<>>^^<<^^vv>v>^vv>>^v^^vvvv>^^>>v^v^^><<^>v>>^^>^<^^<>vvv^vv>v>^v<><^vv^>^v>>>^^<^<^>^v^>^>>>^v>^>^^^>>^<>v^^<>^v<<^^>^^v<^v^>><^v^>^<>>^vv^vv^>v^><^^<^v<^><>v><^v^v^^^v>v^<>^<^^>^v^^<>v^<<>>vv<>>>>v>v<>^>>>v<>^^>^<^><>^><><>^<<>>><<^>^vv^v>>vv^<<^^<<><<^v^>>>v<<<v>^vv<^v>v<^>^^vv>v>><>><>^<>><><<^<<^v^v<v>vvv<^v^^^v^><^v>^<^>^<<>v^<><>>^v<>vvv<^>><^^>^>^v^vv<^><<^v>><^^v>^v<>^>vvvv><^>^<<>v>^>>^<^<<<^v^^^>^>>^>><><<^>v^^>v<<<^>vvv^^<<><^v^v^^^>^^>^vv<>v>>v^>vv^vv>v<^v^^>>^v^v<>>^^><><>>>^>^<>^^v^^><^<>><<^>vv^>>>v<<><<^>vv>vvv>^<><>>>>vv><<><<<<>><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>>><><<>^>v><><<<>^^^v>><<^v>^>>>>^vv<^<>>^<^^<^v>v^<<^<<<<<^<^>>^><<>><>v^v>^<^>v^<>^v^v^v><^vv<<^<>^^^<>^v>^v<>>^>v<<>v<>v^v>v<<<>>v>vv>>v<<>v<>v<^>^>^>v>^>^^^v<<>>>^vvv^^>^^<^vv^^^^>v>^v^>v^^v^>>^v>^vv>^^v^<<<<>^<><^<^<<^^>v^^^v<>>vvv>vv>^<^v>>^v<^^v^v>v<>^v<<<^^v^^^<^v>v^v^v>>v<>^v>vv^v>vv<<^v^v>v>><^vv>>>><<<><>^v^<^vvv>v<>><^v>^>>vv<><><>v><>>><^>vv>>^<>v^>>^><<<^><<>^v^>>><><>vv>^<>^>^v^^><^>>><<>v^<^vv>^<^vv>>vv<><<^><>v<^^<^>vv^^^^vv<<>vv<>v<>>>>^><>^<><>v<>><<>^^vvv>^^^<><>>vvv^v>><>vv^^^v^<<>^^v<><<^^v<>^^>^<^^v>>v^v^^>>v>>>^<<^<>^>^^v>>>>^v<<<^^vv><^>vv<>>vv^>v>>v^vvv^^>vv^<v^>>v^<>>><><<^^<^v>^>>>v>v>^v<>vv>v>^v<<<>><<><><>v^>>>v^>v^>>vv^^^<>>><^>v^<>^^>v<><<<>v^v>^>v<^<>v>v^^>>v>vv^v<>>^^^^<>v^>>>>>>>>^v<^<<>>><<<^<<^>^>v^<>^<<<>v>><^vv^>^>^>>>^v<<>^>^v^><>>v^>v^>^>>v<>vv^v<<>^^>>vv<>vv>>^v<^vv>^v>v<>v^<><>v^^><<<><>^>^v^<>>v^v>v<>>^^<<^<^^vv^<>>^vv^<>>^^^^v>v><^^^v^<<<>^<^<<>><>>v<<^v^>><>>^vv^v>vv>>>>>>^^<<>v^>v^v>^^>>>^v>>^^^<>><>v^<<v>v^^^>^v>^v<^<<><>vv>^^^<^^vv^^>vv>v<<^>^vv><^>^^^^v<v^<<^^>>^^vvvv^v^>vv>>v^vvv<>>^><>>v^^>>^<>>vvvv^>>>v<<^<<^>v^>><<v>v^>^v><>v<<>vv>>><^>>^^v>^>><>vv^><<>>vv<<<^<^^>^<<^>>>>>v>vv<^>^v><>>vv^vvvv>v^>>v><<^^^v>>vv^^>v>^v>^v^^>^<^vvvv<<^>>^<<^^>>^<^>v^><^vv>^^v>>><>v^v>^v<^><<<>vv>v<><>>v^<>^^>^<>^<<^>>vv^><^>v^>>v^>v>vv><>>v<^>><<vvv^vvv^vv^>^>v>>>>vv^>^<>v<^>^<^v>vv<^<<>>^<^<^^<>^<v<<>v>><^v<<^vvv>v>v<<^^<^^>v^^^>^>vv^^^vv>v<>>>vv>><><^><><<>vv>vv^v^>>><>v>>vv>^^vvv^>^^>^>^>^v<<^vv^>vvv^^vv><^>^v^>^><>v<^^vv<^<>>^^v^v>v^vv<>><^v>^<^v>^<>^v>>>><>>>v><^v^vv><<^v<<>^^<^v>vvv<><^^><<^v><>^<^v<^^<^vvvv^^>>>>vv>v>>>v<<<>v^>>vv^vvv<>vvv>>>><>>><>^v>><>>^vv<<^^vv><^v^vv^^^vv>^><^vvv<<>^vvv^>>>^<<<><<<<<^v<^^>>>>^>^v<<<^<^>>v^<<><<^^vvv^>v<>>^^>v>^v>>v>>>^<^<^>v^v^>><>^<<^vvv^^<>^v^>^^<<^>^vv>>v^v^>v>^<^^<>^>^>>>^^vvv^<<>v^<<>><>v<^<^>v^>^vv>^>>^<^v^<<<<^v^>v^><<<><^^^^>v>^^>v><>>^><<><^<>>^^>vv<^><^v^>>>vvv<^<>>^>>^v^<^^v>^^^v<^vv^>>^v><<^<><>>^>vv<<>^^^v^^><>>vv>v^>vvv^^v>^>>^>>v^<<v^<^v^vv^><^<^v<v>^v^<<^^>>^^^v>>>><^^v^>>^^>>^v^<^v>v^v^v^v^>v^vv<><>^^<>^><^^^<<<^v<<>^<^^^^^v^<^<<^^>^vv<>v^>><>>^>v>v<>^>v>><>^<>>>^>^>>v^>v><^vv^>v<v<><^><^v<<>v<>^^><<>v>vv<^vvv><><>vv^<<>^>^<^>>>^v>v<^v^^^vv<>>>^<<^>>><<^^v^>v^<^v>vvv>v^^vv>^^>>v<>^<<>^<><^^v^>><>^>v>>^^^<<^^v<>^^>^<>^>><^>^vvv><^>^<^>^>>vv<^>>^v>>^<>>^^>>>v^>v<>v^^vv>v><^v^^>v<<>v^^<><>^>vvv><^^^>^v^>v>>^vvv<^vv>^^>^>>v<>><<^v<^><>vv^<<^^vv>>^<^><^^v^<<>^v^^>v^>>^^^<^vv>v^>>>vv<<>v>>>^>v^^>v^<<>>vv<<^v>v<<^^>v>>v>v^>>^>>v>^><<^<<>^v>><^^<^<<^>vv<<>^<>^vv>^^^v<^v>vv>^^^^>v>v><<^<<<^vv><^<<<>>v<v>^v^v^<^<^vv>vvv<^^v<>v<<<<>v^<<><<<>v<^>^^v<^^v^>vv>vvv>v>>^><^>>v<v<<^^^v<<^v^^><><<<><<>v>^<<>v<<<^v>>v>><<^<><^v^^v^>^>vvvv<<><<>>^^^>v>v^><>>><^><<><<<^<>v^>>^v^>v^<>>v>^^><^<^v^>v>^vvv<>>v<>^vvvv><<<<<<<v<<<<^v<<><^<<>vv^<<>><^^<<>>>vv>>>>>>^v>v^v^^><<^v^^^<>^>>><>v^v^vvv^>>v>>>^^<<^^vv><<<^^^<<<^^>>>>vvv^v<^>^^>v<^<>v>>>^vv<<^^v^>^>^v>v>v^v^>v<><>>>>><<^v^<>^v<>vvv^>v>v^<><><>^>>><>^>^^<>v^^>^><>><>v^v^^v>>>>vv>>^v<<^v^<>^>v^^>^^<^><<<^^^v^^^^v<^<>v<^^<>vv^^v^<>^<<^>>v>v<<<^^^^vvv^<^<><>v<>><<><<^^^^vv><<>>>^v<<>^>>>v^>v>^^<>^<^>v>^>>>><>^^>v^^v>^vv^^v^><<<>>v<>v<<<>^<^<<>v>>>>^<vvv<^><^<<^>v>>v><>^>>>^v^v>v^^vv^>^<^^>>^><^vv^^vv^<>>^^^^<^^><>>^>>^>^vvv<^<^><>>>^^<><><<>>>>^<<>>>^<^v^>><<^>>>^<^>><>^^<>^v^^vv<><^>vv^^v^<^^^v^vvv^>><>>v<>^<^vvv<<^^>vv^^<<>>><^^vvv<<<^>^<><^>vv^><^<<>vv<>vv>v>v^<<>^^^^v^^^^^<<^><><^^v^>v>^>><^><<>v^>>^vvv>>^<^<>^^v^vv^^v><>>v<<<>v>^<>v<<>v^>^<<><<>v^>v<><^^>^<^v^^><^>vv>^>vvvv>^^><<>vv^>^v<<^<<^<<>vv>>^>>>>>v^v<^v>v>^^^vv^v<^<>v><>>vv>v><>v>^v<><<<<<>v^vv<<<<^<>^>><>^^vv>^<^<<>vv>>vv><>><^^><^<>^><>v^^^^v^^vv<>v<>v>^vv^>^<>^^^>v^>>>v><<^>>v<^v<>^^v<><<>v<^<^>v<>v^>v>^^<<<^^vv^<><<<>>v>^^<>v>>>><<>v^v<>v>><<<<^<<^>^>v^vv^><^v^^<>^^><>vv>^>vvv<^v^>>^>^>^^<<^>^>^v><>>^<^^v>^>>^^<><>>>^^>^^vvv>v<^^<>v^v^^v^v>><<^^^>>v>^vv>^>^^v<>^^<>v^^<>v^><<>vv<<^vvvv><<v>v^>v^<>v^>^^<>^>^^v<>><<<>^v^^v^v<<<^v^<>^<>v>^^>vv>^^<<<><<^>v<^^<^<<>^>>>>>^v^v<vvv<<>v>v>>^v^v^>><<<<>v^<<>>>^>>^>>< diff --git a/2015/inputd4.txt b/2015/inputd4.txt new file mode 100644 index 0000000..0f84c61 --- /dev/null +++ b/2015/inputd4.txt @@ -0,0 +1 @@ +iwrupvqb diff --git a/2015/inputd5.txt b/2015/inputd5.txt new file mode 100644 index 0000000..7bc179c --- /dev/null +++ b/2015/inputd5.txt @@ -0,0 +1,1000 @@ +uxcplgxnkwbdwhrp +suerykeptdsutidb +dmrtgdkaimrrwmej +ztxhjwllrckhakut +gdnzurjbbwmgayrg +gjdzbtrcxwprtery +fbuqqaatackrvemm +pcjhsshoveaodyko +lrpprussbesniilv +mmsebhtqqjiqrusd +vumllmrrdjgktmnb +ptsqjcfbmgwdywgi +mmppavyjgcfebgpl +zexyxksqrqyonhui +npulalteaztqqnrl +mscqpccetkktaknl +ydssjjlfejdxrztr +jdygsbqimbxljuue +ortsthjkmlonvgci +jfjhsbxeorhgmstc +vdrqdpojfuubjbbg +xxxddetvrlpzsfpq +zpjxvrmaorjpwegy +laxrlkntrukjcswz +pbqoungonelthcke +niexeyzvrtrlgfzw +zuetendekblknqng +lyazavyoweyuvfye +tegbldtkagfwlerf +xckozymymezzarpy +ehydpjavmncegzfn +jlnespnckgwmkkry +bfyetscttekoodio +bnokwopzvsozsbmj +qpqjhzdbuhrxsipy +vveroinquypehnnk +ykjtxscefztrmnen +vxlbxagsmsuuchod +punnnfyyufkpqilx +zibnnszmrmtissww +cxoaaphylmlyljjz +zpcmkcftuuesvsqw +wcqeqynmbbarahtz +kspontxsclmbkequ +jeomqzucrjxtypwl +ixynwoxupzybroij +ionndmdwpofvjnnq +tycxecjvaxyovrvu +uxdapggxzmbwrity +csskdqivjcdsnhpe +otflgdbzevmzkxzx +verykrivwbrmocta +ccbdeemfnmtputjw +suyuuthfhlysdmhr +aigzoaozaginuxcm +ycxfnrjnrcubbmzs +fgbqhrypnrpiizyy +taoxrnwdhsehywze +echfzdbnphlwjlew +jhmomnrbfaawicda +fywndkvhbzxxaihx +aftuyacfkdzzzpem +yytzxsvwztlcljvb +iblbjiotoabgnvld +kvpwzvwrsmvtdxcx +ardgckwkftcefunk +oqtivsqhcgrcmbbd +wkaieqxdoajyvaso +rkemicdsrtxsydvl +sobljmgiahyqbirc +pbhvtrxajxisuivj +ggqywcbfckburdrr +gmegczjawxtsywwq +kgjhlwyonwhojyvq +bpqlmxtarjthtjpn +pxfnnuyacdxyfclr +isdbibbtrqdfuopn +vucsgcviofwtdjcg +ywehopujowckggkg +mzogxlhldvxytsgl +mllyabngqmzfcubp +uwvmejelibobdbug +brebtoppnwawcmxa +fcftkhghbnznafie +sqiizvgijmddvxxz +qzvvjaonnxszeuar +abekxzbqttczywvy +bkldqqioyhrgzgjs +lilslxsibyunueff +ktxxltqgfrnscxnx +iwdqtlipxoubonrg +twncehkxkhouoctj +bdwlmbahtqtkduxz +smbzkuoikcyiulxq +bjmsdkqcmnidxjsr +icbrswapzdlzdanh +eyszxnhbjziiplgn +pdxhrkcbhzqditwb +nfulnpvtzimbzsze +glayzfymwffmlwhk +bejxesxdnwdlpeup +ukssntwuqvhmsgwj +hoccqxlxuuoomwyc +rapztrdfxrosxcig +cxowzhgmzerttdfq +yzhcurqhdxhmolak +kqgulndpxbwxesxi +yjkgcvtytkitvxiu +xnhfqhnnaceaqyue +qkuqreghngfndifr +xesxgeaucmhswnex +occbvembjeuthryi +dmefxmxqjncirdwj +ystmvxklmcdlsvin +pplykqlxmkdrmydq +cbbjkpbdvjhkxnuc +embhffzsciklnxrz +asrsxtvsdnuhcnco +xcbcrtcnzqedktpi +mglwujflcnixbkvn +mnurwhkzynhahbjp +cekjbablkjehixtj +kbkcmjhhipcjcwru +usifwcsfknoviasj +rsfgocseyeflqhku +prgcyqrickecxlhm +asbawplieizkavmq +sylnsirtrxgrcono +nzspjfovbtfkloya +qfxmsprfytvaxgtr +yckpentqodgzngnv +ycsfscegcexcnbwq +kbmltycafudieyuh +tpahmvkftilypxuf +qivqozjrmguypuxu +gdhbfradjuidunbk +vxqevjncsqqnhmkl +rpricegggcfeihst +xucvzpprwtdpzifq +egyjcyyrrdnyhxoo +kfbrzmbtrrwyeofp +qpjdsocrtwzpjdkd +reboldkprsgmmbit +vwkrzqvvhqkensuy +ydvmssepskzzvfdp +vqbigplejygdijuu +mzpgnahrhxgjriqm +uiejixjadpfsxqcv +tosatnvnfjkqiaha +yipuojpxfqnltclx +pcxwvgcghfpptjlf +shrudjvvapohziaj +jdckfjdtjsszdzhj +hgisfhcbdgvxuilk +gytnfjmrfujnmnpp +ohflkgffnxmpwrrs +jzxajbkwwjknasjh +xrcxfollmejrislv +djjlwykouhyfukob +rittommltkbtsequ +lpbvkxdcnlikwcxm +vkcrjmcifhwgfpdj +dkhjqwtggdrmcslq +swnohthfvjvoasvt +yrzoksmcnsagatii +duommjnueqmdxftp +inlvzlppdlgfmvmx +xibilzssabuqihtq +inkmwnvrkootrged +ldfianvyugqtemax +gbvwtiexcuvtngti +temjkvgnwxrhdidc +askbbywyyykerghp +onezejkuwmrqdkfr +kybekxtgartuurbq +ubzjotlasrewbbkl +stueymlsovqgmwkh +lhduseycrewwponi +yohdmucunrgemqcu +onnfbxcuhbuifbyc +odrjkigbrsojlqbt +imqkqqlkgmttpxtx +sxmlkspqoluidnxw +akaauujpxhnccleb +xvgpghhdtpgvefnk +jdxeqxzsbqtvgvcq +mdusenpygmerxnni +agihtqvgkmgcbtaw +dovxcywlyvspixad +uulgazeyvgtxqkfz +ndhmvrwuflhktzyo +hcaqkmrbvozaanvm +tvfozbqavqxdqwqv +rlkpycdzopitfbsv +dmyjtmjbtnvnedhs +fmwmqeigbzrxjvdu +twgookcelrjmczqi +grxosmxvzgymjdtz +zsstljhzugqybueo +jpeapxlytnycekbd +iasykpefrwxrlvxl +azohkkqybcnsddus +aoaekngakjsgsonx +awsqaoswqejanotc +sgdxmketnjmjxxcp +ylnyuloaukdrhwuy +ewoqjmakifbefdib +ytjfubnexoxuevbp +ewlreawvddptezdd +vmkonztwnfgssdog +ahbpuqygcwmudyxn +kmahpxfjximorkrh +otjbexwssgpnpccn +aewskyipyztvskkl +urqmlaiqyfqpizje +nrfrbedthzymfgfa +vndwwrjrwzoltfgi +iiewevdzbortcwwe +qiblninjkrkhzxgi +xmvaxqruyzesifuu +yewuzizdaucycsko +hmasezegrhycbucy +dwpjrmkhsmnecill +hnffpbodtxprlhss +avmrgrwahpsvzuhm +nksvvaswujiukzxk +zzzapwhtffilxphu +vwegwyjkbzsrtnol +qurpszehmkfqwaok +iknoqtovqowthpno +brlmpjviuiagymek +efxebhputzeulthq +mzkquarxlhlvvost +xsigcagzqbhwwgps +qufztljyzjxgahdp +dlfkavnhobssfxvx +hgdpcgqxjegnhjlr +fboomzcvvqudjfbi +wnjuuiivaxynqhrd +nhcgzmpujgwisguw +wjeiacxuymuhykgk +qmeebvxijcgdlzpf +nmmnxsehhgsgoich +ejluaraxythbqfkl +mdbsbwnaypvlatcj +nnfshfibmvfqrbka +dvckdmihzamgqpxr +foztgqrjbwyxvewk +okpryqcbvorcxhoh +fpiwsndulvtthctx +zrbiovlmzdmibsiq +setwafbnnzcftutg +nyvqghxhgkxfobdm +enpvqadzarauhajl +twblhpvkazpdmhmr +lbhlllsgswvhdesh +tdfwkgxnqjxcvsuo +lnvyjjbwycjbvrrb +jsxqdvmzaydbwekg +xirbcbvwlcptuvoa +hwnukxenilatlfsk +khwopjqkxprgopmd +sljzdoviweameskw +stkrdmxmpaijximn +fdilorryzhmeqwkc +mfchaaialgvoozra +gjxhoxeqgkbknmze +beowovcoqnginrno +mkgmsgwkwhizunxo +phnhfusyoylvjdou +csehdlcmwepcpzmq +pgojomirzntgzohj +fkffgyfsvwqhmboz +mrvduasiytbzfwdn +epzrmsifpmfaewng +ooqxnoyqrlozbbyf +ahcxfmgtedywrbnx +ibqktvqmgnirqjot +xarssauvofdiaefn +xradvurskwbfzrnw +nxklmulddqcmewad +twichytatzoggchg +qmgvroqwrjgcycyv +yvezgulgrtgvyjjm +jgmcklzjdmznmuqk +bytajdwwconasjzt +apjttucpycyghqhu +flfejjzihodwtyup +gmrtrwyewucyqotv +nlohdrlymbkoenyl +wxcmqwbrwgtmkyfe +njtzlceyevmisxfn +htbbidsfbbshmzlt +gxhjeypjwghnrbsf +cifcwnbtazronikv +ezvjijcjcyszwdjy +srffeyrvyetbecmc +xpjefrtatrlkbkzl +yhncvfqjcyhsxhbb +pqhcufzlcezhihpr +qtdsfvxfqmsnzisp +dfonzdicxxhzxkrx +mqqqzhxkyfpofzty +dodjadoqyxsuazxt +jjwkrlquazzjbvlm +ttosfloajukoytfb +llateudmzxrzbqph +criqihrysgesmpsx +npszvlittbcxxknj +qmzojrvraitrktil +cfyoozzpwxwkwoto +daxohtcgvtktggfw +vthkpkoxmiuotjaj +pkfkyobvzjeecnui +ojcjiqrfltbhcdze +scbivhpvjkjbauun +ysowvwtzmqpjfwyp +laeplxlunwkfeaou +jufhcikovykwjhsa +xrucychehzksoitr +pyaulaltjkktlfkq +oypfrblfdhwvqxcv +zybrgxixvhchgzcf +puoagefcmlxelvlp +xjnhfdrsbhszfsso +ocgvzryoydaoracw +bxpnqllmptkpeena +pziyeihxlxbbgdio +bvtrhtlbfzmglsfc +ggpuvtseebylsrfk +pukenexjqecnivfj +jswabfbzpnhhdbpn +enojrtwqpfziyqsv +rjtmxudgcudefuiz +iqmjxynvtvdacffc +uheywxlsusklitvl +kwhxduejafdpmqdc +rspgblenbqlmcltn +rczhurnrqqgjutox +dqhytibjzxkdblzl +hpbieadydiycvfys +pucztfoqvenxiuym +nqpfzgpblwijiprf +ltgseeblgajbvltk +mwxukbsnapewhfrc +dvxluiflicdtnxix +pexfbpgnqiqymxcq +dakudfjjwtpxuzxy +letlceyzlgmnrewu +ojktahbsdifdfhmd +anezoybbghjudbih +sawxtlvzysaqkbbf +ttnkctcevpjiwqua +edrwrdvbaoqraejd +wnbfilvuienjxlcr +wqhzwvyybyxhhtsm +jxbgvyaqczwdlxfo +wbypqfmbwrsvfmdv +izdxjyfpidehbets +vbxbggqseurknjor +egpmpoxickhvwdlz +ivfrzklvpwoemxsy +xkziseheibmrpdww +xnrmtoihaudozksa +efemdmbxdsaymlrw +yjdjeckmsrckaagx +vlftqxxcburxnohv +fwyquwgajaxebduj +dwpmqvcxqwwnfkkr +isduxxjfsluuvwga +avdtdppodpntojgf +vrcoekdnutbnlgqk +kbhboxjmgomizxkl +cgsfpjrmewexgzfy +usdtnhjxbvtnafvp +bjoddgxbuxzhnsqd +hoyqdzofddedevsb +rwiwbvqfjajotaoj +iabomphsuyfptoos +bubeonwbukprpvhy +xurgunofmluhisxm +puyojzdvhktawkua +dbvqhztzdsncrxkb +oaeclqzyshuuryvm +nmgwfssnflxvcupr +vjkiwbpunkahtsrw +romyflhrarxchmyo +yecssfmetezchwjc +qwtocacqdslhozkd +mesexvfbtypblmam +mtjucgtjesjppdtt +pvodhqqoeecjsvwi +vvlcwignechiqvxj +wiqmzmmjgjajwgov +kwneobiiaixhclev +lkdeglzrrxuomsyt +oqovuwcpwbghurva +lfsdcxsasmuarwwg +awkbafhswnfbhvck +sztxlnmyvqsiwljg +hozxgyxbcxjzedvs +oifkqgfqmflxvyzn +mfvnehsajlofepib +delgbyfhsyhmyrfa +uenimmwriihxoydv +vjqutpilsztquutn +kfebsaixycrodhvl +coifyqfwzlovrpaj +xiyvdxtkqhcqfsqr +hoidcbzsauirpkyt +fiumhfaazfkbaglq +fzwdormfbtkdjgfm +faxqrortjdeihjfv +ljhaszjklhkjvrfi +pzrxsffkuockoqyl +immbtokjmwyrktzn +lzgjhyiywwnuxpfx +vhkocmwzkfwjuzog +ghntjkszahmdzfbl +gbcthxesvqbmzggy +oyttamhpquflojkh +nbscpfjwzylkfbtv +wnumxzqbltvxtbzs +jfhobjxionolnouc +nrtxxmvqjhasigvm +hweodfomsnlgaxnj +lfgehftptlfyvvaj +ccoueqkocrdgwlvy +euhgvirhsaotuhgf +pdlsanvgitjvedhd +seokvlbhrfhswanv +pntdqaturewqczti +jkktayepxcifyurj +dhzzbiaisozqhown +wehtwakcmqwczpbu +zwvozvspqmuckkcd +efucjlrwxuhmjubr +lzodaxuyntrnxwvp +qdezfvpyowfpmtwd +mizijorwrkanesva +txmitbiqoiryxhpz +xhsqgobpouwnlvps +muixgprsknlqaele +disgutskxwplodra +bmztllsugzsqefrm +ymwznyowpaaefkhm +ebfifzloswvoagqh +pkldomvvklefcicw +ziqzbbfunmcgrbtq +iuekfpbkraiwqkic +jflgjidirjapcuqo +achsfbroyrnqnecg +udbhouhlgjjzapzr +arerrohyhhkmwhyo +txyjzkqexgvzdtow +ogzrjwibvzoucrpg +rfdftaesxdnghwhd +axdhwmpuxelmpabo +gtktemowbsvognac +wkfuclilhqjzxztk +qbwjouutzegaxhrz +opfziwqqbwhzzqhj +pvcvcsupfwsmeacs +xsbohvbguzsgpawn +sczoefukwywxriwj +oqkhcqfdeaifbqoc +vtsrholxbjkhwoln +yuvapljnwbssfbhi +dxdfwccqvyzeszyl +gdbmjtonbiugitmb +qunirtqbubxalmxr +zzxsirhdaippnopr +fibtndkqjfechbmq +gqgqyjvqmfiwiyio +ihwsfkwhtzuydlzw +eygyuffeyrbbhlit +zdlsaweqomzrhdyy +ptbgfzuvxiuuxyds +llxlfdquvovzuqva +wfrltggyztqtyljv +kwipfevnbralidbm +gbhqfbrvuseellbx +obkbuualrzrakknv +hlradjrwyjgfqugu +vtqlxbyiaiorzdsp +tedcbqoxsmbfjeyy +cxdppfvklbdayghy +gjnofexywmdtgeft +ldzeimbbjmgpgeax +egrwsmshbvbawvja +vadfrjvcrdlonrkg +mojorplakzfmzvtp +jyurlsoxhubferpo +ijwqogivvzpbegkm +cnmetoionfxlutzg +lawigelyhegqtyil +mqosapvnduocctcd +eqncubmywvxgpfld +vigfretuzppxkrfy +ncwynsziydoflllq +cbllqinsipfknabg +ndtbvdivzlnafziq +iqrrzgzntjquzlrs +damkuheynobqvusp +jxctymifsqilyoxa +ylritbpusymysmrf +paoqcuihyooaghfu +obhpkdaibwixeepl +igrmhawvctyfjfhd +ybekishyztlahopt +vkbniafnlfqhhsrq +kltdigxmbhazrywf +ufhcoyvvxqzeixpr +klcxdcoglwmeynjt +funpjuvfbzcgdhgs +akgyvyfzcpmepiuc +zhlkgvhmjhwrfmua +ibsowtbnrsnxexuz +vpufbqilksypwlrn +ngrintxhusvdkfib +ziuwswlbrxcxqslw +sucledgxruugrnic +zwnsfsyotmlpinew +oaekskxfcwwuzkor +qjmqwaktpzhwfldu +tmgfgqgpxaryktxo +qfaizepgauqxvffk +addkqofusrstpamf +shdnwnnderkemcts +gwfygbsugzptvena +fpziernelahopdsj +bkkrqbsjvyjtqfax +gxrljlqwxghbgjox +ipfwnqaskupkmevm +nnyoyhnqyfydqpno +lgzltbrrzeqqtydq +fgzxqurhtdfucheb +jvpthtudlsoivdwj +bmlhymalgvehvxys +fhklibetnvghlgnp +hfcyhptxzvblvlst +donanindroexgrha +oqawfmslbgjqimzx +jzgehjfjukizosep +bhlgamcjqijpvipb +jrcrdjrvsyxzidsk +ouwfwwjqezkofqck +wrvsbnkhyzayialf +knhivfqjxrxnafdl +hbxbgqsqwzijlngf +qlffukpfmnxpfiyq +evhxlouocemdkwgk +baxhdrmhaukpmatw +nwlyytsvreqaminp +ljsjjzmlsilvxgal +onunatwxfzwlmgpk +njgolfwndqnwdqde +ngdgcjzxupkzzbqi +ieawycvvmvftbikq +ccyvnexuvczvtrit +enndfwjpwjyasjvv +tcihprzwzftaioqu +bkztdkbrxfvfeddu +qkvhtltdrmryzdco +rurtxgibkeaibofs +mjxypgscrqiglzbp +unpkojewduprmymd +csqtkhjxpbzbnqog +mednhjgbwzlhmufi +sfrwfazygygzirwd +ijqeupbrhhpqxota +cmhpncanwudyysyh +wwcxbwzrplfzrwxd +jriomldifuobjpmq +radonyagpulnnyee +ryqjwxsspbbhnptd +yeoqpnsdhludlmzf +qsqlkeetyalenueh +qnnedenwsjdrcrzt +lejkuhsllxbhfcrx +anddbvllrrqefvke +wdtljquijaksvdsv +adslgvfuqqdkzvbc +whbccefjpcnjwhaq +kqrfuankaibohqsg +fyxisfwihvylgnfd +rwqdrddghyqudcif +syhzowthaaiiouaf +zjmrtgrnohxmtidu +deecwkfvjffxrzge +dztmvolqxkhdscxe +cdghcrgavygojhqn +pepqmdbjhnbugqeu +pnumdjpnddbxhieg +jzfhxeyahiagizfw +hdkwugrhcniueyor +gmgudeqlbmqynflu +toidiotdmfkxbzvm +pyymuoevoezlfkjb +etrbwuafvteqynlr +usvytbytsecnmqtd +dfmlizboawrhmvim +vrbtuxvzzefedlvs +vslcwudvasvxbnje +xdxyvoxaubtwjoif +mduhzhascirittdf +cqoqdhdxgvvvxamk +dshnfwhqjbhuznqr +zimthfxbdmkulkjg +luylgfmmwbptyzpj +iujpcgogshhotqrc +caqcyzqcumfljvsp +sprtitjlbfpygxya +fnconnrtnigkpykt +irmqaqzjexdtnaph +bbqrtoblmltvwome +ozjkzjfgnkhafbye +hwljjxpxziqbojlw +zahvyqyoqnqjlieb +dptshrgpbgusyqsc +uzlbnrwetkbkjnlm +yccaifzmvbvwxlcc +wilnbebdshcrrnuu +evxnoebteifbffuq +khbajekbyldddzfo +kjivdcafcyvnkojr +wtskbixasmakxxnv +uzmivodqzqupqkwx +rxexcbwhiywwwwnu +rowcapqaxjzcxwqi +fkeytjyipaxwcbqn +pyfbntonlrunkgvq +qiijveatlnplaifi +ltnhlialynlafknw +urrhfpxmpjwotvdn +xklumhfyehnqssys +civrvydypynjdoap +fvbmxnfogscbbnyd +oznavyflpzzucuvg +iyshrpypfbirahqo +qmzbfgelvpxvqecy +xkkxaufomsjbofmk +irlouftdmpitwvlq +csjoptbdorqxhnjg +bkryeshfsaqpdztm +guxbdqzfafsjoadl +tgrltexgrzatzwxf +cwsgsijqdanubxad +xafnexgturwrzyrg +apcrsqdbsbaxocxr +pspgxnzcevmvvejk +szephmeegvegugdt +ndjsoloeacasxjap +bdnfksliscnirjfu +ehglacmzpcgglpux +jwweijomqfcupvzw +yesblmmkqhbazmdu +sjsmalypmuslzgac +fkiqatyttlnuhdho +tlhnyuzdocvfdihq +ngehtjmycevnybga +obxodzcdgtrycgry +stkyrvdfbwovawmk +bdkhqcfrqaxhxloo +gpvumnuoiozipnrk +jbhanddinpqhxeol +hwkzkmbmsrvunzit +rfuomegkxbyamjpw +yzbljuksletipzwm +eafedkagwitzqigl +prenqvsbotqckgwy +spedpbwzphdrfxfz +cmsuqwemhwixkxet +xgdyeqbqfldvaccq +eooxgsrfsbdaolja +kyhqylxooewrhkho +mswieugqpoefmspt +uszoqundysdyeqlc +hkmjdggxefdyykbq +dtuhjnlaliodtlvh +oalbueqbhpxoxvvx +oowxtxsoqdwhzbya +lclajfsrpmtwvzkm +fxmjufpqtpyazeqo +ozlmreegxhfwwwmf +mqzrajxtxbaemrho +nfglecsyqduhakjr +nkxqtmasjjkpkqbp +jjfonbqimybvzeus +vjqkhkhjlmvpwkud +wxxhnvfhetsamzjr +pladhajujzttgmsw +dbycgxeymodsdlhm +qxszeuaahuoxjvwu +adultomodzrljxve +dmhgrbhvvpxyzwdn +slohrlwxerpahtyp +mngbocwyqrsrrxdb +facyrtflgowfvfui +hyvazpjucgghmmxh +twtrvjtncmewcxit +uejkrpvilgccfpfr +psqvolfagjfvqkum +nvzolslmiyavugpp +lpjfutvtwbddtqiu +fkjnfcdorlugmcha +eaplrvdckbcqqvhq +xrcydhkockycburw +iswmarpwcazimqxn +kicnnkjdppitjwrl +vwywaekzxtmeqrsu +dxlgesstmqaxtjta +pmeljgpkykcbujbb +vhpknqzhgnkyeosz +jprqitpjbxkqqzmz +fiprxgsqdfymyzdl +dzvfwvhfjqqsifga +aeakhfalplltmgui +frqrchzvenhozzsu +hsvikeyewfhsdbmy +puedjjhvxayiwgvg +zmsonnclfovjoewb +bnirelcaetdyaumi +szvudroxhcitatvf +sccfweuyadvrjpys +yiouqrnjzsdwyhwa +xyjhkqbnfmjjdefz +fjwgemkfvettucvg +aapqpwapzyjnusnr +dytxpkvgmapdamtc +hgocpfoxlheqpumw +twzuiewwxwadkegg +qdbosnhyqmyollqy +fclbrlkowkzzitod +sgxnrrpwhtkjdjth +xckvsnkvnvupmirv +nioicfeudrjzgoas +lcemtyohztpurwtf +oyjxhhbswvzekiqn +idkblbyjrohxybob +rthvloudwmktwlwh +oyzhmirzrnoytaty +ysdfhuyenpktwtks +wxfisawdtbpsmwli +vgmypwlezbmzeduk +rpepcfpelvhzzxzj +zxbovsmixfvmamnj +cpkabmaahbnlrhiz +jvomcbqeoqrmynjj +iqdeisnegnkrkdws +ilhemlrtxdsdnirr +fjimtscrwbfuwmpo +lmfiylebtzwtztmx +ddouhysvomrkcpgu +xtjwvzdhgnwwauwi +cntzuwcumbsebwyy +hieqvdlvnxkygeda +hushfszxskjdrjxi +xvdfzqblccfoxvyq +nldnrtieteunyxnb +vszpidfocenlhzqb +ofcuvtwhortxesoq +bwniqemqwxlejcfq +wkqiwdjnytjnomps +rbadoommlmrictte +nsmxhpothlulxivt +bvzbfcvenskqxejr +sdqeczmzpqqtqabq +bjveyzniaaliatkw +zxsqlntyjajjxytk +jkoxlerbtidsuepg +ewtlibdkeqwgxnqt +lmrshemwxrdwzrgc +nekcdyxmftlymfir +edaqvmulzkskzsfy +znmvqaupykjmyebx +ximtebuxwhqpzubd +rrlstppkknqyxlho +uyibwcitxixjfwcr +chrvoierkimesqmm +dltxmwhheldvxwqe +xfuthxjuuizanfjy +vtiwavmxwonpkpug +phchnujfnxewglht +owvmetdjcynohxtw +cbtujdrumixxatry +iirzildsfxipfipe +sqxcscqyofohotcy +sbubnekndkvovuqg +jzhsqqxqdrtibtcd +mscwasyvxkhlvwbn +bpafxtagbuxivbwz +uhvueesygaxrqffw +trrxlibhtmzuwkkl +yktkmkokmfslgkml +gfzzzdptaktytnqg +pgqmaiwzhplnbyhg +qjiptlkwfshunsfb +lewvlpescsyunxck +tywsfatykshogjas +qtrnwjjgxdektjgi +arypcritpwijczkn +jwxvngigbhfpiubf +upsjdctitlbqlnhf +lvpjlrpnmdjiscrq +jvzchdrsnkgpgsti +wuoesbwunpseyqzu +xuqspvoshgxmrnrb +icdawnmfnpnmyzof +hwcwtibgpvctznuo +bzdjrniddyamfloq +hffkxtzuazageruv +deixfxjvzbitalnc +zihsohukiqrgsnvw +nwoondfnlgowavkg +qnuulsywgnoillgn +koozejhfjyzuhviy +oetcoipohymhpump +cizwpfczfoodwuly +jghlinczhtaxifau +svjejifbidnvvdvy +rxmbsnaqhzcnbfcl +vveubmiecvdtrket +sbihpvrcnzjtgfep +iqbuljuxkwrlebvw +ptrhvxrpezqvmmvv +duwzugnhktpiybjw +lijafjnujfeflkva +coylvegferuuyfop +fowsjrgammrqkkof +pgmcruaioccmbrbz +osejwflxagwqtjoi +otqflckqgxzvtper +slwyntdcrncktoka +hzcdzsppcfkrblqg +jksdmmvtzkqaompg +galwwwgugetdohkg +zbghtjvuikmfjuef +dmqwcamjtlcofqib +zbczldlfdzemxeys +mdlqoklybhppdkwe +tuyajhkexrrrvnlb +ylfolaubymxmkowo +nnsyrfnoyrxswzxn +zkhunhhhigbsslfk +spbokzdfkbmflanz +zmzxvrwdhiegfely +imywhfczvmgahxwl +fnvabvxeiqvsarqq +yschramprctnputs +ubyjrgdzsvxzvouj +qnvdhpptympctfer +smipxcntyhjpowug +ouhjibgcmotegljy +zpflubaijjqqsptz +fgysnxrnfnxprdmf +pbpznrexzxomzfvj +thhzjresjpmnwtdv +sbmokolkhvbfqmua +sxxpdohxlezmqhhx +pevvsyqgoirixtqh +wdxrornmhqsbfznb +zjqziqbctxkshqcn +nbqcwpzfwfaahylk +bxbvkonpcxprxqjf +xplbpqcnwzwqxheb +prsakggmnjibrpoy +xoguxbpnrvyqarjl +ilrgryrmgwjvpzjy +efwrmokaoigjtrij +yhcncebopycjzuli +gwcmzbzaissohjgn +lggmemwbbjuijtcf +fkqedbfrluvkrwwl +jcbppekecevkwpuk +onvolrckkxeyzfjt +zzousprgrmllxboy +cajthmamvxuesujl +rmiozfsikufkntpg +lvekypkwjbpddkcv +dwaqzfnzcnabersa +pcdsskjopcqwhyis +uabepbrrnxfbpyvx +yxlgdomczciiunrk +ccerskfzctqxvrkz +edvmkntljlncwhax +xtcbwecdwygrvowo +axqgqjqkqwrgcqot +tyjrynolpzqwnjgj +thrtmlegdjsuofga +mpgoeqkzzqqugait +emuslxgoefdjyivl +klehpcehdznpssfb +xfgvugyrdxolixkc +acenyrbdwxywmwst +yqgperajsfsamgan +dbjxlnumrmhipquw +hsnhirmswcenewxm +qehqkbhmgucjjpwo +gprjdglsbtsfzqcw +wvqkyrkoratfmvfi +myhzlerupqbduqsl +couyazesiuhwwhht +scxzehubxhkfejrr +gqlitwfriqkmzqdd +pxtbmqelssoagxko +dzhklewjqzmrfzsw +yxgeypduywntnbji +kwzbgzhkzbgedlfh +vukmuyfstgmscuab +vcmaybfvdgwnasgt +qmybkqqdhjigzmum +cbnuicuncvczyalu +qdgpsdpdlgjasjqr +kdzxqqheurupejjo +mcatrxfchbqnxelm +badunwkeggdkcgco +ntaeanvcylpoqmxi +ghnyfytpzgvuokjn +ozepydixmjijdmts +qefcfwzdhwmcyfvp +ycyktmpaqgaxqsxt +edpizkxnsxeeebfl +uwciveajsxxwoqyr +rbvjkljpxtglqjsh +nbplrskduutrptfk +vewrbadvkseuloec +upaotnjxquomoflx +qfwxkinrousqywdd +mqzxvvskslbxvyjt +oxicszyiqifoyugx +bkitxwzjpabvhraj +ydrbyjecggynjpir +hezyteaublxxpamq +hxkuektnoovsehnd +cwtbbavnhlpiknza +qrwvkhbyasgfxwol +qryjbohkprfazczc +wjksnogpxracrbud +znmsxbhliqxhvesr +gkippedrjzmnnwkp +pklylwsnsyyxwcwg +osdpwbxoegwaiemr +kpslrrrljgtjiqka +vuqkloqucpyzfxgk +bvtdsisgvkuzghyl +qlcayluuyvlhdfyy +kbimqwnzanlygaya +nvoeanlcfhczijed +kqvcijcuobtdwvou +pmhdpcmxnprixitl +yueilssewzabzmij +zqxhafrvjyeyznyg +mhdounmxkvnnsekx +hnacyglnzicxjakg +iaxfdqibnrcjdlyl +iypoelspioegrwix +uiqouxzmlnjxnbqt +kslgjfmofraorvjo +bgvotsdqcdlpkynk +huwcgxhvrrbvmmth +vpqyfnkqqjacpffw +hpjgdfovgmrzvrcl +vbntbhbvdeszihzj +nrbyyuviwyildzuw +wckeoadqzsdnsbox +xgsobwuseofxsxox +anvhsxdshndembsd +iygmhbegrwqbqerg +ylrsnwtmdsrgsvlh +zvvejnrarsavahvc +yncxhmmdtxxeafby +kekgiglblctktnes +uoqgymsrlrwdruzc +saaoymtmnykusicw +bqvcworpqimwglcp +zbpgtheydoyzipjv +pkykzslwsjbhcvcj +jhwxxneyuuidrzvl +pafeyajcrlehmant +klszcvtmcdeyfsmj +ledsltggvrbvlefn +hubpbvxknepammep +gthxhaapfpgtilal +jtfhbozlometwztj +jrhshycyenurbpwb +fyaxbawrsievljqv +lgfcgbenlqxqcxsd +dhedabbwbdbpfmxp +mxzgwhaqobyvckcm +qboxojoykxvwexav +jcpzfjnmvguwjnum +ohpsxnspfwxkkuqe +nyekrqjlizztwjqp +thuynotacpxjzroj +wymbolrlwosnbxqx +iyaqihnqvewxdtjm +hdvdbtvfpdrejenu +gtjscincktlwwkkf +wtebigbaythklkbd diff --git a/2020/inputs/day1.txt b/2020/inputs/day1.txt new file mode 100644 index 0000000..62a7ea9 --- /dev/null +++ b/2020/inputs/day1.txt @@ -0,0 +1,200 @@ +1956 +1994 +457 +1654 +2003 +1902 +1741 +1494 +1597 +1129 +1146 +1589 +1989 +1093 +1881 +1288 +1848 +1371 +1508 +1035 +1813 +1335 +1634 +1102 +1262 +1637 +1048 +1807 +1270 +1528 +1670 +1803 +1202 +1294 +1570 +1640 +1484 +1872 +1140 +1207 +1485 +1781 +1778 +1772 +1334 +1267 +1045 +1194 +1873 +1441 +1557 +1414 +1123 +1980 +1527 +1591 +1665 +1916 +1662 +1139 +1973 +1258 +1041 +1134 +1609 +1554 +1455 +1124 +1478 +1938 +1759 +1281 +1410 +1511 +930 +1319 +1302 +1827 +1216 +1404 +1460 +2002 +1590 +1817 +1341 +1631 +1608 +1382 +1158 +1594 +1049 +1804 +1555 +1753 +447 +1021 +1079 +609 +1766 +1327 +1851 +1052 +1737 +1175 +1043 +1945 +1573 +1113 +1724 +1203 +1856 +1682 +1623 +1135 +1015 +1423 +1412 +1315 +1375 +1895 +1351 +1530 +1758 +1445 +1518 +1819 +1567 +1305 +1919 +1952 +1432 +1099 +1476 +1883 +1871 +1900 +1442 +1393 +1214 +1283 +1538 +1391 +1008 +1109 +1621 +1876 +1998 +1032 +1324 +1927 +481 +1732 +1370 +1683 +1199 +1465 +1882 +1293 +1671 +1456 +1197 +1506 +1381 +1469 +1830 +1957 +1850 +1184 +1564 +1170 +1943 +1131 +1867 +1208 +1788 +1337 +1722 +1760 +1651 +1069 +1574 +1959 +1770 +66 +1190 +1606 +1899 +1054 +980 +1693 +1173 +1479 +1333 +1579 +1720 +1782 +1971 +1438 +1178 +1306 diff --git a/2020/inputs/day10.txt b/2020/inputs/day10.txt new file mode 100644 index 0000000..39cf9bc --- /dev/null +++ b/2020/inputs/day10.txt @@ -0,0 +1,104 @@ +79 +142 +139 +33 +56 +133 +138 +61 +125 +88 +158 +123 +65 +69 +105 +6 +81 +31 +60 +70 +159 +114 +71 +15 +13 +72 +118 +14 +9 +93 +162 +140 +165 +1 +80 +148 +32 +53 +102 +5 +68 +101 +111 +85 +45 +25 +16 +59 +131 +23 +91 +92 +115 +103 +166 +22 +145 +161 +108 +155 +135 +55 +86 +34 +37 +78 +28 +75 +7 +104 +121 +24 +153 +167 +95 +87 +94 +134 +154 +84 +151 +124 +62 +49 +38 +39 +54 +109 +128 +19 +2 +98 +122 +132 +141 +168 +8 +160 +50 +42 +46 +110 +12 +152 \ No newline at end of file diff --git a/2020/inputs/day11.txt b/2020/inputs/day11.txt new file mode 100644 index 0000000..912389b --- /dev/null +++ b/2020/inputs/day11.txt @@ -0,0 +1,91 @@ +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLL.LL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLL.L.LLLLLLLLLLLLLLL.LLLL.LLL +.LLLLLLLL.LL.L.LLLLLLLLL.LLLLLLL.L.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLL.L.LLLLL.L.LLLLLLLLLLLLLLLLLL +LLLLLLLLL...LL.LLLLLLLL..LLLLLLLLL.L..LLLLLLLLLLLLLLLLLLLLLLLL.LLL..LLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLL.LLLLLL.LLLLLLLLL.LL.LLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLL..LLLLL.LLLLLL...LLLLLLL.LLLLLLLLLL +LLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LL +LLLLLLL.LLLLLL.LLLLLLLL..LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLL.LLLL.LLLLLL.L +.LLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLL.LLLL.LLLLLLLLL.LL.L.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLL +LLL.LLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLL..L..LLLLLLL.LLLLLLL +L.....L..L....LLLL......L.L....LLLL..L...L..LL..........L...LL..LL.LLL..L.LL...LL.L...L.L....L.. +LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL.L.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LL.LL.LL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLL.LLLL.LLLL.LLLLLL.L.LLL.LLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLL.L.L.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL..LLLLLLLL.LLLLLLLLLLLLLL.LLL.LLL.L.LL.LLLLLL.LL.LLLLL +.L..L....LLL...LL.L.LL......L........LL...L..L..LL.......L....L.L.LLL......LL..L..L.....LLL..... +LLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLL.LLLL.LL.LLLLLLLLLLLLLLLL.LLLLL.LL +LLLLLL.LL.LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +L.LLLLLLL..LLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL..LLLLLL.L.LLLLLLLL +LL.LLLLLL..LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLL.LLLLL.LLLL.L.LL.LLLL.LL.LLLLLL.LLLLLLLL +LL.LLLLLLLLLLL.LLLLL.LLL.LLLLLLLL..LLLLLLLL.LL..LLLL.LLLLLLLL..LLLLLLLLLLLLLLLLL.L.LLL..LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLL.LLLLLLLL +LLLLLLL.L.LLLL.LLLLLLLLLL.LLLLL.LL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLL.LLLLL.LLLL.LLLLLLLLLLLLL +LL.LLL....L....L.L....LL...L......L.....LL.LL.LLL....L.LL........L.LL..L.LLLL.LLL.LLLLLLL.L..L.. +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLL.LLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLL.LL.LLLLLLLL +LLLLL.LLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLL.LLLLLLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.L.LLLLLLLLLL.LLL.L +LLLLLLLLL.LLLL.LLLLLL..L.LLLLLLLLLLL.LL.LLLLL.LLLLLL.LL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.L.LLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL +LLL.LLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLL.LLLL.LLLLLL.LL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +.L.LL....L.....LL...L.....LL..LL.........L.L..L.......LL...L.L......L........L...L.....L.....LL. +LLLLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLL.LLLLLLLL.LLLLLLL..LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL +LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLL.LL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL..LLLLLLL +LLL.LLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLL.LLLLLLLL +.LLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL..LLL.LLLL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLL.LLLLL.LLLLLLL.L.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLL.LLL.LLLLLLLLL..LLLLLLL +L....L..L...L....L.....L...L...L......L.LL.L....L.L.......L.LL.LL.LL....L...LLL...LL...LLL...L.L +LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.L.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL. +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL..LLLLLLLLLLLLLLLL.LLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LL.LLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLL.LLLLLLLL +.LLLLLLLL.LL.L.LLLLLLLLL.LLLLLLL...LLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLLLLL..LLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLL.LL.LLLLLLLLL.LLLLLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLL.LLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLL.LLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLL.L.LLLLLLL.LLLLLLLLL.LLLL.LLL +LL.LLLLLL.LL.L.L.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL..LLLLLLL. +LLLLLLL.L.LLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL +LL......LLL.L......LL.LLL.....L..L.........L....L..L....L.L....L...L..L...L...L..L..L....L...... +LLLLLLLLL.LLLLLLLLLLLLLL.L.L.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLLLLLLLL..LLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLL.LLLLLLL.L.LLLL.LLLLLLL.L.LLLLLLL.L.LLLLLLLL +LL.LL.LLLLLLLLLLLLLLLLLL.LLLLLLLLL..LLLLLLL.LLLLLLLL.LLLLLLLL..L.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLL. +LLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLL.LLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL +.LLLLLL.L.L...L.L.....L..L......LLL..L..L.L..LLL....LLL......L........LL..L.L....LL.L..L.L...... +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLL.LLLL.LL.L.L.LLLLLL..LLLLLLL. +LLLLLLLLLLLLLL.LLL.LLLLL.LLLLLLLLL.LLLLLLLL.LL.LLLL..LLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLL +LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL..LLLLL.LL.LLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL..LLLLLLLL.L.LLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL..LLLLLLL +LLLLLLLLL.LL.L.LLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LL.LLLLL +....L.LLLLL......L.LL....L.L...L..LL...LLL.LLLL...LL.L.L....L.LL...L.......L...L.L..LL.........L +LLLLLL.LL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.L.LLLLLLLL.LLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLL.LL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL..LLLLLLLL.LLLLLLLLLL.LLL.LLL.LLLL.LLLLL.L.L.LLLLLLL.L.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLL.L.LLLLLLLLL..LL.LLLL.LLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LL........L.....L....L..L...L.LLL........L.....L...L.......L.....L..L.L........L.L..L....LL.L.L. +LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLL +LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL..LLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLL.L.LL.LLLLLLLL.L.LLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLL.LL.L.LLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLL.LLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.L.LL.LLLLLLLLLLLLLL.LLLLLLLLLLLLL +LLLLLLLLLLLLLL..LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL...LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LL.LLLLLLLL.LLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL. +...........LL.L.L.LLL..LL.L..L...LL.L.L........LL.L..L.....L..L...L.L....L.LL..LL..L.L.LL..LL..L +LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLL.LL.LLLLLLLL.LLLLL.LLLLLLLLL.LLLLL.LL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLL.L.L.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLL..LLLLLLLLL..LLLLLLLL.LLL.LLLL +LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLL.LLLL.LLL.LLLLLLLLL.L.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLLL.L.LLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL +LLLLLLLLL.LLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLL.L.LL..LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLL.L.LLLLLLL..LLLLLLLLL.L.LL.LL +LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLL.LLLL.L.L +LLLLLLLLL.LL.L.LLLLLLLLL.LLLLLL.LL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLLLL.LL..LLLL diff --git a/2020/inputs/day12.txt b/2020/inputs/day12.txt new file mode 100644 index 0000000..4c6f87d --- /dev/null +++ b/2020/inputs/day12.txt @@ -0,0 +1,780 @@ +S1 +R270 +S5 +W2 +F63 +S3 +L90 +W4 +F59 +S1 +F21 +W4 +R90 +W1 +R180 +S2 +W2 +F91 +W5 +R270 +F97 +R90 +E2 +R90 +F6 +W1 +R90 +W3 +F1 +S4 +F1 +N3 +F76 +S4 +W5 +F88 +W4 +N3 +W2 +F48 +N1 +F50 +E3 +F18 +L90 +F30 +S3 +R90 +W1 +N5 +W1 +R90 +R90 +E1 +S2 +F73 +R90 +S4 +F89 +F34 +L90 +F11 +S3 +F20 +S5 +E3 +R180 +E3 +L90 +E2 +F1 +E3 +N3 +F84 +R90 +E4 +R180 +F24 +N3 +L90 +F15 +W4 +F52 +S5 +L180 +N4 +R90 +E5 +F11 +S4 +F27 +R180 +E4 +R180 +W3 +N2 +W1 +S3 +W4 +E5 +F97 +L180 +E3 +N4 +E3 +S4 +L90 +S4 +R90 +N5 +E1 +S5 +F19 +E1 +S2 +L180 +F36 +S2 +L90 +W1 +F8 +W1 +F67 +E3 +L90 +F33 +N4 +F35 +W2 +F33 +L180 +N1 +L90 +R90 +N3 +W4 +S1 +F36 +E2 +F2 +L90 +W3 +L90 +E5 +F4 +L90 +N1 +N5 +W4 +N5 +R90 +W4 +N5 +W2 +N5 +F43 +N3 +W3 +S2 +W2 +R90 +E1 +R90 +F26 +R90 +E4 +L270 +F97 +L180 +N2 +F2 +R90 +F33 +E2 +F85 +E4 +F80 +R90 +N2 +L90 +S5 +F96 +W1 +S5 +L180 +F54 +E3 +F84 +E3 +L90 +W1 +N2 +W4 +L90 +W4 +F26 +E5 +R180 +W1 +F43 +N4 +E1 +S4 +S3 +L90 +N3 +E1 +F14 +E1 +N2 +F93 +S1 +W3 +N5 +F15 +W5 +R90 +F93 +L90 +E5 +S4 +E4 +L90 +E2 +N4 +F98 +R90 +W3 +F100 +R90 +E2 +F100 +N5 +F9 +R90 +F36 +N3 +W3 +N4 +F35 +E3 +R90 +W4 +L90 +W3 +F15 +L90 +F73 +S2 +E1 +R180 +F93 +L270 +F37 +S1 +F36 +N1 +E1 +W1 +R90 +F46 +W2 +N4 +F50 +R90 +W4 +F90 +L90 +S3 +F2 +E1 +L90 +E5 +S2 +F91 +W2 +F21 +E2 +N2 +W5 +F79 +E1 +F77 +L90 +W5 +N2 +E3 +L180 +S2 +W1 +S1 +R90 +S5 +R180 +E2 +F55 +W4 +R90 +S3 +L90 +S1 +R180 +W4 +R180 +W5 +S5 +L180 +F35 +N1 +F72 +L90 +W4 +L180 +S1 +E1 +N5 +L90 +W5 +N1 +E2 +N4 +W3 +F3 +W4 +F96 +E1 +F20 +R90 +W4 +F99 +L90 +E4 +N3 +N3 +W3 +N5 +E2 +N4 +E4 +L90 +S2 +W3 +F3 +R90 +E2 +R90 +F23 +N5 +F39 +W3 +R90 +N3 +R180 +R90 +F94 +W1 +R90 +N3 +F16 +R90 +F61 +R90 +F67 +N4 +F72 +S2 +F39 +W1 +S1 +R90 +F67 +S1 +L90 +W5 +N5 +E3 +F65 +E2 +N1 +S4 +L90 +N4 +W5 +R90 +F49 +L180 +F22 +E2 +L90 +N3 +R90 +F61 +L180 +F57 +L90 +F90 +R90 +E5 +L180 +E1 +L180 +S3 +W4 +F55 +E1 +F95 +R180 +W5 +L180 +F23 +E3 +F97 +S1 +F19 +N2 +W4 +F10 +L90 +W4 +S1 +L90 +W5 +F64 +R90 +W4 +F60 +W4 +L90 +W3 +F15 +E5 +N5 +L90 +S2 +L180 +F64 +L180 +F93 +E5 +F13 +R270 +S4 +F58 +R180 +W5 +S1 +W4 +N1 +L270 +S4 +E4 +N5 +F38 +W4 +N2 +W2 +N1 +R90 +E1 +L90 +N2 +R90 +N3 +E3 +N3 +F90 +W2 +L90 +F95 +S1 +S4 +F48 +L270 +W2 +L90 +F34 +S3 +F23 +N2 +F13 +R180 +E2 +F95 +L90 +N2 +R90 +S2 +E3 +N1 +F41 +N2 +R180 +S4 +W3 +L90 +W5 +L90 +F35 +S5 +E2 +S5 +E3 +F81 +W4 +N3 +F28 +E1 +F93 +S3 +F53 +L90 +W5 +F59 +W1 +R90 +E2 +S5 +F80 +W3 +S5 +F6 +R90 +F8 +W1 +R180 +E2 +L270 +N3 +F59 +W5 +F51 +R90 +N2 +E4 +R90 +E4 +S1 +W2 +N1 +F45 +R90 +N5 +F28 +L90 +N4 +F78 +S1 +R90 +N5 +L90 +S2 +F92 +L180 +E3 +R90 +F26 +W1 +L180 +R90 +S3 +F51 +N1 +L90 +W2 +F84 +L180 +E1 +F54 +E4 +F65 +R90 +S5 +E2 +F78 +E1 +R90 +S1 +R90 +W3 +R180 +F99 +E5 +R90 +F44 +L90 +W3 +N3 +R180 +N4 +E1 +S4 +L180 +S4 +F59 +E4 +F1 +N5 +R180 +S5 +L180 +F38 +E4 +N3 +R180 +N1 +W4 +R90 +F30 +L90 +S3 +R90 +F71 +L90 +E5 +N4 +R90 +F50 +N2 +L180 +F3 +W5 +L90 +W5 +R90 +W5 +N5 +R180 +E2 +F39 +W5 +R90 +F72 +N5 +E3 +F37 +S5 +W1 +F11 +L180 +E3 +F55 +R90 +R90 +F85 +W4 +F53 +S1 +F33 +W4 +L90 +W5 +F64 +E5 +R90 +N1 +R90 +F14 +N4 +L180 +S3 +E1 +F21 +S2 +F26 +S5 +F6 +S2 +L90 +F50 +N2 +L180 +W4 +N2 +E2 +R90 +F35 +N1 +F69 +W3 +N2 +W3 +L90 +E1 +S3 +E4 +F58 +N1 +W5 +S5 +L90 +W1 +S3 +W1 +S4 +E4 +R90 +N5 +R180 +F57 +L90 +F69 +W4 +F2 +R90 +F1 +L90 +W1 +S2 +F40 +S1 +L180 +F31 +R180 +F24 +R90 +S3 +L180 +S1 +W2 +F64 +S1 +W1 +R180 +W5 +S3 +L90 +S5 +E5 +R90 +E1 +F5 +N5 +F3 +W3 +F57 +R180 +E3 +F94 +W1 +F54 +W4 +S2 +W2 +N1 +L90 +W5 +S4 +L180 +L90 +F100 +E3 +R90 +N5 +E1 +R90 +E5 +L90 +S5 +L90 +S1 +R90 +E4 +S1 +W4 +F65 +R90 +N3 +W5 +F64 +R90 +E5 +R180 +W5 +F28 +S5 +L180 +S5 +R90 +E4 +F82 \ No newline at end of file diff --git a/2020/inputs/day13.txt b/2020/inputs/day13.txt new file mode 100644 index 0000000..26d338e --- /dev/null +++ b/2020/inputs/day13.txt @@ -0,0 +1,2 @@ +1008141 +17,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,x,523,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,13,19,x,x,x,23,x,x,x,x,x,x,x,787,x,x,x,x,x,37,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,29 diff --git a/2020/inputs/day14.txt b/2020/inputs/day14.txt new file mode 100644 index 0000000..83649e1 --- /dev/null +++ b/2020/inputs/day14.txt @@ -0,0 +1,574 @@ +mask = 0XX1XXX1101X101100101001010X1X110000 +mem[41476] = 14032 +mem[20538] = 23975525 +mem[44025] = 8902467 +mem[23416] = 13278193 +mem[40963] = 2086 +mem[17050] = 1569690 +mem[13533] = 5470449 +mask = 011000101X10X1XX00101100001XX1XX0111 +mem[11041] = 688451207 +mem[2356] = 131442632 +mem[47817] = 59104 +mask = 0001101XX011X0X10X10000X010XX111000X +mem[12356] = 716205 +mem[16949] = 26265398 +mem[38622] = 24845 +mem[769] = 755 +mem[56920] = 305369 +mem[8196] = 61569921 +mem[188] = 12675 +mask = 11011X1010XX100100X0011000X1X0100100 +mem[19009] = 356438366 +mem[12368] = 25473412 +mem[29459] = 799158 +mem[13465] = 15500913 +mem[8375] = 1762 +mem[46272] = 94167 +mask = X000111001110X100000X0011011XX100011 +mem[15450] = 4114776 +mem[34487] = 8375 +mem[41817] = 18121 +mem[6307] = 60515 +mem[40743] = 517650454 +mask = 10X01110111100XX00X010X111000101X1X0 +mem[7812] = 16330414 +mem[30335] = 466060785 +mem[35944] = 847 +mem[49580] = 1958 +mem[59473] = 19887792 +mem[28900] = 6542 +mem[34820] = 98175933 +mask = X010XX101101010X0000X0010001000001X0 +mem[46282] = 22976226 +mem[40137] = 45087136 +mem[51356] = 3370437 +mem[62716] = 40 +mem[63300] = 7924 +mem[10817] = 1508 +mask = 0001101000X110010XX0X00001011X111101 +mem[32646] = 162859393 +mem[62320] = 2426317 +mem[313] = 72238800 +mem[49382] = 14540 +mask = 0001101100110011X011000000X00111X1X1 +mem[42477] = 1291 +mem[34497] = 81992143 +mem[21183] = 8224931 +mem[45331] = 4850589 +mem[25706] = 334861 +mask = 000110111011100X00XX010X010011101110 +mem[39907] = 4465 +mem[21799] = 357055 +mem[59734] = 17314354 +mask = X00X101X101110X10010111XXXX0011100X0 +mem[46366] = 190719510 +mem[18743] = 16121 +mem[19149] = 248746 +mem[14315] = 7780 +mask = XX000X100011001X0000101000X0X0XXX001 +mem[2954] = 2613 +mem[50772] = 992647 +mem[18070] = 3128616 +mask = 10XX1110000X0110010X10X100X1X111XX01 +mem[51264] = 328844982 +mem[43715] = 3650584 +mask = X00X10111011100100101X1X00X0X0X11001 +mem[42619] = 22042108 +mem[64225] = 42365 +mem[50397] = 22223 +mem[22643] = 72733769 +mask = 1X001110X0110110X000XX10111001XX0001 +mem[19149] = 882536950 +mem[42775] = 361 +mem[46895] = 342576 +mem[32700] = 5694 +mem[11470] = 6481999 +mask = 00011X1100110011X01X100X001011X1X110 +mem[39264] = 16344930 +mem[8161] = 382432628 +mem[63411] = 1224 +mem[7160] = 166212 +mem[38527] = 1049945 +mask = 0110100010110111000000111X0111X10X0X +mem[22956] = 935 +mem[37256] = 4029977 +mem[63527] = 614740755 +mem[35499] = 4431 +mem[42900] = 49979206 +mem[51745] = 882 +mask = 10XX1100X01100100100X0X1X1111X0000XX +mem[61801] = 3618 +mem[28559] = 421756 +mask = X01011X0111X0000000X11X11101X011001X +mem[3161] = 14874 +mem[29508] = 2092706 +mem[40251] = 30980889 +mem[4788] = 394 +mask = 1XX0100110011101110000X01001110XXX01 +mem[2387] = 118365350 +mem[11825] = 66225 +mem[16756] = 91924010 +mask = 1000100X1XX11X01XX00XX1010X111011011 +mem[20652] = 15633 +mem[58061] = 7651801 +mem[33499] = 103658 +mask = 00000X0X10X1101101100110011X00010001 +mem[25435] = 148 +mem[24037] = 31691643 +mem[44316] = 711 +mask = 10001110XX010X1X010111010X010XX00000 +mem[63842] = 29627531 +mem[36624] = 1296 +mem[56181] = 30061 +mem[47386] = 40106 +mem[58312] = 1375 +mask = 0001101010011XXXX0100011010000101000 +mem[42115] = 7172450 +mem[49180] = 987035517 +mem[13301] = 28324706 +mem[33025] = 394238236 +mask = 1110101X01X1000000000111101X0011X001 +mem[24725] = 4310928 +mem[2620] = 41285327 +mem[47820] = 3129173 +mem[1293] = 5127449 +mem[11745] = 28590 +mem[36381] = 4204 +mem[51744] = 51694 +mask = 100111X0000100100X0010X1X11010100011 +mem[25359] = 884 +mem[19779] = 1731 +mem[11585] = 4188926 +mem[30395] = 236676337 +mask = 00X110111X0110X1000X101001X00001X100 +mem[27733] = 313 +mem[65360] = 86981 +mem[46366] = 767235 +mem[29755] = 83833 +mem[32124] = 232097371 +mask = 001110111X01101100XXX10110X100X1010X +mem[53702] = 199650 +mem[44608] = 6590868 +mem[34829] = 5394 +mask = X010111011X101000X0X100110001X001100 +mem[17120] = 23453 +mem[38913] = 185044 +mem[18780] = 4903 +mem[175] = 21851 +mem[39035] = 2030 +mem[22611] = 123784 +mask = 11101110011100100X00X1100XX000110010 +mem[64049] = 5356981 +mem[63577] = 117267698 +mask = 1X101X10011100X00000X1X11X000010X011 +mem[13208] = 1183 +mem[23377] = 24464667 +mem[57628] = 138647 +mem[18400] = 1395575 +mem[29779] = 494833 +mem[37426] = 3361062 +mem[47386] = 607532373 +mask = 101X11100X00011001000XX0100000XX1X11 +mem[61236] = 119878442 +mem[37985] = 34919 +mem[45599] = 412119 +mem[62029] = 56098 +mem[32672] = 106027256 +mem[16953] = 19574328 +mem[28683] = 497476095 +mask = 10X01110XX110XXX000010011X00XX101011 +mem[36926] = 999 +mem[26268] = 12770 +mem[13208] = 4100495 +mem[36974] = 56256136 +mem[59728] = 12633 +mask = 10001XX0101110010000010000101101X11X +mem[21209] = 1165019 +mem[52913] = 4010374 +mem[39089] = 5103489 +mem[59734] = 115220582 +mask = 010X1X01101010110010001XX10X01100100 +mem[46092] = 219343233 +mem[37520] = 4795 +mask = 10001X1X0011010X0X00X011101101111001 +mem[43095] = 22274 +mem[63382] = 14322315 +mem[29851] = 198203 +mem[38913] = 365650159 +mem[23153] = 4470189 +mem[43043] = 387267864 +mem[12301] = 3613737 +mask = 000110X1001110010X101X01111110X0X10X +mem[53114] = 17151 +mem[32537] = 857661 +mem[49382] = 59317139 +mem[24893] = 3884 +mem[29265] = 10769292 +mem[49438] = 103605698 +mem[57488] = 949859 +mask = 10XXX11X00110X100000X000010011X011X0 +mem[58061] = 319898 +mem[57563] = 43183 +mem[5257] = 949147935 +mem[57481] = 15066 +mem[14197] = 5250925 +mem[39109] = 1471 +mask = 00011X101001X0X100011011X11110XX1000 +mem[59252] = 46539 +mem[52900] = 4898 +mem[61334] = 40829484 +mem[24965] = 8050 +mem[36876] = 441653 +mask = X00110X11011100000001010XX010X100000 +mem[45393] = 1597628 +mem[13748] = 66625913 +mem[40882] = 2875 +mem[960] = 105796443 +mem[52406] = 2823788 +mem[3856] = 11564504 +mask = 10X1101010X1X00100010X0X010101110110 +mem[37859] = 23030 +mem[28890] = 5943 +mask = 11X0101001X10X0X00001X1010X10010X0XX +mem[53315] = 133575 +mem[23196] = 238 +mem[55322] = 81 +mem[55314] = 5922 +mask = 1X001X1X00110111X000111X10101X001XX0 +mem[58877] = 81175841 +mem[51461] = 434887 +mem[29757] = 325911 +mask = X0X0X1X0X01100000000X00110X00101XX11 +mem[26312] = 220610 +mem[36669] = 25461656 +mem[26785] = 606 +mem[17752] = 115 +mem[6189] = 6698 +mem[7480] = 1190 +mem[15971] = 96609 +mask = X110X0101011011100001X100X0010X00X01 +mem[43175] = 6644146 +mem[10749] = 231447710 +mem[19322] = 58074323 +mem[15573] = 8577 +mem[62029] = 61918 +mem[31715] = 18297 +mem[41994] = 44438 +mask = X001X01110X1100X00X000X00X00X01X0000 +mem[58513] = 212212 +mem[35792] = 15346 +mem[64206] = 4719831 +mem[832] = 543960291 +mem[18780] = 62502300 +mask = XX1111100X0101100X0X0X0X000001X10111 +mem[21109] = 474293 +mem[28900] = 2806 +mask = 10XX111000X10X100X00100X1010010X0011 +mem[14165] = 15464 +mem[53233] = 152163192 +mem[44025] = 121941797 +mem[53450] = 433714 +mem[4913] = 7421311 +mem[188] = 60127159 +mask = X001101000011X01001X0X110111100X0X01 +mem[60747] = 192522 +mem[54204] = 28849 +mem[36729] = 22698774 +mem[52115] = 110985 +mem[57563] = 682 +mask = 1001XXX00011001X010X0010110XXX0X1011 +mem[32646] = 1756 +mem[15029] = 776777504 +mem[3161] = 5837481 +mask = X00XX0X0101X101101X00000010XX0X10001 +mem[57391] = 1622433 +mem[12908] = 1770908 +mem[43252] = 2640 +mem[60063] = 14000 +mem[26203] = 22549887 +mem[827] = 14605957 +mask = 10X11X110000011X00X00X1000111X001000 +mem[10734] = 338 +mem[58310] = 226465 +mem[52913] = 454 +mem[37616] = 249660 +mem[17625] = 266511 +mem[57381] = 361428 +mask = 100110X010X11X0100000001X000010X0101 +mem[49180] = 626303 +mem[8469] = 116 +mask = 101X1110XX0X0010010000X1010010110X1X +mem[9552] = 623773022 +mem[30060] = 14419380 +mem[16756] = 21987 +mem[14129] = 466 +mem[13465] = 30465 +mem[63276] = 128236 +mask = 1001110100XX11X000001X1X0101X0000010 +mem[27588] = 8166 +mem[1516] = 11756 +mem[53138] = 1983 +mem[62272] = 468137433 +mem[30834] = 30766905 +mem[47453] = 39455 +mask = 0001101X100110010001010X11X1XX0011X0 +mem[24972] = 1715002 +mem[43864] = 90876 +mem[61372] = 192618 +mem[10734] = 837 +mask = 1010X1100111X0000000111100011110X0X0 +mem[47239] = 74086526 +mem[49939] = 49746 +mem[10895] = 23075 +mem[65011] = 202673707 +mask = X0X1101XX0111001001X10010111001X1100 +mem[20214] = 61662 +mem[37436] = 345208 +mem[1630] = 388457 +mem[23511] = 61766884 +mem[20859] = 64848629 +mask = 1000X11X001101X10X00110010X1110010X0 +mem[25419] = 28604 +mem[38913] = 32927 +mem[17205] = 472 +mem[56058] = 594 +mask = 00X11011X01110010XX0000X000X0X1X1X01 +mem[26203] = 26989 +mem[45551] = 732 +mem[58839] = 55235 +mem[1129] = 67488208 +mask = 100111X1000XX11X000011000010XX0XX00X +mem[14155] = 1172166 +mem[19010] = 530312985 +mem[26312] = 25222184 +mem[4356] = 113886497 +mem[62320] = 255163 +mem[13910] = 8896163 +mask = 100X1X101011X00100000X01000X01000101 +mem[64201] = 3294 +mem[4767] = 1238 +mem[26268] = 92962256 +mem[23511] = 859 +mem[51259] = 2059 +mem[61026] = 4725 +mem[36876] = 877705 +mask = XX011XX010111011001X1001000X0111X0XX +mem[65483] = 598563 +mem[57113] = 294 +mem[24944] = 54471 +mem[6485] = 8443403 +mask = 1X001X11001101X10X00X1001111011100X1 +mem[62670] = 48958 +mem[62173] = 126785687 +mem[63951] = 1275323 +mem[64656] = 401353954 +mem[53988] = 713 +mem[55322] = 1690 +mask = 0100X11000110X1X00001X10010XX1XX0100 +mem[19129] = 108065922 +mem[59734] = 62554 +mem[57425] = 70969544 +mask = 100X111X00X1XX1000X000100100010010XX +mem[59081] = 248635 +mem[33589] = 89551144 +mem[26483] = 3592 +mem[58837] = 14938 +mask = XX01101010011001000XX00100X10XX00101 +mem[26268] = 1919550 +mem[42543] = 32407420 +mem[14012] = 3176 +mem[6070] = 2625503 +mem[1970] = 41445788 +mem[12368] = 507057537 +mask = 0X0X111100111101001X1X0X11001100100X +mem[10671] = 13772 +mem[44082] = 875 +mem[5761] = 81 +mem[9631] = 303660028 +mem[16661] = 406188 +mem[27807] = 12578 +mem[19729] = 938033 +mask = 101X111X0X0X0110010000X11X00001X11X0 +mem[33143] = 2074831 +mem[20348] = 172308 +mem[29757] = 40606526 +mem[37173] = 2311463 +mem[59173] = 67005 +mem[15642] = 687972 +mask = 1001111100010X10000001X0101000X0X001 +mem[32455] = 11789 +mem[32961] = 2914 +mem[51811] = 1940 +mask = 0001101010X1100100X000010XXX01110X01 +mem[59734] = 7041 +mem[2047] = 728301208 +mem[14012] = 72433008 +mem[12356] = 126031399 +mem[59410] = 42309395 +mem[32323] = 3938 +mask = 1011111000X10110X00000X1010001X10000 +mem[47952] = 14328 +mem[7064] = 7527457 +mem[3914] = 2201809 +mem[15520] = 16301732 +mask = 10XX11100X11001001000000XX1111110001 +mem[56178] = 339 +mem[15606] = 3802900 +mem[19168] = 976891 +mem[65483] = 892268 +mask = 000X101XX011000100100011X101101X0X01 +mem[43261] = 3271356 +mem[5201] = 15846 +mem[64201] = 38576337 +mask = XX10XXX0101101110000X01X10001111100X +mem[8469] = 9742701 +mem[6060] = 63043 +mem[41875] = 2040147 +mask = X0X11110X0010X100X0X0010X000110100XX +mem[24811] = 146228691 +mem[5282] = 94502573 +mem[51356] = 27360 +mask = 0011X0111101101X0X000X00100100X00000 +mem[20214] = 79404 +mem[53053] = 494301615 +mem[32749] = 651 +mem[6205] = 195615011 +mem[50888] = 18 +mem[46557] = 701 +mask = 1001111X000X01100000X1001010100XX0X1 +mem[31943] = 98133204 +mem[15986] = 50658 +mem[51787] = 541 +mem[65378] = 224955462 +mask = 10111X1X00X10110010X0000000000011011 +mem[25419] = 738 +mem[47453] = 2686 +mem[24643] = 7536 +mask = 0001X01010111X1X0100000011000011010X +mem[35756] = 64 +mem[5149] = 60645652 +mem[41871] = 1890098 +mem[3022] = 252603 +mem[52062] = 5875 +mem[58943] = 797237350 +mask = X00110101011XX010000110100010X000000 +mem[37436] = 6548079 +mem[35764] = 3432001 +mem[36941] = 65975 +mask = 000010X100X10001X0100X01010000X10101 +mem[34696] = 2248339 +mem[14083] = 15975033 +mem[6577] = 901 +mem[26908] = 255502 +mem[12789] = 30697828 +mask = 10X010101011000100X0X11001000110010X +mem[44320] = 1393 +mem[29757] = 342285 +mem[36642] = 6661 +mem[7779] = 125978 +mem[52090] = 28218650 +mem[36766] = 1451129 +mem[32821] = 38672 +mask = X001X0101011101X0110000X0X00X111X001 +mem[688] = 1445 +mem[29459] = 3116969 +mem[28168] = 2056 +mem[20652] = 329409 +mem[62382] = 1589 +mask = 100111101011X0X1000000X1X01100000011 +mem[44082] = 522049 +mem[35499] = 306435 +mem[2296] = 1624116 +mem[477] = 199553 +mask = 000X10010X111X010110X0X111X011100100 +mem[51461] = 304494089 +mem[59109] = 7054 +mem[43106] = 841367 +mem[23495] = 35948 +mem[47405] = 4105986 +mask = 1000X110001100100000101X0010XXXX1011 +mem[34346] = 63860 +mem[15450] = 21287640 +mem[39226] = 10848394 +mem[65171] = 342808754 +mask = 10X1111000X10X100100X01X000001X10X11 +mem[20605] = 25239 +mem[15530] = 15210 +mem[53450] = 631977 +mem[49382] = 337741132 +mem[44802] = 36180 +mem[13730] = 386297 +mem[44304] = 410 +mask = 110XXX101001100100001XX100010XX11101 +mem[6307] = 360684 +mem[34209] = 30559 +mask = X0001X100X110010000000X0100X01X0X011 +mem[31037] = 16148100 +mem[53546] = 9890720 +mem[39022] = 17 +mem[36766] = 29407814 +mem[12512] = 60996381 +mask = 100011XX11110011X000XX111X110X1X1X11 +mem[7064] = 21863392 +mem[42144] = 115358 +mem[24037] = 24921044 +mem[38714] = 260084 +mem[63382] = 7611 +mem[5421] = 138958764 +mem[45370] = 9438 +mask = 0011100110111X110010X001010X1001X010 +mem[3501] = 16752744 +mem[50874] = 1870557 +mem[21866] = 1042519950 +mem[46366] = 29539240 +mem[1293] = 4121521 +mem[29265] = 2517 +mask = 01X00010101X011100X00X111XXX11000111 +mem[57313] = 1088911 +mem[30558] = 275492 +mem[45058] = 7674206 +mem[57037] = 1601 +mem[55547] = 33529493 +mem[48001] = 2606536 +mask = 110X1010101X10010010X1110110000001XX +mem[43175] = 7896118 +mem[18400] = 24947055 +mem[33760] = 535147272 +mask = 0000100100X110X10110001X1100X1100110 +mem[52455] = 4031 +mem[2080] = 597 +mem[13626] = 5341 +mem[21873] = 2003200 +mem[1186] = 6032486 +mem[51356] = 62404345 +mem[45393] = 483 +mask = X001111100X111X100XX10X0010011X00000 +mem[61372] = 497780 +mem[19961] = 4926248 +mem[4632] = 210849418 +mem[18128] = 59536 +mask = 0X10X010101X0101001010101011010001X1 +mem[42008] = 1078148 +mem[59430] = 3978 +mem[6072] = 430913 +mem[48979] = 122586 +mem[6310] = 76628023 +mem[1521] = 10557 +mask = 1X00X1100011010101X011X1100111100000 +mem[175] = 9206 +mem[64788] = 330 +mem[22968] = 887 +mask = 1X101010X01101110000001110X11XXX0100 +mem[11815] = 58824493 +mem[2296] = 253702 +mem[50586] = 4894669 +mem[54541] = 348778635 +mem[3242] = 842 +mask = 01111101X011101XX01000110XX01X10010X +mem[28575] = 349000485 +mem[21743] = 503483 +mem[3887] = 225375382 +mem[45872] = 5853 +mem[45920] = 814440 +mem[39231] = 193428 \ No newline at end of file diff --git a/2020/inputs/day15.txt b/2020/inputs/day15.txt new file mode 100644 index 0000000..9db8a4c --- /dev/null +++ b/2020/inputs/day15.txt @@ -0,0 +1 @@ +5,2,8,16,18,0,1 diff --git a/2020/inputs/day16.txt b/2020/inputs/day16.txt new file mode 100644 index 0000000..4123288 --- /dev/null +++ b/2020/inputs/day16.txt @@ -0,0 +1,264 @@ +departure location: 44-709 or 728-964 +departure station: 42-259 or 269-974 +departure platform: 39-690 or 701-954 +departure track: 49-909 or 924-965 +departure date: 48-759 or 779-957 +departure time: 38-115 or 121-965 +arrival location: 32-808 or 818-949 +arrival station: 45-418 or 439-949 +arrival platform: 35-877 or 894-962 +arrival track: 26-866 or 872-958 +class: 32-727 or 736-969 +duration: 35-446 or 460-968 +price: 26-545 or 571-961 +route: 35-207 or 223-960 +row: 43-156 or 165-955 +seat: 26-172 or 181-966 +train: 49-582 or 606-952 +type: 36-279 or 303-968 +wagon: 26-657 or 672-959 +zone: 36-621 or 637-963 + +your ticket: +83,127,131,137,113,73,139,101,67,53,107,103,59,149,109,61,79,71,97,89 + +nearby tickets: +539,619,928,309,835,99,521,478,54,340,849,859,376,357,524,841,221,935,806,147 +231,827,907,526,238,542,181,853,303,143,116,701,206,140,927,203,443,753,151,258 +445,679,816,617,82,102,197,100,239,490,488,78,707,349,689,335,847,183,144,314 +476,833,232,489,937,256,87,409,223,364,978,939,398,331,153,945,513,237,934,272 +492,927,578,788,808,529,739,20,201,688,405,877,228,168,361,521,400,398,618,520 +332,694,481,571,523,516,395,122,844,358,232,132,315,486,899,154,269,201,831,50 +907,706,927,126,133,97,217,334,745,751,580,862,526,845,680,125,96,445,863,322 +498,753,844,670,150,657,853,150,377,487,152,369,500,241,360,204,142,236,948,91 +578,675,491,230,332,464,258,858,508,330,492,780,494,234,839,645,160,795,896,687 +814,875,617,185,490,490,501,940,224,751,609,844,442,525,640,609,336,251,532,685 +684,196,757,841,580,576,18,319,150,249,676,337,155,115,652,638,475,398,789,379 +445,490,199,140,88,694,184,247,307,386,198,85,905,860,484,244,532,224,681,251 +172,936,701,440,779,941,639,351,238,70,787,91,259,340,58,541,815,399,238,202 +715,369,504,226,138,866,783,231,580,147,82,335,533,144,530,462,836,751,473,801 +932,459,242,947,653,150,618,683,198,608,88,342,948,497,675,53,681,544,315,615 +422,244,791,929,799,128,374,473,148,931,381,822,318,853,147,367,531,412,242,470 +464,899,490,846,381,326,271,948,396,318,653,981,310,822,502,895,78,935,78,461 +231,339,79,530,680,461,863,521,839,517,379,108,395,613,644,751,823,212,206,151 +526,507,403,354,931,859,787,728,247,781,643,203,847,326,506,79,65,332,91,783 +571,182,753,841,338,746,254,307,896,648,726,89,314,706,943,464,444,481,465,928 +184,513,335,941,303,198,537,571,409,337,497,621,350,617,98,897,850,679,794,260 +235,255,393,310,188,65,943,543,94,374,500,482,122,992,656,523,704,742,331,792 +315,152,320,983,493,166,754,376,619,480,149,929,330,80,529,131,150,57,251,842 +54,77,540,141,61,205,273,214,745,145,166,131,93,525,500,521,223,52,237,404 +300,616,784,250,852,354,327,944,675,859,673,941,789,829,234,104,842,85,742,98 +110,244,95,93,529,162,82,309,142,680,65,410,531,758,511,790,333,352,926,397 +496,518,828,896,52,828,805,62,470,121,853,831,346,654,684,196,535,15,251,381 +231,444,530,616,795,620,78,460,947,748,757,78,706,336,82,317,186,256,216,196 +520,838,365,445,928,855,418,943,195,689,176,638,151,59,82,495,58,681,737,545 +172,755,782,71,514,336,383,470,168,70,168,199,307,102,793,250,739,174,368,279 +897,734,446,184,254,785,499,949,903,405,401,679,356,753,354,351,842,443,207,203 +60,577,746,229,105,475,640,877,848,477,545,525,793,752,313,315,318,983,537,249 +474,833,611,169,61,800,759,228,321,833,303,673,513,862,76,122,803,520,67,667 +504,919,413,521,514,251,785,170,656,759,510,537,579,462,794,756,687,479,864,507 +949,774,866,805,357,442,183,874,934,195,511,742,756,683,396,407,637,348,866,344 +687,305,781,780,821,586,945,94,87,230,353,376,849,379,510,368,709,489,113,191 +275,356,277,655,529,493,541,141,132,804,620,171,382,443,483,978,737,536,532,904 +357,369,142,383,802,782,722,391,905,684,226,413,379,74,792,618,351,939,580,578 +368,394,514,461,445,933,677,324,318,250,863,266,855,703,781,142,460,74,753,947 +935,852,127,241,309,825,481,206,642,81,375,862,330,21,496,60,677,238,532,138 +258,680,336,136,640,193,372,100,227,856,495,103,92,341,356,703,568,147,311,514 +412,673,398,244,397,313,378,780,107,905,318,208,172,374,464,690,379,686,538,638 +660,321,894,681,515,539,486,403,469,91,675,186,386,839,197,639,411,873,69,837 +845,413,996,87,314,674,362,258,783,412,341,529,519,654,526,757,899,617,909,492 +127,749,682,785,735,418,112,834,934,381,613,107,748,474,84,72,514,355,942,701 +541,100,75,155,645,410,612,519,976,656,854,140,61,140,401,827,466,798,385,192 +332,126,836,373,545,313,379,69,345,751,348,750,746,643,763,519,943,508,679,274 +642,521,55,479,54,615,323,247,736,80,979,489,97,238,759,579,363,826,91,929 +227,497,467,249,808,441,906,361,815,523,206,352,383,521,798,84,360,74,680,100 +96,486,465,382,796,198,500,717,462,617,245,247,649,941,946,750,408,845,637,311 +379,168,181,100,507,798,928,784,174,128,830,480,113,311,379,474,361,613,909,325 +130,144,649,305,273,637,112,353,528,786,944,866,931,269,381,271,153,902,552,129 +520,908,58,249,842,831,756,253,21,238,645,607,902,200,439,100,112,324,374,672 +614,173,149,316,132,309,484,270,249,104,542,524,350,357,244,331,507,405,793,345 +943,140,784,620,818,558,780,53,894,673,500,370,109,539,372,376,505,785,909,782 +900,187,113,464,991,534,368,181,463,841,747,362,945,640,153,227,241,944,833,743 +863,838,340,366,230,500,643,103,772,127,88,754,611,496,791,444,440,903,75,467 +649,828,617,466,188,502,315,352,866,758,919,247,835,574,750,409,468,247,359,202 +371,846,121,755,474,472,176,325,153,97,949,201,65,171,908,500,277,937,90,388 +929,392,539,469,843,440,947,893,347,312,128,63,754,685,947,227,679,470,945,303 +731,77,872,620,88,616,104,681,204,312,115,688,386,195,676,506,87,707,519,149 +278,365,780,785,874,251,114,321,499,898,729,101,637,684,167,797,826,930,615,51 +319,924,819,856,202,71,102,55,838,81,231,150,656,840,354,679,744,475,344,814 +926,657,378,507,927,389,680,238,185,319,475,897,132,936,685,540,16,331,508,613 +681,897,228,303,835,356,523,403,314,709,382,272,370,109,470,479,923,443,896,782 +677,239,501,233,180,928,351,101,373,151,321,347,445,198,112,679,828,751,680,96 +840,497,237,318,490,848,248,351,413,850,945,662,460,945,439,929,126,199,330,320 +647,489,508,105,648,253,270,807,201,110,537,12,336,369,581,609,190,535,676,489 +534,668,686,442,938,394,798,755,190,412,505,375,101,752,490,405,875,573,417,677 +231,461,260,138,611,824,333,331,406,351,229,97,756,926,678,849,488,758,230,121 +82,347,442,172,652,898,687,491,392,539,538,389,257,505,334,325,840,89,918,138 +517,352,192,701,848,617,804,704,344,785,58,839,351,140,394,242,144,342,179,142 +166,140,226,442,183,499,166,272,839,795,908,165,901,703,262,91,358,127,872,834 +788,157,156,675,876,376,473,404,709,752,373,780,324,146,169,819,807,337,514,204 +190,511,822,204,495,948,123,117,932,509,148,706,66,110,861,674,637,545,486,855 +119,227,439,442,808,378,929,949,313,142,359,789,503,442,908,310,315,474,395,935 +367,210,531,480,142,245,833,172,320,137,468,800,827,930,199,318,904,642,516,865 +538,198,113,62,362,528,787,668,936,657,184,345,895,236,385,829,522,253,758,352 +315,708,796,639,162,690,688,750,366,171,509,476,708,782,637,368,934,125,73,248 +617,156,576,737,521,755,932,266,939,203,690,578,853,98,414,50,759,440,819,331 +593,232,442,468,578,949,383,129,800,152,77,386,935,819,925,470,305,396,308,874 +102,361,319,187,226,942,493,272,247,68,475,364,398,141,821,900,56,480,814,307 +650,796,98,92,687,646,128,140,168,813,203,825,851,80,136,473,581,150,865,806 +263,520,275,378,406,113,59,194,759,128,522,183,498,167,185,702,652,606,133,578 +707,331,737,748,820,759,257,742,856,500,318,814,507,898,244,153,470,319,532,110 +488,382,380,145,126,807,359,343,606,82,750,194,607,981,409,151,860,862,339,900 +873,620,230,924,345,750,62,387,802,113,97,930,63,416,750,76,657,507,260,325 +111,749,114,785,477,572,248,687,500,64,925,931,132,783,795,491,998,248,754,56 +115,83,245,512,638,327,108,451,826,757,675,521,342,350,102,462,348,841,874,798 +941,822,582,948,500,645,393,757,214,362,103,132,181,515,227,828,827,406,375,232 +647,362,660,738,497,366,803,505,335,105,75,153,313,759,501,241,62,149,748,926 +123,146,613,390,742,638,907,515,334,686,411,854,933,469,174,126,169,395,842,351 +830,315,59,573,843,656,523,533,528,403,259,141,523,333,876,355,880,680,134,942 +234,22,808,145,529,374,142,572,344,409,607,930,858,825,804,223,534,505,466,539 +684,688,940,524,357,684,844,673,381,794,895,516,308,582,380,487,731,241,797,685 +196,112,331,528,533,396,489,579,266,496,77,440,650,165,399,469,475,507,364,56 +354,139,945,330,742,894,782,989,87,231,54,358,51,681,350,652,936,745,134,936 +804,439,935,234,944,849,186,173,254,690,326,102,149,926,115,792,829,167,508,746 +388,684,243,814,80,350,637,335,442,146,474,825,477,686,578,331,269,378,472,828 +826,863,520,70,279,522,801,579,500,237,696,534,242,259,932,540,182,544,72,701 +886,227,369,89,612,147,488,152,511,646,104,853,352,94,741,223,858,150,383,680 +792,51,440,64,838,116,195,674,70,902,829,779,682,404,808,860,619,466,807,836 +652,499,177,830,104,674,377,128,787,123,153,782,230,237,526,478,273,523,92,85 +418,364,405,327,502,538,539,278,372,508,245,306,325,488,548,674,97,135,944,906 +409,996,83,929,461,485,829,384,171,844,933,755,780,860,491,331,473,541,874,142 +390,92,141,310,747,142,653,498,203,829,946,393,142,251,360,22,804,385,240,167 +874,255,324,340,562,529,366,190,100,480,109,171,947,491,188,154,680,404,275,486 +945,947,61,110,500,920,875,248,352,56,475,949,876,686,745,443,171,821,348,645 +705,498,139,798,369,418,666,124,227,578,530,376,607,122,613,87,101,50,930,129 +475,235,549,581,610,820,206,96,901,802,128,818,413,542,151,362,401,474,76,331 +506,608,462,708,980,838,582,803,56,503,83,258,384,925,171,874,152,823,170,89 +517,606,475,644,105,195,846,445,323,619,498,183,310,79,493,155,90,533,259,218 +63,619,373,850,902,90,153,542,269,330,94,357,797,203,909,201,776,615,606,340 +501,342,74,394,94,212,401,475,877,72,519,128,148,640,859,68,525,54,358,904 +875,821,377,781,823,781,398,619,945,130,930,750,802,752,704,439,1,645,337,309 +533,830,474,829,98,613,896,744,512,126,248,511,113,250,66,515,585,128,877,259 +201,858,793,791,828,471,859,581,899,76,836,738,259,155,816,360,474,414,277,835 +5,324,784,71,677,617,745,808,184,56,478,682,578,310,390,330,656,872,305,684 +508,686,519,385,245,759,766,136,898,128,332,205,276,58,60,252,906,167,737,169 +799,650,674,67,181,243,155,254,785,208,934,197,835,350,76,865,516,248,837,503 +361,90,874,251,310,733,155,60,69,276,325,370,330,149,62,397,519,704,823,345 +186,256,497,252,75,880,516,278,172,381,61,357,358,115,858,202,512,375,836,247 +465,324,828,443,518,708,781,895,122,334,161,759,517,356,616,399,65,796,127,236 +792,170,109,461,141,928,758,201,101,114,739,153,108,675,938,512,177,330,580,943 +92,407,385,278,92,723,333,757,936,373,90,788,388,505,738,609,826,321,153,858 +350,780,492,311,414,306,702,252,257,782,837,823,137,166,988,648,186,781,613,789 +83,341,408,537,607,483,948,122,349,757,144,81,945,757,758,474,370,651,947,567 +110,689,77,706,383,353,395,187,399,402,186,223,816,373,112,530,908,327,531,851 +492,137,785,209,610,392,791,411,523,198,377,386,225,236,344,837,491,781,393,579 +233,172,271,138,875,789,512,81,63,406,479,232,122,704,895,946,448,136,684,949 +351,238,909,505,96,523,192,444,491,259,313,345,100,530,116,257,532,646,103,675 +642,149,898,346,487,470,896,358,493,674,275,461,503,572,443,787,839,905,499,117 +306,947,308,523,334,467,127,782,389,835,448,862,895,482,614,278,252,402,641,336 +232,368,805,944,138,86,143,499,644,60,320,942,89,533,489,71,782,927,327,17 +141,672,108,175,844,378,843,647,223,372,140,109,705,785,407,843,795,400,182,310 +253,684,377,93,409,606,688,23,476,51,709,828,860,736,156,75,483,169,441,92 +519,312,95,899,115,949,818,308,119,611,206,372,643,524,63,757,89,538,783,801 +577,872,902,510,51,239,278,541,576,235,780,475,758,321,350,575,117,324,83,410 +932,796,508,832,894,392,314,90,58,13,478,440,942,818,145,271,736,475,181,937 +113,737,758,182,145,454,332,66,52,488,545,129,500,126,509,703,306,137,534,618 +928,900,799,575,417,254,903,373,803,803,263,313,365,100,894,250,842,799,929,128 +69,705,638,72,321,814,610,397,926,902,67,499,122,508,74,744,825,746,183,410 +926,316,324,483,348,356,544,945,865,538,380,508,76,758,506,380,326,640,118,824 +832,340,786,225,704,206,508,535,843,347,326,120,620,473,650,247,100,238,309,337 +677,581,526,334,677,705,266,60,367,485,646,88,252,104,752,509,908,486,684,377 +55,861,490,521,265,182,339,876,575,242,782,153,673,495,256,534,360,346,233,361 +446,126,228,876,991,351,271,499,239,831,618,708,935,256,704,904,129,131,227,850 +219,642,394,413,129,276,843,701,619,349,242,247,608,320,824,864,894,536,701,255 +544,642,256,128,379,279,307,523,256,75,410,536,357,785,806,790,663,826,642,392 +311,337,896,352,315,538,786,271,370,54,129,89,946,837,71,519,715,818,76,270 +871,638,385,795,238,63,645,226,388,337,128,270,679,839,846,516,314,607,616,475 +94,794,188,392,490,73,144,908,504,139,182,573,844,391,947,333,528,549,782,384 +758,517,808,637,347,836,105,610,643,852,55,719,581,646,74,362,396,410,141,337 +949,749,745,848,187,51,350,497,165,543,929,321,245,945,272,121,396,810,198,108 +407,54,341,519,926,801,73,397,606,524,385,470,413,346,670,80,279,360,901,392 +794,139,837,745,834,380,701,312,463,705,151,313,682,168,866,1,703,500,476,202 +544,892,621,354,924,134,736,793,338,872,346,80,823,675,121,97,801,464,508,58 +370,538,474,641,171,189,342,381,94,145,999,384,383,400,645,866,513,140,618,97 +230,621,616,240,675,414,933,22,362,828,618,926,486,393,895,88,110,230,528,940 +483,852,446,339,512,684,582,200,896,862,979,353,319,610,145,374,581,446,750,252 +157,648,683,439,460,224,357,135,279,69,899,154,75,515,321,349,115,657,156,189 +414,794,652,930,397,440,655,306,484,512,342,861,344,902,100,860,513,976,66,388 +405,932,488,444,745,870,528,446,657,188,863,689,475,56,708,476,325,757,336,638 +456,783,396,84,237,107,443,645,106,652,304,337,110,477,134,899,145,410,709,544 +334,865,677,708,642,660,343,83,945,855,899,529,704,877,675,199,639,342,337,848 +490,855,851,784,119,652,489,416,349,538,705,439,736,537,751,312,152,273,307,95 +696,125,500,754,90,516,681,533,902,226,97,377,57,322,312,191,384,794,109,196 +195,50,197,253,339,992,502,168,402,107,757,137,247,62,275,855,245,231,645,86 +638,316,191,524,699,821,898,205,102,98,375,279,376,97,82,582,233,386,347,242 +177,369,248,754,803,270,927,382,305,532,854,854,614,355,746,356,484,253,388,406 +844,896,376,832,385,757,755,930,376,509,353,569,255,442,166,312,498,894,394,738 +362,591,803,532,678,527,517,852,345,440,832,948,403,673,96,228,861,909,840,412 +484,817,196,102,476,352,232,742,359,367,609,82,207,201,520,521,233,940,384,480 +906,329,207,67,510,71,98,920,857,384,77,247,571,388,121,387,147,241,894,478 +390,530,97,924,187,681,120,69,151,226,239,750,945,399,389,613,334,897,463,223 +345,276,484,617,229,102,580,989,155,683,639,485,545,89,348,800,940,257,137,98 +68,711,59,69,646,496,410,352,94,519,947,896,465,67,76,830,481,411,95,255 +704,535,780,309,314,64,63,904,509,93,408,225,189,372,503,139,146,512,4,621 +277,406,273,709,461,324,923,377,645,747,56,327,820,576,60,502,487,191,754,876 +364,325,755,509,677,385,235,349,945,480,641,858,142,905,933,214,306,806,97,827 +4,187,466,402,929,944,125,256,705,199,130,849,741,136,234,944,650,274,682,781 +318,340,499,237,348,396,682,62,131,574,708,380,278,866,927,85,267,877,830,371 +776,196,576,749,353,362,934,315,476,538,272,510,396,575,93,574,498,185,741,256 +50,909,410,647,920,305,655,184,233,361,391,908,258,779,530,708,655,793,92,651 +677,226,140,709,312,201,443,91,657,899,111,502,464,62,365,374,195,330,670,833 +555,346,608,401,256,128,318,418,353,56,187,743,231,87,133,909,113,363,319,939 +204,313,485,190,620,390,820,369,737,323,197,121,488,460,655,812,529,617,185,902 +749,678,375,242,514,752,325,709,736,532,143,776,269,656,510,486,865,484,305,905 +942,247,779,305,361,707,817,270,323,833,440,105,242,687,201,875,334,411,132,863 +484,653,224,511,322,387,229,309,470,64,186,362,202,482,277,660,645,342,320,501 +608,465,234,143,369,740,363,164,928,805,189,315,154,828,147,346,690,846,621,524 +825,78,355,520,840,768,58,410,304,581,464,279,572,145,521,534,908,872,755,148 +71,901,640,395,718,200,860,854,834,908,371,832,277,904,441,378,780,756,927,130 +489,79,794,258,54,790,792,82,246,80,513,821,97,350,846,144,572,277,695,190 +139,571,742,381,506,515,679,649,822,853,532,908,23,516,132,474,132,73,857,251 +61,805,355,524,851,894,691,81,905,924,898,473,652,749,460,948,512,185,414,519 +505,752,239,508,817,188,345,906,198,525,340,355,688,516,247,517,476,847,542,169 +649,646,898,462,539,472,396,310,148,832,303,187,362,848,402,646,853,661,477,91 +612,383,369,231,229,939,351,106,820,313,401,175,654,644,342,334,235,367,675,853 +794,120,754,469,399,383,613,579,360,87,418,414,390,828,864,606,345,860,309,200 +746,539,316,14,800,274,641,507,335,410,745,872,947,131,227,656,900,535,802,460 +945,836,325,610,376,939,616,235,311,408,322,102,743,442,697,141,825,321,534,861 +252,203,78,611,824,653,348,700,946,508,864,338,98,78,611,319,439,344,791,232 +508,943,13,933,83,193,149,647,786,385,739,477,707,199,486,746,169,155,466,315 +472,782,945,275,53,618,340,377,390,545,849,753,375,355,468,704,856,480,157,305 +338,507,476,303,271,541,135,528,790,53,565,505,249,387,678,747,860,509,466,844 +140,246,64,309,196,94,834,193,136,97,471,827,251,170,713,757,738,344,460,388 +847,290,440,313,534,754,481,822,754,740,316,469,538,790,793,864,325,196,575,796 +645,672,342,193,646,305,781,189,139,979,316,900,749,324,478,525,753,934,256,73 +613,324,781,581,56,335,524,812,74,142,229,748,873,378,895,529,316,755,147,342 +95,106,310,303,345,490,736,145,544,614,127,193,93,333,15,56,463,532,861,947 +366,460,388,806,540,444,96,58,442,577,620,741,685,836,209,785,53,933,787,576 +522,322,739,572,618,938,686,444,756,254,482,196,333,360,799,101,639,572,768,356 +127,856,860,943,658,87,115,108,862,619,675,384,581,70,526,789,403,369,938,139 +475,256,471,91,840,71,183,938,316,255,582,522,840,501,145,677,700,839,866,655 +744,262,389,538,839,844,194,907,228,181,478,941,418,948,329,418,329,379,643,127 +237,85,72,150,574,619,678,82,658,71,411,674,273,527,856,791,834,327,87,756 +390,500,270,354,74,701,567,497,611,779,146,741,328,383,877,309,90,749,279,237 +379,155,70,508,530,171,906,257,376,535,778,152,439,129,235,80,803,859,743,522 +527,690,385,491,249,780,618,57,798,365,409,223,924,537,903,498,874,137,720,580 +536,875,477,246,114,167,55,803,609,525,670,834,244,67,54,704,753,757,127,829 +653,942,643,938,214,751,80,749,749,513,645,838,866,538,145,60,275,674,673,346 +914,113,304,639,310,783,851,825,685,309,69,351,875,155,152,238,353,575,78,638 +822,334,935,793,146,492,861,767,529,753,277,758,843,321,468,491,340,679,83,226 +444,870,341,653,852,89,651,941,309,258,645,841,606,364,649,873,138,529,259,800 +898,683,464,783,897,607,99,183,483,395,219,932,706,847,737,128,754,409,259,409 +608,564,144,86,523,941,226,519,97,925,333,67,383,501,226,581,106,805,481,614 +171,55,392,79,501,925,189,196,366,269,996,833,531,371,110,785,354,201,759,352 +374,60,400,272,54,74,353,522,494,785,811,277,69,201,744,399,341,929,940,66 +190,805,131,494,806,260,753,576,131,531,896,384,607,354,791,194,149,644,904,500 +68,498,742,747,57,792,9,256,508,942,354,614,110,339,325,851,826,64,64,143 +443,92,847,250,516,827,247,562,71,794,224,751,498,484,279,202,513,244,641,542 +379,487,709,324,906,204,613,207,553,904,319,792,805,368,168,617,840,442,488,205 +249,876,640,471,542,801,744,245,127,206,808,978,823,925,513,873,347,69,931,442 +818,353,391,512,102,175,402,362,94,247,682,257,493,441,73,397,123,839,575,738 +135,59,606,183,743,255,528,171,387,513,473,577,66,899,139,65,410,757,371,178 +100,315,606,894,345,131,199,472,123,931,646,993,493,615,611,154,182,418,106,835 +227,580,210,650,201,225,374,675,362,366,269,402,127,399,808,409,504,688,205,506 +83,862,749,940,760,446,483,468,223,103,378,740,379,132,753,131,329,169,197,136 diff --git a/2020/inputs/day17.txt b/2020/inputs/day17.txt new file mode 100644 index 0000000..5690ac2 --- /dev/null +++ b/2020/inputs/day17.txt @@ -0,0 +1,8 @@ +.##...#. +.#.###.. +..##.#.# +##...#.# +#..#...# +#..###.. +.##.#### +..#####. diff --git a/2020/inputs/day18.txt b/2020/inputs/day18.txt new file mode 100644 index 0000000..396890b --- /dev/null +++ b/2020/inputs/day18.txt @@ -0,0 +1,373 @@ +(5 * 6 * 5 * 7) + (6 + (8 * 3 * 9 + 2 + 7) + 7 + (4 * 2 + 5)) + 8 +(4 + 6 * 4) + 6 * ((2 + 5 * 3 + 3 + 7 + 3) * 3 * (7 * 8 * 7 + 2) + (3 + 5)) + 7 * 3 * 6 +(7 + (3 + 6)) * 7 + 9 * 4 + 8 +2 * 5 + (4 + 9 + (4 + 7 + 3 * 7 + 6) + 7 + 8) + 2 * 7 * 3 +(5 * 2 + (6 * 7 * 2 * 7 * 9 + 2) * 4 + 7) * (6 + 7 * 6 * 3) + 7 + 6 * 6 +5 + 9 * (2 * 3) * (3 + 5 + 4 + 8 + 3) + ((2 * 8) * (5 * 8 + 8 + 3 + 5 * 9) + 6 * 5 + 2) +4 * 5 + ((7 + 9 + 2 * 5 + 8) * 3 * 9 * 7 + 4) + (7 * (9 + 7 * 3 * 7) + 6) +4 * (6 * (7 + 9 * 4 * 2 * 5) + 4 * (4 + 2 + 9) * 7 * 2) + 5 * (4 * (2 + 6 + 3 * 3 + 5) * 5 * 9) +7 * (2 + (3 * 6) * 8 + 3 * 3 * 4) * (8 + 8 + 2 * 5 + 4 * 8) * ((2 * 5) + 9 * 6 + 5 * 8) +6 + (9 + 4 + (9 * 5 + 3 * 3) * (9 + 9 * 5 + 6) * 5 * 8) * 7 * 5 + ((7 * 6) + 4) * 2 +(5 * 6 * 3) * (6 * 3 + 8) * 6 * 4 * 5 +3 * 2 * 2 * 7 * (9 + (9 * 6 * 7 * 6 * 9 + 6) + (6 + 9 * 5 + 9) + 6) * 4 +9 + 3 + (3 * 7 * 7 * (4 + 2 * 6 + 9 + 6 * 9) + 4) +4 * 4 + 3 + 6 * 4 +(7 * 2 * (5 * 2) * 6 * (7 + 9 * 6 * 9 * 9 * 2) + (3 + 5)) * (4 + (8 * 5 * 6 * 7) * 5 + 3 + 3 + 2) * 4 +2 * 9 + (7 * 9 + 3 * 3) * 4 + 6 + 8 +((5 + 5) * (3 * 9 * 5 * 4)) * 3 +9 * 5 * 9 * (7 + 9 * 5 * 8 * 4) * (3 * 6 + 8 * 4 + 5 * (9 * 5 + 5)) +(7 * (5 * 8 * 8 + 3) + 7 + 8) * 9 + ((6 + 7 * 8 + 7) + 5 + 6 * 3 + 8) +9 * 7 + 8 * 5 + (8 * (3 * 6 + 9 + 3) * 8 * 5) +(3 * 4 + 6 + 5 * 2) + 9 + 3 * (9 + (3 + 2 + 4)) * (6 * 8 + 6 * 6 * 2 * (7 + 9)) +3 + 7 + 2 + 9 + ((4 + 8 + 7) * 5 + (3 + 6) + 3 * 9 + 8) * ((9 * 2) + 3 + 6 + (5 + 6 * 9 * 6 + 8 + 5)) +2 + (5 * 3 + 7 * (5 + 8 + 6 + 8 * 6) + 2 * (2 * 7 * 4 * 7 + 8)) + 8 * (2 * 3 * 7 * 5) * (7 + 3 + (8 + 2 * 3 * 9 + 9 * 2) * 2 + 8) + (2 + (5 * 4 + 2 * 9 + 2 * 3) * 3 + 5 + (4 * 9 * 2) + 2) +2 + ((9 * 5) + 4 * 5) + 7 * 4 + 7 +(6 + 2 + 7) + 7 * 3 +(7 * 7 + (5 + 7 + 2 * 4) * 5 + 2) * (3 + (4 * 3 + 7 + 4) + 8) +9 * ((7 * 2 + 3 * 7 * 3 * 8) + 4 + 2 * 2 + 6 * 9) * 4 + 4 + 7 +3 * 2 * 6 * 8 + 2 * (8 + 5 * (9 * 5) + (7 * 3 * 5 + 3 * 2)) +5 + 9 + 3 + 8 + (4 + 4) +9 * 2 * 3 * (8 + 5 * 9 + 9 + 9) + (2 * (6 + 6 + 8 + 6 + 2 * 5) * 5) +(3 + 8 * 5) + 8 * 9 + (2 + 3 * (4 * 2 * 8 + 2 * 8) * 3 + 9 * 5) * 7 * 5 +(8 * 9 * (4 * 2 * 5) + 5 + 5) * 5 * 9 + 3 +8 * (6 * 4 * (5 * 7 + 8 + 4 + 9) + 6) * (4 * 4 * 4 * 2 * (8 * 3 * 7 * 7 + 4)) + 2 +((7 * 8) * 9 * 5) * 9 * 7 * ((4 + 6) + 3 + 2 + 3) * 5 +5 * 6 * 2 * ((8 * 9 + 3 * 7) * 3 + (7 + 4)) +4 + ((9 * 2 + 2 + 5 + 6 * 5) * 3) * (6 * 6) +(5 * 8 + 2) * (3 + (7 + 5 + 5 + 8) * 5 * (4 + 5 + 9)) + 2 + 3 * 8 +((6 * 4 + 4 + 9 * 5 + 4) + 6 * 4 + 2) * 9 * 7 * 4 * 6 +(2 + 6 * 3 + 4 * 7 + 3) * 9 + 9 + 5 +9 + 2 + 9 + 5 * 4 +8 * 6 * 6 * 6 + 5 +2 + (5 * 5 + 7 + 8) + 6 * 4 * 2 + 6 +(5 * 7 * 6 * 8 * 5) * 2 +2 * 5 + (6 * (6 + 5 * 3) * 3) * (8 + 3 * 9 * 4 * 9 + (6 + 7 + 4 + 5 + 6 + 6)) +2 + (8 * (5 + 6 + 9 + 6 * 8 * 6) * 7 * 5 * 2 + 3) + 7 * 5 +8 + 4 + (9 * 6 + 6 * 6 * (9 + 3 * 7 + 8 * 2) * 3) + ((8 * 2 + 7 + 8) * 3 + 7 + 2) * 8 +4 + 4 + (2 * 3 + 6 + (7 * 4 + 7 * 9 * 5 * 6)) + 4 * 6 +(7 + 8 * 7 * 4 * 7) * 8 * (4 * 6 * 4 * 9 + 6) + 4 + 2 +2 + 5 * ((8 + 5 * 9 * 2 + 3 * 5) + 2 * 9 * 2) + 5 * 7 +(8 + 3 + 4 + 9 + 6 * 9) * 2 * 5 * 8 * 5 + 6 +(3 * (5 + 9) * 5) * (7 + (9 * 5 * 3 * 4 * 3) * (2 * 7 + 2 * 3 + 2 + 7) * 3) + 3 * 2 * 9 + 5 +(4 + 4 * 5) + 8 * 7 * 9 + 5 * (5 + 3 + (2 + 5 * 2)) +(8 * 3 + 8 * 8) + 5 * (3 * 8 + 8 + (5 * 3 + 9 + 6 + 6) * 3 * 9) + (4 * 6 + 4 * 6 * (6 + 8)) + 7 +3 + 4 * 2 + 8 * ((5 + 9 + 9) * 6 * 5) +2 + ((7 + 4 * 8) + 8 * (2 * 4) + 8 * 3) +(9 + 4 + (2 + 4 + 9 * 7 + 4)) * 9 +8 + 8 + 6 * (3 + 7 + (4 + 6 + 8 * 7 + 7) + 9 * (9 * 3 * 9)) + 5 + 8 +6 * 6 + (7 + 5 + 2 + (5 + 6 * 9 + 5 + 6)) * (2 * 7 + 6 * 9) + 6 + 3 +3 * 9 + 2 * ((3 + 2 * 7) + 2 + 7) + 2 + 4 +7 * (2 + 6 + 8 + 9 + 5 + 9) * 7 * 5 +((7 + 3 + 8 * 5 + 3) * 3 + 3) + 3 + (5 + 9) + 2 * 6 + 6 +(2 * 7 * 6) + 8 + (2 * 6 * 6 + 5 * 4 + 3) + (9 * (6 * 8 * 2 + 9 * 2) * 6 * 6) +2 + (7 * (8 + 6 + 4 * 3 * 9) + 2 + (6 + 6 + 6) + 2 + 4) + 6 +2 + 5 * 5 + (4 + 6 * 5 * (4 * 2 + 4 + 6)) +8 + 9 + ((6 + 4 * 4 * 2 * 4) + (3 * 2 + 6 + 6 * 8) + 5 + (6 * 6) + (3 + 7 * 9 * 4 * 4 * 8) * 2) + 3 +9 * (8 * 2 + 4) * 5 * 6 * (3 + 6) +((7 * 5) + 4 + (2 * 6 * 5 * 5 * 5) + 9 * 9 * (9 * 7 + 8 + 8 + 8 * 7)) + (6 + 9 + 4 * 8 * 3 + 8) + 8 * 6 + 4 * 9 +3 * 6 + (6 * 3 * 5 * 9 * 8 * 6) +2 + 7 * (6 + 2 + 9) + 7 +((9 + 8 * 8 * 3 * 3) + (8 * 6 + 3) * 3) * 2 +2 * 7 + 7 +3 + 9 * 8 + 6 * 3 + (2 + (2 * 6) + 3) +((2 * 4 * 8 * 7) + 7 + 7 * 7) + 4 + 4 + 3 + (2 + 6 + (5 * 3 * 8 * 5) * 9) +(2 * 6 * (3 + 7) * 5) * 9 * 4 * (3 + (7 + 5) + 5 * (2 * 6 + 4 * 3 + 3)) * 9 + 5 +7 + 8 + 5 + ((9 + 3 * 6 + 8 * 8 * 5) * 9 + (7 * 6 * 7 + 2) + 6) * 6 +9 * (9 + 7 + 8 * 4 + 2 + 4) +8 * (2 + 9 * 9) + 9 * (9 * 2 * 8 * 7 + 2 * 2) +(9 + (5 + 3 * 6 * 8) + 6 + 2 + (8 * 6 * 2 * 5 + 3 + 3) * (7 * 9 + 3)) * 7 + 3 * (2 * 4) + 8 * 7 +2 * 3 + 2 * 6 * 2 + (7 + 3 + 4 + 3 + 3 + 5) +8 + (9 + 2 + 6 * 4) + 5 * 7 +7 * 9 + 4 * 7 + 9 + 8 +9 + 4 * 7 * 8 + (6 + 8 + 9 * (8 * 4 * 2) + 4) +3 + (9 + 9 * 3 * 2) * 7 +(7 * (3 + 3) + 9 * 3) + (3 * 7 * 9) * 3 + 2 + (3 * 9 + (2 + 3) * 3 + 7 * 5) +(5 + 2) + 5 * 9 + 3 * 9 + 9 +9 * 6 * (5 + 7 * 4 * 3 + 2 * 3) * 2 * 5 + (5 * 9) +(2 + 3) * 2 + 4 * 3 + 9 + (9 * 3) +8 + 3 + (6 * 6 + (4 * 7 + 8 * 8 + 6) + 9 + 2 + 7) +(6 + 4 + 9) + 6 + (3 * 5 * (3 + 5 * 7 + 3 * 8 + 7) + 3 * 2 * 8) * 9 +((6 + 7 * 5 + 2 + 6) + 5 + 9 * 6 * 8 * 5) * (5 + 3 + 7 + 4 * (4 * 6)) * (7 * 7 + 8) * ((7 * 4 + 3 * 7 + 8 + 7) * (2 * 3 + 9) + (7 + 4 * 2)) + 2 +6 * (2 + (9 * 2 + 2 + 9 + 2) + (9 * 5 + 4) * 3 * 5) + (8 + 6) + ((7 * 6 + 7 * 2 + 9) * 9) +6 * 7 + (2 * (4 + 5 * 4 * 7) * (7 * 3) + 2 * 5) + (5 + 9 * (3 + 9) * 5 + 6 * (3 * 6 * 7)) +2 + (2 + 7 * (9 + 3) + 3 + 9 + 9) + 8 + ((4 * 3 * 4 + 6 + 6 + 9) * 3 * 6 + 8) * 7 +6 * 9 * ((5 * 9 * 4) * 8 + 6 * 6 * (7 + 2 * 5 * 7) * 9) + (5 * 3 + (4 * 5 + 3 * 3 + 4 + 5) + 3) * (6 + 8) * 5 +9 * (2 * (5 * 6) + 3) * 8 * 4 * 4 +4 + 3 * 9 + 2 * (9 * 6 * 5 * 6 + 9) * 5 +((7 * 7 + 3 * 2 * 4 * 5) + 6 * (6 + 4 + 9 * 2 * 9) * 7) + 8 + 2 * 8 * 7 +(5 * 3 + 6 * 5 + 4) + (4 + (9 * 7 * 2 * 3 + 9) + 5 * 4 * 5 + 9) + 3 * 4 * 8 +(7 * 6 + 6 * 5) + (4 * 6 + 6) +(7 * 8 * 3 + 5 * 6) + 9 * 9 * 3 + 5 +(4 * 6) * 5 +4 + 5 + 7 * 3 * (6 * (5 + 5 * 5) * 8 + 2 + 2 + 8) * 4 +8 + (8 * 5 * (3 + 8)) + 3 * (8 * (2 * 4 * 4 + 4 + 3 * 9)) +6 + 5 + 2 + 2 + 3 * (8 + 4 * 7) +3 + 2 + (7 + 8 + 7) + 4 + 9 +(7 + (7 + 9 + 4 + 2 + 7 * 7)) + (6 + 9) + 3 * 9 +5 * (4 + 6) + 4 * (4 + 3) +(4 + 9) * (6 * 6 * 3 + 5 + 8) + 3 * 7 * 3 +9 + 7 * (3 + 6 * 3) * 5 * (4 * 6 * 4 * 4) + 4 +6 * 8 + 8 * (9 * (2 * 5) * (9 + 2 + 4) + (7 * 7 + 4) + 8 * 5) + 8 + (7 + 4 * (3 * 5 + 8 + 5 * 2)) +8 + 4 * 3 * ((4 * 6) * 8 * (6 * 2 * 4 + 5) * (6 + 9)) +4 * 4 * ((5 * 2 * 5 + 9) + 3 * (7 * 6 * 7) + 7 * 2 + 6) + 7 + 5 +2 * 9 * 5 + 3 * (5 * 6 * 8 * 4 + (8 + 3 * 6 * 5)) * 6 +(3 * 6 + 2) + 2 * 5 * (8 * (7 * 8) + 5 + 3) +((6 + 8 * 9 + 2) * 4 + 7 + (8 * 5 * 2 * 2) * 3 + 4) + (7 + 7 * (2 * 4 * 4 * 8 + 7 + 2) * (3 * 7 + 5 + 9) + 5 * 3) * ((3 + 3 * 9 + 9) + 9 + 8) * (4 + (8 + 7 * 3)) + 3 +(6 * 2 * (7 + 3 + 2 * 2 * 5) + 8 * 9) * 5 * 2 * 7 * 9 + 6 +((2 + 3 * 2 + 5 * 8 + 3) + 5 * (7 + 8 * 5 * 2 * 4 * 8) + 6 + 9) * 9 + (5 * 2 + 4) + 2 + 3 +(4 + 7 * 7 + 6 * 9 + 9) + 3 +2 + (5 + (7 + 5 * 6 + 4 + 9 + 2) + 2) +4 * 9 + (8 + 2 + 5 * 8) +2 + 3 * 5 * 6 + 6 * (6 * 7 * 6 + 4 * 2 * (5 + 3 + 4 + 8 + 4)) +6 + 2 * (4 * 2 + 5 * (4 + 5) * 2) * 9 +(5 * 8 * 5 + 5) + ((3 + 4) * 7 + 5 + (3 * 6 * 2) * 9 + 6) + 7 +7 * 2 * (7 + 2 + 4 + 4 + (5 * 6 * 9 + 4 * 8)) +5 * ((6 + 8 * 2 + 7 + 4) * 2) * 7 * 5 + 7 * 9 +(6 + (6 + 2 * 8) * 4) * ((5 * 3 * 9 + 8) + 6 + 7) * (3 * 8 + (6 + 3) + 3 * 3 + (9 + 4 * 5)) + 3 +6 + (9 * 2 * 2 + 3) + (5 * 3) +(4 + 7 * 8 * (2 + 3 + 6 * 8) * 3) + ((3 + 9) + (2 + 3 + 3) + 8 * 9 + (6 + 7 * 5 * 5) * 2) + 5 + 8 + 3 * (7 + 6 + 3 * 3 + 5 * 5) +2 * (9 + 5 * 9 * 2 + 8 + 8) * 7 +9 + (4 * 4 + (9 * 4 * 8 * 8 * 6)) + 3 * 5 +6 + 4 * ((5 + 6) * (3 + 6 * 3 + 2) * (2 * 5) + 3 + 2) * 6 + 4 + 6 +2 + (7 * 8 * (6 * 7 * 9 + 8)) * 8 * 3 * 7 * 7 +9 + 9 + 2 +(8 * 6 + 8 + 2) + ((9 * 4 + 9) * 9) + 5 * 2 * 3 +(2 * (2 * 6 * 6 * 3 * 5) * 6 * (4 * 9 * 9 + 4 * 5)) * (4 + (2 + 8 * 9 + 7) * 3 * 6) + 7 +(7 * 6 * 4 * (9 * 7 + 4 + 7) + 7) * 6 * (2 + 4 + 8) * (5 * 4 * (7 * 9) + 4) +9 * 4 + (2 * (5 + 9 + 7 * 4) + 6 + (7 * 3) * 6 + (6 * 9 + 4 * 6 + 8 + 7)) * 3 +4 + 8 * 7 + 6 * (3 * 8 * 8) + 3 +7 * (7 + 4 + 8 + 3 * 7 + 7) * (9 * (3 + 3) + 5 * (8 * 2)) * 5 * (2 + (4 * 6 + 4 * 7 + 6 * 9) + 2 * (9 + 7) * 4 * 5) +3 + 9 + (6 + 8) + 4 * 7 +3 * (5 * 8 + (7 + 8)) + 6 * 6 + 4 * 8 +7 * (5 * (3 * 6 * 2 * 9 + 4 + 2)) + 9 * 6 * (4 * 7 * 2 * 8) * 3 +(5 + 3) + 9 * (3 + 8) + 8 + (5 * 9) +4 * 5 + 2 * (6 * (9 * 2 + 4)) +(9 * 9 * (5 + 5 + 5 * 7 + 6 * 8) * 4) * (9 * 5) + 5 + 7 + 7 * 8 +5 + ((9 + 3 + 8 + 8 + 8) + 6 + 6) * 2 * 6 +6 + (7 * 9) + (6 + 6 * 9 * 3) * 3 +8 + 4 + 5 + ((7 + 5) + 7 * 7 * 2 + 2) +(3 + 4 + (6 + 5 + 5 + 6 + 9) * 4) + 8 * 8 * 7 + 6 + 7 +5 + ((8 * 9 + 6) * (4 + 8 + 5 + 5 + 6 + 8)) * 4 * 4 +9 + 8 * (2 * (6 + 7 * 6 + 4 * 2)) * 2 + (4 * 2 + 3 + 8) +4 * (2 + (3 * 8) * 4) + 8 * 8 +9 + (3 * 9 * 6 + 5 + 5 * 2) + 3 * (3 + (8 + 6) * 3 + 6) + 4 * 3 +6 + (6 * 3 * 9 * (5 * 7 + 8 * 9) + 3 + 8) +4 + (2 + 2) + (5 + 4 + 3 * 2 * 5 + 5) + (2 + 9) * 2 +4 + 3 +4 * ((3 + 8 + 4 + 6) + 6 + 7 + 8 + 9 * 9) +(7 * 9 + 5 + (4 + 5 + 7 + 9 * 4 * 2) * 2) * 5 +2 + 8 * 2 + 5 * 2 +4 + ((7 * 8 + 4) + 5 * 8 * (5 + 2) + 9) + 2 + 8 + 6 +7 + 7 * ((7 * 6 * 6 + 3 + 8 * 5) + 7 * 8 * (6 + 2)) + 6 * 5 * 8 +8 * 4 * 7 + 4 +2 * 2 * 7 + 4 +9 + (6 + 7 + (4 * 2 + 4)) + 9 + 5 +6 + (7 * 6 * 8 + 9 + 6 * 7) + (6 * 7 * (3 + 4 * 6 + 9) * 8 * 6 * (5 + 6 + 7 * 6 * 3)) + 4 +7 * (8 * (8 + 6) * 8 * 2 + (9 + 8 * 6 + 3) * (6 * 4 + 7 + 7)) + 9 +5 * 9 + (7 * 5 + (4 + 2 * 5 * 6 + 9 + 9) * 8 * 6) +4 + (8 + 8 * 2 * (3 * 7 * 4 * 5) * 8 + 4) + 9 * 9 * 3 +7 * (3 + 9 * 2) +9 * ((8 + 8) + 5 + (4 * 3 * 9) * (5 * 3 * 2) + 2 + 8) * 2 + 5 * ((5 * 7) * (5 + 7 + 7 * 6 + 5) + 5 * 4 + 6 + 5) +9 + 6 + ((5 + 9 + 9) * 8) * 2 * 8 +7 + (2 * (7 * 3 + 8) * 8 * 3 + 2 * 5) + 4 + 9 + ((3 + 6 * 9 * 3 + 6) * 8 * 9) +7 + 7 + 2 * 3 + 5 * (3 * 5) +5 + 6 * 6 * 8 + (3 * 9 * 7 + (4 * 4 + 3 + 4 + 7 + 6) * (7 + 6) + 2) +(9 * (3 * 3 * 8 * 7 * 3 * 8)) + (2 + 3 * 8 * 6) + 6 +(6 * 6 + (6 * 7 + 3) * 5 * (4 + 9) + 7) * 3 * 6 +2 + 9 * 2 + 5 * (3 * 4 + (4 + 6 + 5 * 8 * 2) * 9 * 3) + (8 + 7 * 9 + 6 + 3 + 3) +(3 + (2 * 7 * 9 * 8 * 4)) * (6 * (6 * 5 * 2) * 9 * 7 * 9 + 3) + 6 + 4 * (6 + 9 + 4 + 2) * 3 +2 * 7 * ((4 * 8 * 4 * 9) + (8 + 2 + 2 + 7 * 7 + 6) * 9) +2 * 3 + 4 + 9 +(5 + (8 + 8 * 7 + 7 * 3 * 2) + 4 + (3 + 9 * 6) * 4) + ((3 + 2 + 6 * 4) + 6 * 7) + 2 * (5 + 8 + (3 * 7 * 7 * 9) + (2 * 7) * 7 + 5) + 6 +8 + (9 * 5 + (6 * 4 * 6 + 5 + 2 + 7) * (7 + 8) + 7 + 5) + ((7 * 3 * 7 + 8 * 4 * 6) + 9 * 7 + 6 + 3 + (4 * 7 + 2)) * 9 * 3 +(3 + 9 + 5 + 5 * 8) * (7 * 6) +(2 + 4) * (5 * 9 * 8 + 7 * 5 + 5) * 9 + (7 * 3 + 9 + 3) +6 * 5 * 2 * 6 + 6 + 8 +7 * (5 * 8 + (3 + 6) + 6 + 7 * 2) * 9 + 3 +2 * 7 * 9 * (7 * (9 + 9) + (9 + 2 * 5)) + 5 * 5 +6 + 9 +8 + 9 + 8 + 8 + 9 + 9 +2 + (9 * (2 * 3 * 9) + 7) + 5 +(7 * 4) + (9 * 5 * 2) +(4 + 2 + 6 + 8 * 4 * 8) * 7 * 8 + 7 + 2 +(6 + 9 * 9 + 7 * (5 * 7 * 6 + 9 * 5 + 2) + 3) * (2 + 4 * (8 * 3 + 2 * 4 * 2 * 8) + 9) * (6 + 6 * 2 * 6) + 5 +2 * 2 +6 * ((5 + 9 + 3 + 3 * 7 * 4) * (7 * 7 * 9 * 3) * 2 * 9 + 5) + 5 + 3 +(9 + 8) + (5 * 6 + 7) + 2 * (8 + 8 * 4 + (3 + 9) + (5 + 4 * 8 + 6 + 2)) * 5 +9 * 5 * 2 + ((9 * 5) + 2) + (8 + 5 * 5 + (9 + 6) * 7) +3 + 5 + ((5 * 9) * (3 * 9 * 7 + 7)) * 4 +(7 * 4 * 9 * 5 + 9) + 5 + 4 +2 * (6 * 4 * 6) * (4 + (6 * 6 * 7) * 4 * 4 * (6 + 8 * 2 + 5 + 7 + 9) + 2) * 3 * 5 * (8 * 9 * 4) +(7 + (8 * 2 + 2 + 5 + 7 + 2) + 7) + 2 +(4 * (4 * 6 * 9) * 6 * (5 * 3 * 9) + 5 + 7) * 7 * (2 + 6 + 4 * 3 + 9 * 5) + 2 +7 * 5 + 9 + (7 + 8 + 4 + 6) + (4 + 9 + 3 * (3 * 6)) +(8 + 5 + 9 + 8 * 4) + (2 * 7 + 4) +(5 + 9 * (9 * 9 + 2) * 5 + 4 + 4) + 6 + (7 * 4 + 8 + 5 * 4) * 4 * 8 +4 * (8 * (4 * 3 * 7 * 8 * 2)) + 4 + 3 * 2 +8 * 8 + (5 + (5 + 5 + 9 + 3 + 6 * 2) * 7 + 5) + 6 + 8 +(7 * (2 + 5 + 7) * 9 + 5 * 4) + 8 * 4 +(2 * 6 + 3 * 8) * (6 + 5) * 9 +7 + ((2 * 5) + (3 + 9 * 4 * 2 + 9 + 9) * 7 + 5 + (5 + 7 * 9 * 3 * 7) + 4) + 4 + 8 * 2 +(4 + 4 * 9 * 4) + 4 +4 + (4 + 5 * 4 + 9 * (3 * 3)) * 7 * 9 + (7 + (8 + 9 + 5)) + 4 +8 * 8 * 6 * 2 +((8 + 6 + 8 * 8 + 9) + 8 * 8 * 7 + 7 + 2) * 8 + 5 + 4 * 5 * 9 +3 + 3 * 6 * 5 * 5 + (3 + 7 * (5 + 2 + 5) + (2 * 2 + 6 * 2 * 4 + 3) * 9 + 4) +(7 * 5 * 8 + (8 + 4 + 8)) * 8 + (2 + 5 + 9 * 2) + 9 +(7 + 3 + 8 * 6 + 8) * 5 * 6 * 2 + 2 + (6 * 7) +((9 + 6 * 7 * 3 + 2) + 6 * 4) * 6 +5 * 7 * ((9 * 7 + 3 + 2) * (5 + 6 + 8)) + (4 + 8 + 6 * 6) +3 + 2 + (3 + 7) * 7 * ((6 * 8 * 4 * 2 * 9) + 9) +6 + 5 * 9 * 8 +2 * (8 + 9 + 5 * (4 * 5) + 7 + (8 * 6 * 4 + 9 * 3)) * 7 * 8 +7 * 3 + 7 + 3 + 5 +(4 * 6 * 6 * (3 * 2 * 2 * 6 * 2 * 5) * 3) * 3 + 6 +(5 * 7 + 9 * 5 * (2 + 5 * 4 * 4 + 3) + 6) + 9 + 6 + 5 * 3 + 7 +8 + (7 * 5 + 7 + 9 * 8) + 8 + 7 +((9 * 8 * 7 + 2 * 6) + 3 + 9) + 5 + 3 +(9 + (5 * 9 * 3 + 7) + 6 * 9 * 8) + (4 + 6 + (7 * 8 + 7 * 2 * 6 * 4)) +5 * (5 + (2 + 2 + 7) + 7 + 4) +8 + (2 + 8 + (7 + 4)) +6 * 7 + 2 + (3 * 3 * 9) * (5 + 4 * 9) +7 + (2 * 3 * 3 * 6 + (6 + 2 * 7 + 4 * 2 * 5)) + 2 + 5 * 3 +((4 * 9 * 4) + 3 * 6 * 5) * ((4 * 8 + 2) + (7 + 5 * 5) + 4) * 4 * 2 + 2 + 3 +3 * (8 * 6 * 4 + 4) + 3 + ((7 * 8 * 9 * 5 * 2 + 7) * 6 + (5 * 5 * 3 + 5 + 7 * 9)) * 5 * 7 +3 * 6 + (9 * 4 * 9) +6 * (3 + 5 * 8 * 7 + 2) +4 * 7 * 6 + 3 + 2 * 4 +(9 + 9 * 7) + 2 * 6 * ((5 * 9 * 4 * 3 + 8 * 2) * 5 + (6 + 2 * 2) * 2) +4 * (6 * 5 * 4 * (8 + 9 + 2)) * (7 + 7 + 6 + (8 * 6 + 5) * 6) * 5 +9 * (6 + 8 * 7 + 5) + 8 + (8 * 4 * 4 * 9) * 2 * 9 +(6 * 2 * 3 + (9 + 2 + 8)) + 9 * 9 + 8 * 4 + 7 +(2 + 5 + 6 + 7 + 3) * 8 + 9 * 3 +5 + (3 + 5) +9 * 4 + 4 * 8 + 7 * ((7 * 6 * 2 + 4 * 3) + 6 * 9 + 6) +7 + (8 + 3 + 2 * 8 * (7 * 9 + 4 + 3 + 2)) * (4 + 9 * 7 * 2 + 5 * 2) +7 * 6 * ((2 * 7 + 4) + 8 * 6 + 4 + 3) + 2 * 2 * ((8 * 9 + 8 * 3 * 6) * (2 * 2 * 9 + 7 + 7) + 3) +7 + (7 + (8 + 7 + 2 * 7) * 3 * (7 + 3) + 3 + 4) + 4 * 9 + 7 +7 + 6 + (9 * (5 + 6) * (7 * 3 * 9 * 8) * 7 * 6 * 7) + (9 * (9 * 9 + 7 * 8 + 9) + 6 * 5) +(9 * 8 * 9) * 9 + 8 + 8 + 9 + 6 +2 * 2 * 5 + (8 * 9 * 7 + 8 * 6 + 5) +3 * 7 * 4 + 5 + (4 * 4 + 5 + 8) +(4 + (7 + 8) * (2 * 6 + 6 + 5)) + 2 +(7 + 9 * 2) + 7 * 9 + 6 + (4 + 9 + (4 * 4 + 5 + 4)) +2 + (2 + 3 * 7) * 3 +8 * (9 + (5 + 9 + 3) + 8) * 8 + 9 +8 * (7 * 8) + 7 + 9 + ((9 + 4 + 7 * 3 + 8 * 6) + 3 + 3 + (4 * 6 + 7 + 8) + 6) + 4 +4 * 7 * 8 +((4 * 6 * 3 * 6 + 6) * 3) * 4 +4 + (6 + 5 * 2 * (4 * 8)) * 9 + 4 * 2 +6 * 5 +(6 * (3 * 2 + 6 + 5 * 4 + 9) + 3 * 7 + 3) + 6 + 5 + 8 + 2 +6 * 2 + 7 + 4 + 4 + (9 + 2 + 4 + 9) +8 * 2 * (6 + (5 + 9 * 9) + 9 + 2) +(7 * 7 * (3 + 8 * 2 * 8) + 3 + 2) + 5 +((6 + 4 + 3 * 3 * 9 + 8) * (5 + 4 + 6 + 3) + (3 + 4 + 5 + 3) + 7) + 7 +3 + 5 + (2 * (7 + 9 * 3) * (4 + 3 * 9 * 4 * 5)) +3 + (6 * 9 + 7) * (2 * (4 + 3 * 5 + 5) + 7 + 5 + 2 * 2) + 8 * 5 +(3 + 3) + 3 * 2 + 6 * (2 * 5 + 7) * 8 +3 * 8 + (3 * 9 * 2 * (9 + 6 * 6 * 6 + 6) * 8) * (2 + 4 + 9) + 4 +6 + 2 * 7 * ((7 + 8 * 9 * 3 * 3 * 9) + (3 * 8 + 5 + 2) * 9 + 8 + 4) +3 + ((6 * 2 * 5 * 3 * 9 + 9) * 3 + 7 * 8 + 6) + 9 + (2 + 7 + 9) +((8 * 7 * 7 * 2 + 7 + 9) * 9 * 7 + 7 + 5) * 7 +3 * 3 + 9 + 3 * 2 * 4 +(5 * 6 + 4 + 2 * 2 + 5) * 4 * 3 * 5 + (5 + 2 * 7 + 8 * 5) +9 * 5 + 5 * (4 * 8 * 8 + 7) +3 + ((2 * 9) * 3 * (3 * 2 + 3 * 7 * 9) * 6) * 3 * (6 + 9 * 4 * 2) + 5 +((8 * 9 * 6 * 5) * 2) * 4 + 4 * 5 * 2 * (5 + 4 + 2) +7 + ((6 * 9 + 6 + 4 + 7 + 5) * (7 + 6 + 8) * 8) +6 + 5 * (9 * 7 + (3 + 8)) + 2 + (8 * 6 * 9) * (6 * 4 + 5 + 6) +((7 + 6 + 2 + 8) * 2 * 4 + 2 + 3) + 7 * 5 +6 * 2 * 8 + (9 * 5 * 5 + 6 * (6 * 4) * (5 + 7 * 7 * 3)) * ((2 * 4 + 4) * 2 + 8 * 8 * 6 * 7) * 8 +7 * (9 + 7 * 7 + 8 + 7) + 8 * 6 + 4 + 2 +(9 + 5 * 8 + 3 + 4) * 2 + ((7 * 5 + 6 * 3) + 3 + (2 * 5 * 7 * 6 + 5) * 7 + (4 * 5 + 8 + 3)) * 2 * 9 + 7 +6 * 8 + (2 + (3 + 7 + 2 + 6 * 5 * 2) * 4 + 3 * (9 * 3 + 6 + 6 * 6)) + 3 * (8 * 3 * 2) * (7 * 5 + 6) +(3 + 6 * (5 * 3 + 3 + 3 * 6 + 4) * (5 + 3 * 5 * 9 + 6 * 5)) + 2 + 3 +8 * (5 * 9 * 6 + 2 * 2 + 4) * 3 * 5 + 4 +8 * (4 + 9 + (7 * 6)) + 8 + 5 + (7 + 6 + (8 * 7 + 9 + 4 * 5 + 9) + 7 * 4) + 9 +(2 + 5) * (3 * 8 * (4 * 3) * (4 + 3 * 5 + 9 * 6 * 3) * 9) +(7 + 5 + (4 + 7 * 5)) * 4 + 9 + 6 + 8 + 3 +(2 * 3 + 2 * 3 * 7) * 4 * 6 * (5 * 5 + 8 + 9 * (6 + 8 + 8 + 4 * 6 + 6)) * 2 * 5 +7 + (7 + 8) * 6 + 5 * 6 +(7 * (8 + 9 * 3 + 5) * 4 * 3 * 2 + (8 * 7 * 2 * 8)) + 8 * (9 + 6 * 4 * 3 * 4) * 9 +8 * 5 * (7 * 5 + 3 * 4) + 5 + 8 +4 + 9 + (8 * (5 + 4 * 6 + 9) * (4 * 5 + 4) * (3 + 6 + 7 * 4 * 5 + 8) + 8) +(3 * (9 + 2 * 7) * 4 + 5 * 8) * 8 +5 + 9 * 2 * (5 + 6 + 4 * 9 + 5) + 8 +2 * (2 * 9 * 4 * 7) +(5 * 8 + 3 * (2 * 8 + 5 * 2 + 6) + 8) * ((2 + 6) + 7 * 2 * (5 + 3 * 3 * 7 * 5) + 3 + 4) * 5 * 9 * 8 + 9 +(9 * 5 + (5 + 3) + 8) + 8 +7 * 4 + 7 +4 * ((9 + 6 * 7) + 9 + 7 + (3 * 9 * 3 * 7 * 7) * 6 * 5) * (7 * 6 + 5 * 5 + 9) * 6 + (4 + 3) +(6 * 4 + 7 * (9 + 2 + 8) + 5) * 8 + 7 + 5 * ((5 + 4 + 9) + 9 * 3 * 3) + 5 +6 * (5 * 8 * 9 + (3 + 3 + 4) + 8) * 5 * 3 * (6 + 3 * 3 * 9) + (3 + 3 * 7) +(8 * 6) * 6 * (6 + 5 * (2 * 2) * 5 * 9) * (3 * 5 + 3 + 4 + 9) +7 + ((3 + 6 * 4 * 4 * 8) + 4 + 8 + 4 + 6) + 7 * (9 + 2 + 7) * 4 + 7 +(7 + (8 + 6 + 9 + 9 + 4 * 8) + 9 + 9 * 6) * (2 + (5 * 6) + 8 * 8) + ((9 * 7) + (7 + 7 + 5)) * 5 +4 * (7 * 2 * 9) + 9 + 5 +(6 + (4 + 7 * 5) * 4 * 9 + 3 * 7) + 8 +9 + ((5 + 6 * 2 * 2 + 8) * 9 + 8) * 9 + (7 + 5 + 5) * (9 * 5) +7 + 9 * (3 + (6 * 3 + 8 + 3) + (5 * 2 * 5 * 9) * 4 * (9 + 4 + 3 + 8 * 5 + 2) + 4) + 7 +(2 * 3 + 6) + (5 + (6 * 8 * 2 + 5 + 6 + 5) + 6 + 7 + (9 * 9 * 8 * 9 * 3)) * ((7 + 3 * 3 * 4 * 8) + 4 + 3) + 2 + (6 * 3 + 4 + 9 + 9) + 3 +8 + (5 + (3 + 2 * 6 + 6 + 6) * 4) * 7 + 4 * 3 +2 * 7 * 7 * (4 + 8) + 5 +8 * 9 + 9 * ((6 + 4 * 4 * 6 + 5) + (4 + 3 + 7 * 8 + 3) + 6 + 4 * 5) * 9 + 6 +5 + 6 + 9 + 7 + (6 * 8 * 5 * 7 + 3 + 7) + 6 +8 * 8 + 6 + (3 * 6 + 4 + 9 * 7) * (5 * 3 * (4 * 5 * 9 + 2 + 9 + 2) + (6 * 2 * 6 + 7 + 6 + 6) * (8 + 6) + 9) + 7 +9 * (7 * 8) * 9 +5 + (5 + 3 + 7 * 9) * (5 * (9 * 8 + 9 + 2 + 4 * 8) + 6 + 5 + 3) +2 + 3 * 7 + (3 * (4 + 2) + 9 + 7 + 2) * 6 * 2 +5 + 3 + (2 + 2 * (8 + 6 * 5 + 9 * 6)) * 7 + 4 +8 + (7 * 7 + (7 + 5 + 9 + 6 + 5)) + 8 + 2 + 3 * 6 +7 * 8 + 8 * (8 + 2 * 4) + 8 +2 * 5 + 4 * 5 * 9 * (8 * 2 * (6 * 7 * 6 + 2 * 5)) +8 * 9 * (8 * (6 * 7 * 8 * 9 + 2) * 5 * 9 + 7 + 7) + (8 + 6 * (9 * 9) + (8 + 9 + 9) + 3) + 8 +(5 + 8 * (3 + 4 * 8) * (7 * 2 + 8) * 6) + 7 + 3 + (6 * (9 + 2) + 8 + (7 * 2 + 9 * 7 * 8 + 8) + 4) + (7 * (7 * 5 * 5) + 5) * 3 +6 * (2 + 5 * (7 + 3 * 9 + 8 + 8 + 5) + 5) + 6 * 6 +6 * 9 + 2 * 4 * (9 + 3 + 4 + 4) * 3 +2 * (6 * 6) + 2 * 7 +(7 * 5 + 7) + 7 * (5 * (9 + 2 + 2) + 4 * 6 * 4 * (7 * 8 * 6 + 7 * 7)) * 7 + 2 * 3 +3 * (9 + 3 + (3 + 2 * 3 * 3 * 6 + 4) * 2 * 9 + (7 * 3)) +((8 * 8 * 8 * 4) * 7 + (7 * 3) + (3 + 6 * 8 + 2) + 5 * 6) * 4 +2 + 7 + 5 + 8 * (9 + 9 + 6 * (5 + 8 + 7 + 3 + 7)) +8 + 3 + (9 * 2 + 2 + 4) + (5 + 8 * 2) +(8 * 7) * ((5 * 5 + 7 + 2 * 2) * 2 * (8 * 5 + 4) * 7 * 2) * (5 + 2 + 6 * 8) + 6 * 4 + ((9 + 9 + 5) * 7 * 8 * 8 * 8) +(6 + 7 * 4) * 7 + 4 * (4 * (6 * 2 + 8) * (3 * 5 + 7) + 6 + 6) +(3 * 6 + 9) + (6 * 8 + 6) * 8 + 5 + 4 * 7 +4 + 2 * (6 + 2 + 4 + 3) + 6 +8 + (6 * (8 * 8 + 6) + 2 + 9) * 4 +3 + 7 + 9 + 2 * 9 + (5 * (2 + 7 * 2 + 5 + 4 + 3)) +8 * ((6 * 4 + 2) + 2 + 2) * 2 * (3 * 3) + 6 +(6 + 5) * 8 * 7 + 4 +9 * ((3 + 9) + 8 * 5 * 8 * 5) + 9 * 2 +2 * 3 * (5 * 6) +((2 + 4 * 7 + 4) * 4 + 8 * (4 * 2)) + 8 * 5 +6 * (9 + 6 + (8 + 3 + 8 * 7 + 4) * 4) + 7 +2 * 5 * ((3 + 7 * 6 + 6 * 2) * 4) * 3 +8 + ((7 + 3 + 7 * 7) * (6 * 4 * 6 * 3 + 3 + 9)) * (8 * (3 * 5 * 5 * 6 + 6 * 7) + 5 + 4) +6 * 7 + 6 + (3 * 2 * 2 * 7 * 4 + (4 + 9)) * 4 +4 + 4 * 2 * 5 * (7 + 7 * (7 + 5) * 4) +3 * (9 + 9 * 2 + 4 * 5) + 5 + 2 + 2 +5 * 3 +4 * (3 * (8 + 9) * 4 * 8 + (5 * 5 * 4 * 2 + 8) * 2) * 6 * 7 +2 + ((3 + 9 * 9 * 9 * 4) * 6 * 3 + 6 + (4 * 8 * 6 * 8)) * 8 + 5 +2 + 4 + (8 * 3 + 8 * (7 * 2 + 5) * 9 * 8) * (2 * 6 + 7 + 7) * (8 * 3 + 6 + 7 + 7) * 7 +3 * (2 * 9 * (2 + 2 * 9) * 4) * 9 + ((6 * 6 + 2 + 5 * 6 + 5) * 9) +(3 * 4 + 2) * 9 * 9 + 5 * 4 +4 * (9 * 9 + (6 * 5 + 3) * 2 * 3 + 4) + 9 * (7 * 9 + 3 + 3) + 2 +7 * 2 + 3 * (9 + 3) +(8 * 3 + 7 * 4 * 5 + 8) + (4 * (8 + 2 * 7) * 2 * 8 * 2 + 9) + 3 +7 + 9 + 8 + 6 * ((2 * 6 * 8) * (4 + 9 * 5 * 5 + 3 + 6) * 6 + 8) * 8 +(4 * 6 + 4 + (7 * 9 + 6 + 6)) + 2 + 5 * 7 * 4 +(2 + 9) * 3 + 5 +6 * 7 + 3 +8 + 2 + 3 * (5 * 2 * 9 * 5) * 5 +3 + 8 + (8 + (5 + 8 + 4) + 3 * (9 * 7 * 2 * 7 * 8) * 7) + 5 * 8 + (2 + (7 + 9 * 6 + 6 * 6)) +7 * 6 * 8 * (8 + 5 + 6 * 7 * 4 + 3) * 8 + 8 +9 + 9 * 4 * 6 * ((3 * 9 * 9 * 4) + 2 + 2 + 9) + ((9 * 4 * 3 + 8 + 3) + 8 * (6 * 4 + 2 + 5 + 4) * 2 + 5 + 9) +(7 + 9 + (4 + 3 + 7 * 8) + 2 + (6 * 4 + 7 * 8 * 3)) + 6 +(3 + (6 + 6 + 7 + 9 + 6) * 8 + 4 + 6) * 9 * 2 + (7 * 2 * 6 * 5 * 6 + 9) * ((7 + 4 * 7 + 4 * 9 + 9) + 6 * 4 * 8 * 9) + 4 +9 * (2 * 7 + 4) * 6 + 7 + 2 +(4 * 5 * 9 + 2 * 9 + 2) + 5 * 4 * (3 + (2 + 3) + (6 * 5 + 5 + 5 + 2 + 3) + 5) +8 * 6 * (4 * 8) + (3 + 8 + 9 + 6 * 3) + (8 * 8) +(6 * 5 * 7) + 3 + 7 * 4 diff --git a/2020/inputs/day19.txt b/2020/inputs/day19.txt new file mode 100644 index 0000000..412e5dd --- /dev/null +++ b/2020/inputs/day19.txt @@ -0,0 +1,450 @@ +104: 23 105 | 105 23 +40: 23 39 | 105 35 +127: 23 3 | 105 49 +96: 85 23 | 73 105 +114: 70 23 | 106 105 +124: 80 105 | 71 23 +23: "a" +97: 105 12 | 23 104 +18: 23 118 | 105 29 +89: 121 105 | 39 23 +13: 23 18 | 105 87 +122: 50 105 | 24 23 +6: 58 105 | 59 23 +101: 105 44 | 23 43 +31: 105 65 | 23 13 +36: 64 105 | 68 23 +74: 105 123 | 23 7 +38: 19 23 | 48 105 +118: 105 127 | 23 75 +130: 23 30 | 105 44 +59: 105 121 | 23 71 +112: 92 23 | 97 105 +91: 25 23 | 66 105 +46: 30 23 | 39 105 +111: 105 35 | 23 104 +28: 105 129 | 23 112 +25: 105 62 | 23 89 +125: 23 61 | 105 100 +120: 105 131 | 23 44 +102: 43 105 | 48 23 +105: "b" +27: 5 23 | 10 105 +84: 21 23 | 130 105 +56: 105 39 +35: 23 23 | 105 23 +44: 23 105 +69: 80 105 | 104 23 +100: 72 105 | 110 23 +72: 39 105 | 19 23 +95: 105 69 | 23 109 +88: 120 105 | 78 23 +53: 67 105 | 14 23 +26: 21 23 | 56 105 +80: 105 105 | 105 23 +70: 19 23 | 12 105 +92: 44 23 | 12 105 +37: 48 105 | 55 23 +132: 23 16 | 105 122 +7: 105 48 | 23 12 +113: 39 23 | 12 105 +10: 102 105 | 126 23 +94: 105 | 23 +42: 105 128 | 23 132 +103: 105 89 | 23 57 +107: 105 79 | 23 76 +11: 42 31 +99: 47 105 | 1 23 +55: 105 94 | 23 23 +8: 42 +4: 23 41 | 105 15 +81: 51 105 | 116 23 +76: 37 105 | 78 23 +110: 12 23 | 35 105 +45: 105 33 | 23 84 +78: 23 131 | 105 35 +63: 72 105 | 133 23 +51: 19 105 | 131 23 +83: 105 45 | 23 27 +21: 23 71 | 105 104 +19: 23 105 | 105 94 +54: 23 48 | 105 55 +41: 23 121 | 105 55 +20: 115 105 | 86 23 +15: 105 71 +66: 105 113 | 23 49 +121: 94 94 +14: 99 105 | 81 23 +22: 30 105 +129: 105 109 | 23 111 +5: 15 105 | 9 23 +30: 105 105 +131: 105 23 +87: 23 77 | 105 91 +98: 23 38 | 105 82 +77: 23 88 | 105 74 +43: 23 23 | 94 105 +86: 23 98 | 105 93 +58: 55 23 | 131 105 +1: 23 35 | 105 30 +9: 105 131 | 23 55 +49: 104 105 | 55 23 +68: 23 131 | 105 48 +0: 8 11 +71: 23 23 +48: 105 23 | 23 94 +29: 105 119 | 23 117 +93: 52 23 | 22 105 +16: 105 125 | 23 28 +126: 35 23 | 43 105 +65: 83 23 | 53 105 +62: 19 105 | 104 23 +12: 23 23 | 23 105 +52: 105 19 | 23 104 +67: 23 103 | 105 63 +24: 4 105 | 26 23 +50: 105 95 | 23 96 +47: 105 30 | 23 30 +32: 105 114 | 23 6 +82: 105 19 | 23 12 +75: 34 105 | 59 23 +34: 23 39 | 105 80 +17: 23 104 | 105 131 +109: 44 23 | 39 105 +79: 17 23 | 78 105 +85: 12 23 | 39 105 +57: 23 30 | 105 121 +2: 23 30 +3: 71 23 | 19 105 +115: 108 105 | 36 23 +64: 23 121 | 105 12 +90: 105 32 | 23 107 +116: 12 105 | 131 23 +123: 71 105 | 35 23 +61: 85 23 | 70 105 +133: 80 94 +119: 105 40 | 23 46 +128: 23 90 | 105 20 +60: 104 105 | 80 23 +33: 23 89 | 105 101 +73: 105 121 | 23 19 +39: 105 105 | 23 23 +108: 105 2 | 23 54 +106: 71 105 | 44 23 +117: 124 105 | 60 23 + +aababbbaaabbaaaabbabaaaabbbaababbbbbaaabbaabbbbb +aababbabaababbbabbbabaaabbbbbbababaaabaa +bababbbabaaabbaababbabaaabbbaaab +baabababaaababbaabbbbabb +baaaaaabaaaaababbbabbabbbaaaabba +abbabbaaabbbabbaabbbababaabbabbaaababaabbabbabbbaabaabababbaaabbaababababbbbbbab +bbbaabbaababaabaabbaaaabbaabaaabababbaababbbaaabaaaaaaabaabbbaabaabababa +baaabaaaababbabbbabbababbbbabaaaabaaaabb +bababaababbbababababaababbabbabbaabbaabbaaabaabb +aabbbbabbabbababbbbaabbb +bbbbbaaabbabbabbbaaabbbb +bbaaabbabababbaaaabbbabb +aaaababbaaaaaabbaaaababbababbbaa +baaaabbbabaabbbaabbabbab +aabbaabbbbbaaaaaabbaaaab +baaaabbbaabbababbbbbbaaababaabba +abaaababbbaabbababbbaaaabaabaabbbbbbbaba +baaababaaabaabaaaaabbbababbaaaaa +bbaabbabaabbbbabaabbbbaa +bbabaaaabbbbaaabbbababbb +abaaaaabbaaabbabbbabbaab +baaaabbbabaabbbaaaabaaaa +bbabbbbbbababaaabbbbabaabaaaaaaa +abababbbabbbbbbbbbababaa +ababaabbbbbabbaaaabaaaaabbbaabbaabbbbaaabbbabaababbbbbbaaaababbaabbaaaba +babbbbaabaaaabbbababbaaa +bababbbaaaaabaabbbabbaaa +babababaaaabbbbbbbababaa +aaaaaaaabbbaabbbabbaaabbabaabbbbabaabbaabababbaaaaababbababbabbaaaaabbbbbaabbbbabbaaabba +babbaabaabababbbaababbbb +baabbaabbaaaabbbbbbbabaabbbababb +bbbaaaaaabbbaaabbbabbaaa +aababbbabbaaababbaababaabbbaabba +bababbbaaabaaabbabbaabba +baaaabaabaaabbabbbbaaaaa +bbbabbabaabaaabbaaabaaabbaaabbba +bbaaaabbbaaabaaabbbaaaabbbaaaabbbabbabbbbabaaaba +bbabbbbabbabaaaaaabaabbbaababbbb +abaaababaababbabbbbaabba +bbbaabaababaaaabbbbababa +aaababaaabbaaabbaaaababa +bbaababaaaaaabaaaaabaaaa +aabbaabaaaaaabababaabaabbbaabaabbbbaabbaabbaaaab +babababababababbbbbbabbb +aabbaaaabbbaaaabbabababbbbbbbbbbaaaaaaaa +babbabaaaaaaababbabaaabb +bbbbabaaabaaabbaaaababbb +bbabaaaabbaabaaabbbaabaaabbaabba +babbbaaaabaaabbaabbaaaab +baaababbababbabbbabababaababbabbaaabbbaaababbaab +baaaabaabaaabbabbbbababa +babababbabbbaaaaaaaaaaaa +bbaababbabbaaabbabbbbabbabbbabababbbabba +aabbbaabbbabbbbbabaaabbabbabbbbbaabaababbabbbabbaabababa +aababbabaabaababbbabbabbabbabaabababbaab +abbbbbaabaaabbababbbbbaabaaabbbb +abababababaaaabbbaaaabbababaaabbabaabbbbbababaab +abaaabbaabababaaababbbbaaabaaabbabbabababababababaaabaabaaaabaaababaaababbaaaaaaabaabbbb +baaabbabaababaabbabababbbaaabaaaabbbabbaabaaaabb +abaababbababaababaabbbaababbaaaa +aaaaaababbbaababbbbaabbb +babababbbababbaabbabbbaaabaababa +aaabaababbbbabbbbbbbbbaababbabbabbbaabababbbbabbbabaaababaabababaaaaabba +abaabaababbbaaaabbaabaab +bbbabaaaabbbaababbaaaaaa +aabaaabbbbababababaaaabaabbbaaaaaaabaababaabaabb +ababbaabbaaaaaabbbbaaabaabbaaaabaababbbbbbaaabbaaababaabbbbababa +babbababbbbbbaaaababbaab +baaabbabbababaabaaaabbbb +baaababbbaabababababbaaa +bbaaabbbaaaaabbabbbaaaba +babbababbaaaabbbabbabaaabaabbbba +babbbaaabbabbbaababaabba +bbaabaaaaaabbabaaaabbabaaaaabbabbaaababa +aaaaaabaabbabaaaabaabbbaaaabbaaabaaabbbb +bababaababaaaaabbaabbaaa +aababaabaabaaababbaaaabbaababaaa +bbbabaabaaaabaababbbbbab +baabaabaaaaababbbbbbabba +abaabaabbbbaabaaababaabababbabbbbbbbaaaa +bababbaaaaaaabbaaaaaaabbabababba +bbabaabaabbabbbbbaaaabaaaabbbabb +bbabababababaababbbaaaabbbbbbaba +aabaabbbbabababaaabaaaaabbabbbabbbbbaabbbbbabbbbabbbbaba +abbaaaaabaababbabaaaabab +aabbbaabbbabbbbbbaaaabbbabbaaaaabababbbb +abaabbbbbbaaabbabaabbaabaaaaabbbbaabbabb +aabaabaababaaaaaabbabaab +abbbbbaababbaabbbbaaabaaaaabbbaa +aabbaabbaaaaababaabbabaabbbbbbbb +abbaaabbbbbabbbbaabbabba +bbabababaaabbaabbaaabbabbbbbbaaaababaabaaaaabbaabaabaaaa +bbaabaaababababbaaaabaaa +babbbbaabaaaaabbabbbaabb +babbaabaaaaabaabaabaaabaaabababa +aabaabbbaabbbabaabbbaabaababaaab +abbbbabbbbaaaabbbbababaa +bbbbbaaabbabaaaabbbbabbb +abaabababbabaaabaababbaa +bbabaaabbaaabbaaabbaaaba +bbabbbbaaaabbbbbbaabbbbababbbaabaabbbaaaabbaabababaabaaabaabbbbbabbaabaabbaaabbaaababbaa +aabaabbbabbaabaaaaaaaaaa +babbbaaababbaabbbbababba +bababbababaaaaaabbbbabba +baabababaabaabaaaaaababa +ababaabaabbabaaabbaabbbbabaaaaabbbbbbaaabbaabaababbbabaaababbaaa +bbaabbaaaabbbaabbaaabbbb +baaaaaabaabaabaaabbaaaaa +aaababaabbabbbbaabbbbbaabbbaaabababaaaba +abbbaababaabaabaabbabbaa +abbbbbaaaabbabaaabababaa +abbbaabababbaabbaababbaabbaaaabbabbbbbbaabbabbbaaaaabbba +babaaaababaaabbabbbabaaabaababbbbabbaaab +babaaaaababbbbbbbaabaaaa +bbbbbaabbabaaaaaabbbbabbaaabbbbbbbabbaabbbabbbbabbbabbbb +babababaaaaababbaaababbaabbbbaaa +aaababaaaabaabaaababaaaa +bbaaaabaabbbbabababbbaab +bbbaaaabaababbbaabaaabbababbbbab +abbbbaabbaaaaabbbabbaabaabbbaaaabbabbaab +abbbababababbabababaaaab +aabaabbbabaababbbabaabab +bbaaaababaabaabaaabbbabb +bbbabbabbabbababaaabaababbbaaabb +babababbbbaaababbbbabaab +baabbbabbbbbbaaabaabbbabaabaaabaabbaabbb +aaaaabbabaaababbbbbababb +bbbaabaabababbbababbabbabbbaabbbbbbabbaa +bbaaabababaaaaababaaaababbababbbbbbbbbbb +aaaaababbaabbbababbaaaab +bbbaaaabbaababaabbbbbbbababbbbbb +bbbbaaababbbaababababbbaabaababaababbbbbbaababbb +bbabbbaabaaabaaabbbababb +aabbababaabaaaaabbbabbabbbaaaaaa +aaababbaabbaabaaabaaaabbaabbabbababbbabbabbaabbb +ababaabaaabaabbbabbaaaaa +ababaabbaaababbaabaaaababbabbbabbbbbbbaaaaaabbaa +baaabaabbbabbabababaabba +aaabaaabaaabaababbbabaabbabbbbbb +aabaaabbaabbaabbabbbababbabbaabaabbabbab +baaaabaaaabaaabbbbbaaaababaaabbabbbababbabababaa +bbaabababbabaaabbbaabaaabaaaabba +abaabaabbbbaaaabbabaabaa +bbbaababaaaabaabababbbbbaabbbabbbaaaaaaa +bbaababbababaababbaaaaaa +bbbbbbbabbbbbbaaabaabbaa +ababbbbbbabbaabbbbaaaaab +bbabbabbaabbabaaaabbbbba +ababbaaababbabbabbaabbbabaabbabbababaabbabbbbaabbbbaaabaaaaabbbaaaaabbabbabbabbb +aaaaaaabaabbbbaababbbabbababbabbbbabaaaababaabbbbbabbabb +baaaabaabababaaaaaabbbaa +ababbbbaaabbaabaaabbababbabababaaaaababbbabaabbaabaabbaabbbbbabb +aabaaabbaaabaababbbaabaabbbbabba +bbabaaabbaabbbaaabbbbbab +bbaabaaabbbbaaababbabbba +aabbabaaabbbbbbbaabbabbb +baabababaabbabababababaa +abbbbabbaaabaababbaabbabbbbaabababaaabbabbbbabbbababababababbaaa +baabbaababababaaabbaabaaaaaabaaaabbabaaabbababaaaaaabbaaabaaabbb +bbbabbbbaaaabaabbbbaaaabbabbbaba +abaaababbabbaabbbbbaabba +ababbabbbaaaabaaabaaabaaabababbbbbbbbbbbbbbabbba +aabbbabaaaaaabaabaaabbbb +aaaaaabaababbbbaabaabbab +ababaaaaabaaabbbbbbbababbabaaababaaaabaaabbabbbb +babbabaaabaaaaabbaaabbaabaaaabaaaababaaa +bbbbbbbaaabbbbabbbbbabbb +abbbbabbbbabbabbbaabababbabaabab +babbbbaabbabaabbabaaabbabaaabbba +bbbabbbbbababababaaabbabbbbbaabb +bbabbabbbaaabbaaaabbaabbabbbbbbbabbbbbbbbabaabbbbabbabbbabaabaaaabbaaaaa +bbabaababaaabbabbbabaabbaabaabbababbbbba +bbabaaabbbaaabaaabbbabbb +aabaaabbaaaabaabababbaaa +abbbaababbabbbaaabbaaaab +abaabbbabbabaaaaaabaaabbaaaaaabbbaabbbba +bbabaabbabbbbbbbaabababb +bababbbaaaaabaabababbbaa +abbbaaaabbbaabababbbbbbaabaaaaabbabbbbbabaabbbbbababbbbabaaababbbbbabbaabbbababa +aaabaababababbaabaabbbabababbaaabaaabbaabaaabbbabbaaaaabaabaaaabaaaaaaaa +abbaaabbababbbbbbaabbaba +aabaababbbabbbabbbabaababbaaaabaabbbbbba +bbaabbaaabbbbaabababbbaa +aababaabababbbbababbbaba +bbbbbbbaaabaababaabbaabbbaaaaabababaabbb +abbbaaaabbbabbbbaababbbb +aaababbaaabbbababaabaaab +bbaaabbababbbbaabaababba +bbbbbaaaabaabbbbabbbaabb +baaabbaabababbabbbbbaaaa +abbbbababbbbbbabbaabaaabbbbbbaab +baabbbabbbbbbbbabbaaaabaababaaaa +aaaaabbaaabbaaaaaabaaabaaaabbbaa +bababbaaaabbaaaaaabbbbaa +abaaabbbaaabaabbabbbaaabaaabaaaaaababbbb +aaabbbbbbbabaaabbbaaabbaababbbbbaabaaaab +aaabbaabaabbaaaabbaaaaab +bbaabaaaaabaaaaaabbabaab +babababaababaabbabbabaab +aabaabbbbbbbbbaabbabaaaaaababbbaaaababaaaaabbbbaabaabbabaaaabbaabbaabaab +bbaaabaaaabbbbabaabbbbabbbbbabba +aaaabaabbaaababbbbbbbbaaabbabaabbbbbbbbb +abbaababbbbabaabbaabbbba +aaaabaabaababbbababbbabb +bbaabbaaaababbabaaabbabaaaaabbaa +aaabaaabaabbabaababaaaaaabaaabaa +aaabbababbaaabbababaabaa +abaaabbaababbbabaabaabbbaabaaaaabbababbb +bbaaabbbaaabaabaabbaabba +bbaababbbbabbbbbbaaababa +baaabbaababbaabaabbbbbbbbabaaaabbbbaabba +baaaabbbbaabaaaabbaaaaaabbbbbabababaaaba +bbaababaaabbbababababaaaabababab +baaaabaabbabbabbbaababbb +bbaaaabaabaaabbababbaababbbbbbbbabbabbab +babbaaaabbababbaaaababbbbabbabaabbababbbbbbabbba +bbabaaabababaabaabbbabba +bbbaababababbbababbabbab +aabbbbabaaabbbbbaabbbbaa +aabaabbbabaaaaababbabbba +bbababababbbbabbabbaabbb +baaaaabbaabbababbbaaaabbbababbbabbbbbaabaaaabbba +bbbaabaaabbabaaabaabaabb +bbbbabaaabbbababbbaabaaabbaabbaa +babbabbbbaabaaaababaaabababbbaaaaaaaabaaaabbababaabababbabbabbbabbabbbaa +aaaaabaaaaaaaabbabbabbaa +aaababbabbbabbbbababbababbbbbbbb +baaabbaabbbbabaaabbbbabbbbababbb +bbabbbbabbbaabaabaabbbabaabaaabbbabaabbababbaaaaaaaabbbb +bbabbbabaabaabaabaaabbba +ababaabbbbaaabaabbaababaaaaabbaabbaabbba +abbbaaaababababbbbbbbbbababbbabb +aabaababbbaabaaaabbabbab +abaabbbabaabaababaaabbbb +baabbbaaabbbbbaabbbabbabaaaaaabaaabaabbbbbaabbaaabbaaaab +bbabaaabaabbababaaabaabb +ababbabaabbbabababbbbaba +abaababaaaaaaabbabbbababaabababaabaabaaa +babababbabbaaaaabbbbabbbaababbbbbaabaabaaabbbbabbabababa +abbaabbaaababbaabaabbababaabaabb +abaabaabbabbabaaabaaabaa +aaaaaaaaaabaabaaabbbababbababbbbaababbaaaaaabbabababbabbbabaabab +bbaaaabaabbbbbaaaaabaaabbaaaabbabaabaaab +ababaabbbaaabaaaaaabbbab +bbabbabaabbaaabbbabbbaab +aaaabbbbaaaabababaabaabb +bbabaaabaaaaabbaaaaabbba +abbbababaabaababababaaab +bbbaaaababaaabbbbabababaabbaabbb +aabbababbaabaababaababaaababaabbbaabbbaa +ababababbaaabbaaababbabaababaaaa +bbaaabbbbbabaabbaabaabaaabaaabaaabbaaaab +bbaababaaabbaaaaaaaaabaaaaaaaababababbababaaaabaaaaaabbb +aaaaabaababbbbaabbabbabaaaaabaabaaaaabbabababbbbabbbbaaa +abbabaaababaaaabaaaaabbbbbbbaaaa +aabbaaaaaabbbaabaabbbbaa +abaabaabbabaaaaabbbbbabbbbababaa +abbaabaabbbabaaaaabbaababbaaaaababbbaaab +bbaabbabaabaabaabaaaabaabbabbaaababaaabb +aaababaabababbbabbbaaaabababbbaa +abaaabbababbbababbbaabababbababb +aababaabaabbbabaabbaaaab +abbabaaabaabbababaabbbbaabbaabbabbbaaaaa +aaabbabaaaabbbbbaabbbaabaaababaaaabaaabbbaabbaaa +babbaabbababaabbaabbabbb +aaabbbbbbbabbbaabaabbaba +abaaabbaabaababaabbaababbaababbaaaabbabb +bbabbbbbaababaabbaabbbbbabbbaabb +baabaabaabbabaaabbaaababaabbaaab +bbbaabababbbbbaaaabbaaaaaabbbaaa +aabaabbbaaabbbabbbbaaabaababababbbabbaabbbbbaababaabbbba +abbbbbaaaaabaabababaaabb +bbbabbbbbbaaaabbabbaaaba +abbabaaaababaabbbaaabbbb +ababbabababbbaaaababbbaa +bbbabaaabbaaabaabbabbaaa +babbaabaabbaabaaaabbabbb +babaaaaaabaaababbababbabbbbbaabababbbbbb +baabbbabaaabaababaaaabba +abbabbbbaabaabababbbabba +baaababbbbaababaaabbabaabbbaababaabbabbababbbbab +abbbbaababaaabbabbababba +bbaabababbaaabbbabbaaaab +baabbaabbbbababaababaaaa +bbabaaaabaabbaababbbaaab +baaaaabbaababaababbaaabbbbaaaaaa +bbabbbbaaabaaabaabbbbabbababbaabbaabbbbb +babbaabbaabbabaaaabbabbb +abaaababbabbbaaabbbbbbbb +abaabbbababbabaaababaabbbbaaabbaaaaabbaa +aabaabbbbbaaaabbaaabaaaa +ababbbbaabaabbbabbbbbabb +aabbbbabaabbbabaaaabbbab +bbabbbbaaaabaababaabaaab +aabbbbbbbbaaabbbbaabbaabaababaabbbababba +abaababbabbabaaaababbbba +aaabbbbbbbabbbbabbbbbbbabbbbbbbaabbaabbabbaabaabbabaabaa +baaabaaaaaababbabababbbb +bbaaaabbaaaaaabbaababbaa +aaaaababbabbbaaabbabaaaaabbbabbbbabbbbab +baaabaabbabbabbabbaaaaaa +bababbbabaaaaaabbaaaabababbbaabbbbbaaaaa +abaaaaabbaaaabaabbbbbbaabaaabbaababaabbb +bbaaabbababbbaaabbbbaaba +babbaabbabbbbbaababbbbab +abaabbbbbbaaababbabababbbabbabababbbabbbbaaabbbb +babbabababbbbaabaaababaaaabaabba +abbabbaaabaabaaaabbaabbabbbaaaaa +bbaaaababbabaaabaabbabba +bbabaaabaaaabaabbbbaaaabaabbbbaa +bbabbbbbbbbbbbaaaabbbbbaabaabaaa +bbbbaaabaaabbabaaaababab +babbbbaabaaaaabbbbaaaababbabbbbbaababbbabbababbbbaaaabba +aabbbbabbbbbbaaaabbaaaaa +bbaabababbabaaabbabbbbab diff --git a/2020/inputs/day2.txt b/2020/inputs/day2.txt new file mode 100644 index 0000000..8903fa4 --- /dev/null +++ b/2020/inputs/day2.txt @@ -0,0 +1,1000 @@ +13-16 k: kkkkkgmkbvkkrskhd +5-6 p: qpppvzp +3-4 p: psppxhlfpvkh +3-10 w: wwwwwwwwwwdwww +4-5 r: rcgrrcr +3-4 c: clvccc +1-5 x: xfsfxmctb +9-14 k: kpkmkkckhkkkkvkk +5-6 s: gsfsss +4-8 c: cccdcqdcr +2-5 k: kmkpkkfgkkkkdkkk +9-11 f: pfnsfffwxsn +8-9 w: wjwnwcwxc +7-8 q: rrxhplqs +5-10 n: gpnkqnxnbjzgjnb +18-19 p: fvpkgfkfjgwllqwhrjd +12-13 v: kvvvbmdvvvvvvcvvvv +3-5 m: mdmkmvhszpjcxl +2-7 v: qjmvzdwxc +1-4 b: bbbbbbbb +2-5 c: fzcdccfkcsjhckccrcx +2-10 d: fhdwdbdddrsldrtdjdr +1-7 z: ztszzfzztcqzrz +4-6 j: mmjjjrj +11-12 b: smbgkbbmbpbbmkbbbb +3-5 r: jxzrk +13-15 d: fppsvgqrdgrbddd +12-14 w: wwwwkcwwwpwzwzwwsz +5-6 v: lmcvvv +12-14 x: xxxxxxvxxmxbjnx +1-2 p: hpgpt +10-11 k: qmktzklkgkcknfwkh +6-7 r: ntcrrrjrznk +7-8 v: vshxvzxw +9-13 c: cncccccclcdwccwmc +5-6 r: srrrgv +6-9 w: bwfswqthk +5-7 f: hfvsfjf +11-14 v: zbksgqcrclvvwpfvfr +8-9 v: vvvvvmvvvkv +1-12 n: gnnnnnnndnqnd +10-11 j: jtjjjvbjjhj +3-10 x: vgxxxwqxkxn +5-6 z: zzzztr +2-4 z: rzdhz +10-11 m: mmmmmmmmmmvj +2-4 z: jzczpvzzs +1-4 k: rkkhk +4-8 n: nwcwmnflpbnnl +2-4 w: dwwgwwssf +1-3 m: smzm +2-6 d: dsddwwljd +13-15 w: wwwwrwwwdvwwpwg +7-10 f: bhsfffzfjdbfmf +6-7 w: wwwwtwww +3-6 b: bbbbbbxb +7-9 d: dvwdxjgdhf +12-14 n: znnnnnnnnlnfnrn +1-7 v: qvkvvvgv +2-15 x: xsxxxxxxxxxxxxbx +5-11 n: nckpwnmmnzg +4-13 d: dzdddcdkxgqddqdp +5-17 m: mkxmzbmmmmvfvmmjvmmm +11-13 p: pppzppppswhqhpppp +4-5 b: bbbgg +5-8 v: vvvvvvsv +9-10 j: jnlkmhmvjvnbjcsvlwb +2-4 x: zxxxxv +1-17 r: drrrrrrrrrrrrrrrcr +11-17 w: wqmwlszsnnwwwzwwwww +2-3 m: mmmmmmmmm +9-10 n: nrnngngnvr +4-8 z: bxjtzkdzwkzz +5-8 g: vjtvqtgqjgtggggmj +2-5 q: qfgcqw +6-11 c: cgccccchcccvc +6-8 t: tpjgfjpr +5-10 h: hhhnhbhhczhh +11-14 d: gdddddddddwdddr +1-2 l: twngrmgrckmlmh +10-12 r: rrrrrrfprfrr +7-8 m: bmmmmsrhqm +2-11 w: wlwwwwdnqsvw +10-13 j: jjjjjjtjzjjjj +4-16 f: fdvgffxfzcffffff +2-6 q: wbfvkm +4-6 d: ddddddd +2-4 p: jpxprdpn +5-6 s: tgssrrpbvsgs +3-10 j: spjgjjjcbjsjxj +5-10 w: wwqrdvwwwpwwwr +3-4 x: hpxxxzf +4-8 d: dxcpddddddrddddddqj +15-16 z: zhfxlzzkzzgzhzzz +3-5 s: ssslsnc +2-3 j: rrjrwg +7-13 x: xxxxxxpxxxxxtxx +5-8 x: xxxxxxxrxxxxxxxgx +4-10 g: dmhcmbwnwwggcw +6-8 s: qtsxflsfshzvsgpxg +7-9 c: cbvccckcwc +15-16 r: rlrrrrrrnrrrrrsx +8-10 r: kjrbrrrbrnvrrx +6-7 q: zpsmcjmmr +5-10 p: ppgpsppppkpp +3-4 k: kbkkk +1-2 b: bbbbb +8-11 s: sssvssssbsw +5-7 m: lmwrmmmmgmfhd +16-18 j: jjjjjjjjjjjjjljsjt +1-14 b: bcjlbbcwbjbxbbvbf +2-5 z: qzzrfv +4-17 t: tttrtzttttttttttxttt +5-6 w: kwwwjw +7-9 l: bclgtbghdtd +1-8 h: mqhbhhhhhhh +5-6 j: zznjjfvvjwcths +5-7 t: tttbmttd +5-14 v: vvvvpjvvvvvvhm +2-4 x: vxlx +5-15 g: gfgfnnqkbgngpdpp +1-8 n: jnnnnpnvntrp +3-4 b: bbbb +6-7 z: frszzzfz +6-9 f: pbbmlvfpwvw +4-15 g: gbjgggfgvggggdgbq +1-9 w: tgwljtgwlm +14-15 k: kkkkkkkkkkkkkzk +11-12 p: ppppppppppklp +4-8 n: nnnvpkzsn +13-16 m: fmjsqwtmwbdxmnwmlmb +2-7 c: qccgccczcc +8-11 x: xxxxkxxbxxx +1-4 g: gcgb +6-7 l: pkjllll +2-3 n: mnntpwsrlqkxkgnlb +9-10 s: sssssssscss +6-16 n: rtthnbsrfvndnsnnj +1-2 h: hjdhh +1-3 f: ffff +6-9 l: xqtvlllllpmlxtl +6-11 r: rrrrrrrrrrr +1-6 z: fzzzzzzzzzz +2-7 q: qqdqqqgqqqqtxqqqq +9-13 k: dbfkszjjmkkkfkdkklxk +5-6 j: mdjjljdfzjvqd +5-10 s: tsbskgsbtsqdd +12-14 j: tjjsjdjfjtjjfjj +9-10 x: xxxxxxxxgx +8-11 r: rrgrrrrbrrcrrr +6-18 m: vmnmhmbmmmmmmmmmmz +6-8 k: llkkqrkc +1-2 c: cccc +2-8 x: xxxxxxxxxx +7-10 p: ppzppppppwp +9-17 v: cdjwncwrbcgkfvwzvkf +6-11 w: wwftwjwwwcwwvwwvw +12-16 g: gggggggggxggggggggh +1-4 z: kzxzcdnpgczhn +3-5 t: tttmtttvxtd +4-5 h: hhhwh +4-8 d: dvddddln +8-15 l: lvllfllllxllllwmpl +7-9 s: dbsksbwtj +8-15 q: qkbqmqqqqqqqccqhq +2-6 r: grcsrrqz +14-18 s: sssssssssssssssssss +7-10 r: ffrrttnrrrrs +2-11 c: csccccccfdgccgcccccc +3-5 r: rrrrr +3-4 h: qrhh +7-9 k: kkzqkrkwk +1-5 k: khkkfgkj +3-6 l: pplnxl +10-13 k: chsxfrtrkkjgq +6-9 b: lbbblnbrbbb +3-5 n: hqnlfpnj +5-8 f: shffkcnfdmswfrnsfrpg +2-7 j: jjjjcdcnwxnbr +4-13 z: dvxnzpcbfkngk +11-13 h: hwzpzbphjhrhk +1-10 v: vqptqpbbtq +1-4 b: bdfpt +13-18 p: pppppppppppppppppp +14-15 h: hhhfhhhhhhhhhnmhh +4-14 x: wxsbxxxjvxxbxx +9-10 m: mmdmmxsrjdmpdmzsmm +11-16 s: szsbssssssszsxss +9-13 h: hhhhbhvhthhvnh +5-6 q: qqqqqq +1-3 d: ddldcqrdmd +11-17 f: ffcfkfffffpwfqffm +3-6 m: rmmmqm +9-11 l: vlblgszllwbvpn +13-15 z: ghzvdlzrvrzzcnz +3-5 l: bglllcll +1-8 h: hhhhhhhhhh +2-7 j: qjsgtjjt +1-2 d: ddbctlvpdf +11-14 v: vvvbvvvvvvtvvvvv +14-15 g: ggzgggggggswgrjggm +9-13 v: hqtcqvnbvqnmv +12-13 b: bbbbbbbbbbbjzbbbbb +5-6 r: rrfrcv +4-6 p: pppppppppppp +6-12 d: fdddddddddddrd +12-17 g: ggghgggggggxggggfgp +2-7 h: hqhhhhjhh +8-12 v: vvvlvvvvvvvv +4-5 n: nnkpg +3-12 m: mmzmmmmmmmmmmmm +11-14 b: bbbbbpbbbbbbdbbbb +6-7 z: zzzzzzr +4-7 n: snnnnfnkn +1-2 h: hnshhqvmjpghntx +15-16 b: bbbbbbbbbbbrbbbb +4-6 n: nxnnpnnnh +2-9 v: sdghvmxtkz +5-7 j: jjjjjjj +4-10 l: plbhsmlllrl +12-18 g: ggtggdlghcjwqwggggg +5-7 b: bzbxrbxgwcdbb +5-15 m: mmmmmmmmmmmmmmmmm +4-13 j: jjjjjjjjjjjjjjj +4-11 k: kshkkwlkkkkkdkbk +1-15 w: bwwwzbwwwnwwwmcww +19-20 l: pblvxmgslllnnsplldnv +3-4 z: skzx +1-5 x: xxqdxgb +2-3 g: wgggc +5-9 d: dgcddwrdf +3-6 m: mfkzjg +5-8 s: hmssmgwxhssg +10-11 s: ssssshqssll +17-19 v: vvsvfvvvvxvvvgvvvbv +11-12 t: cwssdtfqkdttjv +1-5 b: hcptprhlpbwkg +2-8 j: ljjxjjjljp +2-5 q: qqqlqr +2-8 r: jrcwdbhrcltrnsgswpm +3-4 f: ffvff +5-10 h: hhhhhhhhhhzph +5-6 z: mzzmctzz +10-13 w: wwwwwjwqwwwwwwwwww +1-4 m: mmtm +11-12 z: tddzcrptcnlmbjj +3-6 l: llmllpl +2-4 f: ffsf +5-11 g: gggrvgggggg +2-10 k: zbmpktfnddfs +5-9 l: lsbblgpjlms +1-12 s: sssssssssssss +5-7 f: fffdrsc +9-11 z: rzzzzkfzzwqzrz +3-6 z: zwzrbzv +17-18 r: rrrrrrrrrrrrrrrrrg +2-4 n: nnnrgnnn +3-4 n: nfqq +2-3 h: khhc +9-10 x: xxxffbxxxnr +5-6 d: mtgnrjdnmzhddks +3-4 b: bbbb +11-15 p: kppxppppppppppppp +13-18 t: tttdtttttttttttttttt +1-7 p: frjpppwgdpzvvfwds +1-6 k: qkzkkvpk +4-15 n: nnnxnnnnnnnnnnpqn +6-7 l: ndlrqrl +4-5 r: rchrwr +11-12 f: ffffffffhfff +1-3 j: xjjjj +9-10 z: zzzzlzzzgn +6-17 g: tgrhpggcqbjwjggmgql +11-15 v: vvvvvvvvvvlvvvhv +10-13 w: wwwwwwwtwwwwswwfwww +1-2 l: plllllllllllpll +8-9 k: kkckklwkc +2-4 b: bvbp +1-6 r: rrrnqrrrrrrrrrrrrr +8-10 d: pwnvkxddpddd +3-6 k: kkkwkf +8-15 v: vvvvvvvvvvvvvvvvvvv +13-17 g: lhqgggcxlgcvgwgdg +6-13 x: kxxxxsxxxmxxxx +3-4 r: rrrqr +2-3 r: kvrsxjrmtvtr +1-2 h: jtbh +8-9 w: wwwwwdfckw +13-18 v: vvqwvvvnvvvvvvvsvv +6-14 t: mpfthffdnmtxmx +4-5 d: dddcsd +6-7 m: mlmmmnfmmh +5-7 x: xhxpkpqxqnx +9-11 v: vgvvqgvvwmkpfvvlv +15-18 l: jlxqvmjgrrnbhccpdl +2-9 k: kkkkznkkbf +14-15 w: wwwwwwwwwwwwwbwww +9-10 k: wkkvvmkkvgfkkk +10-15 g: bfggggggggggggg +7-8 x: xxxxxxxx +12-14 t: dmtmwtztltfsthtb +6-7 k: kkkkkwk +4-5 c: ccvsz +3-4 c: mclvcfjcqh +16-17 k: skkpknhxxsrqmcvkj +12-13 v: vvvvrfdfsdtvf +1-2 q: fpqp +7-8 b: bwbbbqbbb +5-6 h: hhhhhh +5-7 z: zzvzdzzxzwz +17-18 w: wwwwjhggnwbwwwwwzb +6-8 g: gggggtggg +4-8 n: lnnnzhbn +17-18 g: lggggggggcggglgggg +2-8 v: vbvvvvvkv +1-9 v: vvxvrvvtvvvvv +13-15 j: fhvxdngcrjdqxmnz +5-17 n: nnnnnnnznnnnnnwnnn +1-4 f: fnxdmjdsqbfffnjsnkf +3-8 q: dqqgbnbrpxqclq +4-6 b: xkpbbbk +11-12 l: llqllllllldjll +9-10 c: cwvlcdnmzr +6-8 l: zkjlllvlgvlnlblspm +4-9 b: lbbbbbbbbbwbbbw +9-12 g: gfgrggvgbggg +16-17 r: rrrrrrrrrrprrrrtc +2-16 r: mrbmrrxgrrbzrrmrrj +16-17 v: vnsvvczmjwfkvjvvvsrv +2-11 l: lglrllnlllqlll +2-8 t: sllgjrxkthl +3-7 d: ddldddk +8-13 c: ccckchmcdxccccccsf +8-9 t: cttbtztttfqdqh +4-5 b: tbbxh +12-17 w: wwwwwwwwlwwtwwwvtww +1-5 t: krfwxtzxcwphw +3-10 w: wwwwwwwwwwwww +1-2 n: nnjqqkspswql +9-13 w: wwwwwwwwfwwwwww +1-3 s: ssss +13-14 x: xfxxxxxtxxxxnx +4-5 x: xxxcj +5-15 k: kkkktkkkkkkkkkf +14-16 l: lrlzjxlllpqltlblvlll +5-6 t: ttttfct +11-14 z: zzzzzzrczdkzzz +6-8 f: ffffftfj +9-11 d: ljdngglsdvdsv +10-15 c: ccrqhcqzccnnjvcfcj +11-15 w: jwvwnccwwxzcwwww +9-10 s: ssssssssss +2-4 r: vzfmrr +5-8 l: blhlnlsqb +6-7 c: ccxxcfxldckpcc +2-4 j: czjkj +2-14 d: rlxksvpqsnhhpkds +16-19 k: kkkkkkkkkkkckvkjkkwp +3-9 j: kcjcbjjjjjjjjgljml +2-7 l: ljjzdll +4-8 r: fqnqjbsssqrrwrrrrr +5-15 t: xtnvhtttdsrhtttt +1-3 l: xlzl +6-10 g: ggggncchghgggghgg +10-11 m: msmmmmmcmgj +4-6 c: mcnprhmcfcclcl +12-13 s: ssssswssssstsss +13-14 m: mmmmmmmmmmmmmmmmm +9-11 p: kqvrdbpppcpgqh +6-7 q: qqqqqqq +9-10 b: bpbbnbbbkdbbsbblqrfb +12-13 b: bbbbbbbbbbstsb +8-11 g: ggbbfrsgdxhldnt +7-8 d: dddwddssdbd +6-7 b: bbbbkbfj +3-5 z: jtdklzthgz +5-6 l: hlnlllltmvhmlmq +3-6 q: qqpxqvqp +1-3 z: zskzmzzzhzzzhzvzrzzq +2-8 h: sskhzhlhkht +2-9 r: rltcgrrrrrrr +3-16 f: zrxffkfcvffffncffgff +1-2 r: rrcrhkns +14-17 b: bbbbbbbbbbbhjbgbdblb +4-15 c: cccccccwcckclccrcc +13-14 l: lkzlclbnlhlcnk +13-14 r: rrrrrrrrrrbrrr +4-5 k: cvhkkkbj +2-5 m: kmfnmzh +14-15 n: nnnnfnnnxnnnnnnndnnn +7-10 t: wttwkbhtpf +3-9 n: qjgzpnkpn +6-7 n: nhnnnzn +5-10 n: nngtndngcn +2-5 x: rdxnp +10-13 s: sssssssssxssssssss +6-8 n: mnjnnxnnvckn +2-10 p: gpxpglqwpppp +5-7 t: twtktdts +18-20 c: cccccccccccccccccccc +6-7 d: dddddddw +10-11 x: xxxjxxxxxvzxxxx +4-7 z: zrphzzlzhgfwd +4-8 l: lllnlllkl +2-7 q: kkwsgndmdrmsvfqj +4-7 m: mmnmjfmm +2-5 s: flhkzzs +12-15 x: xxxxxlxxxxxmxxs +9-11 v: vvvvvhvkbndjvx +1-9 n: kpqgbxnkx +5-10 f: ffdfrpfffffwfffff +1-3 f: jsvqkff +5-7 j: jsjjjfxl +8-14 z: zzznrzzzzzqzzz +1-12 d: dzlbdzhgmrdddc +12-13 k: kkkkkkkkkkkbk +7-8 m: pmmmmmmmm +1-6 s: bsssssvslx +6-8 d: dddgdgrtbfdm +11-14 k: gkplwxkmskwmdpm +6-10 x: xxxxxkxxlr +4-10 l: lllxlllllklllll +1-2 t: ttstmpksrrp +10-12 s: ssssdsssshscs +10-12 z: zzzzzzzzpwjszzzz +2-4 r: grrrctkzmw +1-2 l: fspl +3-5 k: kkkkk +5-12 b: bcbbbbjbbbbb +8-9 c: ccccccctcc +3-8 p: pmplmhpp +6-7 b: bjhfsbbx +16-19 d: dddddddddwdvddddkdg +5-6 j: sjrzcj +5-8 f: mfdffdgf +1-3 q: qcqqq +9-10 s: sbsssssspm +2-4 f: dffl +3-4 n: nnnn +4-10 t: wttthjpdmtlthttgwtkt +9-10 d: jpxdmbnddddd +10-19 q: sqhswtjrpqbxwjqzfqmr +2-6 w: swwzvgwbww +1-2 m: cfmmsl +9-14 w: pwdbjwwhbnpwllm +4-5 q: qqqqqqqqk +8-15 m: mmkdmwzkrvlmpmnmmmmf +17-18 q: qqqqqqqqqqqqgqqqnvq +3-6 g: gkkngh +1-8 g: gghdzwkg +3-11 j: vxdspqtvkpj +5-7 q: qqtqgpmqdq +6-8 d: bdmddddvd +5-6 w: zwwwwwvwxfw +2-11 n: bnplrmpvbpn +7-14 k: kkktbkkkkkkkkk +3-11 b: fmkqvvbztnxzqvjc +3-6 q: sscqqq +4-7 c: cfrrdrzbjmvpk +6-9 w: pwrtzwrww +2-5 v: vvcvv +2-4 f: ffmf +8-10 k: kkkkkkkpkd +6-7 v: mvjvvvv +8-11 c: vccvcckccfk +7-8 b: bbbbbbbsr +2-3 x: xxxmvx +6-7 l: llbllwsl +8-10 r: rrrrrbrrgrrrrnrb +12-16 g: ggggggzsggmwgggv +18-19 p: pprppppppppppppppppp +3-6 s: ssssssss +2-6 x: lwxkdx +2-3 n: xgbnf +2-4 p: dzrk +2-4 h: hlhpjhh +4-5 b: bmnbb +1-7 z: zczvzczsxmxpzznp +2-9 l: nlwxdwlblzl +1-4 r: xbtcqrfkv +13-16 k: skkkkkkvkkjkxrkfqk +9-14 b: bbbfcbwfjbbcbg +1-13 r: frrrrrrrrrrrfr +1-4 w: hwwxwnvvt +2-6 l: zzhlrx +3-8 v: vmzvggqtslnlqrj +15-16 s: dhssknsjztzssssssss +2-6 q: qqqqqqqq +2-3 t: mkktlt +7-17 b: bbbbbbbbbbbbbbbbdb +11-17 s: sssssszfssxssssskj +2-7 h: hnhkhshhhhhhhh +2-15 x: xzxjxnxxpxxkzxxxxj +15-16 p: pmcmpclzphppxplp +8-9 k: kkkkkkkdpkks +2-4 r: vrwt +8-12 r: qrrrhhwjrrrhrrr +3-4 j: vjjzq +8-10 q: qqqqqqqqgs +6-7 j: zjjjjjjj +1-11 m: mdgkdkmqzmmsrhxxmmj +1-7 x: pxxxrbq +3-4 z: zrhkzz +4-5 s: ssqlss +5-8 f: vtrfffffff +7-13 j: jjjjjjdjjjjjtj +1-7 n: dnnfxwz +2-11 n: nzgnqncnnnjg +4-5 x: xxxxx +5-7 v: rhbvvvvhvxvpz +10-11 z: zlbbddzlzwzv +10-13 v: vvvvvvvvvvvvvv +3-4 s: ssrs +11-12 m: mmmcmmfdmmsmmmmnm +5-7 s: sdstsssssrs +1-3 w: bwzw +3-4 h: hphq +7-16 q: qqqfqqdwksqlfcqjxq +6-7 x: kndcxfv +10-11 m: mmmmmmmmmmm +1-4 n: fvsvnfhgwcgcnp +13-14 s: ssssssssrssswrss +5-9 x: xmvkxwgrxrtwxmrxhxx +3-5 q: jdbvvxvdg +3-15 w: zlzcksssjbwcvgp +16-19 x: bxxxxxxxxxxxxxxxxxx +3-5 z: rzzhz +4-10 f: hpttvbtjmq +3-6 n: wsngjn +4-5 p: ppphg +10-12 c: bqlccfctmchqbchhcg +9-10 z: zzzzdzzzzhzzvz +7-9 w: nwgwcvdcxqqwmzq +14-19 x: pxtxxlbrxdpvspwmxxx +2-8 t: ssktwbft +8-9 j: jjjjjgjsjzjj +7-9 v: vvvvvvdvlvvwv +4-6 x: qxxkssx +11-13 g: ggggggggkgvgg +8-9 t: tttttvttjttwt +2-8 b: pfbbcsbwbbbb +8-16 r: mkrcrtsrrrrbxmprftvx +9-10 k: hvwlqvktkkb +1-6 w: wsbwwvjwwrwh +10-19 f: nfftfffrdhjffjsnffd +13-16 h: hhzghvhhhfhhhhhhhhh +14-16 x: kskxbwrwrvjxfvfg +1-4 k: rflk +6-7 b: bbbbbbgb +4-17 v: vvvvvvvvvvvvvvvvv +12-13 s: sdstmsspfwsssscqf +9-11 z: zzwzvmrzzczzzz +4-8 s: skslmgsqtszbswsssscs +4-12 h: bdshxnpgvwhktdwgdp +3-5 t: tltst +4-5 h: hhhhh +9-11 w: wwwwwnwxxwwwwwww +6-7 n: dcnngffnnzn +1-3 l: clflll +6-7 x: xxxzxxgx +6-7 n: nnnnnkgnnnnnn +1-6 m: mmmmmmmm +5-7 t: tktttpt +4-8 v: zpcvqvzvrvgttntrbl +6-7 d: dddrddd +3-5 k: jskdkswqjfftgkfr +5-6 f: ffffgrffn +6-8 l: lwlkllgl +10-13 p: ppppkpppppppd +4-5 d: hbjdd +9-15 r: rrxrrrrrrrrrrrrrgr +4-5 b: bbbbtbx +8-11 b: brbbtlvvlbdbbbqjsb +6-8 g: zgzqgwmg +4-9 r: qstrmxrtr +5-8 m: mbmjmmmmmr +5-7 v: tvvzqvgrvqvmvncshv +17-18 g: fgggggggggggggggwr +2-12 t: nttpgcjtkdjt +6-10 k: kkkkklkkkk +2-7 q: qqqmtgqq +3-6 n: npccknvnn +5-16 k: rtlhkbtdkmmntdbl +2-3 b: wwkb +7-17 q: qqqqqqqqqqqqqqqqqq +1-4 g: ltgc +2-6 l: lxlnln +13-15 q: qqqqqqqqqqqqqqxq +3-4 j: jvjj +5-15 c: cpmzlhcckwlnhwmwgzw +3-8 b: qvblmmchbcc +5-8 b: fqhdwtcxb +4-15 k: kkvkkkcwgkkbkkdkkkkn +11-12 f: fnffffffffffffff +9-10 t: tttttttpfvt +4-10 f: nfffpftfffffffnf +2-4 m: scgxnm +7-8 z: zzzzzzxhbz +6-9 z: vznwkzzzz +3-5 k: hkcdn +3-10 k: kkskkkkkkz +2-3 p: pbdf +1-4 m: mdhmm +6-10 b: lfbbwdbbtv +8-10 g: gggggggggggg +2-3 t: qgthtztbwtppb +15-17 n: nnnnnnnnnnnnnnbnjn +8-17 v: vvvvvvgkvfvvzvvvpv +4-5 f: vwffff +8-15 w: wwbvwwwwdwwkzwwwwwwf +7-13 n: srmzrmnvcgshljkchp +5-15 q: dqjvfqvpwqnmpwqzh +1-2 h: hhfs +2-6 h: jhqwhh +3-4 t: tthg +2-4 b: sxsqrrxkjb +6-8 q: qqqqqqqqqq +6-7 c: rqcxcclxccwqcgwq +4-5 v: vvmfv +6-7 m: mmmcmmmm +2-4 j: bqfj +2-12 k: kkkkvkkkkskkkkkk +5-9 q: xjtqqrnnkdplrnqq +1-6 k: bqkrfpkcrwwkk +1-4 r: mrblr +12-18 s: ssssbfdlqbbssplswpsl +8-9 b: bhbhhbbkbzbnbcbh +3-7 t: tsdtthx +12-15 f: xcmghffxtgfffjf +12-16 n: bxnnhnhnnzfnnnwrtgl +7-9 q: qqqcqmnqdq +2-3 m: rpbjgkxqtmjrzm +11-12 s: hssssssssshc +3-5 x: xxldx +3-4 k: kkkxt +7-9 k: wlgkqndkz +5-7 l: llmtllv +2-6 v: svzvfv +5-6 d: djdddvddd +5-6 k: mhkkkkkwvkkcfk +3-4 c: rjcc +4-8 t: ttttzfttc +10-11 g: ggzggngbzgg +14-16 w: qzqwdwbcwwwmllndzlsm +2-4 z: zzpz +12-13 g: gwxpwcbsvwgtthn +1-4 b: bbbbmzc +5-7 f: cnxlfdffmt +3-4 z: znsdz +10-13 c: mrckljhmrcmnc +2-9 m: dxmdhndrwpmpgc +7-16 z: zzzzzzzzzzzzzzzzz +1-3 j: jjjjjjjjjjjjjjjj +15-18 g: mmglvtgzggzgnggggg +4-10 c: cccncccccz +1-8 n: mnnnnnntn +10-13 l: llllllltzhlvvld +2-3 r: gnnd +3-7 v: vcnfzzbd +6-7 p: pprpctdp +5-8 g: gggggqgggg +1-13 f: wfffdfpbfjlfhb +3-8 j: dmjjkqwj +4-10 j: vfjhnswwwtzlfvmcdn +2-4 v: bnjd +4-7 w: btwwlfwkwzmzhhlsvs +14-15 g: gggggggggggggpgg +10-11 w: zwwwwwwpwgrww +2-3 b: dbbcgwqfzlhwcbs +1-9 f: qfpfvffffffmfxbcpf +9-10 t: tttbpttttmttcnt +2-3 l: lgll +8-9 s: vzgvjsnns +6-8 w: wwwdwsbtswrww +13-14 h: dhhhxhdjnvhrhrflhh +7-8 d: dddddvjd +14-15 l: lllqlllllllllnlxlh +12-13 d: ddddzdjdddhhkdd +9-14 p: pvtplhjvpzdvqjqvh +9-10 r: rjrrrrrtrrrr +6-8 g: gjjgfwgg +9-14 j: jjjjjjtjcjjjjhjjj +8-9 q: phxjqqnqq +5-6 k: lkkkkk +14-15 x: xxxxxgwxxxxxxtwxq +1-4 x: xqfxx +1-8 m: mmgmnmvm +2-3 n: hnwr +14-15 z: zzzzzzzzzzzzssz +2-6 p: pspppp +1-6 z: zzxzzx +9-18 z: zzzzzzgzzzzzzzzzzgz +6-11 z: wzhtdzzfxjz +3-4 v: vzvv +16-19 q: qqqqqqqlqqqqqxqqqqq +2-4 v: vvhvvvv +2-9 p: lpxppwppppgppspb +11-12 m: mmmmmmmmmmndm +8-9 v: vvvpjvvvpvv +16-19 k: kkkkkkkkkkkkkkfkkkk +9-10 z: zxlzfzczzzczrdn +12-18 p: ppppppppppbjpplpphp +1-3 p: pvpppx +1-2 x: vxlx +10-12 l: lllnlllllwlll +4-5 b: bphwg +7-10 c: gcjjpprxxjcwvk +6-9 l: llwqklmpxlszgzlvl +9-15 s: fsxsscswksvrmsh +15-16 q: lqxqqwqpqwptqqmg +10-13 r: xmpmqrdjkrzkpzc +3-5 c: kcbcclt +17-18 f: jffffsffffffffffbsff +1-3 t: vqcqdmmgc +1-2 n: qnnn +16-18 n: nnjzhnznnnxlrmmnsn +13-19 q: srxlcdznhbfxqtsqtsqx +2-7 m: vmmmnjmmmmz +6-7 v: vlvmjvg +7-15 k: xnpkbtzwgntptwkgmxm +15-19 g: wggggggggggsggkggxg +8-17 h: hhhhhhhwhhhhhhhhhh +2-5 w: kwwwww +4-12 k: kkkqkkkkkkkqkkkkkkk +7-11 d: hddcndsgddgz +2-7 t: tdzxnth +1-7 z: lzzcrvz +5-10 h: shvchmxxdh +12-13 f: kffwgtfsssfqnvff +1-9 b: mbbbbtxbrbbc +4-12 r: rnfvrprrrrzrrr +2-6 p: qzltppwqljg +2-4 w: hwdxwmmqphfkhthczx +3-4 r: rrwj +3-4 b: lbbbpldfj +4-12 g: gggggggggggggkv +4-5 r: rrqjtrrr +4-8 n: nnnrfhnfn +4-11 h: lrnxkwkbhgnhh +1-8 l: lvjlhbffl +6-10 g: ggtgghghghpfgg +1-2 s: szsss +3-6 s: dszxsdsssskssbs +11-14 x: xxxncxxxxxxxxq +5-10 m: mtmmmmmmmdmm +1-3 r: qrgr +2-7 m: gmhmmtd +1-3 c: cccswmjcmnm +2-9 x: qbcdsxxlx +6-7 s: nsswzssv +1-14 m: trmlzmsmgqmmmnfdsmtm +5-7 d: cdddzdtdd +3-4 k: tvczkxvvrw +2-8 s: slvmswvs +10-16 p: pppppppppgpptpptpp +2-11 l: jqxsjlvpzkgzjdmt +4-7 t: ttmtpttp +4-11 r: twbrxccwcrtffpnv +6-8 k: kkckkkkqkk +10-12 v: vvvvvvvvvvvv +4-6 k: gqzkkk +3-4 r: rrmxr +12-13 p: npgppsppppqnw +1-16 x: mxxxxxxxxxxxxxxv +5-6 l: llllll +1-4 k: bkkckkkkk +10-11 v: vkvtvkjltmlvtxlnlrsj +3-11 h: mzhrhlhhhhhwl +5-6 p: pppppp +1-17 m: mmmmmmmmmmmmmzmjmmmm +2-6 v: cvvcvfbgcvvvcq +4-7 n: nnsnnwj +2-3 k: xvkxkksvb +16-17 x: xxtxxxxxxxxxxxxxr +1-13 w: lwwwwwwwwwwwxw +3-14 d: ddjdddbddddddtdddd +4-10 g: jrxggnqmjg +1-3 b: bbfbbbbb +4-5 d: pdhdm +5-7 d: mvdsdnd +17-19 m: mlmmmmmmmmhmmmmmmmm +4-6 g: gtlgxggggsgc +6-7 m: mzvmhglmmmpmmxf +10-14 j: jrjjjxcjjtjjjhpljl +9-15 w: wwwwlwwwwwwwwwjwwdw +1-3 g: wtzgjgr +5-7 m: dmmmtmm +1-8 g: ggkdgpggg +5-6 x: xnjhmx +1-7 b: bbbbbbbfbbbb +3-11 n: mnnnngnnnvnnqnnvn +2-3 l: jglgdrczl +12-14 f: tffpffsmfffffg +10-13 d: mndmdwdxjdxpd +9-10 m: mlmmmmmmzvxm +6-8 l: ptpjwltl +7-8 r: rrdrprlqrr +8-9 n: nnnnnnnrc +6-7 p: ppppphn +4-8 t: smtptgwtmlttw +4-10 j: jsjjjjjjjj +15-18 k: kkhwkkkkkkkkkkkkkk +1-2 s: sksxb +2-10 g: sggchblktg +8-12 r: rrrrrrrrbwrr +13-14 v: vvvvvvvvzvcvvvvv +3-4 p: kppp +4-14 m: mmmsmmmmmmmmmzm +5-6 n: kndmnnnnpnznjqb +3-10 d: xlddcdbdlddpqdkdl +17-18 n: tnmcvdcznnnfnznldt +6-11 g: wgbgzgggggg +16-18 z: zzzzzttzzzzzzzzkzq +11-13 x: pxxlgmtvbjrlb +2-13 p: bmphpwxpsmmthppprdk +14-16 r: rmrrrrrdmrrrrztrjr +1-5 x: xdxxx +1-3 d: dgdddfzddfd +1-9 m: ddfmgwfgf +7-11 x: xwnqqtxdmns +5-6 v: ffvvvv +3-15 g: dggggggzggggggb +10-13 p: pptpppkdpwcngppf +11-12 x: xxngxbxxdxxxxnzxbxx +3-4 n: nxqc +1-2 x: dvxxx +4-5 h: zhvhh +3-5 j: jqpjj +2-7 f: ffffffpfz +8-10 k: kkkkkkkkkk +5-12 x: xxtxxxxxxxxxxx +12-14 c: cccccccccccccc +8-9 s: vhlssssws +1-4 k: dqkk +4-10 r: rrbrrrrrrdrr +1-3 r: hqljfr +8-12 c: qcccccszgjgcccddccw +6-14 m: mmmmmxmmpmmqmcmmdm +5-6 r: mwrrdtm +1-5 t: rdjtts +6-14 c: gpcbczvfbcbcckblzc +5-6 w: wxwwww +3-4 p: rjppp +10-13 t: ttttttctdtgtttts +3-14 c: cvlcpqscwgzgxzxvkmh +3-7 h: kxqfwfddhllhj +10-18 r: mdqrrmrdxkkvxftrrr +13-14 m: cmmmcgmmmmhvmm +2-7 h: khvhhjhhjbv +5-9 r: rrrzgrrrlr +1-8 c: gccccccsccc +15-17 v: vvvvvvvvvvvvvvdvn +9-13 v: vbvdgpvjvhvhwxv +6-9 z: zzxbqznzqjzh +3-6 r: rrrrrrrrrrrrrrrrrrrr +3-4 x: nxxxxst +7-10 q: qqqqqqfqqf +9-10 j: jjbjdjqcqw +9-13 z: dhzzzzzzzzzwxkzzzzjk +3-9 q: pqxgqqcqqjql +10-11 h: ljhgjwhzdrhhhh +18-19 v: vvvvvvvvvvvvvvvvvvvv +10-11 l: vgxrhvtfblwl +2-3 v: rvvvvpj +8-9 c: smchcscccdmf +2-3 n: nqmnn +15-17 x: xxxxxxxxxxxxxxqxrxk +11-14 j: jjjjjjjjjjljjvj +7-9 z: zvzzmzjkfbvzzczczlzm +2-6 z: zzzjzjzzmfzk +9-11 m: mvcmmbmlzrmmz +6-7 r: rrrrrrr +3-6 c: jtcfscccvvf +2-5 s: cssbntxggkwvwnchn +8-10 x: xxsxjzxqxx +6-7 n: ndnnnbg +9-16 j: jgzxxsmljbhbttqjw +3-4 k: gjsk +9-10 q: qqcrqqqpqq +2-4 t: thtt +3-4 w: wrfxww +9-14 v: vvsvvkqgzvmvvvvvlvvv +9-15 m: mmmmkmxdmdmmhmmwjw +3-9 b: bbbbwcwbb +3-6 c: ctdccs +7-8 k: kkqrkkkk +5-7 l: llmllcqjljlh +5-7 w: wnzbwgw +15-17 f: fcffffffffffffffpf +1-2 t: tttft +1-7 n: zctqhnxvbn +3-8 z: hdpqzzzlzsw +3-15 l: llslllllllllllml +8-19 w: rwtbwrwjwtwxcclthdw +4-5 g: zggggg +5-14 v: vvvvhvvvvvvvmlvv +1-7 l: mlgxllpgl +2-12 b: mvwbfjcddqjb +1-3 m: qmzm +2-3 r: rrrrrffr +1-7 x: xxsgxxv +8-10 d: tdrrqdzcdddddxddl +2-4 n: crnnfdcnnnzn +3-4 n: nnnz +9-10 z: zzzzqfzzzzz +10-16 n: nnnhmnnznsnntnnc +9-16 s: vssssbsscssssssjss +9-13 w: wwkwwwqqwvwwww +4-5 d: hkdhwddtdkqwvl +3-4 l: llll +4-5 f: ffzffftld +7-9 d: ddddddddgd +6-7 t: ttthptttqxlfddstsq +5-16 c: clhwccvlnmttjqcc +4-5 k: pkkkk +7-11 m: xwmmmmchmmt +16-17 n: nnnnnnnnnnhnnnnrm +5-8 b: bbbbbbbbb +1-4 s: jsss +3-4 h: rhhhtjwfvdhz +9-10 r: rrrprlrwrrw +1-6 n: nnnnnkn +18-19 p: ppppppppppppppppppp +4-5 l: ljlrcl +3-7 m: mmmmmjmdmtm +12-13 b: bbbbbbbbbbbvf +6-11 g: hcghdwfpcqk +4-6 q: krpfvw +10-13 j: jsjkvjjjjjzjjfj +5-6 n: lcnnnnzndqkfnsq +2-4 j: nvdj +2-5 p: hppnpmpq +2-4 w: wnwbw +2-7 f: fwfxfmfszmcxf +6-8 d: dqrdbsnjds +1-3 f: ffffffmff +5-8 s: lnbwqnkxws +10-12 n: nnnnnnjnnnnnjcn +9-12 c: pccvnbccxrncrcclccc +14-18 s: ssssssssslsssstsssss +3-6 l: lldllczl +6-11 g: gggggwgggghg +11-12 h: chhhmjhzhqfh +5-6 n: qhnvcw +6-7 k: nckkkkmnkkkzkkk +6-8 d: wddgbdpdzdqxrwddjlz +1-3 h: qghp +3-5 j: mnjjjxjkgnrdzjbtdr +1-9 g: gfgcgggxgjggggggf +8-20 b: vptprmjbwwtnbhwjtnjb +7-8 j: jjjjjjjj +3-4 t: tqtt +5-10 f: fffzbxxszjjvjfhn +3-4 t: tttttttbtt +4-7 p: wjrgpnj +1-9 g: pgzllxgfg +14-15 c: cccccccccccccqm +11-12 b: btmcbzbnzcbbxr +5-6 h: hhhhhhh +1-6 s: nssmsssss +11-12 d: ddddddbddthfdddd +11-13 j: jtjjjjjjpjjjjwfjj +2-4 j: gjjj +3-9 v: vvgvvvvvrv +1-2 l: tqjjljxcsl +5-6 q: nqqqqr +12-16 h: hkhhhhhjhhhhqxhhhhhh +2-6 p: lpppkpbpzg +2-7 v: vzvvvvfv +13-16 g: ggggggggggggwggb +3-14 j: ghsjjcgmkwsdchlslpf +1-3 s: ssplw +7-8 x: xxxnxxxxxxx +3-4 h: zghhvtwtmlplvxxhsbf +4-5 g: sqgsnf +14-17 z: zzzzzzzzzzzzzwczc +1-2 z: cpzzzzk +16-17 s: ssssssssssfsqssss +3-9 j: jvjjfjdjjjjjh +1-6 v: vtvrvvj +4-8 c: clzcccccccf +4-5 d: dwldw +2-4 l: lwlrllllllll +6-11 s: zxgcsdxkrcns +14-17 r: vrhvhrprrfrsrrrrr +3-6 p: mrcztppnl +4-6 w: wwwwwwwwww +1-6 w: zwjccrqpwmnthz +2-7 t: mnjntdcq +1-5 b: bbjbbbbb +10-11 w: wwwwwtwwwwww +4-6 d: dddxdfd +2-4 f: fjfff +13-15 b: vbbbbbbbbbbbbbb +8-9 n: ncbnnnnnn +2-6 d: hdfphnnmbbdt +1-4 f: wffz +7-15 f: ffsffffffffffvzff +8-10 c: zchrckkcqcr +2-6 h: thvbvh diff --git a/2020/inputs/day20.txt b/2020/inputs/day20.txt new file mode 100644 index 0000000..2493d91 --- /dev/null +++ b/2020/inputs/day20.txt @@ -0,0 +1,1728 @@ +Tile 2473: +.#.##.#.## +.......#.. +.####.##.. +#...###..# +...#.....# +#........# +.##.##...# +........## +#.##...#.# +.#####.#.# + +Tile 3257: +##.#..###. +.##...#... +#.#.#...#. +#...#...## +##.#.....# +..#....#.. +...#..##.. +..##.....# +...###.... +##.#..#### + +Tile 1049: +..##...### +#........# +#.#..#...# +.........# +....#..... +.....##..# +..#.###.#. +..#......# +.##.#..#.. +.###....## + +Tile 3109: +..#..##.#. +........#. +##.#..##.# +##...#.#.. +.##.#...#. +...#...... +#.##..##.. +.....#..## +#..#.#.#.. +..######.# + +Tile 1409: +.###.#.#.. +........## +.........# +.......... +..#......# +#.#..#.#.# +#.#...#.## +..#..##... +.........# +#..#..#... + +Tile 1949: +#..#.###.. +.....#.#.. +#...#..... +##.#....## +#......#.. +#...#.#..# +#...#..#.. +.###..#### +#.#......# +.#...#.#.. + +Tile 2999: +####.#.##. +..##..##.# +..##.##.#. +#...#...## +#..#...### +.##..##... +##..#.##.# +#..#.....# +...#...... +###....#.. + +Tile 1867: +###.##.... +.#.#....## +##.....#.# +###......# +#.....#... +#....#.#.. +...#....#. +#...#.##.# +..#....#.# +.##.#.#..# + +Tile 2539: +#.#.##.##. +#......... +#....#..## +#..#...#.# +....#.#..# +.##..##... +#....##..# +#......... +.........# +..#..####. + +Tile 2801: +.#.#.#.... +#..#..#..# +..##....## +###....#.# +##.......# +.......... +...##....# +#.##...... +#.....##.# +.....#.#.. + +Tile 3079: +.####..### +#.#.....#. +...#..#..# +........#. +#........# +..#......# +#...###... +###...##.# +........#. +...#..##.. + +Tile 1621: +.##.#..... +.#.....##. +##.#....#. +....#..... +###....#.# +.#.....##. +.........# +##........ +..#......# +#.#.#..##. + +Tile 3989: +##.#...### +.......### +#..#..#... +#.......## +#.#..##... +##.#.....# +..#..#..## +#.#..#..#. +.#...#.#.. +..#######. + +Tile 3691: +..##.##### +#......#.. +#......#.. +#...#....# +#...#..... +##..##.... +###.....#. +##.......# +.#...#...# +##.##.###. + +Tile 2551: +.###.#..#. +......##.# +.....#..#. +.....#.#.. +......#.#. +##.#.....# +#...#..#.# +......#.## +#...##.... +.#.##..#.# + +Tile 2557: +.##...#.#. +#......... +##........ +#....#.#.# +.#.#...#.# +.#####...# +#..#...... +#....#.... +.#...#.... +#..#.#.##. + +Tile 1381: +....##.### +#.#....#.. +.......... +.#...###.. +..#..#...# +..#..#...# +.......... +..#......# +#......... +#.....#..# + +Tile 1447: +...####### +#..#..#..# +..#..##### +.#...##... +.#.##....# +.#..#..#.. +....#..... +#.##...### +#...#..... +#.....#.#. + +Tile 1987: +.#.###.... +.........# +#.#..#..## +.#.##....# +...##..#.. +#..##..... +........#. +.###.#...# +.#....###. +..##.##.#. + +Tile 2297: +###.#.#.#. +...#....#. +.....#..## +....#....# +#.....#..# +.#........ +###.#.##.# +........#. +#...##..#. +.##.....#. + +Tile 3697: +.##...#.#. +....#...## +##...###.# +#.#.#..... +...##....# +#.#....#.. +...#.#.#.. +.......#.# +#......... +.######.#. + +Tile 2143: +.#..#...## +..#.#..### +.......##. +#.#....#.# +...#...... +#...#..... +##..###..# +#...##.... +#......... +##...#.#.# + +Tile 3673: +######.#.# +#.......## +##..#..#.# +........## +.......#.. +..#.#..#.. +...#..#... +..#...##.# +.##..#..## +...#.##.#. + +Tile 3613: +....#.###. +#.#....#.. +#..#...... +####...### +.#.#....#. +#......... +.......#.# +#......... +#......#.# +.##....### + +Tile 1823: +..##.....# +........#. +..#.##...# +.........# +.........# +#......##. +....##..## +.......#.# +.......#.# +....#.#..# + +Tile 1559: +.#.....#.# +.........# +..#....#.# +..#.....## +#..#...... +##.....#.. +....###.#. +#.#..#.#.. +#..#...#.. +.##.##..## + +Tile 3083: +#.##.##.## +..#....#.. +#.#.#...#. +#.##..#..# +#........# +...#...... +#..##..#.. +..#..#.#.. +#.#......# +#.#####.## + +Tile 3739: +..#.#.#.#. +#..#..#.## +......##.. +...#...... +.......### +....#..... +..#.#..### +#........# +.#.......# +.#.##.###. + +Tile 3557: +..###.#### +.......... +#..#.#..## +##........ +#..##....# +#.#......# +.#....#... +..#...#.#. +#...###..# +..#.#.#.#. + +Tile 1289: +##.#.###.. +#..#.#.... +#.##...#.# +..#...#.#. +##........ +#...##.... +....#...#. +.......#.. +#...#..... +##.#.#.#.. + +Tile 3769: +..####.#.. +#......#.# +#........# +#....#.#.. +.#....#... +......###. +#....#.#.# +#.#....#.# +##..#.#... +#..#.#.... + +Tile 1733: +........#. +....#..... +#.#.#..... +.#......## +#.##....## +#......... +......#... +###..#.##. +.#.......# +#..##..##. + +Tile 2087: +..##....#. +#........# +##.#....#. +.........# +#........# +##..#..#.# +.#....#.## +...#.#.#.# +.........# +##..#..##. + +Tile 2309: +###......# +......#... +#.#......# +.#.#.....# +...#.....# +##..#.#... +.#....#..# +###.#....# +#.##.#.... +....#..#.# + +Tile 1511: +..####...# +...#..#... +..#.#...#. +.......... +#......#.# +#.....#... +..#......# +#.#....#.# +##.##..#.. +.####.#... + +Tile 1553: +####.#.### +#...#...## +...#....## +####...... +...#..#... +#.#......# +.##.....## +#....#..## +..###..#.# +#...#.#.## + +Tile 2017: +.###....#. +##..#..#.. +#.....###. +##.#...##. +#..#.....# +....#....# +....#..#.. +.#.#.....# +#.......#. +.###.##... + +Tile 1291: +#....#.### +.......... +.#.#.#..#. +....#...## +.#...#...# +#...#.#.#. +.#.....#.. +#.....#### +.##.#..##. +...#...... + +Tile 2797: +.###.#.#.. +#...##...# +#..#...... +#.##..#..# +...#.##... +...###.... +..#..#.... +.....#...# +....####.. +####.#.##. + +Tile 2879: +.#.###..## +#.##.....# +....####.# +#...##...# +#.#....#.. +......#... +.#..#..#.# +##..#.##.. +.........# +.#...#.##. + +Tile 1723: +.#..##.### +#.##...... +......#.## +..#.#.#... +........## +#...##..#. +...#...... +###..#.#.. +##.#....## +.#..#..### + +Tile 2441: +#...##.##. +#.##..###. +.#.#.....# +..###..... +...##....# +##.##..#.. +#..##...#. +.###.#.##. +.#.##..##. +.###...##. + +Tile 2741: +#####..##. +.###.#.... +#..#.#...# +.#..#.#... +.#....##.# +##.......# +.#.##.##.. +#....#.##. +....##...# +...###..## + +Tile 1283: +.##.#..##. +.....##... +#..#...#.. +#..####... +.##....##. +##.#.....# +#.......## +#.#.#..... +.....##..# +###.#..#.# + +Tile 3761: +#####.#..# +.......##. +#...#####. +#...#.##.# +##........ +#......#.# +#..#.#..## +...#.#..## +.#........ +...##..##. + +Tile 3119: +.#.###.#.# +....#....# +......#... +.#.##..##. +.#.#...... +#...#...#. +.##....... +##......## +#.##...### +######.##. + +Tile 1973: +.....##.## +##.##...#. +.###...#.# +...#.##... +#..#.#.... +....####.. +#..###.... +.#..#....# +##..#.##.. +..##...#.. + +Tile 3407: +.#..##.... +###.#....# +#...##...# +#....##... +.#..#.##.. +.......... +.........# +#....#...# +###....#.# +.###.#..## + +Tile 2803: +.#..##.... +..##.##..# +.....#.#.# +##.#...#.. +#..#..#..# +###.#.###. +..#......# +#.#....#.. +#........# +.#.#..###. + +Tile 3821: +#...#..##. +#..#...... +##......#. +#......... +....##...# +.#........ +###.##...# +........#. +###..#.#.. +..##.#.#.. + +Tile 1889: +.#...#.... +..#..#.#.# +#.#...#..# +##........ +........#. +.#....##.. +##.##.#..# +..#....... +...#...#.# +##.#.##### + +Tile 2333: +#.##..#.#. +###.#.#... +#.....#.#. +......##.# +###....#.. +...##..#.# +..##.....# +..#.##.... +....##.... +#..####### + +Tile 1307: +..#..##..# +#.##...... +.#.....#.# +........## +##........ +.#..#..#.. +##.#.....# +#.....#... +#.##.##... +######.#.. + +Tile 2593: +##.###.### +.......#.# +..#..#.... +#.#...#... +#.#....... +#.....#... +###...#... +.....#.... +##.#..###. +...#...... + +Tile 1543: +#.##..#.#. +...##..#.# +#..#..#... +#..#..#..# +....#.#... +..#..#...# +#####..#.. +..#....... +.#...#..## +.##.#.##.. + +Tile 2851: +...#.##.## +#....#.... +..#..#..## +#......##. +#.##.#.##. +..#......# +##.#.....# +......#..# +##.......# +#....#.#.. + +Tile 3299: +##..##...# +#.....#..# +#....#.... +.#...#..## +....##.... +#....#..## +#...##.### +#..##..#.# +##.#..#.## +####.##... + +Tile 1913: +####...### +.....#.#.. +.......... +#...#....# +#........# +#.....#..# +.#........ +#......#.. +......#... +###...##.# + +Tile 3361: +#......### +#...#...#. +...#.#.... +.......... +......#.#. +#...##.... +.#...#.#.# +....#...#. +..#.....## +.####..##. + +Tile 3517: +...#.###.# +.#.#..#... +...####... +#...#....# +....#...## +#..#..##.# +.##..#..#. +##..#.##.# +#.#.#....# +.#.##.#.#. + +Tile 2083: +.#######.. +..####.#.. +#......... +......###. +.#.......# +....#....# +....#....# +...#...##. +...##..#.. +..#####... + +Tile 1327: +..#.###... +#...#...## +.......... +......##.# +.##.#..... +#...##.#.# +###..#..## +.....#.... +...##..... +....#..#.# + +Tile 1789: +..#.##...# +.#.#....#. +###...#... +#.#......# +#....#...# +#........# +#.......#. +##.#..#... +.###.#...# +#.#..#.### + +Tile 3797: +##.#...### +....#...## +........#. +.....##... +#......... +#.#..#...# +...#....#. +#.##...##. +.....#.### +###...##.. + +Tile 1171: +###.#.#.#. +.....#...# +#.#....... +.#.#..##.. +.....#.### +...#...#.. +...####### +..#.....#. +####...... +##...###.. + +Tile 2003: +...#...### +#..#...... +##.##...## +###....... +#.......## +##.##..... +#....#.### +.#........ +##.#.###.. +#....##..# + +Tile 1597: +.#...#.#.. +##...##..# +##.#.###.. +.#..##.... +....###.#. +#.....##.# +###.#...## +#..#...#.. +#.#..#...# +#####..#.. + +Tile 2179: +..#.#.#### +..##.#.##. +.#.......# +#.#.##.#.. +.....#.... +###......# +#.#..#.#.. +.###.#.... +.......#.. +.#.#...### + +Tile 1997: +##.##....# +...##.#..# +##.#...... +.#..#.#... +##.....#.# +..#......# +#.....#.#. +##...#.#.. +##.....##. +#..#.....# + +Tile 1163: +.#.....##. +.#...#...# +...#...... +.......... +##...#.... +..##...... +#.....#..# +..#......# +.......... +.####...## + +Tile 1933: +#.##.##### +#...#..... +#.#...#.## +.....#.... +.....#.... +#...#.#.## +.......... +...#.##.#. +....#..... +.#..###### + +Tile 3359: +#..#..#... +.#..#..#.. +.##......# +#..#.#..## +##..#....# +#...#..#.. +...#.###.. +..#..#...# +...##.#... +...###.#.. + +Tile 1499: +#.#.##.### +.###.....# +...###.... +##....#... +#..##....# +.......### +#.......## +.....#..## +.........# +#.#.#..### + +Tile 1663: +###.##.##. +#..#.#.... +...#...... +##...#...# +#..##.##.# +........## +......#... +.#..#..#.. +.......#.. +###.#.#### + +Tile 1493: +##.###.... +#..##....# +#.#....... +....#.##.# +.....#...# +#.#....... +#...#....# +#.......## +#.##..#... +.##..#..## + +Tile 1427: +#..#.##.## +##..#..... +.....#...# +...#....#. +......##.# +#.#....... +.#.##..#.. +#.....#..# +##..###... +####.....# + +Tile 2663: +..###.###. +##...#.#.. +....#..#.. +.....#.... +.......... +..#....... +..#.#..... +#..#...... +###..#...# +#.#..#.##. + +Tile 3089: +.#.#..#.## +#......... +##........ +...#.#.... +.##..#.#.# +.#....#... +##.##....# +#.#....... +..#.#.#..# +..##...#.# + +Tile 3121: +..#.#.#### +.###...... +.###.#..#. +.#........ +.#.#....#. +###...##.# +..#..##.## +###....... +##..#.#..# +#..###.##. + +Tile 1567: +##.#.####. +#....#.... +.#...#..## +......##.# +.........# +......#.#. +........#. +........## +#...#.##.. +...#.#..## + +Tile 2957: +######.#.. +.#....#... +###.#..... +.#...#...# +...#..#..# +..#...#... +#.#......# +....####.. +##.....#.# +.###...... + +Tile 2617: +..####.... +...##....# +###.#..#.. +#.##...### +....#....# +#......... +#....#.... +.....#...# +#.#..#..## +##..#.###. + +Tile 1847: +#....###.# +...#....#. +..###....# +#....##.## +#.....#... +##...#.### +.........# +.....##... +###..##..# +##..#.##.# + +Tile 1753: +...#..#### +.......#.# +..#....... +......#... +........#. +#......... +##....#.## +#.##....#. +.##.#..#.. +..###..##. + +Tile 2549: +..##..#..# +#..##..... +...#.#.... +##........ +#..#.....# +......#..# +...##....# +...#.#..## +#.##.....# +.#.##.#.#. + +Tile 2917: +..##.....# +.#.......# +..##..#..# +..##...... +.....##.## +.......##. +#....###.. +.#..#..... +#......#.# +.##..####. + +Tile 3301: +#.#..#.#.# +#.#.#..### +#.##....#. +.......#.. +#........# +##.#.....# +.......### +..##.....# +.....#.... +#....##..# + +Tile 3041: +..###.#... +#..#.#.#.# +#...###..# +##..#..... +###...#... +#...#....# +......#... +#####.#... +.......... +####.##### + +Tile 2693: +.#..#..##. +#...####.. +.#......## +.......... +..#......# +.#..###.#. +#.#.....#. +#...###.## +.##.....## +.#.#.####. + +Tile 3037: +.#.#.###.. +.#....#... +.#.....#.# +.......#.# +.......... +........## +.##..#.... +#..#....#. +#.#...#..# +...#.##### + +Tile 2399: +.....####. +##....##.# +##.....#.. +........#. +#...#...## +#.#......# +#..#.....# +.....##... +#.#......# +....#..##. + +Tile 1811: +###...###. +......#.#. +#.#....... +###.##...# +##......#. +#..#..#..# +...#....#. +....##.... +#..#..#.## +...####### + +Tile 3659: +##.#..#### +...#...#.# +.#.....#.. +..#..#.... +#.......## +#......#.# +.......#.. +#.......## +.....#.#.# +.##.#...## + +Tile 3643: +...##..#.# +.#.####.## +.#..#..#.. +#..####.## +#.#.#..... +....#....# +.....#.... +#........# +.##..##... +..##.#.... + +Tile 2647: +..#..####. +##..#.##.# +......##.# +#..#....## +.##....... +......#... +#...#..... +........#. +...###...# +.##.##.### + +Tile 2699: +..#.#.##.# +#....##... +###...#..# +#.#...##.# +.......... +#...#.#..# +#......#.. +#...#.#... +###.#.#... +..###.##.. + +Tile 3541: +.....###.. +#......### +#.......#. +.....#..## +#......#.. +......##.# +...##.#### +#..#.#.#.. +#..#...... +..##.#.##. + +Tile 3923: +#..#.#.### +#.#.....#. +#...##.... +..#.###..# +.#..##.... +.##..##..# +.......... +#...##..#. +.##.#..##. +....#....# + +Tile 1019: +###..#..## +.##..####. +...#....## +#...##...# +.......#.# +.....##... +#.#...#... +##.......# +#.....##.# +###.#..### + +Tile 1741: +#.#.#...#. +#.....#... +.......... +#....##.## +#.....#.#. +#...#..... +.....#..## +.###...##. +#.....#..# +#.#.#..### + +Tile 2843: +.##.....## +........## +#.....#..# +#####..#.# +#........# +.##.#....# +#..#.##..# +##..#.###. +..#.....## +.#.##..... + +Tile 2683: +.####..... +#..##.#..# +...#...... +#.#.#..#.# +...#...... +.#...##.#. +#.#..#.... +#.##.....# +#..#...... +.###...#.. + +Tile 1039: +#..##..### +....#..... +...##.#..# +..#..#...# +#..#..#.#. +#..###.#.# +#.#......# +#.....#..# +#####....# +.#.##....# + +Tile 3907: +#..###.### +#.#..#.... +.#......## +#......#.# +#.#..#..#. +...#...... +#....#.#.. +.....#...# +.#....#..# +#.#......# + +Tile 3163: +#.##.###.. +#..#...#.. +..#...#.#. +.........# +...#.#.#.. +..#.#..... +#.##...#.. +#..#....## +...#.#...# +#..#.##### + +Tile 1213: +#..##.#..# +###.....## +#.#...#.#. +###...#### +#.##.##... +..#....#.. +#..#...... +.####.###. +#..#..###. +#..##..### + +Tile 2389: +...##.###. +#........# +#.....#..# +.#......#. +.#.......# +.###.#..#. +#.#..#...# +..#.#....# +.......#.# +#..#..#.#. + +Tile 3637: +..###.#.## +.#....##.. +...#.##... +#...#....# +##........ +........## +#..#...... +.#..###... +##..#....# +##.#..#..# + +Tile 3677: +##..###.## +#.....###. +.###...... +#..#..#..# +.......##. +.....#...# +.##.....## +.#......## +....#...## +###..#.... + +Tile 2347: +.###.##.#. +#.##.#.#.. +..##.....# +#..#.#.... +#.#.#...## +##...##.## +#......... +#.#....#.# +##......## +###.#.##.. + +Tile 3469: +#.#.###.#. +#....#.... +#......#.. +...#..#..# +##..#..... +.....#...# +##..#.##.# +##........ +.#.....##. +..#...#... + +Tile 2887: +#..#....## +..#..#..#. +.#.....#.. +.#.....#.. +#..#....## +.#..#...#. +#...##.#.# +#..###...# +.##..#...# +.#.#...#.# + +Tile 3331: +.#....###. +#......##. +...##..... +#.#.#.#### +#.#.#..... +#....##..# +...#....## +...##.#.#. +.#..####.# +.#.#.#.##. + +Tile 1901: +##..#.#..# +##.......# +#.#....#.. +..#.#..... +##....#... +#....#.#.# +..##....#. +.....#.### +##.......# +..##..#.#. + +Tile 1009: +##.#...##. +.......... +#..#..#..# +.##.##...# +##.#...... +##.##.##.# +..#......# +#.#.##.... +##.#....## +######.#.# + +Tile 2423: +#.##...#.# +....#..... +..#...#... +#..#.#...# +..#....#.# +..##..#.## +#.#.....## +#......... +#..#.#.### +#.#..####. + +Tile 2029: +#...#.#### +.........# +####..#..# +##.......# +#....##... +###.#.#.## +###...#... +.#.....#.. +....#..### +##........ + +Tile 3767: +.##..#.#.# +..#..##.## +.....#...# +...##.#.## +#...#...## +#..#.####. +##.#..##.. +#....#..## +.......... +....#...#. + +Tile 1223: +.#....#.#. +.#..####.. +.##..#..## +..#....#.# +.#.#...#.# +..#...#.#. +#.#.....#. +.#.#.....# +#.....#.#. +..#..#.### + +Tile 1583: +..#..###.. +#.#.#...#. +#.#....#.. +.....#.... +..#......# +#...#.##.. +#.#...#... +..##.....# +...##....# +##.###.... + +Tile 3181: +##...####. +.....##... +..##..#..# +...#....#. +###.#..#.# +...#...#.# +.#.####..# +#..##....# +#.###....# +#.#.##.##. + +Tile 1181: +.##.###### +#......... +#..##....# +#........# +##.#.....# +.....#.... +#...##...# +#..##..#.. +#..##..... +...##..##. + +Tile 2749: +...##.#### +#.#...##.. +.#.###...# +##..#...#. +......##.. +...##...#. +...###.#.# +.#.##..#.# +##.#.##.#. +.....#.... + +Tile 1579: +###..#..#. +#.#....... +...#.....# +...#.##..# +#.#.#.#.#. +...#.#..## +#.####..#. +#.#...#..# +..#....... +.#####.#.. + +Tile 2777: +##...###.. +#......##. +...#...... +.........# +#...#..... +.###.#..## +..#..#...# +...#...#.. +#........# +###..#.### + +Tile 3049: +#.#####... +.#...##... +#..#....## +........#. +####.....# +.#.....##. +#.#.....## +..#......# +..#....... +#...#....# + +Tile 1657: +..#...##.. +##....#... +....#..##. +#.#......# +##........ +#...#..#.# +..#....#.# +..#..#.#.. +##........ +#####.#### + +Tile 1483: +#.....##.# +#.#....##. +#........# +#...#.##.# +.##.#..... +...#.....# +#.....#... +......#... +..###....# +..##.###.# + +Tile 1367: +###.###..# +###..#.#.# +.......... +##.###.... +....###..# +#.#..#...# +#..#.....# +..#......# +#.##..#... +#....#...# + +Tile 3061: +.#.##..#.# +..#..#.... +.#..#.#... +.#.....### +##...#...# +..#...#..# +#.#..#.... +#.#..#..#. +......#... +##.##.#.## + +Tile 1487: +..###.##.# +#....#.### +#......#.. +..#.#.###. +.......... +..#...#..# +....#.#.## +#.###..##. +...#..###. +#.....##.# + +Tile 1693: +...#...##. +...##....# +..#.#.#..# +#..#...... +#.....#..# +..#....#.. +.#........ +#..#.#.... +.......... +..#.#..##. + +Tile 3671: +....#.##.. +.#.......# +#.#......# +#.#....... +#.......#. +#......### +#.#....#.. +........#. +.....##..# +.##.#..#.. + +Tile 3169: +.#.#####.# +..#...#... +#........# +.#..#....# +######.#.. +#.#####... +.......##. +.#...#.... +#..#.....# +#.#####.## + +Tile 1061: +###...#### +...#.#..#. +#......#.# +#.#..#..#. +#......#.. +...#...### +...#...... +...#...... +#.#....#.# +.#..##.#.# + +Tile 2477: +...#..##.. +#....#...# +#..#...#.# +##...###.# +..#....##. +......##.# +#........# +##.#..#.## +......##.. +#.####..#. + +Tile 1783: +###....##. +#..#..#.## +#...#.#.#. +##.#..#... +#.##...#.. +##.......# +...##....# +....#....# +##.#.##..# +###....... + +Tile 2713: +##..###... +#..#....## +.........# +###.....#. +.###.##.#. +#..##.#... +##..##.#.# +##..##..#. +.......#.. +##.#..###. + +Tile 1097: +#..#.#...# +...##..... +#..#.....# +#...##...# +#........# +##.......# +....#....# +#.#..##..# +..#...##.# +####.####. + +Tile 1861: +##.##.###. +.##...#... +.#...#...# +.#.#...... +..#..#.#.# +#.#..##..# +......###. +..#....##. +.#..#.#... +....#..#.. + +Tile 2069: +##.######. +...#...### +.#.......# +.#..#..... +......###. +..##.##... +....###... +#....#...# +.#....#... +...#....## + +Tile 2657: +.#..###... +#..#...#.. +##...#...# +.......... +##.##..... +#.......#. +.....#..#. +..#....... +##..#..... +###.##...# + +Tile 3527: +...###..#. +#....#..## +##....#.## +...#..#### +...#...### +#......... +#....#...# +#..#...... +......#.#. +......###. + +Tile 2927: +...###.##. +....##...# +.......##. +#####..... +#...#...## +.....#...# +.#...###.# +.#...#.... +#..#.#.#.# +#.##.##.#. + diff --git a/2020/inputs/day21.txt b/2020/inputs/day21.txt new file mode 100644 index 0000000..78c5c0d --- /dev/null +++ b/2020/inputs/day21.txt @@ -0,0 +1,33 @@ +lfqhssm pcxzx jrs rxhv mhtc dvc jvd ttvtr srvzpc thzbt jfkhrp zxstb tkpqpb lcplblp jflxtnp jnqgtrq zdfl kdxht dfxfqs qdths cnzz drcj stjr jtrrnz rlh ljfsmv ptrj rdnsghf kllgt dgtxv zpxvch rfnzl xszpg qmbn nfff cxzrtx fvmzmrd szsdbv mcmrzs hfdxb slgnk szsmh zngdbgf hgndp pxxjmds pdbcdp zczv hvkvz mhzbkt qjhmth gmstmh tvmpdqp ztbgdkd xdfjsm hbfnkq fxzgqn ljclf mpzq mxsbp cjdcn jgjx gnbxs sqrk tlqtz mdghb npvv nkrpv thvbm dfdr srgh xkvgj fmj smxk khqvlxn nkvdvs tnd fqgl dhlmfn rzvj ljvx (contains dairy, sesame, nuts) +tfshb zxstb thzbt dfxfqs prkc qxst nzdmcf mxsbp cjdcn hfdxb hbfnkq dfdr fdknsl nvrndt hhrdrl mcmrzs nkrpv szsdbv jgkvfl slfpcp dvc nfff bmttzd snlhkm nkvdvs sdts qftpx thd qxc zpxvch rdnsghf zpp jrnqx cqvqlp tvmpdqp lbzg kcvzks grzdp zhdtt mdghb zdfl qmbn kllgt mhtc gnbxs mk fmj jmc smxk sqrk fbkpkv mhzbkt nltxdhr hjnx thtsvz fstx ffmq dvffd jfkhrp mdlr rgpvhb (contains nuts, eggs, dairy) +txvg zjlxft fstx mk rkrqrk flrn cqvqlp ptrj pxxjmds tlst jxj fmkmrk xxgd lfrt mhtc drcj njpx fqgl kllgt hfdxb nltxdhr ztbgdkd cnzz qxc hjnx pcxzx ljclf gqsnd svbvqlq ljvx jfkhrp ndqgjs jrs cgrjf thd jrnqx slfpcp tcxz bfrj bdclf jtnfbh zxstb rlh lbzg jvd thvbm nvrndt jtrrnz cxzrtx khqvlxn vnrnn slsdck mhzbkt jlfmg zdfl gnbxs bmxlldv sstvx (contains dairy, soy) +pxxjmds qdths mjpqlvj szsdbv rknm tnd sdts fstx sstvx zxstb lgfmt pdbcdp thtsvz vxmvk mdghb jrs rfnzl smxk rrlszk jgkvfl ljclf gmstmh lfrt fxzgqn hbfnkq tlqtz crrgj rtpgqd jmc rxkt zpp qnvml lgcrd zpxvch ltnqh fdrgkrx gqsnd grzdp ljvx zczv mhtc jnqgtrq srgh qlcvd cgrjf jrnqx hfdxb mxsbp srvzpc kpn lbzg qjhmth njpx crbbk jlfmg bmxlldv hkchvb dxbmdj zpvkl dvffd kllgt srj sqrk jvjtrxt ndqgjs rxhv jflxtnp jvd ffmq bghtk bhrv cxzrtx fnfm zvmnd xbjqr kkdzxr bdsxbd mxprt cqvqlp pbqn cmfjr (contains wheat, nuts, sesame) +hgndp qnvml mhtc krgmpn zpp fdknsl gqsnd xhxrg tlqtz hvkvz ltnqh tkpqpb bmxlldv srvzpc slgstf fvmzmrd ttvtr jtrrnz dgtxv jrnqx zhdtt lgfmt kclh xxgd jnqgtrq hbfnkq kllgt slfpcp xszpg hfdxb ljclf rxhv bfrj zxstb ztbgdkd jtnfbh hqqzdc dfdr mtlcq lgcrd xkvgj ndqgjs rxkt lfqhssm dctgv ljvx zczv szsdbv tfshb bghtk zjlxft (contains fish, soy) +mhtc zpp qdths slsdck rxhv fmj hbfnkq cqvqlp kpn jlfmg nnxxsjh rlh flrn slfpcp ljclf gmstmh srgh jtrrnz tlst lvtrmn hhrdrl sstvx nkvdvs dgtxv zczv vmfhv jrnqx fnfm bdclf slgstf tlqtz cgrjf stjr krgmpn tkpqpb rrlszk bmpt ljvx dvffd tnd gqsnd dfdr ztbgdkd npvv svbvqlq rgpvhb qpktd sdts fqgl qmbn gvtvmn kdxht hfdxb rxkt kcvzks kllgt rzvj slgnk qxst khqvlxn qxc rtpgqd szsmh qnhvn tzxmtx fdrgkrx vxmvk kkmvg gnbxs (contains wheat, dairy) +lfqhssm hhrdrl tcxz srvzpc hbfnkq jrnqx kcvzks sxtfvrhl zhdtt dvc jvd rkhs rkrqrk fbkpkv vmfhv rltxnqf rgpvhb bhrv slsdck dhhf sqrk mxsbp dvffd slsqp tlqtz nltxdhr tvmpdqp cxzrtx crbbk jfkhrp zxstb mk stjr fqll mhtc dctgv xhxrg rdnsghf hfdxb xqnrcg xbjqr slgstf qmbn qxst ztr kllgt hvkvz fdknsl xszpg npvv nzdmcf szsdbv zgcncf qpktd bdsxbd zpvkl xdfjsm ncgn ttvtr jrs gqsnd pdbcdp hgndp bmxlldv zmdl ljvx rfnzl txvg qjhmth (contains dairy, wheat, nuts) +hbfnkq kpn mk hfdxb szsmh kkdzxr rfnzl jflxtnp lgfmt sstvx qxst dhhf npvv zngdbgf nnxxsjh mjpqlvj jfkhrp ljvx krgmpn ztbgdkd smxk jtrrnz bdclf vhchv zpvkl gnbxs nvrndt zbkjjkz qjhmth jmc pdbcdp fmj rkrqrk mpzq kllgt gfgmz crrgj dfdr jrnqx dnjt lcplblp nfff jgkvfl fnfm dctgv mcmrzs slsdck mxprt szsdbv dfxfqs mhtc hvkvz (contains wheat) +bghtk hkchvb nkrpv rlh jrnqx zvmnd hfdxb hbfnkq qxst mdghb jfkhrp jlfmg lbzg tnd ljvx krgmpn ptrj xdfjsm tlqtz slsdck dgtxv fdrgkrx xkvgj qdths szsdbv kkmvg mhtc nvrndt fvmzmrd mhzbkt jnqgtrq pbqn nnxxsjh zxstb ljfsmv nzdmcf cnzz fmkmrk dfdr jtnfbh kllgt ttvtr (contains nuts, fish, soy) +lgcrd ljvx mhzbkt zpp bdsxbd hjnx jnqgtrq fvmzmrd jtrrnz rxhv zvmnd xszpg mhtc zbkjjkz hbfnkq lvtrmn qdths gnbxs flrn dctgv txvg hfdxb qjhmth sdts zgcncf nltxdhr tcxz jlfmg jrnqx lcplblp fmj cgrjf mpzq gvtvmn jflxtnp jgjx qlcvd mjpqlvj kllgt cnzz jmc zjlxft jgkvfl slgstf ttvtr fqll pdbcdp srgh vxmvk sxtfvrhl rknm rdnsghf bmpt kcvzks szsmh srvzpc zmdl rltxnqf dhlmfn (contains dairy, peanuts, soy) +zpvkl fdknsl xkvgj fvmzmrd lfqhssm txvg bdclf hbfnkq jgkvfl bmxlldv qxc dhhf xxgd gvtvmn hvkvz srgh dhlmfn zjlxft svbvqlq jtrrnz rgpvhb jtnfbh mhtc nvrndt sdts bghtk gnbxs kkmvg gfgmz dgtxv mxprt fdrgkrx jmc jvjtrxt fstx sqrk hgndp mhzbkt jflxtnp szsmh zvmnd gqsnd crrgj tnd vnrnn srj vmfhv rfnzl hqqzdc slgnk szsdbv thzbt slgstf ljvx kllgt nltxdhr zgcncf jrs kpn fxzgqn dnjt jnqgtrq jrnqx zpxvch slfpcp ltnqh zxstb dctgv sxtfvrhl qdths (contains wheat, nuts, peanuts) +tfshb cxzrtx tvmpdqp sqrk qlcvd rltxnqf gnbxs bdsxbd lbzg fmkmrk ffmq dhlmfn jrnqx crrgj ljclf lfrt stjr jvd hbfnkq hhrdrl dvc srvzpc flrn bfrj kllgt fdrgkrx zpvkl sdts ljvx qnvml npvv nltxdhr pbqn vhchv zmdl nfff pxxjmds xdfjsm jrs hkchvb svbvqlq hfdxb rlh jxj vmfhv zxstb kkmvg bghtk mxprt (contains fish, nuts, peanuts) +zdfl fqll ljfsmv dfdr ljvx slfpcp jgjx mxsbp mpzq smxk stjr hjnx jmc kcvzks slgstf bfrj bdclf hqqzdc zczv mk rdnsghf jnqgtrq ltnqh cmfjr xqnrcg szsdbv hhrdrl dgtxv gnbxs pcxzx ptrj zjlxft dvc tzxmtx mjpqlvj fvmzmrd bmpt ztbgdkd tlqtz tlst kllgt zmdl gfgmz sxtfvrhl hfdxb bmxlldv vnrnn ncgn kkmvg nltxdhr ztr hbfnkq drcj dhlmfn cqvqlp rknm vmfhv nfff npvv mdlr jrnqx cjdcn sqrk krgmpn mxprt gmstmh xxgd mhtc nvrndt fmkmrk zhdtt rkrqrk (contains eggs, sesame) +cmfjr qlcvd bhrv zjlxft cnzz crbbk qnvml dfdr zxstb ljvx nkvdvs szsmh tkpqpb kllgt kcvzks fqgl tlst hvkvz srj fvmzmrd lcplblp qnhvn jlfmg qftpx slgstf tfshb drcj xxgd kkdzxr rxhv dvc vtbxs slsdck nkrpv gmstmh bmpt zmdl vnrnn dgtxv bghtk mdghb vhchv lfrt ptrj dnjt gfgmz vxmvk smxk bdsxbd thvbm qxst tlqtz zdfl dhhf mk dhlmfn rrlszk njpx sxtfvrhl hfdxb ztbgdkd zczv zhdtt xkvgj txvg slgnk lgfmt hqqzdc tvmpdqp rlh ffmq jrnqx gnbxs pxxjmds mhtc lvtrmn (contains sesame, eggs) +zvmnd kkmvg jgkvfl pbqn grzdp svbvqlq gnbxs mdlr rkrqrk szsdbv kllgt bmttzd rzvj qpktd vhchv srvzpc ncgn crbbk hfdxb qftpx srgh mpzq njpx dhlmfn hjnx mhtc srj tkpqpb ndqgjs jvjtrxt jtrrnz jrnqx sxtfvrhl snlhkm bfrj khqvlxn mhzbkt dgtxv jrs slsqp cxzrtx bghtk rtpgqd zczv nfff zjlxft zxstb xbjqr cnzz dfdr dxbmdj lcplblp qnhvn lfqhssm bdclf ffmq hbfnkq mjpqlvj gmstmh fxzgqn jnqgtrq lgfmt jflxtnp (contains peanuts, sesame) +crbbk hjnx thd ljclf ttvtr xkvgj slgnk srvzpc rfnzl tvmpdqp txvg fqll cjdcn mpzq crrgj vmfhv zhdtt sstvx ztr zxstb ljvx dctgv kcvzks jmc zngdbgf cgrjf kkdzxr rknm jnqgtrq xhxrg zjlxft cnzz xxgd lbzg dfxfqs jgjx jrnqx gmstmh dfdr lfrt snlhkm khqvlxn gnbxs gvtvmn zgcncf svbvqlq mhtc hfdxb dhhf hbfnkq bmttzd jvd (contains sesame) +jfkhrp dhhf slsqp jtrrnz mjpqlvj mdlr zmdl sdts mpzq tzxmtx bhrv nvrndt nzdmcf flrn tkpqpb krgmpn bmttzd zngdbgf nfff zxstb jrs khqvlxn jflxtnp tfshb slgnk ltnqh rdnsghf hjnx fstx hkchvb xbjqr fdknsl ljvx rlh kkdzxr smxk hbfnkq jgkvfl thzbt mhtc xdfjsm lfqhssm hhrdrl zvmnd gnbxs srgh rtpgqd sqrk jrnqx gmstmh rfnzl xhxrg njpx qmbn rknm fqgl rgpvhb lcplblp qxst qjhmth bmxlldv fvmzmrd ndqgjs zjlxft qftpx qpktd jmc mcmrzs slgstf rkhs dgtxv hfdxb nkvdvs (contains peanuts, nuts, eggs) +vhchv jtrrnz kkmvg bdsxbd zxstb kcvzks rxkt gmstmh sqrk mtlcq gnbxs lcplblp qftpx qnhvn drcj zmdl tvmpdqp nfff ljvx mhtc cmfjr dvc kllgt txvg qnvml slfpcp stjr pdbcdp fqll zpcqb slgnk zczv ljfsmv jrnqx fmkmrk rrlszk rlh xqnrcg dctgv srvzpc flrn zgcncf vtbxs lvtrmn hbfnkq xxgd hqqzdc jlfmg snlhkm mcmrzs xhxrg fmj cqvqlp bfrj srj sxtfvrhl (contains nuts) +nnxxsjh slgstf srj mhtc prkc njpx thd tzxmtx hkchvb fqgl zxstb mdlr qxc fmkmrk krgmpn bmttzd kllgt zgcncf cmfjr nzdmcf rdnsghf ptrj mxprt gfgnx lgcrd txvg snlhkm ljfsmv mxsbp vxmvk ffmq bdsxbd stjr pcxzx qnvml kkdzxr jxj jrnqx sdts dctgv dvffd fdknsl cnzz flrn qdths crrgj fstx fbkpkv zpvkl slsdck hqqzdc jflxtnp rxkt kclh bhrv gfgmz dfdr jvjtrxt lgfmt pbqn ljvx bghtk jvd xdfjsm kkmvg gnbxs ttvtr bfrj tlst jgkvfl cxzrtx hbfnkq (contains dairy, nuts) +jgkvfl bhrv ztbgdkd mcmrzs mk thvbm gnbxs xbjqr kllgt thd sstvx zxstb cjdcn jnqgtrq hbfnkq slfpcp jrnqx szsdbv hfdxb rlh xdfjsm lvtrmn kcvzks rknm mhzbkt hhrdrl tvmpdqp ptrj slsdck lgcrd zhdtt bmttzd slsqp lcplblp rrlszk slgstf rzvj crrgj hqqzdc gqsnd jtrrnz ljclf zpp crbbk ndqgjs mhtc tnd qlcvd npvv srj smxk rkrqrk hgndp (contains sesame, dairy) +rlh fdrgkrx mxprt jvd thd jflxtnp mtlcq rgpvhb rdnsghf svbvqlq flrn zhdtt zjlxft jtrrnz mjpqlvj hqqzdc mdghb mhzbkt bmpt lgfmt crrgj tkpqpb slgnk smxk lgcrd rltxnqf bhrv qdths vnrnn slsdck zngdbgf fstx jrnqx hbfnkq cgrjf gnbxs bmxlldv xdfjsm ljvx ztbgdkd dfdr nvrndt sxtfvrhl qmbn snlhkm nkrpv bdclf fqll qjhmth zvmnd tlst tcxz ttvtr xqnrcg grzdp mhtc jnqgtrq tvmpdqp dhlmfn rxkt xxgd kdxht nzdmcf xbjqr ndqgjs ptrj dctgv thvbm pcxzx zgcncf zdfl zmdl dxbmdj cxzrtx hgndp nfff fmj hkchvb bghtk kllgt cqvqlp fqgl zxstb txvg (contains eggs, dairy) +zpcqb crrgj rkhs jtrrnz lvtrmn mhtc vtbxs thtsvz vhchv rxkt lfqhssm ljvx xqnrcg dvc hkchvb thd sdts nkvdvs jvjtrxt drcj rxhv bhrv slsdck tlqtz gvtvmn cnzz ndqgjs qxst hbfnkq pcxzx kllgt hqqzdc fnfm smxk mxsbp bmpt jgjx tzxmtx jtnfbh jflxtnp khqvlxn zngdbgf slfpcp szsmh ptrj zjlxft fdrgkrx kclh dfdr rknm fbkpkv zpp jrnqx nkrpv vmfhv mdghb zgcncf qlcvd srgh xxgd mk kpn gnbxs kcvzks dnjt rlh hjnx kkmvg rrlszk lbzg tfshb npvv bmxlldv zxstb zhdtt rkrqrk zpvkl zbkjjkz zvmnd xdfjsm (contains eggs, fish, dairy) +mhtc hbfnkq jxj bhrv ljclf hfdxb jflxtnp njpx tzxmtx khqvlxn prkc cnzz bdclf kllgt cgrjf vxmvk xbjqr qnvml rltxnqf ljvx rkrqrk nltxdhr rlh dfxfqs gfgmz ndqgjs jrnqx qftpx fvmzmrd vhchv snlhkm srj ljfsmv dgtxv xxgd kclh dvffd szsdbv lgfmt zpp rxkt hjnx mxsbp thd krgmpn sqrk fbkpkv zxstb kpn hhrdrl dvc mpzq lbzg qdths ltnqh lfqhssm gvtvmn mhzbkt zngdbgf jlfmg (contains wheat) +jtnfbh mdlr cqvqlp kllgt hfdxb cmfjr vmfhv mjpqlvj rrlszk zpp jmc nfff srgh jrnqx xszpg qnvml slgstf hbfnkq drcj kpn rlh lbzg dvc mhtc hvkvz zdfl fbkpkv cnzz fqll zxstb dfxfqs vxmvk dhlmfn pcxzx ztr ffmq jvjtrxt cjdcn sstvx xkvgj jlfmg gnbxs bdsxbd cxzrtx kkdzxr snlhkm pdbcdp (contains sesame) +jrnqx qnhvn khqvlxn jlfmg kdxht rgpvhb cqvqlp qdths xszpg lgfmt ndqgjs grzdp hfdxb rkrqrk nltxdhr npvv krgmpn pbqn mhtc tzxmtx kclh dxbmdj fvmzmrd srgh mpzq kkmvg pcxzx fstx gnbxs slgnk jrs ttvtr ljclf nkrpv dvc bfrj kllgt rkhs thzbt qnvml fdknsl cmfjr hhrdrl hgndp xqnrcg jnqgtrq hbfnkq drcj tkpqpb gqsnd fmkmrk thd slgstf rknm nfff qxc vhchv kpn ljvx ptrj jflxtnp flrn qjhmth lvtrmn nzdmcf tlst fqll (contains sesame, dairy) +flrn rltxnqf cqvqlp gqsnd bghtk krgmpn jlfmg hfdxb xbjqr zjlxft fstx ljvx kllgt qxc npvv jxj jgjx srgh cmfjr mhtc dhlmfn sqrk svbvqlq tfshb zxstb vmfhv hbfnkq jmc jvjtrxt xkvgj kkmvg cxzrtx sstvx stjr ffmq thtsvz jrnqx zbkjjkz tkpqpb (contains nuts) +xhxrg hbfnkq kllgt hjnx mk nkvdvs dvc jnqgtrq lgfmt mhtc dxbmdj bdclf grzdp qnvml ljfsmv cqvqlp kclh rrlszk xxgd xbjqr thvbm smxk zbkjjkz fbkpkv rkhs mtlcq qxc gnbxs njpx bhrv snlhkm ljvx jrnqx zpcqb zxstb tcxz thd vxmvk slsqp ljclf txvg krgmpn jflxtnp rgpvhb (contains sesame, fish) +ljvx thvbm grzdp dfdr tfshb dgtxv ztr dhhf gvtvmn ndqgjs mdlr rlh zdfl zngdbgf zxstb mhtc rknm zpxvch jfkhrp hfdxb mjpqlvj nnxxsjh njpx lfrt nzdmcf jnqgtrq gqsnd gmstmh hbfnkq lcplblp jtnfbh khqvlxn sxtfvrhl slsdck crrgj jrnqx rrlszk thd slfpcp zvmnd mpzq pbqn hgndp stjr txvg gfgnx cjdcn xszpg kllgt mhzbkt kpn rfnzl (contains soy, eggs, dairy) +dvc tkpqpb vtbxs zbkjjkz bmxlldv pbqn rknm bhrv jflxtnp jmc kclh zvmnd dctgv hfdxb sstvx gnbxs zdfl hhrdrl tfshb mxsbp rgpvhb qftpx npvv slsqp dgtxv hjnx mhtc hqqzdc mxprt szsdbv xdfjsm gfgnx xhxrg pdbcdp qmbn zxstb jtrrnz thvbm ndqgjs svbvqlq gvtvmn drcj fvmzmrd zhdtt bfrj cjdcn zpcqb zjlxft slgstf rdnsghf lbzg cgrjf lgcrd hbfnkq ljclf rxkt thd rrlszk fdrgkrx smxk kpn qnhvn ttvtr bghtk jfkhrp thzbt jgjx ztr snlhkm jrnqx flrn pxxjmds njpx grzdp sdts zgcncf jrs mjpqlvj ljvx fmj dxbmdj jgkvfl (contains fish, eggs) +jrs xhxrg ljvx hbfnkq dfxfqs zpp mhzbkt mhtc lgfmt bhrv zpxvch dxbmdj kllgt ttvtr dctgv dfdr prkc gnbxs kdxht ffmq qpktd fvmzmrd gfgmz stjr vhchv thtsvz vnrnn kpn zxstb sstvx hjnx xxgd krgmpn qftpx rtpgqd thvbm fstx jrnqx tzxmtx ncgn svbvqlq slgstf rdnsghf qmbn tvmpdqp hgndp dhlmfn xkvgj jxj (contains wheat, nuts, dairy) +cgrjf hfdxb vtbxs qpktd zngdbgf bhrv kclh jvd zdfl nnxxsjh nzdmcf fmj cqvqlp zmdl kkdzxr xqnrcg rzvj ljvx thzbt nkrpv lcplblp kllgt rlh tkpqpb dxbmdj mhtc sxtfvrhl tzxmtx thvbm slgstf zpvkl zxstb txvg jflxtnp hbfnkq ljfsmv zpcqb jmc jrnqx dvffd jgkvfl xszpg dgtxv cxzrtx khqvlxn fbkpkv zpxvch tfshb slfpcp lgfmt smxk dnjt jfkhrp bdsxbd bfrj pxxjmds gfgnx drcj (contains dairy, soy, fish) +slgnk qftpx hfdxb qjhmth nfff fmkmrk qlcvd tlst fxzgqn ndqgjs lbzg rxhv lfqhssm gvtvmn jtnfbh ltnqh tnd gfgmz ttvtr rdnsghf rkhs kllgt mhtc hbfnkq tfshb nnxxsjh mjpqlvj rrlszk hqqzdc fstx jvd mk lfrt thvbm kpn grzdp rkrqrk dhhf zngdbgf txvg njpx zxstb vnrnn krgmpn srvzpc nzdmcf mpzq bmttzd dgtxv hvkvz rtpgqd srj vmfhv jrnqx dnjt cnzz nkvdvs vhchv xszpg ptrj zpxvch qmbn svbvqlq kdxht kkdzxr npvv stjr fbkpkv xqnrcg slfpcp snlhkm jlfmg zhdtt bfrj thzbt mtlcq fnfm fmj xdfjsm zgcncf jmc pxxjmds gnbxs qxst dfxfqs (contains eggs, soy) +tfshb rxkt tlqtz fmkmrk mtlcq dxbmdj zxstb rdnsghf fnfm qjhmth zpvkl jrnqx njpx cmfjr svbvqlq mhtc hhrdrl ptrj cjdcn vmfhv gfgmz hfdxb ffmq nnxxsjh mxprt gnbxs zpcqb rkrqrk szsmh hbfnkq bmttzd cnzz fvmzmrd kkmvg zdfl kllgt zjlxft thd dfdr prkc kclh (contains wheat, dairy, peanuts) diff --git a/2020/inputs/day22.txt b/2020/inputs/day22.txt new file mode 100644 index 0000000..9e7b23c --- /dev/null +++ b/2020/inputs/day22.txt @@ -0,0 +1,53 @@ +Player 1: +3 +42 +4 +25 +14 +36 +32 +18 +33 +10 +35 +50 +16 +31 +34 +46 +9 +6 +41 +7 +15 +45 +30 +27 +49 + +Player 2: +8 +11 +47 +21 +17 +39 +29 +43 +23 +28 +13 +22 +5 +20 +44 +38 +26 +37 +2 +24 +48 +12 +19 +1 +40 diff --git a/2020/inputs/day23.txt b/2020/inputs/day23.txt new file mode 100644 index 0000000..d3212a0 --- /dev/null +++ b/2020/inputs/day23.txt @@ -0,0 +1 @@ +326519478 diff --git a/2020/inputs/day24.txt b/2020/inputs/day24.txt new file mode 100644 index 0000000..ddc2ca7 --- /dev/null +++ b/2020/inputs/day24.txt @@ -0,0 +1,561 @@ +wwwnewnwwnwewswnwsenwwwnwnwwwnww +wewswseswnwwwwenwnewnwswenwsenee +sesesesesesenewsesesesesesesesesesesese +swnenewneneeeseeswnenweswsenenwnenene +eneeeenenesweneseneeeenew +neseneseewenewswnwsesenwwnenenwene +nwwsewwwnwnwnenwwwenwwwnwwnwswse +nwnenwnewnwsenwnwnwnwnwsenwwnwnwnwnwnwnwnw +seseseseseeseseseseswseseseseswswsenwse +eeweseseeeeenwneewweeseeee +seseeseseseseseweseseneseseseseseesee +seseseseeseseeweseseseneeseseesese +swwnwwwnwnwwnwnwenwnwnwnwwwnwwnwnw +eewsenwseneseseswseenwsesenwseesewsw +wswwwswswswwswswwwwswswweswww +nwnwnwnwwnwnwewnwnwnwseswewnwwnwnwnw +wwswswswswwneswswswwseswwnewwswswsw +swsenwswswswswswwsesweeswsese +eseesenwesesewweeeneeneenewenew +eenwswnwnwnwnwswnwnwnwenwwnwnenewsw +wweweswnwwweswswnwwwwwswwww +swneswwswswswswswseswswswnwswsweseswswsw +wswseseswsesenesesesesewseswseseswnesese +nenwnwwwnwswewnwwwnwwwswnwnwnwnwnw +seseseswswswsenwswswne +swswwnewneswswswswneseswsesese +seswseswseswswsenwseswsewswseswswseesw +wsewwwwwwwswwnewwwwwwwww +sesesesesesenesesesewseseseseseseseswse +enwseswswseswswswswswswswseswseswsesesw +nenenenwneenwneenenenwnwnenenenwswnwsw +enwseeeeeneswseewswnwnenewwe +eewnenwwswswneneeewweeseenesene +eswswnwnwnenwenwneswnwnwnwnenwnwnwnwne +wwseeesenwnwneeewwseweewneesw +seesenwneeseesweseeeeeseseseseese +wwwswswswwswswweswswwswswwswsww +nwnweseswswswswswswswseswseswswswswswsw +eneseneneneeenenenenwnenenwneeneese +senwsenenewnwseewnesesenwsesesesesew +neeeeneneneeneeneeeeweeneesene +swenwsweswsweseswweenwnww +nwnwwwnwwnwwwwwwwnwwnewswwnw +eesenweseeeeswsesese +swseseeseesenwseseseswseswseswsesesew +nenwnewwenenwwswseswesewnenwenwene +wwswwwnwwnwnwnwwwwnwwneww +seneeeeeneenwnwsweseeneeneeweee +nenwswnwswswnwnwnwwnwwnwnenenwnwnwesenwse +neneeswneneeeeneeeneeneneeneeswne +wswsenenwneseswswwnwwweseneswswsene +seseseseseseseswseseneseseswsenewsesesesw +wswseswsesenwneswnwsewwneeswse +swnwswwswswswwswseeswesweeneswswnw +swswneswswswswenwswwswswseswswseswswsw +esesewseeweswsesenwswswswneseswseswse +nwwneswswswswswnweeenwnenwnwnenesewe +seeseewseeseewseseeeseeeseese +newsenwseseseswseesenenewseseseseesesww +wneswswwswswswwswswwswswswswsewswsww +wesesesewewseseewwseseseseeseese +enenwnwnwnwnwnenewnwnwneswenwwnwnwne +seeeseseeseseeeseeeesesesew +swnwnenwnwswnenwnwenwnenwnenwnwnenenwnwnw +nenenenenewneenwneeswswnene +enwnwwnwnwnwswesenwnwswseeewewse +swwnwenenewwnwseeneswenwsewenene +seeseeweesenesenweeeeesesesee +nwnwnwnwnwnwneswwnwnwwnenwnwwsenwnwenw +wswswseseseswswswseneseseswsenenwswseswse +wwwsewwwwswwwwwnwwnewwww +wnwnwwwswewswwswwweww +nwswswswseseeseseseseseseseseseswnesese +eeeeweneneeneeewe +swswswsewswswswsesenwswnwseswswseeew +nwnwnwnwwnwswenwenwneswwnwnwnwnwnwswnwnw +nwnwnwnwnwsenwwnwnwwnenwnwnwnwnwnwnwnwnw +nwneswneswnwswenwneneeneseenewnwnenwse +neewswswswseneseneseswsesewsewswsesww +enwneneneneneneeeeneneseneneneneene +eneeseseeeeseeeeeeeeeswee +seeseeeseneseeeeesesesweseseswnwsee +newnesewswneewnwneeneeneseneenenew +ewsenwnwsweenwnesewnwseseseswsewsenw +ewseseseseseseseseeeeeeseeseewse +wwswswwewwnwwwwwwwwswwwnewsw +eeswneeswnwenwenweseeneesesesenwe +eswswswswnewwnwseswwseseneswnenenwswsw +sesesesenwsenwneseseseneswnenwsewwsenww +neeeeeneeeneseeneeeenweneee +nenwwswwwwwnwwwwwwnww +nwnenwnenwnenwnenenwnwnwnwnenwnwsenewnene +nwwwneswwswswswsweswsewswwswswswswswsw +nenwnwnwnwnwsenwnwsenwnwnwnw +seeeeeeeeeeeeeweesee +nwnwnwnwnwnwnenwnwnwsenenwnwnwnwnenwewnw +eenesesweeeseeneenweswseeeeee +neswsenewnenesenenenesenwneneneneneswwne +sesesewsenwseseseseseseseseseseesesese +seseseseesesesesesesesesesesenwseswsesese +enwswseesewsesesewnesesesewnwseseesw +seseswseneseseseseseseseseseseswsesesese +nwsenwnwnwswwnwnwnwnenwsewnwnewnwnwwe +wesenweswswneneewnenwswswswnwesew +seseseseeseseswseseseseswswsesesenwsesw +wnwswneeneswwnwwswenwnwswnwnenwnesenw +swnenenwnwnwnenwnwnwswnenenesene +neneewnesenenewnewsenwnenenwnwnenenenene +swewwnwwnwwnwwwnewwwswwnw +senwsewswesesenwnesesesesesesesweseswse +seseeeenwseeseseneesewseeew +wnweswnesenewwseswsewwnwwwnese +eeeeseeweseseneeseseeseseneesesw +senewesenewnwswwwnesenwewwnesw +nwnwnwnwnwnwwnwnwnwnwnenwnwnenwe +eeneewneesenenenenenenenenenenenene +sweeneneneswneeneneswneneswnenenwswene +wswwswswweswwswswwnesweswswwsw +eeeeneeenwneneeeeewnesenenenee +sweswswswswswswswswswswwnwswswswswswsw +sesewseseeseenweseeseeeseseesese +swnwswswseswseswswswseseseswswsesenw +sesewsesesenwseseseseseseewneseesese +swwswswswswswswswwswwwswswneswswswsw +eenwseeeeenwneeenwsewswseeswee +swswseseseseseseswseneswswswswseswswsesenw +wwswswnwewwwswswesw +neneneneenwswnenenwwnenwnenw +seswseswswsweswswswwnwswseswseswswswsese +seseseeweseenweseeseesweeneeese +swswwwwwwswwwswwwswwnenwewww +swwwewnewwwwwenewswwwww +eeenenesenwseeneeeew +wwwwnwswswswwwewwwwwwswwswe +seenwseseseseseeneseseeseswseseswsesese +sesewnwesenwnewseswwneneseswseswew +swswswswsweseswswseswswswseseseswswsew +eneenwneenwseeseneeeenwswweswsww +seewneseseseesesesenesenwsesewseeee +sweeesewneweweeeese +nwnwnwnenwnwnwnwnwnenwnwnwnwsenwnwnwnew +wwswswneneswswswswseswswswswswswewswnwsw +wwnwwwwswwnewnewwwsewwwwwnw +sewsesesenweseswsesewswseseneeswsese +seswswswswswswswswswswneswswswswswwsesesw +eeseenesenwsewseneeesenweswnweesw +swseesenwewneseseeseswswnewewnesw +nenesweeeenenewnwneeeneneswnewsene +swwseswsweswseswsesesenwseeswswseswsw +nwnwneswweswesenwnwnwwnwnwnwnenenwwwse +wwwwswwwwnwswwwwwwwewww +eseseneeseswwneweeswswnenwnwneswese +senwwnwnwenenenwsenew +swswswswseswswswneswswswswswswswswseswnw +seswsesenwswseseswseswswswseseswswswswsw +enweenenweesewneeeeeseeswseenenw +neneneneeseweeneneneeeneneneeene +esesenesenwseswseseswseseneseseseseww +eswswsenewseswseswenweswwnwseseswsenw +seseneseseseseseseseseseseewseesesese +nenenenenenenesenenewnenene +swswswswwswswswneswenewswswwswseswwsesw +nwnwwenenwsenwnenwwnenwsenenw +seeneseseesewsewnweneesesewesese +neseeseenweneeeneneweesweeenww +swsesenwseseseseseswsesesesesesesesesese +swwseneseswsewseseseneswseswswseswseeswse +nwnwneewnenwnwnwwwnwnwwnwswwswsese +wwewwwsweswwwnww +swnwnwnwnwnwwnwewnwnwneenwnwnwwswnw +swwwwswwwseneswswwswwwswwswwww +neeseseseseewsesewseenesesesesenenwwse +nwnwwnwnwnwnwnwnwnwnwnwnwsenwwnwnwnwnw +eeweneeeeeeeeeneseeeeee +enwwesweeeneeneneeeseneenenenew +swswsenwswwswweswwswwswswwwwswne +wewnwwnewnwwnwnwnwwnwnwwnwswwswnw +nenwneneneseneeneneeneeneeenenenene +nwwswnewsewnwwwwwnewwww +eneneneesenwneneeneeeswswnesweenwne +wwwwwwwwwwwnwwwwsenwwenww +swswnwesewwswswwwwswswwwwnewswwsw +wwnwwwwwwnwnwnwwwenwwnwww +seesenwseseseseseswswseswseswwnwseswsw +nwnwnwnwnwneneneneswswnenwnenwenwnwnenenw +sewwwsewnewnwnwsenwwnenwnwswnwnwnew +neneseeneeeneneneneeneenwneneneee +sweswewswwswnwnwswswswswsesweswnwwsw +wwnenwenwsenwnwwnwnwwnwnwnwnwwwnw +eneeneweeesewneneeeeneneeeee +swswnewswswswseseseswswswswneswseswswsw +wwnewwswnwewsw +neenwneeeswenweneseneeeneenenese +seswswnwsesesenwswseswseswseeswswswseswse +neneswswswswseswswwswneswswwswsweseneswne +sesewnwwnwnenwnwnwenwnwnewneenwnenw +wswsenwewnewewwswswwswswwswswwwne +senwnwsesesweswswnesewseseseeesee +eeswneneneeneenenenenenenenenenenene +swwseswswswswswswswneswswseseswnewswswswne +eswseswswswswswwswseswswseswneswswnesw +swsesenwwnwswsenwseseeswsesenenenwwse +seesewseseseeeseseseseeeeseeese +swseseswswneswseswswswseseseseswswswsesw +wwwnwwwewnwnwwwwwwwwwswww +nwnenwnenenenenenenenwneneswnenenenwswene +neseneneneseenwnenenenewnewnwnwnenwnww +wwnwweenwwwwwwnwnwwwswwwwnw +wnwwsenwsenewnewnwwnwnwwnwwnwww +wnwwwwnwnwwwwwnwnwwswwnwweww +wswswwwswswwswwwneswwseweswwe +seeneseeeseseweeee +senwnwnwenwnwnwswwnwnwenwnw +eneneeneenwneeswnenenenenewnenenee +swwweeseseeseeeneneseseseseeeene +seseeseseeseeseseseseneseseseseswese +neswsenwswsesesesesenwseseseseeseesesw +senwswnenwnenenenwewnwnwnenwnwnwne +nweenwswseswnwneseneseseswnewseswnwwne +swwwsewwwewwswwwwnwswwwwswnwsw +wnwnwnwenenenenwnwsenwneenwneseswnwswnwnw +neswnenenwneneenenenenwneseweswnenwsene +wwswneneswnwsenewneeneeeenenewsw +eseneeeseeeseseseswseseneewseewe +nwnenwnenwnwnwnwwnwsenenenwsenwnwneswne +wwwsewwwenewwsw +nwnwnenwnesenwwwwwnwnwwnwsewewnw +nwnwenwnwnwnwnwnwnwnwsewnwnwswnwnwnwnww +swnenwnewwnweswswenwnwnwsenwwnwenw +nwnwnwnwnwwenwnwwewwnw +swswnwnewnenenwseswnenenenenenenenwswesene +swswsweeswsewseswsesesesesesewswswsenw +wnwwswswwwswsewswneewswswswwneww +eweeeeweneenee +seeswseneneseneswsewneswsewswswwsese +nenesenwneneneneewneeneeee +wswswwsenewswswewnwwwswsw +wneenenwnwnenwnesenwnwnenwnwnwnwnwwnw +enwseewenwswswnwnwseswswnweswsesenwnw +nwswswsesenenwnwwnenesenwnew +neswwsewwneewswswnewswwnwnwwsesw +nwnenenenwneneeswnenenwnenwneswnwnwnene +neesewnwnwwwwnw +seeseseseweseneeeseesenewseseese +sweneneneneswsweeeesenwnenww +neneneneneneneseneneneneneewenene +seseseenweseseseeseseseseseenwse +seswswswswwwswwwswswswneswswswwnwswsw +swswwswswswnwswsweswswewswswswswweswsw +senenenewnwnenwsene +swnenwnwneswnwnwnenweenwnw +sewwwseseesenesesenwwswseesesenesese +nwnwsenenwnwnwnwwnenwnwnenwnesenwsenenenw +eeeseseeeseseeseeeenweseseee +neseseseswnwsenwsenwsesesenenwsewsesese +eeeeeneeseseseseesewesweeneesese +nwwwwswnewwwwwewenenesesewsenw +wnenenwnwnenesenwnwnenwswnwnenwneeswnwnw +seeswswnwseenesenwsesesenwwenwswwswse +seseseneseseseswseseseneseneseseseswwse +nwnwnwnwnweswenwnwnwnwswnwnwseswewnwse +eeswneeeneeeweeneeenweenenew +swneswswwwnwswwwswnewswseswwewswne +sesenwseseseseseseesesenwsesesesesese +enwseneswwswewwswwewwwwswnenwnww +wwnewwwwwwnwwwwnwsewwwnwwnw +nwswwwswwswwseswswswwwswwwswww +eewnwsweeeeeenweeeenesweseee +seeeseeeeeeseseeseseseseeesenw +neseswsenewseseeswswsewne +nwseseseseseseseswneesewseswswseswsese +swnwnwnwwnesesenww +senwnwwnwneweswnwwsenesewwnewwne +eenwsweeeseeeseseeeeseeseesee +eeseswneseeseeeswesenwseseeseese +eeeseseneesesweeseenweseeesewew +wwwswnweswwswswswswnwswnewseswswsw +nwwswnewseswswswnewwswewwwswseww +swnwswswwsesweswswswswswswswswswswswswse +nwswwswneswnwwweswwwseswwwwswwwsw +ewwnwswwnwnewseww +wwwwwsesewwwwnenwewwnwwseww +seseseesenweseseeseseenwsesenwseswnwswnw +swswsewswswwswnew +neneneneneneneneneswnenenenenenenenenene +wnwswwewwnwsewweneswwwwswweww +seseseseesewswseseseseenenesesesesese +ewswswwswwswwewswwwwnwwsweww +nwnwnwnwwsewnwnwnwnwnenwnwnwnwnwsenewnwnw +seseswswswswnweswsenesesesesenwsesese +nenenwnwwnesenesenwswnenwnwnweewnese +wwwswswswwwewwswwwwwwwswsw +nesewweenwswnesewsewnewnwenwsewse +swnwwwnwwewwewseswwswwswwsww +eseeeeseseeswneseeeesenwse +swswswsesweswswswswswswswswswnwswswnwswswsw +newwneswwwwsewwwswsewwwseneesw +senwswseneeswseseesenwwnesesesweseesese +nwenewneenesenenwneswnwnwsenwnwnenwwnw +eeeeneesweeeenwneweeeneeee +wewwwwwwsewwwwswwswwwneww +nenenwneswewswneneswsenesenew +nwneswnwnwnwneenenenwsenwnwne +nwseweenwnweweeeeswsesenwwee +enwseswwwswwwwnewwwswswswwswswsew +nenewneeneneenenesenenenesenenewnene +seswsweeseswswsewseswswsewnwswsw +nwnwnwnwnwnwneenwnenwnwnwnwnwnwwnwnwnw +eeeneeeeeeswneenwneeeeeswe +senwnenwnwnwnwnwnwnwwnwnenwneenwwnenwse +swwwnwnwwwswwnenwwnwneenweseseew +sesenesewsewneswsesesesenwwesenwsese +newwnwneewsewwswwnwnwwwnwwswnw +nenwwswwnwwwwnw +nenenenwneswneeeenwenenesweneswnenene +nwwswwswwwnesewwwwswwswse +sesenwseswswswseswswswswsw +eesweeeeneee +swewswswsesesweswswswseseseswswswsenw +swswswseseswsenwseseseswsweswswseseswsesw +wwnwenwnwwwsewwewwnwwnwwww +swswswwswswswwswswneswswswwseswswswsw +wewseseenesenwsenwnenwnwnwnwsenwnwnwnw +neneswnenwnenenenenenwneswnenwne +seswweswswseseseswseswswsweseswswswswswnw +swswswwswswwwswwwneswswseswswswswsw +eneneeweeseeeneneewe +nwnwnewseneneeneneseswswnenenenenwnwnenw +wneeeneneneneseneneeswnewneeweese +nwsenwnewnenwnwnwnenwsenenwnesenwnewnwnwnw +eesweeseeeeenweeeeeweeee +nwnwnwwwnwwwnwnewwse +wseseenwnwsenwnwnwnwnenenwnwnwnwswnwnwnw +wnwsenwwnwsewnwnewnwnwwwwwneww +nwsenwnenesenenenwnenenenwnwwnwwnenenenwse +neeseseenesewsewnwnesweeewwneeee +swseseseseseseseeeseseseseesesesesene +eweeeseeneeseeseeseweseesesw +wwnwsenwneswnenenwnenweseneneswnwswne +neewwnesenesenewenenenenenenenenenene +nwnenwnwnwenwnwwnwwswnwnenwnwswswsew +esenenenenenenenenenenenewneneneneseewne +senwseswseswswseeseswseseseseseswsesesese +wnwewwnwwnewsewnwww +seewwseseseseswswseseeseswswseseseswnw +seneseeswnwsesesesesenweesesenwwsee +wwwswwwwweswswww +sesesesewnwsenwsweseweseseeseseenesese +swwwseseseswnwwnenwnwswsw +swseseseesenwswnewsenwseswseseseswnesesw +swswswwwswewswwnwswwwwwswswswsw +neneswseswswnwneswnwswswswswsewswsesw +eeeewenenweeeeesenwseeeew +swseswseswswnwswswseswsweswswswwswswsw +nenenewnwnenenwnenwnenwnenenesenenenenenw +wwwwnewnwwsewwnwwwwwsewnewwnw +nwswswseswswswsenwseswswseswswswswnwsene +nenenwsweneneneeneneewneneewseswnenwne +seseswswseswseswswneswsweswnwenwseswswsw +nwneswnewnwnwseewewneeneswnwnwenesw +senwnwnwnwnwnwnwwswenwnwnewnenwwnwsee +nenenenenenenenwnenenenenenenesenesenewnw +eenenwenweeneneswneneesw +newwwwswnewwnwwwsewwwsewwse +enwnwnesenenwenweswsewseweswnewswse +nwnwnwnwnwnenwnenenwnwnenwnwnwswnwswnenwenw +nenenweeneneneeeneeeneneseenene +eswwsweswsweswswswwswswwsw +eeneneenenenenwneeneneneneeneeneesw +wwwswnwwewwnwnwnwnwnwnwenwnwwnw +swswnwswswswwwswswneswseeswswswswswww +eeneneseneneneneneswnwneeseneenenwne +nwwwseenwnwnwwsww +nwesesenwnwsesweeseseseeseeseesee +weweeeweeneeseeeswseeenwew +wswwwwwwwwsewwewwswwnenew +wewneeeeeesweeeeewswenene +nwwneewsesewswwwnwewwsewnwnwnw +seeseswenwneseeeeeseneseewnwwwnw +neneneswnenenenwnenenenenenenenenenenene +sewnwnwnwwwswnwewnwneswwnesenww +neswsesewswwsenwswnwnweswne +eneeneswneeneeweeeene +swnwsenwnwnwnwnwnwnwnwnwnwnwewnwnwnwnw +eseseseseseseeeesenwseseeseseewse +nwnwnwnwsenwwwnwwwnwnwnenwswnwnesenw +neswneswneseneneneswenenenenenenenewnenw +seenwenweeseswesweeeeeeeese +wnenweswwnwneneneenenenwnwesewnenw +neneneeswenenenenenenenenenwnenenenenene +weneeswnweeweeeseseeeese +wwwwwnewwwswnwwwwwwwwww +nwsenwsesesenwwwnwnwwewnwnwsenwnwnenw +nwnenwwsenenwesenwnwwsewnwnwnenewsw +nwnwnwnenwnwnenwswnwneneneenwsenenwnwnew +neneneneneneneneneneneneneseewnenenenwne +nenewnenwneneeseeewseenenwnenesesw +enewswswswswswswweswswwseswwswswenww +wswswswswswswswswswsweswswneneswswswne +wnwnwnwnwenwswnwwnwwwwnwnwwenwnwnw +seseseewesesenwseseeeseese +nwnesenwnenwnwnenwnwenenwnenwneswnwnenwsw +wesenwneswwswwswnewwswwwewww +sewewnwwewsewnenenwseswwwswweswsw +eswswswseswswwewwwwnenwwnewsww +wnwswwswnwneseswseswswsesesweeesesenene +seseswneneseswseseswnewseseseseswsesew +wwwnwwwwwwwneewnwwwsew +esenewsewseswnese +wnwnwswnwwnewnwwnwnwwnwnwnwwnwww +sewseseswseswneeswseseesesesewsese +wwwswewnwwwwenwnwwnwew +neneseeneeneneneeeneswwnwnwneneeenene +eeeeeneeeeeeeeesweeeene +wwwwswwwwwnwwwsewwnewwwwne +swsenwswsewneswswswswswswseneswswsw +nenewweneeseenesenwnenwwneeeseswsene +swswwwswswswwneswswswweswswwswwsw +sweneewwswwswswswneswswwnwwswwswse +wseneneswneswnenenenenenwenwnwswswsenenee +wswwswwwneswwswseswswswwwswswene +enweeeeeeeeeeeeeeeswee +enwseseeeeneeewenweeeesewe +nenwnwnenenwnwneenenwnwnwnenenwswnwnene +nenenewneswneeesenwneneneneewenenene +nenwneneneneneneneneseswnewneseenenenenew +nwnwnwnenwnwnwnwnwswnwnenwnwnwnwnwenwnenw +seeswnwseseseswseswseseswswswswswswsesw +nwewewnwnwnwewnwwsewnwwswweww +nwnwnwnwenwnwnwnwnwswnwnwnwnwnwnwnwnwnw +seseseneswwsweesesewseseseswseswwne +wseneseseeswswswsewseswswseswswwese +wwnwswwwnwnwsewwwenwnwnwww +wseswseseseeseseseseseseseseswsesesese +swsesenwswwswsweswneswswnwswswswswsesw +weeeenenenwseewnesweneeeneswnene +eenwnenenenenenenwneesenenesenenwnwsesw +swesweswnwnewenwnwnwwnwwenwwwnwnw +seewsenwswswswseseseseseseseswseswswsese +neeenewsewneneneseweeneneenenwne +nenwnwnwnwneeenwnenwnenenwswnenenwwne +swswwswswewswswwswswswswswswswswswsw +eseseseseseseesewenwseswseeesesese +nwnwnwsenwnenwnwwnwnwnwnwnwnenwnenene +esweenwneeeeseenw +sesenwseseesesesesesesesesesesesesesenw +wwwwnwwnewwwwwwwnwwse +swnwewnwneeswweneeeseeenenenenene +newenewnenesewswnenwsenenwsenwenenw +seneseseseseseeswseseseswseswnwswseseswse +nwwwwwwwwwwswwwnewwwnwwnw +eenwsweewswnwewnwseswswswwwsesw +eeneneneeneenenesweneneeeeenwne +nenewnenewneneneneneneseenenwnenwnenene +weeenweneeneeeneneeneeeeesee +nenwneneeesenwswsewnewwnesweenesene +wswnewneseswsenwsesewnwswsenenesewsw +swswswnwnwwswsewnenewnesesww +nwwenwnwwnwnwwnwseneenwwnwsew +seeseseseseswseseseseseseseswsesenwswnwnw +sewwwwswwewwwwswwwswwneswsewne +seneseneneenenesenwnenesenwnenewwenene +nenenenenenenwnesenenenenw +swwswswswswweweswwswswswwwwwenw +wwwsenwswswswwewwwswwwswwneww +wwwwwsewsewwswnwwnwwnwsewwww +eeneswswnwewweeneesweee +eneswswwswswswswswswwnwswwswwwswse +swseseseseswnwseseseseneswswswswsesesesw +swseseseseswsewswseseswsesenesesesesese +neeeweeneeenesweeneeewesenene +nwswswswseswswswseswsenwseseswseseswswsw +swneeseneneneenwenweeeeewnenene +wwsesweswnwwwwwwenwwsewnwnwne +swswseseswswsewswseeswsese +wwwwswswswwwswswnwewwswswwwsw +swwsweswwswewewwwswnwewwww +esenwsewsenesweseesenweesee +eneeeeseeseeeneswweneseenewwe +swnwswswswswswswswswswswswswswswswswswesw +eneeseeesesesenwwenwsese +neeneneeesweeneeneneeeneeenenenw +wsenwwwswwwwnwnewwnwnwwwnwwww +neseeneneneeneneneneneenweneeeee +nwneswwswwswnwenwwneneseeseseswwswnw +nwnwnwnenwnwnwewnwwsenwnwnwnwnwnwnwnwne +ewwnewseenwwnwew +nwnenenenenewnenwnenwneneenenwnenenwnw +nenwnwnewnwnwnwwsewsew +eseeseeeeeeseeeeew +seseeseeseseswnwsenwsesenwsesesesenwsenwse +wnwenwnwenwnwsewnwnewnwneswwewswsw +neneneneneneswnenenewnenwnenenenwnesene +sesesesesesesenweswseseseseseesesesesese +enweeeeeeseseeeeenweeeeese +sesesesenewseseneseseneseseseswsesesewse +seswswseweswnwswnweseswneswwswswswse +wsenwwnwwwwww +nwsewwnwwswwnewnewwwwwswww +newwwsewwnwnewwwswswwwswwwsw +sesenwneneswseswesewseseeneseeswnwnw +nwseseseeseswseseeeseseswsenwesenese +nwnwswswswewswewsewswwsw +sesenwseseseseneseseeswseneseswseswwsese +ewwwsewwwwewwnwwwnwwwww +eeswneenweeenwseeeesweenweee +wswseesweswswnwswwwswewswneswswsw +swseseseswsweswwseeseseswswnwsenweswse +seseswwseseswseswswseseseswnesesesesesesw +swneswswnewenwnesewnesewnenenwseeene +nwenwnwnwnwwnwnwnwswnwnwsenwnwnwnwsenw +wnwenwneswseesee +eeeenweseseeesweeeeeeenwnw +swswswswswswsesweswswswswnwswswswswswswsw +nwwewwwwwwewwwwwew +nenenwnwswnwnwnwnwnwnenenenwnwnwenwnenwnw +neewnenewnwnenenwsenwe +sesewsenwseseenwnwswene +nenwnwenenesenenewneswnenenenesenw +eeeseeesenweeenwenweeeneese +wnewswnwwwwwswwswseswswnewwwnew +sesesesesewseseesenesesesw +nenenesenenenenenenwneenene +swsesesesenesewseseseseswsesesesesesene +neeneeeneeneneenenweeeesee +senwnwnwnwenenenwnwnwswnw +swswneswswneswswwwswwswswswswswwsww +wwwwwwsewwwwwwwwwnewnwsew +eeseesesewneeeseseseseeeeesesese +neswnenwswswwswsenesweswwswswsweswswsw +swseswwwwnwswsenwwwwewwwnesww +neeseeswnwnwsweswe +wenwnwnewnwnwsenwnenenwnwsenwnwswnwnwne +eweswneeesesesenwneeseeesesesewsee +nwneswneenwnwnenwnwnwnenwnwnwnwnwnwnenw +swseseseswswneswnwwseseseseswsesesesesese +nenwnewenenwneswsenenenenwnenewsenenenw +nwnwnenwnwnwnwwnwnwnwnenwnwse +esesewsenweseseseeneseee +swsesenweeeeeenwneeeeesweeswe +nwnwnwwswewsewwwwnwsewwwnwwe +nwnwenwnwwnwnwnwnwnwwnwnwnwnwwwwwe +nwwesweewsesenwsenewnwswnwsenwswsesw +nesenenwnenenenenenwswnenenwnwnenwnew +seneewnwnesweseneenwnenewnenenene +nenenenwneswnwnenenwnwwenwenenenwnwnenw +nwnwenwnwnwnwnwnwnwnwnwnwnwnwnwswnwww +nenenenenenenenenewneswneneneenenene +swnwenwnwnwswnenwnenewwweseeseewswne +eeenweeneesweeeeeeeneeee +eeneeneweneee +wseswenewseeneenwneneseenwwesesw +nwnwnwnwnwenwwnwnwnwwwnwwnwnwnwwnw +nesewswswsesewesweswswseseswswnwnene +nwswswnwwnewwwsesesenwesewswnese +wwwsewnenwsewwswswswwnwwsewewsw +eswsesewseseneswwseesenenwnwnweswseswse +swswwswswseswswswswswswswswswswswswneswsw +nwneseseswwnesewsenwswnenewsene +wswswswnwswswswswswswswswsweswswseswnesw +senesenesewseeewseseswsesesesenesesese diff --git a/2020/inputs/day25.txt b/2020/inputs/day25.txt new file mode 100644 index 0000000..949303f --- /dev/null +++ b/2020/inputs/day25.txt @@ -0,0 +1,2 @@ +14012298 +74241 diff --git a/2020/inputs/day3.txt b/2020/inputs/day3.txt new file mode 100644 index 0000000..8fe8c31 --- /dev/null +++ b/2020/inputs/day3.txt @@ -0,0 +1,323 @@ +....#.#..#.#.#.#......#....##.# +..##..#.#..#.##.....#.....#.... +....#..#...#..#..####.##.#.##.. +...............#.....##..##..#. +##...####..##.#..#...####...#.# +..#.#....##....##.........#...# +.#..#.##..............#.....### +##..##..#.....#..#...#....#.... +.#.........#..#...#.#.#.....#.. +......#...#..#.##..#.....#.#... +.#...#.#.#.##.##.....###...#... +..........#.......#...#....#..# +.....##..#.#...#...##.##....... +...#.###.#.#..##...#.#......... +###.###....#...###.#.##...#.... +...........#....#.....##....### +#..#.......#.....#.....##....#. +.##.#....#...#....#......#..##. +..#....#..#..#......#.......... +#..#.........#.#....#.##...#.#. +#....#.#.......#.#.#.#.......#. +.#....#....#..##.##.#....#.#... +............#....#.#.#........# +#..#..#.....#....#.##.##.#....# +....#......#..##..#....#...#... +.............#.##....####...##. +#.##..##..##.#.....#........... +#.#...#......####.##..#.#...... +.......#.#..#...#.#.###.......# +#..#..........#...#....#....... +###...#.....#....#...#..#...#.. +...##..#.#.....#..#..#...#.#.## +#.......#......##...##......#.. +.....#..#.....#......#.....##.. +..#.....###......#.#..###....#. +....##........#...##.#..#..#... +#...#.##...##..#####...##..##.. +...#.#.#.#.....#.#.........##.. +.............#......#..##...#.. +.#..#...##....#......#......#.. +#.....#...##......#............ +.#.#....##.#.#..##..#####..##.. +..#..#.....#..#.##..#.#......## +.......#...#...#..#..##.#..##.. +...#.##....#....#..#..#..#..... +.....#......#.....#.....#..#.#. +..........#####.#..#....##...## +....#...#...#....#.......#..... +#.......#........#.##.####..### +.#........#...##...#.....#....# +...#.............#........#.#.# +..##........#..##..##.##...#.#. +......##......#####.........##. +...##.....#.#.##....#####...... +.#.#........####.......#.#....# +.....#..#.#.#.......##...#...#. +.....####.#...#.#..#...#..#...# +#..#.....#...#..#..#.#....#..#. +.....#.......#..#.##..#.#.....# +.......#..##..###......#....... +.......##.#.##..##.#.###...##.. +..#.....#.....#....##.##.#..#.# +###.#...#..##..#....#.#.#..#.#. +#...#.#.........##........#.... +#...#.#..###.....###..##....... +.....##..#.#...#.....#....#...# +##...##..#.#.#..#.#.##..#....## +.#.......#.#.........#.##..#... +....##.#............###.#...##. +#.....##.###.#..#....##.....#.. +....#.#......##.####....#....#. +.....#......##.#...#....##.#... +##...#.............#...#....... +..#..#......#.#..#..#.....###.. +....#...#.#...#...#.....#..###. +.....#.......#....#...#...#...# +..####......#.#..###........... +..........#....###.#.#.....###. +#.............#...#..#.###.#..# +.......#...#.#.#.#...##...#..#. +...#.#..#..#...###.#.#......... +#.###.#..#...#..#....#..#.#.... +...#.#.##..#...#.#......###.##. +.##..#..##..#.....##.##....#.## +..##.........####.............. +.#.#..###...#.........#...##.#. +....##.........#.........##...# +...#.#.......#..#...###.#.##.#. +..#....###......#.##........... +.......#...#.....#.#..#.#...#.. +.##..#...#..#...#..#...#.#..##. +.##...#..##..##.#.#...##....... +.#.##.#...#..#..#..........#.#. +#.#.#...#......##...##..##..... +.##..#............#.##....#.#.. +.##.........##..#.....#...#...# +##.#.#.#.#...#.....##....##.#.. +#..##......#..##.........#.#... +...#....#.#.#.##.....##........ +...#...#...#.##.#.#.#..#..#.... +.......#..#.......##...#....##. +#.....#.#......#.......#.##.#.# +.##..#.....#.....#.#####.#....# +......#.#....#..............##. +##..#...........#.#.#.......#.. +..##...###...#.#.........#....# +..##..#.#....##.....#.#.......# +....###...#.###....###.......#. +..#.#.....#..#..#...........##. +.###..#.#........#..#.....##.#. +#.##........###.#..#.....#....# +.#.#.....#.#.#..#...##.#...#... +#.#.#...#.#........#..##..##... +..#.##....###.#.......#.#.#.... +.....#...##...................# +#..####.....###.#..........#... +#.##.........###.#........#..#. +..##........#.......#..###..#.# +##..##..#.#..#..#.....#.#..#... +....#......#....#...#.#.#..##.# +.##....#.##.#.#..###..#......## +###....###.##....##......###..# +.##....#..###..##..#.###...##.. +.#.......##..##.............##. +.###..#.....#.....#.#.#..#...## +......##.###.#........#..#..... +#####.....##.#.#...#...#.#.#... +##..##.####...##....#...#.#...# +.#.##...#...#..#............... +##.##.#..#........#...#........ +..#.##.#....#...#.#.###..#....# +.......#.#..#.....##.#.#...#.#. +..#.##...#...#......#...#.#.#.. +.##.......##......#.....#...... +.#....................#.#...### +..#.....#..##.#......##..#....# +.....#.#...#...........#.#...## +...#..#....#.#..#.......#..#..# +.#..#.#...#.#.#.....###........ +.#.#.....#..#.##..#.#..##...... +..##..#..#.....###.##..#.....## +.#..#.#...#.....#..#......##.#. +.##.##.#.#.#.#.#...###..##...#. +......#.##.#..#.##.#...#.#..#.# +..#.....#.##....#......#..#.... +.#.....#..###.............#...# +.#.....#...#...#.#.#.#..#.#.... +.#.....#......##.....#...#.#..# +.#.#......##...#......#......#. +##....#...#..##.#...#..#....... +....#.#......#.##...#.........# +#.#.##.#..#......#....#.......# +.#..#.##..#..#........#.#...#.. +..#..#.#.#...#....#...#..#..### +....#....#..#......#..........# +#.....#.......#..#....#.#.#..#. +....#.#..###.#.....#.####...... +##.#.#....##.#.#........#..#..# +#.#...#...#.#...##..#.#..#.#... +##.#......###.##.......#..#.... +#..#...#.......##....#.###..... +.####.##....#..#..####.#....#.# +#...#.#..#..................... +..###..#...##.....##........... +..#....#...###.#.........##.##. +......#.....#....#.#....##...## +#..#.....#...#..##.....#....#.# +..#.#..#....##...###.#..##....# +#....#..#..#..#.##.##.....#...# +......#.#..#..##.#.....#.#..### +.....##...##..#...##..#...#.... +##....#...#..#...##..#...###..# +.##.####..#......#.#..#.##....# +..###........###..#....##.#.... +...#.....##...##..##..##..#.... +.#..#.#..##..#..#..##.....#...# +##.#..##...#..#...........##... +....#..#..###.....#....#..#..## +......##..#....##........#.#.## +.#.##....##.#......#..##..#..## +.....##.#..#.#.##.##.##..#...#. +.#..##.#.....#####...#......... +....#....#...#..##.#.#..##...#. +...#..#...#............#..#.... +....#.#.#.##....##.###..#.#.... +.........#...###.........#..#.# +...........#...##.#..#.#.#..#.. +#..#.###..#.#..#..##.....#....# +.#.#....#.#....#............... +...#.#..#.#..##.#.#.#.......#.. +.#......#...#.####......#..#... +..##..#.#...#..#.......###..... +.#.....#.#..##....##.####.##.#. +.............##.#.#.....#..#.#. +#.....##.#...#.#.#.######.##... +.##...........#..#..##.####.... +#.#............#....#.........# +..#.##.##.#..#....##....#..#.## +#...#.##..##.##.#.....##.#....# +##.#..##.###..#.#.#..........#. +...##...#..#...#.#.#.###.###... +#.....##......#...#.#...#...... +#.#.#.#.#.#...#..#....###...#.. +...##.#...#.......#..#...##.#.. +..#..#..##.....#......##...###. +.............#.##...#.#.###..#. +..#.#.....##..#.##..#...##..#.. +..#...#.##..###..........#..#.. +#.##.##...###...........#....#. +#.....##...#.#..............#.. +##..##.....#...#..####.#...##.. +...........#......##.###..####. +#...#..##.##.######.....#.....# +#.##.........##.#.#....##...#.. +.##.#.......###.#.....#.....### +###.#.#.#.#.#.##......#..#..#.# +....#.###...#....#.##...##.##.. +....#..#.....#.#.#..#..##.#.... +....#..#..#.....#.#..##........ +..........#..##..##......##..#. +#...##.......#...##.#...###..#. +..#.#.##.....##....#..#.##...#. +.#.#.....#.......##.....##...#. +#......#.........#.#.........#. +.......#...##......#.........#. +..##..........#....#..#.......# +.......#............#..#.#...#. +#..#....#.#..#....##..#........ +....#..###.##..#.#..#.##..###.. +....###............##.#....#.#. +..#..#.##...#....#..####...#... +..#....#...#...##...#.#.#..#... +..#.........#.#.......#........ +.........##.##.#..#.#...#.#..## +#.....#.#....##.#####.......##. +.#..#....#......#.##..#....#... +........#....#...........#...#. +.......#......#..........#..##. +.###.#......#..#.##..#...#.#... +.....#..#..###...........#...#. +..#...##....###......#....#.... +...#.#..#.#.#......#.##.###.#.# +.##....#...#..#.#..#........#.. +......##.###...##.#.#.........# +.#...#..####..#.#..##........#. +#..#...#..#..#.#...#..##...#..# +..###...###....#.#.#.##....#..# +.#.#....#.#.#......##....#..#.# +##.#.#.####....#........#....#. +...#......#........#........... +#.#............##......#.##.... +..##.#...#.....#.#..#.#..#.#.#. +#.......##.....##...#.#.#...### +............#..#..#....#......# +.#.##...###...#...###..#....... +...............#....#...#.#.#.. +#..##..##.###...#..##...#.#.##. +..#..#.......#.##......#..#..#. +#.....#............#......#...# +.###.##......##.#...#.#.##..#.. +.#..##..#..#..#.............#.. +#...#...##..##........#........ +...#........#..###...........#. +#.#..#.#...................#.## +#...#.#..#.......##...###..#.#. +..####......#....#.#....#..#..# +....#...........#...#..#....... +...#..#....#.#.##...#.#.#.#.... +#...##.#.##..#.......#.....#... +.##....#...#.#....#....#.#...#. +##.#...#.#...##..#..##...##..#. +#..#.#.........#.......#....... +.....##.....#..#......##....#.# +.###...##.#.#.#....#....#....#. +#.#.#.............#.#..#....... +#.......#..............#...#.## +.#.#...#....#.........###...#.# +..##..###..#...#...#.#....##..# +.#..#.#...#..#.....#....#..##.. +##.......##....#....###..#.#..# +#.#.#####..........#.#...##..## +......#..#..#...#...##...#....# +#..#......#...#...#..###....... +...####.....#.......#.#...##.#. +......#..#.....##..#........... +#........#..#...#.....#...#.#.. +..#.....#..#......#.#.#.....#.. +..#.........#..##...#...#...#.. +##..##......#.........#........ +..#..#....#.##.#....###.#..#.## +..##..#..#.......###....#..#... +...#.#...#.....####.#.......... +........#..#..#.#.....#........ +...##..........#.#.#.....#..#.. +..#....#.......#............... +.#..#.#.#.##..#..#.....#....... +#.##.#.#..#..............#..... +.#.#..#.....##..##....##.....#. +.##.#..#........##.##...##..... +#....##..#............#....#... +...............##.#...#..#..... +..#..##.##...#.#.....#......... +.##..#.#.#.##.....#.#.#..#..##. +......#####.#...#..........##.. +..........##.##...#.....#.#.... +..##......#..#.###..#...#.##... +.#...........#.....#.#........# +.#...#................#......#. +#...#.#..##.#####..##....#..... +...##...##..#.#..........#..... +##............#......##..##...# +###.#.......#..#...#..#..#...#. +.#..##.....###.#.#............# +##.###.#.........#.......#.#..# +...#..##..#.....#.......#...... +......#.#..#.....##..#..##..... +...#........##..###.#....#..#.. +..#...##.##....#.##..###......# +..#...#.....#.####.....#...#.## +..........##....###..#...#####. +....#.#.#.#.#.##.............## +.#.#.#.##......#......#....#.#. +.##...##....#...#....#..###.#.# diff --git a/2020/inputs/day4.txt b/2020/inputs/day4.txt new file mode 100644 index 0000000..fa39bc7 --- /dev/null +++ b/2020/inputs/day4.txt @@ -0,0 +1,1136 @@ +ecl:hzl byr:1926 iyr:2010 +pid:221225902 cid:61 hgt:186cm eyr:2021 hcl:#7d3b0c + +hcl:#efcc98 hgt:178 pid:433543520 +eyr:2020 byr:1926 +ecl:blu cid:92 +iyr:2010 + +iyr:2018 +eyr:2026 +byr:1946 ecl:brn +hcl:#b6652a hgt:158cm +pid:822320101 + +iyr:2010 +hgt:138 ecl:grn pid:21019503 eyr:1937 byr:2008 hcl:z + +byr:2018 hcl:z eyr:1990 ecl:#d06796 iyr:2019 +hgt:176in cid:75 pid:153cm + +byr:1994 +hcl:#ceb3a1 hgt:176cm cid:80 pid:665071929 eyr:2024 iyr:2020 ecl:grn + +cid:280 byr:1955 ecl:blu hgt:155cm hcl:#733820 +eyr:2013 iyr:2011 pid:2346820632 + +hcl:#4a5917 hgt:61cm +pid:4772651050 +iyr:2026 ecl:brn byr:2015 eyr:2026 + +iyr:2019 hcl:#a97842 hgt:182cm eyr:2024 ecl:gry pid:917294399 byr:1974 + +ecl:#9c635c pid:830491851 hgt:175cm cid:141 +iyr:2010 +hcl:z +byr:2026 eyr:1998 + +byr:1927 iyr:2011 pid:055176954 ecl:gry hcl:#7d3b0c eyr:2025 hgt:166cm + +hcl:#733820 byr:2008 ecl:utc eyr:1920 pid:159cm hgt:66cm iyr:2030 + +pid:027609878 +eyr:2022 iyr:2012 +byr:1960 hgt:157cm +hcl:#b6652a +cid:117 +ecl:grn + +iyr:2025 pid:7190749793 ecl:grn byr:1984 hgt:71in hcl:c41681 +cid:259 eyr:1928 + +eyr:2029 pid:141655389 cid:52 hcl:#cfa07d iyr:2019 +ecl:blu hgt:69in byr:1938 + +eyr:2020 hgt:166cm +ecl:gry +pid:611660309 iyr:2011 +hcl:#623a2f byr:1943 + +hgt:190cm eyr:2022 byr:2000 cid:210 pid:728418346 hcl:#a97842 ecl:xry iyr:2015 + +byr:1973 eyr:2028 iyr:2012 +hcl:#ff0ec8 pid:740554599 ecl:amb cid:58 hgt:155cm + +iyr:2016 pid:922938570 ecl:oth hcl:#fffffd hgt:154cm eyr:2021 byr:1966 + +ecl:amb +byr:1929 +hcl:#c3bbea pid:511876219 +iyr:2019 +hgt:191cm +eyr:2026 + +ecl:utc hgt:155cm pid:#9f0a41 iyr:2012 hcl:#bd4141 +byr:1998 eyr:2020 + +ecl:grn hgt:173cm cid:321 pid:851120816 byr:1968 hcl:#a97842 eyr:2027 +iyr:2014 + +hgt:155cm hcl:#f40d77 pid:038224056 byr:1953 ecl:brn iyr:2014 +eyr:2022 + +pid:181869721 +iyr:2011 hgt:151cm hcl:#733820 cid:110 ecl:blu +byr:1931 eyr:2024 + +byr:1948 +hcl:#888785 +hgt:74in +cid:112 ecl:hzl pid:921761213 eyr:2028 +iyr:2015 + +ecl:gry +byr:1931 +pid:600127430 hcl:#341e13 eyr:2027 +iyr:2013 hgt:173cm + +hgt:178cm pid:530791289 hcl:#6b5442 +eyr:2022 byr:1979 iyr:2014 ecl:hzl + +pid:412193170 hcl:#cfa07d hgt:186cm iyr:2012 cid:284 eyr:2020 byr:1967 +ecl:grn + +hcl:#6b5442 +iyr:2015 pid:808448466 ecl:blu eyr:2022 hgt:159cm byr:1969 + +eyr:2020 +iyr:2019 hgt:170cm pid:8964201562 hcl:#6b5442 byr:1947 ecl:amb + +eyr:2029 ecl:hzl hcl:#866857 byr:1961 +iyr:2017 + +ecl:#3456ba eyr:2013 iyr:2020 pid:378280953 +hcl:z hgt:174cm + +hgt:172cm +cid:202 ecl:oth eyr:2021 byr:1980 +iyr:2012 +hcl:#cfa07d pid:605707698 + +cid:281 hgt:161cm iyr:2017 pid:122936432 hcl:#602927 byr:1981 ecl:gry eyr:2021 + +byr:1959 hgt:193cm pid:083900241 iyr:2020 eyr:2037 hcl:#623a2f +ecl:hzl + +iyr:2030 hgt:153cm eyr:2022 hcl:#efcc98 cid:131 +byr:2016 ecl:hzl pid:64053944 + +hgt:172cm eyr:2025 +hcl:#866857 +byr:1938 ecl:dne +pid:192cm iyr:2014 + +pid:016297574 cid:152 iyr:2015 +eyr:2024 hcl:#341e13 byr:1965 hgt:175cm +ecl:oth + +pid:604330171 cid:125 byr:1974 hgt:160cm iyr:2014 +eyr:2022 ecl:oth hcl:#6b5442 + +pid:59747275 +byr:2027 +hgt:145 +hcl:1fd71f iyr:1944 eyr:2037 ecl:brn + +iyr:2010 +eyr:2021 byr:1953 +pid:7098774146 ecl:brn hcl:98737d hgt:158cm + +hcl:#602927 eyr:2039 pid:#81a5a1 iyr:2012 cid:67 byr:1951 +ecl:#6551f5 hgt:76cm + +hgt:170cm ecl:oth +cid:235 eyr:2022 +byr:1929 iyr:2019 +hcl:#341e13 pid:797557745 + +iyr:2011 +hcl:#733820 +eyr:2022 pid:830183476 ecl:blu byr:1976 cid:157 hgt:75in + +hgt:164cm ecl:amb pid:653425455 hcl:#623a2f byr:1977 eyr:2020 +iyr:2013 + +byr:2009 eyr:1953 hgt:178cm pid:#5d02f0 +hcl:#a97842 iyr:2016 +ecl:amb + +pid:009643210 eyr:2036 ecl:zzz +cid:97 hcl:32e540 byr:2005 hgt:187cm iyr:2021 + +pid:155cm +iyr:2022 byr:2024 eyr:2031 ecl:amb cid:79 +hcl:#cfa07d hgt:69cm + +cid:176 ecl:oth +pid:688645779 byr:1933 eyr:2026 hgt:69cm +iyr:2016 hcl:#888785 + +hcl:#888785 +eyr:2027 +iyr:2020 pid:802243213 ecl:brn +hgt:179cm byr:1976 + +hcl:#6cad3e hgt:164cm byr:1982 iyr:2020 +ecl:gry +pid:142160687 eyr:2023 + +hcl:#18171d +hgt:153cm +iyr:2014 ecl:hzl cid:231 pid:167809118 byr:1997 eyr:2028 + +byr:1940 +ecl:hzl iyr:2016 cid:67 hcl:#c800da +pid:563956960 eyr:2021 +hgt:189cm + +pid:133094996 eyr:2032 hgt:60cm hcl:#623a2f byr:2030 ecl:dne iyr:2023 + +pid:65195409 hcl:d0d492 +iyr:1956 +byr:2019 ecl:#bb043f eyr:2031 hgt:167in + +iyr:2016 byr:2006 ecl:#35d62f eyr:2029 +hgt:186cm +hcl:1d8307 + +eyr:1935 iyr:1960 pid:346667344 ecl:grn hgt:170cm hcl:cfcc36 + +ecl:oth byr:1979 pid:165581192 +hgt:177cm +hcl:#c0946f +iyr:2011 + +iyr:2011 eyr:2030 pid:250840477 +byr:1934 cid:174 hgt:179cm hcl:#866857 +ecl:blu + +hgt:157cm hcl:#7d3b0c eyr:2027 pid:979510046 +ecl:oth + +iyr:2025 +hgt:69 +ecl:grt byr:1935 +eyr:1928 pid:168cm +cid:271 hcl:z + +pid:998166233 +iyr:2020 hgt:166cm ecl:amb byr:1995 hcl:#fffffd + +hcl:#ceb3a1 ecl:amb +iyr:2019 +eyr:2024 hgt:184cm byr:1980 pid:839215481 +cid:146 + +byr:1967 +pid:444303019 ecl:oth hgt:150cm eyr:2024 + +eyr:2023 byr:1960 iyr:2010 +cid:236 hcl:#733820 pid:900635506 +hgt:69in +ecl:hzl + +eyr:2029 pid:969574247 +hgt:150cm byr:1967 +iyr:2010 ecl:blu + +pid:575879605 iyr:2010 +ecl:hzl +byr:1963 +hgt:151cm +hcl:#c0946f cid:277 + +byr:1998 pid:621374275 +ecl:brn hcl:z iyr:2029 +eyr:2024 +hgt:68cm + +pid:365407169 ecl:amb hcl:#87f433 iyr:2011 eyr:2021 byr:1987 +hgt:175cm cid:201 + +hgt:175cm iyr:2020 +ecl:gry +eyr:2029 pid:806927384 cid:59 +byr:1932 hcl:#888785 + +pid:589898274 cid:113 hcl:z hgt:184cm eyr:2000 +ecl:lzr iyr:2016 byr:2016 + +ecl:#2bafbb +eyr:2038 iyr:2027 +hcl:#fffffd +hgt:174 byr:2007 +pid:093750113 + +eyr:2022 hgt:59in +hcl:#ceb3a1 +pid:159921662 ecl:gry +byr:1948 iyr:2014 +cid:50 + +hgt:190cm +iyr:2014 pid:480507618 hcl:#fffffd byr:1945 eyr:2029 + +byr:1951 hgt:152cm ecl:brn iyr:2016 eyr:2029 cid:179 pid:027575942 +hcl:#fffffd + +cid:198 pid:728480773 eyr:2028 hgt:153cm iyr:2018 +hcl:#888785 ecl:amb byr:1983 + +byr:1968 hcl:#c0946f ecl:grn eyr:2027 +iyr:2013 pid:269749807 +cid:227 +hgt:178cm + +eyr:2024 hgt:185cm ecl:oth +hcl:#448ace byr:1987 iyr:2018 pid:454243136 + +byr:1930 ecl:grn iyr:2018 hgt:158cm +hcl:#341e13 eyr:2021 + +eyr:2024 cid:194 pid:425431271 +hgt:169cm ecl:grn byr:1973 +iyr:2014 hcl:#fffffd + +ecl:grn cid:110 iyr:2013 hcl:#18171d +hgt:155cm eyr:2024 byr:1962 pid:522435225 + +byr:1934 ecl:hzl hgt:152cm iyr:2018 +eyr:2024 pid:079740520 + +ecl:grn eyr:2023 hcl:c3f119 pid:468039715 iyr:2013 hgt:150cm byr:1955 + +pid:809357582 eyr:2025 byr:1958 +hcl:#6b5442 iyr:2013 +hgt:161cm ecl:hzl + +hcl:#b6652a pid:068979430 byr:1960 iyr:2010 ecl:grn hgt:159cm eyr:2021 + +cid:105 pid:495292692 byr:1965 +hcl:#ceb3a1 hgt:160cm ecl:amb +iyr:2020 + +iyr:2010 +eyr:2024 byr:1941 ecl:grn hcl:#b35770 hgt:171cm cid:132 pid:975699036 + +pid:767448421 hgt:186cm hcl:#733820 +byr:1972 iyr:2020 eyr:2026 ecl:grn + +pid:036236909 iyr:2012 +hgt:181cm hcl:#888785 +eyr:2026 +ecl:hzl byr:1936 + +hgt:173cm +byr:1923 ecl:blu +eyr:2026 pid:570818321 +hcl:#733820 iyr:2016 +cid:59 + +pid:2711059768 +byr:2024 +cid:139 ecl:blu hcl:z hgt:60cm + +eyr:2025 +pid:671193016 +byr:1950 hcl:#6b4b25 iyr:2017 hgt:158cm ecl:blu + +hgt:175cm iyr:2015 ecl:amb +byr:1984 eyr:2026 pid:342782894 +cid:140 + +iyr:2019 eyr:2027 byr:1972 +pid:196266458 +hgt:158cm hcl:#7d3b0c cid:69 + +pid:604018034 iyr:2016 ecl:brn eyr:2028 hgt:172cm hcl:#6b5442 byr:1922 +cid:238 + +eyr:2024 ecl:gry byr:1970 pid:356551266 cid:340 hgt:162cm iyr:2013 + +ecl:amb +hgt:151cm hcl:#18171d byr:1921 pid:187276410 eyr:2030 iyr:2015 + +eyr:2030 pid:056372924 hcl:#d236d9 hgt:156cm +iyr:2014 ecl:blu + +iyr:2014 eyr:2028 byr:1991 +hcl:#b6652a pid:119231378 hgt:155cm ecl:blu +cid:77 + +hcl:#341e13 +eyr:2027 +iyr:2012 ecl:grn hgt:152cm pid:405955710 byr:1970 + +iyr:2013 hgt:180cm eyr:1978 ecl:amb byr:1929 pid:3198111997 hcl:z + +pid:32872520 ecl:#8a0dd4 iyr:1955 eyr:2036 +byr:2027 cid:133 hcl:z hgt:184in + +hgt:152cm pid:402361044 +hcl:#efcc98 eyr:2029 ecl:grn iyr:2014 +byr:1960 + +byr:1972 eyr:2026 pid:411187543 iyr:2014 +hgt:184cm cid:211 hcl:#866857 ecl:brn + +ecl:brn +hcl:#efcc98 +pid:311916712 +byr:1957 hgt:151cm eyr:2020 iyr:2020 + +iyr:1968 +hcl:a28220 +pid:#ed250d cid:240 eyr:2031 +hgt:181cm ecl:xry + +ecl:grn byr:1946 hgt:172cm iyr:2010 hcl:#b6652a pid:372011640 eyr:2026 + +ecl:brn +eyr:2026 byr:1980 hcl:#c0946f +hgt:151cm pid:153076317 iyr:2012 + +byr:1966 pid:852999809 ecl:oth +hgt:163cm +iyr:2014 eyr:2029 hcl:#341e13 + +ecl:blu +byr:1959 hgt:191cm pid:195095631 iyr:2016 hcl:#ceb3a1 eyr:2028 + +byr:2001 ecl:gry hcl:#888785 iyr:2018 hgt:177cm pid:576714115 + +iyr:2017 +byr:1949 +ecl:blu hgt:186cm cid:289 pid:859016371 +hcl:#ceb3a1 eyr:2021 + +byr:1999 hcl:#b6652a eyr:2023 +hgt:175cm +ecl:gry iyr:2013 cid:165 pid:194927609 + +hgt:70in eyr:2027 ecl:brn iyr:2012 pid:162238378 hcl:#ceb3a1 byr:1986 + +hgt:63in ecl:xry +byr:2011 iyr:2024 +hcl:5337b0 + +hcl:#341e13 eyr:2029 +hgt:184cm ecl:amb iyr:2012 +byr:1970 + +byr:1920 pid:472914751 +eyr:2028 +hgt:187cm hcl:#cfa07d cid:290 ecl:gry + +byr:1948 ecl:gry eyr:2025 hgt:151cm cid:276 hcl:#6b5442 pid:937979267 +iyr:2016 + +byr:1934 +pid:626915978 hcl:#623a2f hgt:167cm ecl:gry +iyr:2020 eyr:2023 + +byr:1949 +hgt:68in eyr:2027 iyr:2019 hcl:#733820 ecl:brn cid:237 +pid:057797826 + +pid:155cm +hgt:68cm ecl:lzr hcl:z cid:344 eyr:2028 iyr:2020 byr:2017 + +byr:1959 +hcl:#341e13 eyr:2022 +iyr:2019 pid:728703569 +hgt:167cm +ecl:oth + +ecl:grn +eyr:2024 byr:1999 +pid:566956828 +iyr:2015 cid:293 hcl:#602927 hgt:192cm + +byr:1939 +ecl:xry pid:929512270 hgt:66in iyr:1939 eyr:2030 hcl:#efcc98 + +eyr:2026 +iyr:2014 +pid:176cm hcl:#fffffd +ecl:gry +hgt:151cm byr:1933 +cid:256 + +ecl:oth eyr:2025 iyr:2017 hgt:159cm pid:055267863 cid:55 byr:2001 hcl:#cfa07d + +eyr:2029 byr:1954 ecl:hzl cid:123 iyr:2020 hgt:192cm hcl:#866857 +pid:225593536 + +pid:320274514 cid:289 byr:1963 +eyr:1942 +ecl:gmt hcl:z hgt:167in iyr:2022 + +byr:2013 +ecl:gmt +iyr:2011 +hcl:#733820 pid:#e7962f +hgt:178cm eyr:2029 + +pid:154cm ecl:hzl +eyr:2035 byr:2023 cid:104 iyr:2026 + +eyr:2024 ecl:hzl hcl:#7d3b0c iyr:2010 +pid:105864164 +byr:1955 +hgt:163cm + +eyr:2021 hgt:151cm +iyr:2017 hcl:#c0946f +ecl:amb +cid:150 +pid:296798563 +byr:1953 + +iyr:2012 +byr:1990 hcl:#341e13 +pid:189449931 eyr:2024 hgt:64in + +hcl:z cid:79 byr:2028 +eyr:2028 pid:886152432 +ecl:#ce0596 hgt:178cm +iyr:2029 + +ecl:brn +iyr:2019 hgt:151cm +hcl:#341e13 +byr:1969 +pid:468846056 +eyr:2022 + +ecl:grn hgt:157cm iyr:2012 +eyr:2020 +hcl:#b6652a cid:338 +byr:1954 pid:153867580 + +iyr:2011 +eyr:2027 +byr:1935 +hgt:151cm +ecl:blu pid:802665934 cid:276 hcl:#623a2f + +hcl:#efcc98 eyr:2026 ecl:amb +iyr:2014 pid:320160032 +hgt:157cm +byr:1976 + +eyr:2021 cid:172 +iyr:2012 ecl:oth hgt:187cm +pid:432856831 byr:2001 hcl:#733820 + +eyr:2028 ecl:amb hcl:#efcc98 +iyr:2020 byr:1954 hgt:153cm + +byr:1930 ecl:brn hcl:#fffffd +pid:458840035 hgt:178cm eyr:2021 +iyr:2011 cid:336 + +pid:216876576 hcl:#341e13 +eyr:2028 iyr:2018 hgt:177cm byr:1938 +ecl:brn cid:214 + +byr:2029 eyr:1987 +hgt:75cm pid:193cm hcl:#b6652a cid:246 iyr:2028 + +ecl:hzl hgt:151cm hcl:#7d3b0c +eyr:2030 pid:910999919 +iyr:2019 byr:1956 + +byr:1950 +cid:95 iyr:2013 ecl:grn +eyr:2020 hcl:#623a2f +pid:603817559 hgt:159cm + +pid:913791667 +iyr:2018 byr:1959 hcl:#a97842 hgt:179cm eyr:2029 ecl:gry + +hgt:71in +ecl:blu eyr:2028 +hcl:#18171d byr:1937 iyr:2011 pid:951572571 + +hcl:#b6652a iyr:2015 hgt:170cm ecl:blu cid:292 +byr:1977 pid:475457579 eyr:2020 + +ecl:amb eyr:2029 +pid:530769382 iyr:2018 cid:53 +hgt:63in +byr:1954 hcl:#07de91 + +hcl:#cfa07d hgt:185cm +byr:1929 iyr:2011 +eyr:2027 + +iyr:2019 ecl:oth byr:2023 hcl:#341e13 pid:879919037 +eyr:2030 hgt:174cm + +hcl:z hgt:182cm ecl:grn iyr:2010 eyr:2020 pid:2063425865 +cid:182 +byr:2019 + +byr:1930 hgt:185cm pid:412694897 eyr:2025 ecl:brn iyr:2020 +hcl:#a97842 + +hgt:150cm byr:1955 eyr:2020 cid:149 pid:597600808 +hcl:#ceb3a1 +ecl:hzl + +pid:209568495 +eyr:2026 byr:1928 hcl:#341e13 hgt:183cm ecl:brn iyr:2011 + +pid:723789670 ecl:blu iyr:2013 byr:1933 +cid:239 hcl:#7d3b0c eyr:2026 hgt:151cm + +byr:1978 eyr:2027 hgt:164cm +pid:009071063 +hcl:#602927 iyr:2014 ecl:blu + +hcl:#18171d ecl:grn hgt:154cm cid:154 iyr:2016 +byr:1952 pid:730027149 eyr:2024 + +eyr:2025 hcl:#888785 iyr:2013 cid:90 +byr:1975 ecl:grn +pid:619198428 hgt:161cm + +ecl:gry iyr:2013 pid:795604673 cid:198 byr:1962 +hcl:#6b5442 hgt:64in eyr:2021 + +hcl:#ceb3a1 ecl:oth iyr:2015 +eyr:2021 pid:920586799 cid:302 hgt:60in +byr:1964 + +eyr:2021 ecl:gry iyr:2019 +hcl:#6b5442 hgt:192cm +byr:1996 +pid:692698177 + +ecl:grn pid:141369492 byr:1956 eyr:2028 hcl:#6b5442 hgt:190cm iyr:2014 + +hcl:#6b5442 +ecl:grn iyr:2020 hgt:153cm +pid:312738382 eyr:2028 +byr:1985 + +byr:1979 +eyr:2021 ecl:gry hgt:175cm pid:787676021 cid:81 hcl:#b6652a iyr:2012 + +cid:80 hgt:188cm byr:1964 pid:105773060 iyr:2014 hcl:#733820 ecl:gry eyr:2028 + +byr:1960 pid:251870522 iyr:2018 hgt:168cm ecl:blu hcl:#c0946f eyr:2026 + +cid:270 +pid:#5661f0 hgt:182in +ecl:dne +byr:1930 +hcl:z iyr:2026 + +hcl:#888785 byr:1954 pid:170544716 eyr:2028 hgt:162cm cid:244 +iyr:2014 +ecl:grn + +iyr:2017 +hgt:69in +ecl:hzl +pid:544135985 hcl:#ceb3a1 eyr:2020 + +hcl:92d4a1 iyr:2018 pid:178cm +cid:347 +hgt:97 eyr:2017 +ecl:gmt byr:2004 + +ecl:oth iyr:2018 hcl:#fffffd byr:1999 pid:853396129 +cid:119 eyr:2026 hgt:178cm + +hgt:69in +hcl:#fffffd eyr:2026 byr:1922 +iyr:2010 ecl:oth pid:664840386 + +hgt:178cm +byr:2000 +iyr:2013 hcl:#cfa07d +eyr:2028 pid:842454291 +ecl:amb + +ecl:hzl +hcl:#733820 pid:316835287 byr:1998 +eyr:2024 +iyr:2015 hgt:165cm + +pid:684064750 byr:1928 ecl:gry iyr:2015 cid:343 +hgt:189cm +hcl:#4c6cb4 eyr:2020 + +byr:1923 hcl:#a97842 eyr:2024 ecl:gry +pid:095911913 +hgt:185cm iyr:2010 + +ecl:hzl +byr:1996 +eyr:2023 +hgt:177cm +hcl:#b6652a pid:011541746 +iyr:2011 + +hcl:#efcc98 +iyr:2014 ecl:oth byr:1942 pid:730960830 +hgt:183cm +eyr:2025 + +byr:1939 eyr:2029 ecl:amb hcl:#fffffd +hgt:188cm pid:732730418 iyr:2013 cid:313 + +hgt:164cm cid:217 byr:1985 hcl:#888785 eyr:2020 +iyr:2014 ecl:oth +pid:071172789 + +eyr:2024 pid:215897274 ecl:#c67898 +byr:1972 hcl:#866857 iyr:2010 hgt:170cm cid:310 + +ecl:hzl pid:030118892 byr:1941 hgt:158cm hcl:#b6652a +eyr:2029 iyr:2012 + +ecl:gry hcl:#c0946f hgt:166cm pid:604313781 +byr:1924 eyr:2023 iyr:2020 + +hcl:#602927 hgt:168cm eyr:2027 ecl:brn +pid:764635418 byr:1968 iyr:2010 + +pid:157933284 +ecl:grn +eyr:2030 byr:2000 +hgt:81 hcl:z + +hcl:#ec24d1 +pid:647881680 byr:1922 +hgt:178cm iyr:2020 ecl:amb eyr:2021 cid:94 + +ecl:hzl byr:1971 iyr:2018 pid:975690657 eyr:2027 +hgt:192in +cid:202 hcl:#c0946f + +pid:678999378 +hgt:61in +byr:1981 hcl:#cfa07d eyr:2029 iyr:2014 +ecl:oth + +eyr:2022 iyr:2012 ecl:grn pid:883419125 +hcl:#ceb3a1 +cid:136 hgt:75in +byr:1952 + +iyr:2018 hgt:185cm +byr:1985 pid:119464380 eyr:2028 hcl:#623a2f ecl:gry + +eyr:2025 hcl:#ceb3a1 byr:1953 +cid:277 hgt:164cm iyr:2010 pid:574253234 + +cid:252 ecl:amb pid:594663323 +hgt:75in hcl:#cfa07d iyr:2019 +eyr:2026 byr:1964 + +iyr:2026 hcl:z pid:60117235 ecl:lzr +byr:2016 hgt:156in eyr:1994 + +pid:448392350 +eyr:2022 hcl:#a97842 +hgt:157cm +ecl:hzl +iyr:2018 byr:1973 + +ecl:brn +byr:1951 +eyr:2028 +hcl:#7d3b0c iyr:2018 hgt:164cm + +hgt:156cm +byr:1963 +iyr:2014 eyr:2020 ecl:blu hcl:#ceb3a1 +pid:#a87d16 + +pid:447170366 ecl:blu hcl:#888785 +iyr:2012 cid:236 +hgt:167cm +eyr:2022 byr:1942 + +hcl:#623a2f +eyr:2020 iyr:2017 cid:128 ecl:amb pid:279550425 +byr:1983 hgt:154cm + +byr:2014 eyr:2034 hgt:176in hcl:z +ecl:#d4e521 +pid:3629053477 cid:177 +iyr:1970 + +pid:30370825 byr:1966 eyr:2026 +iyr:2026 hcl:#866857 +cid:346 ecl:#f7c189 + +iyr:2010 pid:271066119 eyr:2023 hcl:#efcc98 hgt:179cm byr:1956 + +byr:1966 hgt:156cm pid:977897485 cid:287 iyr:2011 hcl:#b6652a ecl:amb eyr:2029 + +cid:211 ecl:gmt byr:2017 +hcl:z eyr:2029 hgt:180in iyr:2021 pid:81920053 + +byr:2019 +pid:5229927737 hcl:75b4f1 hgt:146 iyr:2026 ecl:#92cf7d eyr:2032 + +eyr:2027 pid:604671573 +ecl:hzl +hgt:189cm byr:1979 +hcl:#efcc98 iyr:2020 + +iyr:2018 cid:192 +eyr:2029 ecl:grn +pid:653764645 hgt:179cm +hcl:#341e13 byr:1927 + +byr:2012 +iyr:2015 +hcl:#b6652a +pid:168500059 eyr:2038 cid:234 hgt:191cm ecl:zzz + +ecl:gry hcl:#623a2f byr:1925 +iyr:2016 +eyr:2028 cid:157 +hgt:154cm +pid:196280865 + +cid:319 pid:928322396 ecl:gry +byr:1949 +eyr:2028 +hcl:#341e13 hgt:171cm +iyr:2018 + +byr:2023 +iyr:1953 hgt:154cm ecl:dne +hcl:#888785 +pid:066246061 eyr:1983 + +hcl:z +iyr:2016 byr:1986 ecl:utc +hgt:179cm eyr:2019 pid:583251408 + +ecl:amb iyr:2014 pid:499004360 +byr:1927 eyr:2021 hgt:193cm hcl:#ceb3a1 + +pid:631303194 ecl:gry +hcl:#18171d cid:216 iyr:2019 +eyr:2024 hgt:178cm + +hcl:#341e13 cid:201 +byr:1949 iyr:2019 ecl:gry pid:372356205 +eyr:2024 + +hcl:#18171d +pid:867489359 +hgt:185cm +iyr:2020 ecl:amb +eyr:2030 +byr:1955 + +byr:1991 +ecl:brn eyr:2025 hgt:184cm iyr:2016 pid:202216365 + +ecl:xry pid:#524139 hgt:151cm hcl:z eyr:2031 byr:2030 iyr:2005 + +byr:1971 hgt:178cm ecl:amb hcl:#ceb3a1 +iyr:2010 +eyr:2026 pid:396974525 + +iyr:2014 +hgt:177cm pid:928522073 +eyr:2022 +ecl:hzl +hcl:#c0946f byr:1983 + +hgt:167cm hcl:#ceb3a1 iyr:2014 +pid:172415447 +eyr:2020 byr:1956 + +iyr:2011 hgt:188cm byr:1947 eyr:2020 pid:667108134 ecl:amb hcl:#44a86b + +cid:302 ecl:brn pid:292483175 hgt:154cm +byr:1997 +eyr:2026 +iyr:2014 hcl:#623a2f + +hgt:171cm +iyr:2014 hcl:z ecl:hzl pid:321513523 eyr:2027 cid:146 +byr:2001 + +eyr:1956 ecl:dne hgt:75cm hcl:82e1fa +iyr:2030 byr:2027 + +eyr:2020 +iyr:2011 pid:656669479 ecl:oth hgt:151cm hcl:#efcc98 byr:1981 + +iyr:2013 +byr:1934 +pid:142890410 hgt:62in +eyr:2022 +hcl:#87cca4 +ecl:hzl + +pid:006232726 +hgt:173cm ecl:hzl cid:110 +eyr:2026 hcl:#866857 iyr:2017 byr:1992 + +cid:208 +iyr:2014 ecl:brn eyr:2024 byr:1935 hgt:187cm +hcl:#b6652a +pid:770836724 + +iyr:2014 cid:144 hgt:169cm +eyr:2022 +ecl:oth +pid:117575716 hcl:#fffffd byr:1926 + +byr:1971 ecl:brn +hcl:#733820 eyr:1942 iyr:2013 +pid:606274259 hgt:163cm cid:196 + +byr:1964 +pid:997828217 eyr:2029 iyr:2017 ecl:blu hcl:#341e13 +hgt:158cm + +pid:568202531 hcl:#efcc98 hgt:154cm eyr:2029 iyr:2010 +byr:1946 +ecl:blu + +iyr:2011 +pid:619355919 +byr:1955 +ecl:brn hcl:#888785 eyr:2030 hgt:155cm + +ecl:hzl pid:367152545 +hgt:162cm +cid:221 hcl:#866857 +eyr:2024 +byr:1997 iyr:2019 + +hgt:157in +cid:268 hcl:32371d byr:2020 +ecl:zzz pid:1081234390 + +ecl:hzl eyr:2026 +byr:1969 pid:850482906 cid:166 hcl:#602927 hgt:60in +iyr:2019 + +hcl:#c0946f +hgt:176cm +ecl:brn eyr:2026 iyr:2018 cid:172 byr:1986 pid:172963254 + +ecl:grn iyr:2016 +hgt:187cm +byr:1983 +hcl:#efcc98 +pid:722084344 eyr:2025 + +ecl:oth hcl:#341e13 pid:130312766 hgt:171cm iyr:2018 byr:1927 eyr:2024 + +byr:2021 hgt:152cm hcl:74dda6 +eyr:1984 cid:216 +iyr:2018 pid:95283942 + +hcl:#b6652a pid:924778815 iyr:2017 ecl:gry +eyr:2035 +hgt:68cm + +iyr:2010 +hcl:#efcc98 ecl:brn eyr:2020 pid:801894599 hgt:163cm byr:1959 + +pid:798701070 eyr:2030 +hcl:#866857 ecl:hzl hgt:169cm byr:1994 cid:219 iyr:2010 + +pid:#e9b41b +hcl:#341e13 byr:1970 +iyr:2014 +ecl:oth cid:266 hgt:68cm eyr:2023 + +byr:1931 pid:929960843 hgt:187cm hcl:#6b5442 cid:52 iyr:2010 eyr:2024 ecl:brn + +iyr:2017 byr:1974 +ecl:hzl cid:243 pid:66053995 hgt:147 eyr:1920 hcl:z + +iyr:2012 byr:1962 ecl:brn pid:773399437 hcl:#341e13 +eyr:2026 + +pid:738442771 hgt:186cm eyr:2027 hcl:#efcc98 iyr:2013 +ecl:brn byr:1928 + +pid:855794198 +ecl:oth +hgt:67in +cid:81 +iyr:2011 hcl:#b6652a eyr:2020 +byr:1921 + +hcl:176abf hgt:161in +byr:2002 iyr:2016 eyr:2027 pid:639047770 ecl:brn +cid:178 + +pid:335686451 +hcl:#86c240 iyr:2017 hgt:190cm byr:1968 ecl:amb + +hgt:150cm +hcl:094a87 ecl:#09c463 eyr:1926 pid:537511570 byr:2009 +iyr:1998 + +hgt:74in +pid:927963411 +eyr:2026 ecl:gry cid:323 iyr:2012 hcl:#fffffd byr:1959 + +iyr:2018 byr:1978 +hcl:#ff1829 eyr:2023 +pid:823129853 ecl:hzl +hgt:65in + +pid:189cm +ecl:#00391e hgt:72cm hcl:11050f +byr:2029 +eyr:1994 +iyr:1935 +cid:186 + +ecl:grn byr:1942 pid:217290710 hgt:181cm eyr:2021 hcl:#7d3b0c iyr:2019 cid:320 + +byr:1983 iyr:2013 cid:122 hcl:#ceb3a1 eyr:2030 hgt:59in ecl:grn pid:946451564 + +ecl:amb +cid:236 hgt:184cm +hcl:#cfa07d iyr:2017 pid:934730535 eyr:2021 byr:2002 + +byr:1950 ecl:hzl eyr:2030 hcl:#623a2f pid:742249321 +hgt:158cm iyr:2018 + +byr:1946 eyr:2021 hcl:#a97842 pid:204671558 ecl:grn +iyr:2010 hgt:187cm + +hcl:#b6652a pid:528124882 hgt:162cm byr:1924 ecl:amb iyr:2027 cid:157 +eyr:2028 + +hgt:180cm iyr:2013 byr:1926 pid:232265934 hcl:#602927 ecl:oth + +byr:1984 ecl:brn +iyr:2016 pid:756596443 eyr:2030 hcl:#7d3b0c hgt:183cm + +hgt:185cm +hcl:#fffffd byr:1991 eyr:2023 iyr:2014 +ecl:amb +pid:759105859 + +cid:82 iyr:2012 hgt:160cm eyr:2022 pid:593798464 ecl:gry hcl:#4e7571 byr:1983 + +pid:478427550 +iyr:2010 +ecl:amb byr:1969 hgt:68in cid:94 eyr:2021 hcl:#866857 + +ecl:amb iyr:2019 byr:1986 hgt:170cm +hcl:#c0946f +pid:779205106 eyr:2027 + +ecl:brn eyr:2025 byr:1925 +hcl:#7d3b0c hgt:76in pid:576353079 iyr:2010 + +hgt:175cm hcl:4bf5ae ecl:amb +eyr:2029 pid:173cm cid:329 +iyr:1952 byr:1972 + +ecl:grn +eyr:2030 +iyr:2015 hcl:#c0946f +byr:1989 +hgt:178cm +pid:287209519 + +pid:834505198 byr:1985 ecl:gry eyr:2024 +cid:295 hgt:169cm iyr:2017 + +hgt:170cm +pid:054644831 eyr:2023 iyr:1949 ecl:amb +hcl:#888785 +byr:1955 + +hgt:171cm +pid:947263309 iyr:2015 byr:1944 eyr:2027 ecl:grn cid:79 hcl:#341e13 + +eyr:1982 +cid:147 +iyr:2015 +hgt:70cm hcl:a77c10 ecl:zzz byr:2007 +pid:161cm + +ecl:gry byr:1933 +hcl:#c0946f pid:483275512 iyr:2012 eyr:2025 hgt:161cm + +eyr:1985 hgt:176cm hcl:7b6ddc iyr:2012 cid:326 byr:1973 pid:929418396 ecl:gmt + +ecl:gry +byr:1971 +hgt:184cm +eyr:2027 hcl:#3adf2c iyr:2017 cid:210 +pid:693561862 + +eyr:2021 pid:779298835 byr:1921 hgt:193cm ecl:amb +iyr:2016 hcl:#ceb3a1 + +hcl:4a1444 +byr:2019 iyr:2024 hgt:182in +cid:87 ecl:#122264 +pid:181cm +eyr:1927 + +cid:267 ecl:amb eyr:2020 byr:2000 +hcl:#18171d iyr:2012 hgt:190cm pid:18525759 + +ecl:oth byr:1988 +iyr:2019 pid:660570833 +hcl:#866857 hgt:176cm + +eyr:2030 hcl:#866857 +byr:1967 cid:316 pid:560346474 iyr:2015 +hgt:160cm +ecl:gry + +ecl:hzl +iyr:2014 hgt:164cm hcl:#733820 eyr:2025 +pid:106302413 byr:1920 + +iyr:2016 pid:515066491 +ecl:grn eyr:2026 hgt:179cm hcl:#b6652a byr:1982 + +ecl:#7de6a0 +iyr:2004 eyr:1955 hgt:154cm cid:138 byr:2004 +pid:758934555 +hcl:a21980 + +pid:#2a21e0 ecl:#1b9b27 hgt:165in +byr:1998 iyr:2014 eyr:2032 + +eyr:2021 hgt:184cm pid:431054313 hcl:#ceb3a1 cid:109 byr:1977 ecl:blu +iyr:2011 + +pid:006339126 hgt:177cm +cid:188 hcl:#a97842 +iyr:1959 +ecl:xry + +byr:2000 +ecl:hzl eyr:2029 +iyr:2011 hcl:#866857 hgt:74in diff --git a/2020/inputs/day5.txt b/2020/inputs/day5.txt new file mode 100644 index 0000000..fb33193 --- /dev/null +++ b/2020/inputs/day5.txt @@ -0,0 +1,805 @@ +FFBBFFFLLL +BFBFBFBLLR +BFFBBBBRRR +FBFBFFFLLL +FFFBFBBRRL +FBBFFBBLLR +FBBBFBFRRR +FBFBBFFLLL +FBFBFBFRRR +FFBFFFFLRL +FBFBFBBLRL +FBFFFBBLLR +FBBBBBFLLL +BBFBFFFLLL +FBBBBFBLRL +FBBBBFBRRR +FBFFBBBLLL +FBFFFFFLLR +BFBFFFFRRL +BFFFBBBLRL +FBBBBFBRLL +BFBFBBBRLR +BFBBFFFLRR +BBFFFFBRRR +FFBFBBFRRR +FFBFBFBLRR +BBFBBFBRRL +BBFBFBFLRR +FBBBBFFLRR +BFBFBBBLRL +BFBFFFFRLL +BBFFFBFRLR +BBFFFBBLRR +FBFBBBFRRL +BFBFBBFLRL +BBFFBBBRLL +BBFFBBBLRL +FBFFFFFRLR +FBFBFBFRRL +FBBFBFBLLR +BFBBFFBLLL +BFFFFBFRLR +FBBFFFFLRR +FFFBBFBRRR +FBFFBFFLRR +FFBBFBBLLR +FBFBBFBLLR +BFFBBFBRLR +FFBBBBBRRR +FBFFBBFRLL +BFFFBFFRLL +BBFFBFBLRR +BFFFBFBRLR +BFFBBBFRLR +BBFBFBFRLL +BFFFBFFRLR +FBFFFBFRLL +BBFBFFBRLR +BBFFBFBLRL +FBBBBBFLLR +FBBBFFBRLR +FFFBBBFRRL +BFBFBBBRRR +BBFBFBBLRL +FBFBBBFLRR +FBFBBFBLLL +FFBBFBFLLR +BFBFBBFRLR +FFBFBBBRRR +FFBFBFFRRR +BFBBFFFRRL +BFFBBBBRLR +BFFBFFFLRR +FBBFBFBLLL +FBFFBBBLRL +BFBBBBBLRR +BBFBFFFRRL +BFBFFFFLRL +BBFFBBFRLL +FBFBFFBLRR +BFBFBBFRLL +BBFFFBFLLR +BFBFBFFLRL +BFBFBFBLRR +BFFFFFFRRR +FFFBFBFRLR +BFFFFFBRLL +BFFFBFFLRL +BBFFBFFLRL +FFBBBFFLLL +FFFBFBBRLL +FBFFBBFLRR +BBFBFFFLRL +BBFBFFBRRR +FBFFFBFLRL +FFBFFBBRLR +FBBBFBBLRL +BFFFBBFRLR +BBFFBFBRLR +BFFFFBFRRL +FBFBBBBLLR +BFFBBFFLRL +FFBFFBFRLR +FBBFFFFLLL +FBFFBFFRLR +BFFBFBFLLL +BFFFBFFLLR +BFFBBFBLLR +FBBBBBBLRR +BFFFFBFRLL +BBFBBBFRLR +FFBBFFFRRL +FBBFFFBRRL +FBBFFBBRLR +BBFBFBBLLR +BBFFFBFRRL +BFFFBBFRRL +FBFBBBFLLL +BBFFFBFRRR +FBFBBFFRLR +BBFFFFFLRR +FFBFFFBRRR +BFBFBBFRRL +FBBFFBBLLL +FFFBBFBLRL +FBBFBBFLRR +FBBFBFBLRR +FBFFFBBRRR +BBFFBBFLRL +FBBFFBFLRR +BBFBBFFLRR +BFFFFFFLRL +FBFBFFFLLR +FBBFFFFRRR +BFBBFFBLRR +FFBFFFFLLR +FFBFBFFLRR +BBFFFBFLRR +FBBFBBBRLR +FBBFBFBRRR +FBFFBBFLLR +FFFBBFBRLR +BFFBBFFRRR +BFBFFBBLLR +BFFBBFFRLL +FBBFBFBLRL +BBFFBBFRLR +BFFBFBBLLL +FBBBBBBRRL +BBFFBFFLLL +FBFBFFFRRL +FBBBBFBRLR +FBBFFBBLRL +FBBFFFBRLR +FBFBFBFLRR +BFFFBBBRRL +FBFBBBFRLR +BFFBBFFRRL +FFFBFBBLRL +FBBFBBFRRL +FFBBBBFRRL +FFBBBFBLLL +FBFBBBFLRL +FBBFFBFLLL +FFBFFBFLLL +BBFBBFFRLL +FBBFBBBLRR +BFBBBFFRRR +BBFFBBFRRL +BFFBFFFLLR +BBFBBBBLRL +FFBBFBBLRR +BFFFFFFRLL +FBBFBFFLRL +BBFFFFBLRL +BFBFFFBRLL +FFBBBFBRRL +BBFBFBBRLR +FBBBFFBLRR +BFBBBFFLLR +BFBBBBFRLL +BFBBBFFLRL +FBFBFFBLLR +FFBFBBBLLR +BFBBFFFLLR +FBFFBBFRLR +FFBBFBFRRL +BFFBFFFRRL +BBFBFBBRRR +BFFBFFFRLR +BFFFBFFLLL +FBBBFBFLRR +FBFFFFFLLL +FBBBFFFLRL +BBFFBBBRLR +BBFFBFFRRL +FFBFFFBLLL +FFBBFFBRLR +FFBBBFFRRR +BFBBFBBLRR +BFBBBBFLLR +BFFFBFBRLL +FBBBBFFRRL +BFFBBBFLRL +BFFFFFFLLR +FFBBBBFLRL +BFBFBBBLLR +BBFFFFFRLR +FBBFBBFLLR +FFBBBBFLRR +BFFBFFBRRL +BFFFBBFLRL +FBBBFFFLRR +FBBFFBBRLL +FBFBFBBLRR +FFBBFFBLLL +FFBFBBFRRL +BFBBFFBRRL +BFBFFBBRRL +FFFBBFFLLL +FFFBFBBLRR +BFBBFBFLLL +BFFFBBBLRR +FBFBFFFRLL +FBBBFBFLRL +BFBFBFBRRL +FBFBBFFRLL +FBBBFBBRLR +FBFFBFBLLR +FFBFBFFLLR +BFFFBFBLLR +FFFBBBFLRL +BFFBFBFLRL +BFFBFBBRRL +FFBBBBBLRR +FBBBFBFRLR +BBFBBFFRLR +BFBFBFBLLL +BFBFFFBRRL +FFBBBBBRRL +BBFFFBBRLR +FBBBBFFLLL +FFBBFBFLRL +BFBFFBFLRR +BFBBBFBLRR +BFBBBBFLRR +FFFBFBBRRR +BBFBBFBRRR +FFFBBBFLRR +FBBFFFBLLR +BFFBFBBRRR +FFFBBBBLLL +FFFBBFBLLR +BFBBBFFRLL +FBBBFFFRRL +FFBFFFFRRR +BBFFFFBLLL +FBFFFFFLRR +BBFFBBFLRR +FFFBBBFRRR +BBFBBFBRLR +FBBFFBFLLR +FFBFBBFLLL +FFBBBFFLRR +FBBFFFBLRL +BFFFBFBRRL +FBBFFFFRRL +FFFBFBBLLR +FBBFFBFRLR +BFFBBBFLRR +FBFFBFFRRR +BFBFFBFRRR +BBFFBFFLLR +FFBBFBFLLL +BBFBBBFRRR +FBBBBFFRLL +BFBBBBFLRL +BBFBFFBLLL +FFBFBBFLLR +BBFFFFBLLR +BBFFFBBRRR +BFFFBFFRRL +FFBBFBBRLL +FBBBFBFLLR +BFBBFBFRRR +BBFBFFFRLR +FBFFFBBLRR +BBFFFFFRRL +FFBFFBBLLL +BFFBBFFLLR +FBFFFBFRLR +FBFFFBBLRL +BFBBBFBRLL +BFBFBFFRLL +BFBBFBFRLR +FBBFBBFRLL +FBBBBFBLRR +FBBBFBFRLL +BBFBFFFLLR +FBBFBBBRRL +FFBFBBFLRL +BFBBBBFRRL +BFFBBFFRLR +BFBBBFBRRL +FFBBFFBLRL +FFBBBFBLRL +FBBFBBBLLR +FFBFFFBRLL +BFFFFBBLRR +BFBBBBBRRL +BFFBBFBRRR +BFFBBBFLLR +BFBFBFFLLL +FBBBBBBRRR +BFBFBBFLLL +BFBBBFFRRL +BFBFBBFLLR +FBFBBBBRLL +FBFBFBBRLR +BBFBBFFLLR +BBFBBFBLRL +BBFFBBFLLR +BFBFFBBRLR +FFBFFFBRLR +FBBFBFFLLR +FBFBFBFLLR +FFBBBFBLLR +FFBBBFBRLR +BFFBFBFRLR +BBFFFBFRLL +FFFBFBBRLR +FFBFFFFRLL +BBFFFBBRRL +FBFFFFBRRR +BFBFBFFLRR +FBBFBFFRLR +BBFBBFBLLL +FBFFBBBRRL +FFBBBBBLLR +BBFBBBFLLR +FFBFBFFRRL +FBFFFBBRLR +FBFBBFBRLL +BBFFFFFLLL +FBBBBBFLRL +BBFBBBFLRR +FBBFBFFLLL +FFBFFFBLLR +BFFBBBFRRL +FFFBBBBLRL +FFBBFBFRLR +FBFFFBFRRL +FFBBFBBRLR +FBBFBFBRLR +FBBBFBBLRR +FBFFFFBRLR +BBFBBBFLLL +FBFFFFBLLR +FFFBBBFRLL +FFFBBFFRLR +BFBBBFBLLL +BBFBBFFLRL +BFBBFFBRLR +FFBFBBBRLL +BFFFFFFLLL +BFBBBFFLRR +BFBBFBFRRL +BFFFFFFLRR +BBFFBBFRRR +FFBBFBBLLL +BBFBBFBLRR +FBBBBBFRRL +FFFBBBBLLR +FFFBBBBRLR +BBFBFBBLLL +BBFBFBBRLL +FBFBBBFRLL +BFBFBFBRLR +BBFBFFFRRR +FFBBBBFLLR +BBFFBBBLRR +FBBFFBBRRL +FFFBBFFRLL +FBFBBFFLRL +BFFFFBBLLR +BFFBFFBRRR +BFBFFFBLLR +FFBBFFBRRL +FFFBBBFRLR +BFFFFFBLRR +BBFBBBFRRL +BFBFFFBLRL +FBBFBFBRLL +BFFBBBFRRR +FBBFFBBRRR +FBFBFBBLLL +FFBBBBFLLL +FFBFFBFLLR +BBFBBFFRRL +BFFBBBBLRR +FBFBFBFLRL +FBBFFFFRLR +BBFBFFBLRL +FFFBBFBLLL +FBBBFFFRLL +FBBBFBBRLL +FBBBFFBRRR +FBBBFFBLLL +BFBFFFFRRR +BFBBBBBLRL +FBFBBBBRLR +FBFBFFFLRR +BFBBBBBLLR +FFBFBFBLLR +BBFBBFFRRR +FFBBBBBRLL +BFFFFBBLRL +FFBBBFBRRR +FBFFFBFLLR +BBFFBFBLLL +FBBBBBBLLR +BBFBFBBRRL +BFFFFBFLLL +BFBFFFBRLR +FBBBBBFRLL +BFFFFFBRRR +BFBBFBFLRR +FBFBBBBLRR +FFBBFBFRLL +FBBFBBBLRL +BFBFBFFRLR +FBFBFFBLLL +BFBBFFFRLR +FBFBFBBRRL +FFBFFBFRRR +BFFBFBBLLR +BFBBFFBLRL +FBBFFFFLLR +BBFBFBFLRL +BFBBFBBRRL +BFBFBFFRRL +FBFBBFBLRL +BFBBFFBRLL +FFBFFBFRLL +FFBBFFFRLL +BBFFBBBRRR +FFBBBFFLLR +BBFFBFBLLR +FBFFBFFLLL +FBBFFFFRLL +BFBFFBFLLR +BBFFBFBRRL +BBFFFFBRRL +FFBFBFBLRL +FBFFFFBRRL +BBFFFFFLRL +BFFBFFBLLR +FFBFFFBLRL +BFBFBBFRRR +FBBBFFBRRL +FFBBFBBRRL +BFFBFFFLRL +BBFBFFFLRR +FFFBBFFRRR +BFFBFBFRRR +FBFFFBFLLL +FBFBBFFLRR +BFBFBFBRLL +FFBFFFFLRR +BFFFFFBLLR +FBFBBFFRRR +BFBBBBBLLL +FBFFFFBRLL +BFBBBFFLLL +FBBFFFBLRR +FFBFFFFRRL +BFFBBBBLLR +FBFFBBFRRL +FBBFBFBRRL +FBFBFFFRLR +BBFFFFFLLR +BFBBFFFLRL +FBBBFFBLLR +BFBBBFBRLR +FBBBBFBLLL +FBBBFBBRRR +BBFFBFFLRR +BFFFBBBLLR +FBBFFBFRLL +BBFBFFBLLR +BBFBFFFRLL +FFFBBBFLLL +FBFFFFBLLL +FBFBBFBLRR +FFBFBFBRRR +FBFFBBBRLR +BFFFFFBLRL +BBFFBFBRRR +BFFFFBFLRR +FFBBBBFRLR +FBFFBFBRRL +FBFFFFFLRL +FFBFFFBLRR +BFFBBFBLLL +FFBBFFBRRR +FFBBFBFLRR +BBFFBBFLLL +FBBBBBBRLL +FFBFFBFLRL +BBFFBFFRLR +BFFFBFBLRL +BFBBBBBRLL +BFBBFBFLLR +BBFFFFBRLL +FFFBBFFLLR +BFFBBBBRLL +FFBBFFFLLR +BBFBFBBLRR +FBFFFFFRLL +BBFBBBFLRL +BBFFBBBLLR +BFFFBFBRRR +FBFFFBBLLL +FBFBFBBRLL +FFBFBBFRLL +BFBBBBBRLR +BFBFFBBLRL +FFBBFBBLRL +BFBFFBFLRL +FBBFBFFLRR +BFBBFBFLRL +FBBFBBFLLL +FBFFFFBLRR +FBFBBFFRRL +FBFFBFFRLL +BBFBBBBLLR +BFBBFFBRRR +BBFFFBBLLR +FBFBFBBRRR +FBBFBBFLRL +BFFBBBBLRL +FBFFBBBRLL +FFBFFFFLLL +BBFBFBFRRL +BFBFBFBLRL +BBFFFBFLLL +FFFBBFFRRL +FFBFFBBLLR +BFBFFFFLRR +FFBFBBFRLR +FFBBFFBLLR +BFBFBFBRRR +FBBBFFFRLR +FBFBFFFRRR +FBFFBBBLRR +FBFFFBBRRL +BBFFFFFRRR +FFBFBFFLLL +FBBBBFFLRL +FBFBBBBRRL +FBFBBBBRRR +BFBBFBBRLR +FBFBFFBRLR +FBFFFFFRRL +FFBFBBBLLL +FBFFBBBRRR +FBBBFFBRLL +BFFBFBFRRL +FFFBBBFLLR +FBFFBFBRLR +FFBFBFBLLL +FBBFBFFRRL +FFBFFBBLRL +BFFBFBBLRR +BFFFFBFLLR +FBFFBFBLRL +BFBBFBBLLL +FFBFBFBRLL +BFFBBBFLLL +FBBBBBBRLR +FBBBBBBLLL +FFBFBBBRLR +BFFFBBFLRR +BFBBBFBLLR +FFFBFBFRRR +BFFFBBBRRR +FFBFFBBRLL +BFFBFBFLRR +FFBBBBFRLL +BFBBFFFRRR +FBBFBBFRRR +BFFBBBBLLL +FBFFBBFLRL +BBFBFFBRLL +BFFFBFFLRR +BFBBBBFRLR +BFFBFBFRLL +BFBFFBBLRR +BFFFBBBRLL +FBFBBBFLLR +BBFBFBFRLR +FFFBBFBRRL +BBFFBFFRRR +BFBFFFFLLL +FBBBFFFLLR +FBFBBBBLLL +BBFFFFFRLL +FBFFBFFLLR +BBFFBBBLLL +FFBBFBBRRR +BFBBBFBRRR +BFBBBBFRRR +FFFBFBBLLL +FBBFFBFLRL +BBFFBBBRRL +FBFBBBFRRR +BBFFFFBLRR +BFBBFBBRRR +BFFBFFBLRL +BFFFFFFRRL +BBFFFBBLLL +FBFFBFFLRL +FBFFFBFLRR +FBFBFBFLLL +BFFBBFBRRL +FBBFFFBLLL +BFBBBFBLRL +FBFBBFBRLR +FBBBFFFRRR +FFBFFBBRRR +FFBBFFBRLL +FFBFBBFLRR +BFFFBFBLLL +BFFFFBBRLL +FFBFBFFRLL +BFFBFBFLLR +FFBBBFFRRL +BFFBFFFRLL +BBFFBFBRLL +FFBBFBFRRR +BFBFBBFLRR +FBFBFFBLRL +FBBBBFBLLR +FFFBBFFLRR +FBFBFFBRRL +BFFFFBBRRR +FBBFBBFRLR +BFFBBBFRLL +BBFBBBBLLL +FFBBFFFRLR +BFBBBBBRRR +FBFFBFBRRR +FBFBBFBRRL +FBFFFFFRRR +BFFFFBFRRR +BFFBBFBLRR +FBBBFBFRRL +BBFFFBBLRL +BFBFFFBRRR +FFBBFFFLRL +FFBFBFBRLR +BFBFBBBRLL +FBBBFFBLRL +BFBFFBBLLL +FFBFFBFLRR +FFFBFBFRRL +FBBBBFFRRR +BBFFFFBRLR +FBFBFFBRLL +BFBBFBFRLL +BFFFFBBLLL +FBFFBFBLRR +BFFFFFFRLR +FBFBFBBLLR +FFBBBFFLRL +FFBFBBBRRL +FBBFBBBRLL +BFFBFFFLLL +FFBBFFBLRR +FBBBFBBLLL +FBBFBFFRLL +FBFBBFBRRR +BFFBBFBLRL +BFBFBFFRRR +FFBBBBBLLL +FFBFBFFLRL +FFBBBFBRLL +FBBBFBFLLL +FBBBBBFRRR +BFBFFBBRLL +FBBFFFBRLL +FFBBBFFRLL +FFBFFBBLRR +FBFFBFBRLL +BBFBFBFLLL +BFFFBFBLRR +FBBBBBFRLR +FFBBBBFRRR +BFFBFBBRLL +FFFBBFFLRL +BFBBFFBLLR +BFFFFBBRRL +FFBFFBBRRL +FBFFBFFRRL +FBBBBBBLRL +BFFFBBBLLL +BBFBFFBLRR +FBBFFFFLRL +FBBBBBFLRR +BBFBBFBLLR +BFFFFBFLRL +FBBBFBBLLR +BBFBFBFRRR +FFBBFFFRRR +BBFFFBFLRL +BFBFFFBLLL +FFBBBBBLRL +BBFBFBFLLR +BFBFBBBLRR +BFBBFFFLLL +BFFFFFBLLL +FBFFBBBLLR +BBFBBFFLLL +BFBBFFFRLL +BFBFFBFLLL +BFFBBFFLRR +FFBBBFFRLR +BFFFBBFLLR +BFFBFBBLRL +FFFBBBBRRL +BFFFBBFLLL +FBFBBFFLLR +FBFFBBFRRR +FBFBFBFRLL +BFBBFBBLRL +FFBBBBBRLR +FFBFBBBLRL +FFBFBBBLRR +BBFFBFFRLL +BFFFFBBRLR +FFBFFBFRRL +FBFFFBFRRR +FBBBBFBRRL +FBFFBFBLLL +BFBFFBFRRL +FFBFFFFRLR +BFBFBBBRRL +FFBBBFBLRR +BFFFFFBRLR +BFFBBFBRLL +BFFFBFFRRR +FBFFBBFLLL +BFFFBBBRLR +FBFBFFBRRR +FFFBBBBRLL +FBFBFBFRLR +BBFBBFBRLL +FBBBFFFLLL +BFFFFFBRRL +FBBFFBFRRR +FBFBBBBLRL +BFBFFFFLLR +BFFBFFBRLR +FFBFBFBRRL +BFBFBBBLLL +BFFFBBFRLL +BBFBFFBRRL +BFBFBFFLLR +FBFBFFFLRL +BFBBBBFLLL +FBBFFFBRRR +FBBBBFFRLR +BFFBFBBRLR +FFBBFFFLRR +FBBFBFFRRR +FBFFFFBLRL +FBBBFBBRRL +FBBFFBFRRL +FBBFFBBLRR +FFFBBFBLRR +FBFFFBBRLL +BFBFFBFRLR +FBBBBFFLLR +BFBBFBBLLR +FFBFFFBRRL +BFBFFBBRRR +BFBBBFFRLR +FBBFBBBLLL +BFFBFFBLRR +FFFBBBBRRR +FFFBBFBRLL +BFFBFFBLLL +BFFBFFBRLL +BFFBBFFLLL +FBBFBBBRRR +BFFBFFFRRR +BFFBBBBRRL +BBFBBBFRLL +BBFFFBBRLL +BFFFBBFRRR +FFBFBFFRLR +BFBFFFFRLR +BFBFFBFRLL +BFBBFBBRLL +FFFBBBBLRR diff --git a/2020/inputs/day6.txt b/2020/inputs/day6.txt new file mode 100644 index 0000000..d006a65 --- /dev/null +++ b/2020/inputs/day6.txt @@ -0,0 +1,2239 @@ +qzbw +qez + +xgedfibnyuhqsrazlwtpocj +fxgpoqijdzybletckwaunsr +pwnqsizrfcbyljexgouatd +ljtperqsodghnufiycxwabz + +uk +kupacjlriv +dku +qunk + +yjnprofmcuhdlawt +frmhulyncvweatodzjp +fhadtrcyjzwlnpumo +hrcutablndyjpfmwo + +rdclv +lrvdc +crldv +dvrcl +vrlcd + +dqrwajpb +asrfpdjwbq +wjdtarq + +nalkhgoi +bmiad +sdvpiyerma +ami + +smg +wlmdftcr +mk +my + +ebaxsun +uaxnebs +suxnbea +eanxusb +aexusnb + +zoxegrfd +qorjv +oqr +vor +roq + +jpasdnrcvhglft +dgkstavnhjrclfx +crtndjglfvwahq +hjclinvdtagrkf +gjfcdtuhlanvr + +exiopqbgrj +undhwyfkvltis + +npsxwlyog +udylki + +bnuwck +nuack + +cahpwtlozkm +ghnpzfqmoxabi + +hvwgxesraocbpnf +ewvranqcpbghoxf +paxfnwoegrhcvub +qbrawpfscexngvho +ahpxognlrvebwfc + +agqmwpvlb +waklrnbqyp +blquawtp +qltabwp + +rymhgolkustipjxbzqnafe +frzqjiuktbsxmahdepylg + +zricqdofygvtbsjmeu +vudjctzynegboiafqmrsx +rsbefoytcqgiuvzdjm +zucobitsgyjrfqemvd + +y +yc +tg +lavoqef +by + +fevykin +wxytrhqk + +pxbclzknowyq +lybwkpcoqxn +oknlpbxcyqw + +l +f +gixvd + +unogwsfavzkhi +siohufnkzgavw +ahitunswfvkzog +gvhknzuaisfow +ukasozfihnwgv + +ulhgwo +ghluo +ogulh +oughl +lphuog + +nike +bkn + +gefzwrdjsqx +fegzsjwxrpqh + +lfknweboxyrpajmig +gkpafnieojybrwl +iafesdyulrkpgnwbjo + +zjoiqtgpwxdach +iajdhqucpxtzgl + +yhav +vnshac +hcav +hvw +cyvh + +hwz +whz + +dhunracmzksvxopjgtbqi +vqhpowubyzirdksmgca + +ckrhefz +rkvexdfzcbh +heczkrf + +rbsldt +qgr + +a +ea +a + +wnadxkgehtpsv +gwnexkavshpd +bfkdpansvhewxg +kvtwdnsahpxge +xnhdpvekwgsa + +ydajvctr +drcejtgin + +kw +cbmj +l +t +n + +gyzlnp +zahsyu +rek + +vjdmhsorqw +whdjoqvrms +rhsjqdmov +omdsqjrzhv + +rcxsgnluhtqey +ldejuqpykrtc + +rylcqxt +wlgtzyrcf +yrltc +rclpyt + +frke +kfe + +nchvxtqarsejld +rkhntaexcbqljod +qhdepzrxljtifcan + +uyfshgxzbqvrdwintjlmec +oyrvdwtgeczsfbmluqih +kabdlqytwgfrhmuevczpsi + +guwmkrfyex +fxekmrygwu +wfgremukiyx +aywegkrmxufl +wukygimrxfe + +m +m +m +m +m + +hbgnkqe +khgn + +hngypzmd +oixyanpdg + +qbdklpvhjaeif +kzaiglyjfpmeurn + +ynsm +smjn +nsyum + +mpcztqkydxifv +zdqfvxtmpcyk +zkcmxfpqvydt +yopktfnqrmvxdczw +mdckxypvztqf + +va +bvhg + +fe +ef + +n +hpmqn +n +dn + +njxazhtevsmlir +txmsijvaezwn +tezacmwsvinxj + +gvzpbmeijyhaukflcrdqw +sivlhgumyzkdrjfeoxqtc + +ouq +h + +csxewy +kxoscmw +ucnvwsxg +hfocysxmiwe +wcsmx + +retcxugsdwjnykm +sfhudnxoqwjktyzarc +rklvinxudpsbywtjc + +cwfizpyguatbodsqemxrjknlv +ujikxwsmntcloyqgaebrzfdvp +jreyubofkpdnzsimxwvgaqtlc +nuewfvmlidsatzqbkcjgorpyx + +ycqolubpktxwshegafvm +djnlhafsreuzgxkb + +odasxjtqcepgrzl +jsoelxpqgtczam +qiajrhesdzoxfplcgt + +vnthkurzf +bnfpqutvekra + +gujxqsnitohp +tchxqjgoiu + +hgparlm +mjxghlqzp +fmlpahcg + +deptkcyasiwgfonv +ptqufxjhcyglrzdov + +awnxeshvrbcjm +xreswnhbcmvja +axvwnsejrmbhc +xajcmrnevhwbs +sjxhcbearmwnv + +woystmzcbgrljqhxdiukn +mzhlbgcwjusnortdqky +tunrjlzmqosygbwhkcd + +agh +ahg +agh +hga +hag + +cmzkthbquilgwypreno +tsmezpqlwkhrcginuo +gmniotwlpzyqceukrh +wztuikrglhqocnpme +ekqchwogpliumrtzn + +jqadntioypevlwcksmb +hymnfzcvtdaxsekrqijo +dvqmgiacknyoesjt + +cdnbkfzev +bfvdwcezk +kzeblcdvf +vfdkneczb +fdeovjczystkib + +rzc +pma +zwvx +zyrlt + +lmwvudafhnczxibsgpjkreoq +durlgqhmvpxofsiejwcbkzan +mieraklxftswzjbuocndvpqghy + +qlaxkbf +rfhyxtbkseaq +bxkqaf +fkxbaqn + +lpntzrufvskoqciaxhedw +arsztnpofkxcqudilhewv +srvlzcujywkenimafhtoqxp + +snxwjqapfo +nwsfqxpajo +npfqjowaxs +opjfxanwqs +sjaonwxqpf + +cswjquxv +uyecrkg +ufjcl + +qjvzl +jvqzl +lzjqv +qlvjz + +h +h + +mprvotcsgadybjfkqehz +bjsordtucqlgkhfzvepy +fsoqijpvhgkczybrted +yzsgkfhvcbjpeqtrdo +cjzdvkprbheysmofgqt + +jzontimefb +ldorvefxuatpj + +i +xi + +zhtkdvl +pchznv +jmryxuwgazvfh +lkdevczh + +subt +utsb +fsuobt +jutsb +utbjs + +n +n +n +dnk + +qkrfv +fqgvkseut +qvrfk + +w +x +n +n + +mkpoyfrngtwdcjlv +yprcuimjsz +rcyjzxphm +pjecrmyx +ipyramcqj + +puwnzsohkv +nsohwkuzvp +upnhokswvzx + +rmvjwzhx +kpxhqevglom +mzxfhbv +mhwjitfrvnx +mcusxhvwj + +vipkgth +oskhetgp +zlqhnbdjwgurxapc + +vn +vna +gwvdn + +rugcbipvzow +uogrzcvpbwi + +jwxuc +krngvmypl +jwxzi +qashtbedfco + +bzfyl +yzflb +fylbz +lyfzb +ylfbz + +uhkvb +kjhulb +vbkhu + +andlzobvguqsk +nkgvqlzbu +klbiezughvmxnrt +bunkzgljvf +yvkgjpwzubln + +t +t + +bdrjpavtiqlhxuw +pjmzbxidrtulcfw + +wqylp +mrhgfxsjcaltonedv +ywbkul +ikl + +hxpivszmbaodecnlurq +cedlpnibqmwxaghrszou +hunbrdzpsxleaitmqyco + +pymewobv +veazgoy +yvoxle +youfveix +syegdvo + +ogceirlsaqjtmvzdx +rtsaijxocelmzgdvq +dvrqjxizmgscteoal + +jeupkmhcydwaz +daykzechjpwmu +umkaejhwydpzc +aywkjphdzeucm +ypdchmujekazw + +suzacvgjnoi +evgsufjaitn +rqeanjskxbvfgiwu +dknubsaxgvji + +ojxfyetcpdbglmwqunrsi +fjletcbrdsnviogpxwuq +jcgprswxiaefdqnotlub +zfgjewrpldsioxcqntub +nxcgewpqolibrktujsfd + +vwh +hjvw +hvjw +hvwr +vhw + +md +m +m +m + +xkpu +izfmrosjbd +eywqt +xgak +hgn + +layhskgxrpfnwqmdj +mlsxywoakrectnzgqdjf +fbsxnmuikqwrljgv + +rhcn +lon +dln +pban +nhd + +uxwhl +hx + +aesduycrgfmhjblnkzt +jktlhwqioepzgcbnmda + +tbhfongxiudcrv +rqoyfnuxabjekl + +ajd +wjdmak +jda +jad + +ghimtjly +hjtgilm +ghixmjtpal +jtmhilg +imhgtjluo + +ewpfam +epmwa +epwma +ewamp + +cslywuzkdg +jfluyxgbsma +ugysbl +ytlqgaus +hsufgloxyr + +eigjpobrlxnasvhquwy +nirbjslgwyxuoaqevhp +fpnsuxbleoajwyhgirvq +ayinxhubgvweprqljso + +andu +sguand + +embqxktgpduyjia +qtjagiydempukxb +axswpjdgqbumyteik +kgaexydbupqtjmi +uqjbixkdptgmeya + +uxzwnlgyareost +nesygtowzuralx +lnguxsaoyzwtre + +thfobmluspeiwxygv +ibtfgsyouvxdpelh +txqerhuolbpsgfyvi +oehxfsmbiuvpyltg +pfoiuhlebvyxwdgst + +e +ke +e +e + +zhxyc +hczxy +ohzycx + +sylzvbx +sxzvlyb +vltysxbz +ylbxzsvf + +zxkt +xztk + +mnctogxvwkseh +owrsadeqmhtykcg +matkscwo +mcwpzbofs + +wvpybgulfrhnixjka +rgawyujfcsveki + +hbmljqxrtza +xmutqzahl +zaqlmhxtu +hziqlatxumc + +sjwq +qjws +wqjs +jqsw + +ithgcoaed +qtgsdohec + +puidogmhysnk +pgszdunhyiomk +gmyivhnksqodpt + +ionrt +yhvsiud + +xtzrljypsknh +jkhztpylxnrs +yxlkrshtpnjz + +veyflgkws +jwukvfeshmr +evfwksdz +fekvsw +vkfsew + +qbercltdyiwzpfghujxa +bvzlratfchxyijqewpdgu +hfrtqbiayzdxpwujlcge +ejhbpuwytgixrdzaflqc +phrjagczeiyxwdufltbq + +chxzbkemyjgqvltsardoi +osykewcidjtuvzpbqhg +ibqozcsvygmkedfjhtn + +czgih +zcg + +dpulzxtweoafsvnrykqg +zoasklutxwnqevyfgrd +vnrequfolxgtzsdawyk +ynurtkjfogvdqzlewsax +kuydfznpatgvrelxoqws + +fmpeunzs +sumpfzn +fzpmnus + +sadewmz +sldnwe +wjduetyxsh + +no +ou +oua +ybwdoe + +etjdmfhkvupsgob +zjvatuxrhomingds + +wcrpzale +ctyzwdsulbvmexo +ikecwnzlg +ngjwczlae +zlqhwgecj + +p +p +p +v + +x +i +p +x +bgckq + +huty +yatu +cytrqju +wtyu + +k +k +s + +ti +ut +ut + +ltyxj +vaicrwnzb +yegjqp +mjogk + +ifyupadt +idutaypf + +civyufabow +oafw +eawtof + +tdxrcuvqmaoblhsjfynpwigkze +hqfymskzljrtexwugbnacpiov +nymlpweztcgrhjqfuiasbkxvo +qxcponmlbwtvazuykfsegjrih +vuaoelhfcyztjpxingmbkqsrw + +zqtkcomfdyrs +qokdtmzyawfrlc +qdmzejfctykor + +qgkmhvx +vnqmkxlh +kqvhxmre + +aklnbydq +dqynjokaebzlu +kblqrdany + +znaepc +uthvilcm +cpbda + +cep +wgecdbpz +pce +pce + +qgtaelxzvnfr +vwlquxfbmhgdjzir +fqvryplogztx +krfvglqszx + +xebsp +vohgfurnmsa +dqws +ysl +eqyps + +fxnlgkjizbsupyt +aixlkfuwezbgcpsnh + +fliogmexzuqc +ygxqvoeklitmfu +iofxzueqmgl +qouifehxalmg +oefiuqjgdmplx + +cjqnrvu +cquvrn +vqnur +qvrnu +qwsvruxnmf + +esxbjiwnya +ibwnjsxyae +abienjwys +ijwaybnsep +ybeiasjnw + +f +f +f +f +j + +dwfgkqohamebnzly +vhyokaeqpufjdlb +ayhlqfbnoedkg + +g +ijur +ad + +oxpwmzunkjved +dgwxejtpzn +exnrwizdpljhfy +ekzxwdjnpt + +jghbztdkypsovc +arefyzdnlhwpoivbsqj + +cwvpyqnhjmsblikorx +ywjmvfxnbqoitdls +gyuloqbznavmijsxw + +tv +vt +vt + +cxvwzdbpsqnhoa +thoqpsvmaxcbkzlin +anecpvqohsxzb +xscpvobnaqhz + +axnrzgyvepoif +zovgfipynhr +grodvzhinfpy +rnipgfojyhvz + +pbmhlxwqfezrscdtykn +cfmbkwtnlryzqehxpsd +qrbylwtdnsckzefxhmp + +zkqw +wzkq +jqwxzk + +vrdnmyfspbzlxw +izepalkytdnfcxjwhg +nxuwdfqzlyp + +bc +cb + +bf +fb +bfh +efbq + +amw +mpa +maw + +bqwtvl +vlzwtq +ytlqv +zvlqtb +tlqxvc + +lbhxpnkiurmwates +fuwrqbeztjmlpsnxaik + +jpwm +zwljp +jwmp + +zep +cep +pe + +mzx +zmx +xzbck + +dlmvbnupathgjsf +blknfsvtjpgmhdu +pnufdgmhsqtbljv +ijeoufmnchvysrlwzpgtdb +xvpudhgsjmlnbtkf + +cnyuhkmbswzilxovjp +ybjtdewvsrfcznalqhgiku + +bi +rzla +j + +graezckvnqx +agwzkcqnxre +grzxeckaqn +ghercxazknq +rzqakdgexcns + +sfe +b +f +xpjtuand +boies + +kgjfzqlwic +rkcdstgp + +fgsndtox +zodnyxlgts +otxdsgn +nxtfgodis + +zwrtohqdey +teqwry +pvytwegf +ltioweyrc +myeaxntuw + +bw +bw +bw +bw +fbw + +o +gh + +owadmhy +admhoyw +wmohyda + +nywib +ceulqpzh + +zs +sz +zs +zsko +szr + +izaqf +uijrf +infgq + +w +qw +m +bzr +o + +emavls +hbxwektuqjo + +qrhspwbulzkaxdm +auwbhyxlkdvq + +turdsw +utxrwsd +rtundsw +usdtrjwo +utdowrs + +gjro +gojm + +xhnilqdp +ienxaovqldkhg + +rgjonh +nvokcjqrt +argnjo + +jmgchqb +jivdabluqf + +ylmicxtahwqfvukneopgzsbrdj +hbzpeaqvlxgotsjkwmfndyiruc + +p +rop + +delgcpurwxniqohkvyas +gurxclnvdwbikoqezs +rnxewiqvgktmosfjd + +tigwskmhvupobfnydxcre +qwmdoycrhvsjptzxngbikue +yvmetfcbahuklxpdgowrisn + +wsy +wys +syjw +wys +yws + +srwpt +wtsrp + +lhafkqwscv +aklhcvrsqfw +vfsqckalwh +hlnqskcfvwa +klfwvzsdpacmhq + +ehbzglfvtdxpkicy +dl +jnmdl +wdsl + +rew +rek +ehi +ilehwkm +axe + +bl +hzlgey + +iboqgtdxprunz +uonzipxrgqbtd + +o +o + +bldk +bkpl +fklbc + +ynmuedqwhoktxprcavz +fshlwuznoymekqtprdv + +hjtwrzo +rowhztj +wuxrojhzt +ozjhrtw +hotzwjr + +senxaq +baen +ajmne +gaielnd +htfnpkuvwoae + +joklzmcuyg +uyzrifcmlkgsj +kyoumjcagblz +uytcgqklzjm + +ujvi +ijuv +epmijuv +viju + +tahxdeq +dazexot +baelxdq +pwexdgvyiukjcaf +edrnamzx + +zxqslwyh +shgyqlwxaz + +xbs +xbs +bsx + +kwlhvxy +kqwvlyxh +klvxwyqh +hxlkwvyq +kylwpvhxd + +koznivas +basiozvkn +ovzkluniash +ksnxcavioz + +g +g +g +g +shin + +e +qtvo +ac +ksw +ae + +pay +nau +a + +czkmwrvefultigxjhdqaopsnby +flqrbdxungowzkmjsyepvhitca + +ymw +vurft + +wqpgys +ywsq +qswy +qsyew +ywsq + +ndmo +fdoznkmw +hmuzndo +mtqdrnyo +uwfomnd + +pktnzsqhyvmaejclwuor +jwznystlkmqcraeovhup +vuwmteknjqohylazsrcp + +k +k +k +okxe + +fjilbxs +ib +bi +iqb +ibeq + +gjlyop +opglehyztj +jpclgymno +dopglymwj +gojplrbcy + +nuygowpxetsahrv +jgtpyhruwonexq +rlepnuikhgybxwot +svnygeuroxhzptqw + +wkies +eisqwk +kisew +eiwks +gxbkwsiep + +oj +joe +oj +jo +oj + +gtzunomec +cezutnko +tunzeco +cuoftneazk + +vpifjqnbcuaelxzgdwos +gfsyuwzclexopjvimqabd + +npaxeizolfrygctvw +rgtpxwicvafozenl + +e +e +p +t +e + +ohiaqmdktxnbpwlc +iqcopmavhwxbgnl +bhqaoiwxlpmcnzy +oxhwifeapuncblrmq + +wghbsijofevcu +qtlmkday +xlrznmp + +zbrjh +rzbjh +vebhzr +klrzhb +rjbhznl + +kcgzmvfrxebiautyohdwq +thdkgwzymrafbxecqiovus +rgtwzvocydiafmkqubehx + +i +ry +n +xgscp + +kzjngd +rdmwgnujzok + +djpivm +mdipjv +mlvdjip + +ilbdjmvfhyzxcqwuspn +lichmuxnzpqsyvwbfj +umnvlbiwqsfchxpzyj +uylzhpvfqbscijxmwn +clwjnihuyzpmqbxsfv + +o +o +fo +pon + +aowpk +zg +dt +uc +u + +ymhiouqp +lkyoqi +ywtsvqio +lnmyoiq + +ydbhigntrexvkua +urlaigkqnydwxhb + +nfro +z +jz + +ojsag +gajso +gjsao +jhsog + +t +t +y +h + +jieqmryxv +xqvimey +umyqveix +vtedmnxliqyf + +tmd +tdm +dtm +mkdt +hmdt + +px +gwruq +pz + +tejofhqklimp +thojpkfgelwmrq + +tseirdkyqvcghwju +tjhycvgilezdws + +roqbndl +rdql +qlrd +lqremd + +qvgunystzpckrwifmxdolajehb +bgtixcwloydzqjskvnfmpeurah + +soviern +rlakxngecptvsz +nvdsre + +gzkoiysxl +vjrlmtpbsceozhauwx +kfnqdzolsx + +kwzaqnipgxfhoy +hanwlofgqxpzk +xqngazkwphof +pqwkfghaoxzn +qwnfgpakxhzo + +zhurktfoqmlbnx +mhlxorzbntufqk +qbzklhnurmotfx + +gezmci +oecmg + +pcyteovnsz +dptlfuzh + +roxjhkng +xonksrad +rxnikos + +vbgmsrecxpj +srcjxmbgep +rbgsxcepjkmq +pjgcmzbsrxe + +gkvwndflryjshmbqxtpizuocea +fwndvekqtzployghijsmruabx + +dcxtogbifek +ifkdgoxbc + +srmqlnhbwv +liwsqzvtn +wgeoqvpfs +wkyqvsacd + +yswarofhdmqclxkgut +daxhzkgumjysrlwq +qfamswzyiglxdruhk +vsnwxadlhrbgqmuyk + +rxwzkmd +kwzx +qawokzlxe +xmdnfkwz + +exo +xvqod +cv +pnrkmywh +uztea + +ma +ma +qamfr +am + +nksp +kvpn +pkn +nkvp +nkp + +pwlvdsagy +islyawu + +sgbnwulekhpmy +mjgqeyshpbwuln +yubghpanecmszwlv +euwohbysqngptlmx + +gs +e +kas +a +md + +i +x +bl + +vishqyrzgmpbeuldj +gwcpvnskbftudyorj + +ueswlatkopc +wbeosclpktau +lcpvaswokuet +ltkupsmeawoc + +iwtvopbgyc +widjykopv +ivowyp +iwyvhop + +bfnwdumyozhpxre +zhweumdnpbofy +dcsobyuhfntpmzwe + +zrlaspbhty +oyhrftzbslap +ysztbhlapr +tszhpbayrl + +wbgxh +gnhwxcb +wxbhg +gxhwb +gxbwh + +ngribvdawujskcmfx +rvskbgiwjxuca +wiyvgcsbjxkrua + +ifstrq +fk + +b +b +b +u + +hpqy +wjplyq + +zwkfgbsmedluyot +fdtrhsgeumk +vexgtudkshfim +eutigskmdrf + +imljkdnzpx +jqwknpxlhmzd +pmdyxgnjklz +rxbjmlnkzdpg +ulxbmpdnzykj + +vetubnwdy +bnwatdvyou +zfwgvtdbnki +dlvewatnb + +uj +otuj +uj + +ifstpgrbcnywaxmkdzoqvh +qkbfhovrginxapzywdct +vyofbwcdginrkqtazhxp + +mvnaokugdshybwtr +ntvsywuadrkmohgb + +fauo +pnofxadk +sfoa +sofa + +akecpnjdwrztvlfbuhsiq +jehrndzisqcauwlftkbpv +uawiskrjentfbcqlpdvhz +crtpjbdalsviwfnhqezuk +ncawkfdsqtrhpjzielvub + +otazsfhc +ltkacysow +pvtomna +tacok + +mx +x +x +x +x + +hmoy +zmyhjuo +ypmxohn +hoxym + +dm +md +dm +md + +uqvbhfdomlwtkxez +szaqwmlhytgvxkr +wmpzhxqktlv + +btkpdjinsrmogfywzhlvecau +idylbvnopjsgrkfheuczawtm +tygvsizrwjneplkohcmafudb +wtvprskenjchmiyfuzglodba +jwdafzcemrbsunotyglpihkv + +e +ouxg +ei +shp + +ul +ul +ulrspe +louy +uynlvo + +yibgqkf +uvcwx +mvxdohjlw + +q +z +z + +orxgfiqznujyplsbadv +gtzieoxspqrvndjbylfu + +hmlqcujrysbgoentdp +dyjmrbtpuhgslncw +rmyfuhdgclnpsktjb +ptucnyhsmlwrbgjd +wrhnldscjeyupmtgb + +sowieczubgx +firsgewzpbo + +txeo +exot +oext +oxte +otxe + +ontlbzyekruhpscwqvaxmdj +ahrtijxdepnokymcsgwuf + +ftsraxmwogvnkdbzqiyhju +ylsdhonjzrfwmqukc + +leiupzardbfsv +dzuwlesifrbp +ldiupzersfb +fupwslrzbedi + +jtdp +dajg + +jpglzoriafexks +gpaozketlcixs + +butisvecnfplqmygworax +jrhpbwztcveifamlyqxdung + +r +r +r +zr + +eyniaztvgdrl +dalgonxbiecywthzvr +dtzrgenvliya + +akzferolcmstgby +kmcagsbteyrlfzo +aoktgslmcrzbfye + +jqigpeydwl +mkeaxqcudzgvfhb + +ayhgbfzerjxd +rnzfaxy +wyzaxnrf +ycazxfrw +ayzxrf + +jgmkwtnizxrcbvfqhyeal +mwatrngvlezckqfiybhjx +vmrwyqnigzhtjfckxaeb +wkehnqrtcjigzxavbfym +vrczmohgtfbnaejxqiwyk + +c +c +c +c + +idx +id +id + +zaipnjbsxkg +xevnfipkjgb +ujxldqcnbhi + +hco +co + +ztlrica +ktneixcrs + +hlutcdsgoj +mwlypnzbqafvxkire + +lznhjwgsiv +wricunaxj + +fdqgyzopwlen +rkvt + +vy +gy + +ihbpfsx +pshixfb +sifxhpb + +begmqirvflkxuyanp +dmpvhfbnaxsuloqitjy + +uwamykhsnbfzxielpdo +cxzswhvtabupmqjlekond + +gisqpjrubx +rjbiuqxspg +gqpirxbsju + +u +u +v +u + +gnjqsoha +qgandhlyrs +snhqvlrabg + +vo +vo +ov +vo + +iudvwxpmtac +owlyxsangim +hbdrxmwaei +wjimax + +xmubte +yuogxa + +nwkurtxjcpqozmhgsvbe +chrmvakuyxtowqpgzbej + +manbesvzpyt +dgtwazpqjmbnr +itfkoupbhlcnax + +omhinsxf +lnmdoix +eimgrno +hyomidn +nmjodi + +qmpn +ripmn + +wfm +wmf +mwf +mfw +fwm + +uaoxphg +phoxb + +btfprm +ztmrf +mrft +ramft +tmrezfa + +uaznory +zyaiourn +nouryaz +coszugmanyr +lqazryonu + +vqlswifmcg +wzuclnxsvt + +eh +eh +he + +siuhfpb +iuhfs + +yfhciqlnwpgemoxktas +ticjauwfsygepqnhx + +ndmhwtub +zbagktxiulnwh + +txdikm +boldxtiqmf +dxtimj + +wvr +vwrb +wrv + +utyjachpfordvw +benvkudcfta +vduqiftcgsa +fcuatdxv + +doivj +jiv +vjkpyi +jvi +dijv + +mhyn +mxngywh +yjhmn +dmynhulkacb + +hpidlbezkwqtr +dgtaflrnyscm + +osqeajcvduwhzrtkl +zcaevujrqsdolgwkyt +uokqnrdjaecvwtlzs + +ovsbxzgaju +vliydjht +dvjt + +stlxuabmcwqkodevrhf +ajskvtpmlicqewbhuzfd + +g +cg +ezfo + +zqfmuxlnhkgdpvwrtjio +rkjqvomtguhpiwfzxnld +zfgxrclnimokhvpjdutwq +tgkxfqrnhdzowpvijlmu + +ni +qn +nq + +sn +qn +fdn +qn +hson + +tplicyhxqfujbkzv +qfbzvwkuycsa +vzqnbfcokyuda + +apoy +plfxotkv +iphsqjorged + +ravyhbsfelgcmzponqwikj +bitfjzwakhmvxngsoepcyrlq +cevpwyrnlobjsfziagkhmq +mswnezcpklfrjqgiyovabdh +cijelkwpbnhrsmzofygavq + +sqvnuedcytaxohplzf +cekhbgwadpmyofslxq + +gclfnxakjzsw +wzjcnsgka +ciwzsganjk +aspicokjgnwz + +qrabg +ajbgmw +yabg +vgsrba +hcgtbya + +xarbuvi +ivaku +kiuav +vzgxiah +flsivaj + +ckodrthljgyfwm +mgytohfxnrdkjbvlwc +cfdwmjoltkshrgy +yhwmrldfucogkjt +fmctpgwydhkajlro + +qvibocelnsdyzfkjhpuxmtrg +zgdksnoypqebifltcrjvuxmh +giocmuefxsprhdjkzntvqlyb + +xkcrlwomygs +grluckhsanomxwf +sriokwlmcyxg +kxgirswtcvlom + +budr +brdu +dibur +urbd + +o +o + +p +p +p +p + +wnydf +wrptghizjqk + +wnbdmltxcq +dfcwl + +ksaveflzdxqocbgyjp +bcxavldgysqozpkjfe +ozpvselaqgbdycjxfk +clpzdoebvqjgaskxfy +qykodlgvzjaxspfceb + +nrmdjstqozklxvcyag +ejzwbu + +kfgijmd +zmgjdikf +jgimfdk +ijfgkmdz +smbrfkxdwgeij + +yhtuxnfcq +tcyufhnxq +hfuxytcqn +nqtufyxch + +rlhzknoiuycefpmvxqbg +nbvgfexmqikpyhruo +hqkgnvyieomubfxpr + +bjyadnftcsxqk +lpfbvzcsumerho +wctsbf + +iyamec +myeibctka +egyicam + +ac +pvaqdb +a +au + +giltsum +ixyhncbjqped + +cinzuvkystgfodr +rksphwcfxdgey +xrdjkygcsfq +bfmdecpysrkg +gcrdyslfk + +ayqpgucwedftoxjk +eoagwdtkfqlypjuc + +ktysxp +sptx +qpxst +ptsqx + +uvclismeajkpbzgqwn +aicbqfzvlnuegpm +glecvmpzrnioudaq +kanmveflzpcgyuqi + +vklag +glv +lvg +lgv +vgl + +tyuh +hut +thu +htu +thu + +eyipwtfuhxzalmdgrs +whfcvbquxgepn + +tg +ge +g + +vk +uatvn +mzv + +jhfmpux +mhjquxkp + +gzyxjwfb +grzfxmwybj +cywfjpxztgb + +udrye +eqdyr +yerd +eryd + +kwdoynribhpsqmlgvuje +gunbjywvmheirdqpok +dnqeivoptrkwuyjhmg + +czvmpr +sxpum + +qlktsn +tkclq +sbqlkwt +luetjiqpk +lcvtqsk + +rotvsfwelbnj +fwbqmaolesn +qbfwegzislpnoc +nzoelswfpab + +wsecbml +sclabmwe +ezpsidclwtmbgvr +mcelawsb + +ngz +zg +gz +zg +gz + +xqjwnaiyb +jayxibqngw +qinjwxbay +nbaiwyxqj +jniaxqwyb + +hktywl +htwlyk +kytwlh + +ymbeahldgz +pjaoszx + +b +b +bz +kb + +gvdcqp +qpvyrcdlk + +nij +jfiub +jtieyxl +mnij +imvju + +qh +hq +hq +hq + +tez +zet +etz +etz + +wz +wz + +xc +jvxc +xpzc +rgumxc +xc + +nizsgkvylw +ngylivwzks +ylgsiznvkw +ilgyvsankzw +ilzywsnkgv + +emhpiwfyung +qlzkob +ldjx +xvat + +luzfaswdyj +jsdyuzlafw +ljdsafzuwy +yusdjwzfal +dsyjwuzafl + +uioafnlegsvjdxphr +lnfrjdpehvsxguoa +najruefdlxogvhsp + +gumjphl +mplchdjuw +hmjrlup +jmpgulh + +q +q +q +q +q + +feyimktsugrq +qygsrtlpmfkeui +sfkmrgqyitue + +xpklzsyodcnhrjq +xcznojsdpqhrlky + +btmsc +mtscbv +csmtb +tmbcsx +mbxtsc + +dvrfumay +ymafr +mrifya +ykrmaf + +do +d +andk +dcp +d + +glhmjykfaznvrd +bvmijshzga +vmjuqazhgpx +voczhgamj +wjhizgqavms + +voilgtup + +vrphtmc +bgfkjvad + +bxkfi +kixbf +xfkbi +xfikb +xfkbi + +lfixvpozghcauk +plgixmzukcovh +hyruilocxgkztqv +uglxkaihcozv + +avgptdmi +gydpvt +dptawvu +rvtdopxlqs + +rsmglpt +gpmnlthr + +tqmeukoia +kamiout +mqwauekov +macoryuk +nujbskgapmlo + +ndjrglykwoi +jrwkdnolygi +ownkidlryjg + +kwheact +txukwjcgbhar +whgotjk +kzhtw +lmvynhptdqkifw + +odkzwylprhvn +pwozvnydrh +zdhnpryowv + +crni +qdnkiou +gbwhyasjx + +bxitsamogcq +erbxklyhvtczu + +swrfxdpjhly +pwdjkvfyxrshl +sxehqrtwpdamnyjzolbui +gpdryslhwxcj + +fhldcksrpyi +qfejshrcat +wsmrvcnogxh + +vwacyofjtilrxngp +otylvxpfwgcnjria +xojfignyrtlpwvca + +qvz +ozm + +msrdwqahutefvxy +rjmyotiefuh +ltyrmenbzjuhf +felbyputmhr + +riyzo +kzroyuwi +yirozp +yoirz +roiyz + +rqjz +vjrq +qrj +prqj +zqjr + +vdx +xvd +xdvu +vdx + +xeauhryviqg +wpxkufzsjmctlnybd + +hbzwdlno +tmrj +np +lqfx +kuygescvia + +iqph +ihpq +pqhi +ihqp +qpih + +lsfwxmpkgqzvhecoay +gqfszwakhvymptcexol +cpaxwlzkfqvhsgemyo +lghfwvcmzxpokeysaq + +tgmpafqbuds +hspdfabuqgctm +tpcubdaqsvgm +mxqbktspoaujd + +xktgfvyprhndme +vntmyskfegprid +dsvpfmnkygtre +ydmvpkfretng + +npvgjzuo +mwlackhs + +gyj +myk + +w +w +w +k +w + +sgrhv +rixdgjluf +rgs +rsbg + +kmiqobutwplfryxgeajhnz +ylrtmpauodjnfvwgeixqz +extlfwjsirnmgyuqaopz + +vdngfjbwypio +sukyvfzpeqwthdxg +fyvrndgbwp +ydwfvglp + +fhsi +hsbif + +fihzecojaqm +jzchuomvwsqfr +jzchoqtfm + +kqafdzcgphvbos +qbspzodfavhck +adfozhquktlcibspv +szhpfboagdcqkv + +tmeb +takbe + +ymrhgdo +ypgzhmltd +fdbymgshcx +nghyzldm + +bxgm +gmxb +mxgb +gxbm +xbmvg + +fep +lnp +trjim +dauy +fplk + +udhzexv +dhmezvx +qdxylbhvzw +zveduxcht + +wgvhaokesjirly +osrewigqfdyvzk +kupsxrimowgbe + +skzvhanpljbogdyxtiquw +xzgdwyjluhnbstopikaqv +pasixghzovnjylbwudqkt + +wj +wj +wkj +jw +wj + +nsmyxfhc +xcfymhsn +hxscmnyf +cfxsmnlyh + +jpblgmiyunazcfd +tabnyfmupclzgd +esyvuphfgwbknodzcxlqa + +xkyqozefvgutmrw +rmhzwgeutoypx + +rzaxcemljnvo +kdwyqvohesitfb + +kfqrcezwn +qrnwkzcf +frcnqwzk +frnckvhzwq +kqzrcnfw + +fqux +qxuyfod +ufxq +qxfu +qxuf + +ztopdir +ritpozd +otrpizd +idpotzr + +jzhngmufw +zguwhfj + +ndxhmysbgcriqkewoztujva +cmtwbudvysekqaxizrojng +itncgkdyoaxswrqvmejzpbu +qyvcdusgwbomejtxznkira + +nik +yfi +i +i + +hpsdjo +hobps +ohsp +shpo +kypshio + +jbiyatwz +zbtagnrc +ztnagb +batz + +fvkurj +kfgjvru +jukfrv +kvfujr diff --git a/2020/inputs/day7.txt b/2020/inputs/day7.txt new file mode 100644 index 0000000..4a770f4 --- /dev/null +++ b/2020/inputs/day7.txt @@ -0,0 +1,594 @@ +faded plum bags contain 5 wavy cyan bags. +dull aqua bags contain 4 dark fuchsia bags, 1 shiny purple bag. +dotted olive bags contain 1 striped gray bag. +vibrant brown bags contain 4 dark tan bags, 4 mirrored gray bags. +shiny black bags contain 3 mirrored black bags. +dull bronze bags contain 2 plaid aqua bags, 4 shiny magenta bags, 2 faded green bags, 3 dotted gold bags. +wavy plum bags contain 5 dim indigo bags. +drab brown bags contain 5 clear fuchsia bags. +vibrant maroon bags contain 3 shiny coral bags, 1 dim indigo bag, 4 muted crimson bags, 5 clear black bags. +posh magenta bags contain no other bags. +dull brown bags contain 3 dim violet bags, 3 striped silver bags, 1 shiny purple bag. +pale gray bags contain 3 plaid magenta bags, 3 clear teal bags, 3 pale white bags. +plaid turquoise bags contain 4 bright orange bags, 5 drab white bags, 4 dotted coral bags. +dotted silver bags contain 2 pale silver bags, 4 dark teal bags, 5 posh gold bags, 1 bright orange bag. +light red bags contain 1 dark violet bag, 1 mirrored coral bag, 3 drab tan bags, 4 muted olive bags. +shiny brown bags contain 5 vibrant lavender bags, 4 dark lavender bags. +plaid plum bags contain 1 faded green bag. +vibrant lavender bags contain 4 bright chartreuse bags, 3 dark teal bags, 4 muted aqua bags. +muted yellow bags contain 5 posh yellow bags, 3 dim olive bags, 1 light cyan bag, 1 plaid gray bag. +light beige bags contain 2 wavy orange bags, 5 vibrant salmon bags, 2 dim brown bags. +muted indigo bags contain 3 dim brown bags, 3 drab brown bags. +dim bronze bags contain 4 dim black bags, 5 wavy turquoise bags, 5 bright violet bags, 2 dark bronze bags. +shiny teal bags contain 5 plaid chartreuse bags. +pale aqua bags contain 2 striped lime bags, 4 dark turquoise bags, 3 dull tomato bags, 2 mirrored lavender bags. +plaid violet bags contain 2 light olive bags. +dotted maroon bags contain 5 striped maroon bags, 2 shiny turquoise bags, 2 dull gold bags, 4 pale olive bags. +dim chartreuse bags contain 5 striped plum bags. +plaid gold bags contain 1 striped green bag, 3 plaid coral bags, 4 dotted violet bags. +faded tomato bags contain 2 dark indigo bags. +posh plum bags contain 1 wavy chartreuse bag, 4 vibrant blue bags. +drab bronze bags contain 2 mirrored gray bags, 3 vibrant plum bags. +muted blue bags contain 1 bright brown bag, 2 pale coral bags, 5 plaid purple bags, 4 dim lavender bags. +striped indigo bags contain 5 dark salmon bags. +shiny tan bags contain 2 faded bronze bags, 3 mirrored lavender bags, 2 mirrored cyan bags. +dim red bags contain 5 dull salmon bags, 3 dim purple bags, 2 striped crimson bags. +plaid gray bags contain 5 bright violet bags, 4 vibrant aqua bags, 4 dull tomato bags. +dotted white bags contain 1 drab brown bag, 5 light brown bags. +plaid tan bags contain 3 striped teal bags, 2 dotted brown bags. +vibrant black bags contain 3 plaid tan bags, 4 muted white bags, 4 drab orange bags, 5 muted aqua bags. +drab purple bags contain 5 muted violet bags, 2 vibrant blue bags, 4 pale olive bags. +mirrored beige bags contain 1 plaid gray bag, 2 mirrored lime bags, 3 dark brown bags. +vibrant olive bags contain 5 shiny indigo bags. +drab green bags contain 1 muted violet bag. +faded turquoise bags contain 2 striped brown bags, 3 vibrant white bags, 1 dull lavender bag, 5 bright olive bags. +shiny maroon bags contain 1 dim bronze bag. +dull white bags contain 1 muted salmon bag, 4 dim olive bags, 5 drab white bags, 1 dotted teal bag. +dim white bags contain 3 mirrored lavender bags. +clear beige bags contain 5 shiny cyan bags, 3 clear chartreuse bags. +plaid tomato bags contain 5 muted beige bags. +bright teal bags contain 5 shiny gold bags, 4 clear beige bags, 5 vibrant chartreuse bags. +dotted salmon bags contain 1 clear fuchsia bag, 2 muted maroon bags, 4 posh yellow bags, 1 drab chartreuse bag. +light gold bags contain 4 light maroon bags. +faded cyan bags contain 2 posh magenta bags, 2 dark violet bags. +drab cyan bags contain 5 faded purple bags, 4 striped crimson bags, 1 shiny maroon bag, 4 drab tomato bags. +dotted black bags contain 3 striped turquoise bags, 4 dark tan bags, 4 vibrant lavender bags. +faded purple bags contain 4 dull purple bags. +dim violet bags contain 2 clear blue bags. +wavy gray bags contain 4 muted crimson bags, 2 mirrored silver bags, 5 vibrant chartreuse bags. +posh tan bags contain 4 drab tan bags, 3 muted crimson bags, 2 striped crimson bags, 2 plaid fuchsia bags. +mirrored magenta bags contain 5 pale bronze bags. +plaid brown bags contain 1 bright chartreuse bag. +drab orange bags contain 4 drab teal bags, 1 dark bronze bag, 2 clear purple bags. +dim green bags contain 5 dull maroon bags, 1 dull green bag. +faded teal bags contain 2 bright yellow bags, 2 posh red bags, 2 posh indigo bags. +dim gray bags contain 4 wavy blue bags, 2 shiny maroon bags, 1 pale cyan bag. +light crimson bags contain 1 wavy plum bag, 3 muted magenta bags, 3 plaid aqua bags, 2 striped chartreuse bags. +clear white bags contain 2 posh magenta bags, 5 bright white bags, 5 drab bronze bags, 3 vibrant beige bags. +drab magenta bags contain 4 pale olive bags. +plaid silver bags contain 4 bright violet bags, 3 dim brown bags, 1 dark teal bag. +bright bronze bags contain 4 posh white bags, 3 dull salmon bags. +drab maroon bags contain 3 clear black bags, 2 dotted orange bags. +dark fuchsia bags contain 3 faded chartreuse bags, 5 clear green bags, 4 bright brown bags. +vibrant salmon bags contain 1 bright red bag, 5 clear black bags, 2 clear green bags. +shiny crimson bags contain 4 muted fuchsia bags, 2 plaid red bags, 3 clear green bags. +plaid crimson bags contain 4 bright gold bags, 2 clear turquoise bags, 3 faded magenta bags. +dim turquoise bags contain 3 drab brown bags, 5 plaid cyan bags, 3 plaid teal bags, 5 shiny silver bags. +clear crimson bags contain 3 plaid blue bags, 2 drab tomato bags, 2 dull cyan bags, 3 mirrored fuchsia bags. +pale tomato bags contain 1 dull yellow bag, 3 muted aqua bags. +dim orange bags contain 1 posh magenta bag, 2 wavy gray bags, 5 faded indigo bags. +mirrored orange bags contain 1 posh bronze bag, 2 faded white bags, 1 light orange bag, 2 posh red bags. +striped turquoise bags contain 5 muted salmon bags, 5 dark white bags, 1 mirrored purple bag, 3 pale chartreuse bags. +dotted coral bags contain 3 bright brown bags, 2 posh yellow bags, 3 drab maroon bags. +wavy maroon bags contain 2 clear lime bags. +mirrored indigo bags contain 1 mirrored cyan bag, 1 posh plum bag, 2 plaid silver bags. +wavy indigo bags contain 5 dark violet bags, 5 drab black bags, 4 dark orange bags, 5 muted green bags. +striped tomato bags contain 4 dark indigo bags, 5 light lavender bags. +pale lime bags contain 2 bright orange bags. +muted maroon bags contain 2 bright violet bags, 1 shiny coral bag, 1 posh gray bag. +drab lavender bags contain 1 muted magenta bag. +bright fuchsia bags contain 1 striped lime bag. +wavy beige bags contain 2 bright brown bags, 1 pale black bag, 1 drab tomato bag, 4 vibrant blue bags. +shiny olive bags contain 2 dim teal bags, 1 mirrored cyan bag, 4 dim yellow bags, 4 muted aqua bags. +posh coral bags contain no other bags. +dark green bags contain 2 posh brown bags, 2 muted white bags, 4 bright fuchsia bags. +shiny green bags contain 1 faded crimson bag, 3 striped purple bags, 4 shiny salmon bags, 2 dark bronze bags. +clear coral bags contain no other bags. +dull salmon bags contain 1 muted white bag. +dark lavender bags contain 2 plaid gray bags, 4 muted olive bags. +bright silver bags contain 5 pale black bags. +posh green bags contain 5 muted olive bags, 4 dotted crimson bags, 4 dotted brown bags. +dotted fuchsia bags contain 5 shiny chartreuse bags, 1 dotted coral bag, 1 shiny cyan bag. +dim fuchsia bags contain 1 striped orange bag, 1 clear crimson bag. +dotted cyan bags contain 5 muted olive bags, 3 shiny white bags. +dark beige bags contain 4 light teal bags, 4 drab teal bags, 5 wavy beige bags. +striped magenta bags contain 5 plaid purple bags, 3 dotted crimson bags, 2 dull tomato bags. +striped blue bags contain 3 dim aqua bags. +light silver bags contain 3 shiny green bags, 2 vibrant black bags, 1 wavy turquoise bag, 3 faded bronze bags. +pale indigo bags contain 4 pale silver bags, 3 dotted tomato bags, 1 dark violet bag, 3 clear lime bags. +mirrored turquoise bags contain 1 pale salmon bag, 2 dotted crimson bags, 1 drab tomato bag, 2 muted green bags. +striped beige bags contain 3 dotted tomato bags, 4 vibrant purple bags, 2 plaid tomato bags, 4 dark salmon bags. +pale silver bags contain 5 dark lavender bags, 4 drab tan bags, 5 clear yellow bags. +dark lime bags contain 3 pale aqua bags, 5 posh green bags. +faded coral bags contain 3 dull tomato bags, 4 dark bronze bags, 3 drab tomato bags, 2 bright white bags. +mirrored lavender bags contain 3 mirrored cyan bags. +bright crimson bags contain 2 mirrored silver bags. +striped gray bags contain 3 dotted coral bags, 4 muted maroon bags, 4 dark teal bags, 5 pale bronze bags. +dotted magenta bags contain 2 dim teal bags, 2 wavy turquoise bags, 5 dull turquoise bags. +posh white bags contain 4 drab tomato bags, 2 muted aqua bags. +striped red bags contain 2 plaid blue bags, 1 light plum bag, 3 bright white bags. +pale white bags contain 1 light purple bag. +shiny coral bags contain no other bags. +dark magenta bags contain 4 pale tan bags, 1 posh chartreuse bag, 2 pale yellow bags, 2 pale indigo bags. +light gray bags contain 4 pale green bags, 5 dotted green bags, 4 shiny gray bags. +dim gold bags contain 3 clear violet bags, 5 plaid aqua bags, 2 bright tomato bags, 2 wavy teal bags. +dim crimson bags contain 4 muted blue bags, 2 light tan bags. +wavy tan bags contain 1 posh plum bag, 3 mirrored gray bags, 1 muted purple bag. +posh brown bags contain 4 mirrored black bags. +bright plum bags contain 3 vibrant plum bags, 3 mirrored crimson bags. +faded black bags contain 1 pale lime bag, 2 pale tomato bags. +mirrored yellow bags contain 1 pale aqua bag, 4 dull aqua bags, 4 shiny white bags, 3 clear lime bags. +muted tan bags contain 2 clear brown bags. +drab white bags contain 5 dull coral bags, 2 drab green bags, 4 wavy tomato bags, 5 mirrored cyan bags. +dull black bags contain 4 vibrant tan bags, 1 shiny chartreuse bag, 5 pale gold bags. +posh maroon bags contain 5 dark coral bags, 5 faded yellow bags, 2 light lavender bags, 2 wavy teal bags. +drab coral bags contain 4 posh chartreuse bags, 2 dim red bags. +posh indigo bags contain 2 plaid brown bags, 4 muted green bags. +drab aqua bags contain 2 pale magenta bags, 2 posh orange bags. +drab crimson bags contain 2 pale bronze bags, 4 dotted blue bags, 2 dim silver bags. +drab silver bags contain 5 clear blue bags, 4 pale bronze bags. +clear salmon bags contain 2 pale aqua bags, 1 plaid gray bag, 1 clear coral bag. +wavy chartreuse bags contain no other bags. +dull plum bags contain 3 plaid gray bags, 3 plaid aqua bags, 2 mirrored beige bags, 2 wavy magenta bags. +faded gray bags contain 2 dull cyan bags, 3 light lime bags, 3 bright lavender bags, 5 wavy plum bags. +striped teal bags contain 4 drab maroon bags. +clear lavender bags contain 3 clear coral bags, 5 bright crimson bags, 5 drab brown bags, 2 dim indigo bags. +mirrored maroon bags contain 1 clear gray bag, 3 shiny salmon bags, 3 mirrored violet bags. +muted turquoise bags contain 2 drab teal bags, 2 plaid plum bags, 4 plaid coral bags, 2 wavy chartreuse bags. +dark white bags contain 4 bright fuchsia bags, 1 dull white bag, 3 shiny indigo bags, 3 dim white bags. +drab red bags contain 3 dotted teal bags, 2 striped purple bags. +muted teal bags contain 3 dark violet bags, 4 plaid chartreuse bags, 2 pale crimson bags. +wavy red bags contain 2 clear crimson bags. +striped olive bags contain 2 mirrored lavender bags. +dull teal bags contain 4 pale teal bags, 5 pale violet bags, 2 drab white bags. +light black bags contain 1 dark red bag, 2 plaid tan bags. +clear orange bags contain 5 bright cyan bags. +pale yellow bags contain 2 bright lavender bags. +posh cyan bags contain 4 clear coral bags. +drab tomato bags contain 4 vibrant blue bags, 5 faded beige bags, 3 clear coral bags, 2 mirrored white bags. +pale orange bags contain 2 light aqua bags. +dull tomato bags contain 5 plaid aqua bags, 2 posh magenta bags, 3 vibrant aqua bags. +pale turquoise bags contain 1 pale coral bag, 3 dim teal bags. +plaid maroon bags contain 5 posh maroon bags. +vibrant beige bags contain 5 dull coral bags. +bright purple bags contain 2 vibrant salmon bags, 5 dotted purple bags, 5 clear silver bags. +dull coral bags contain 4 vibrant aqua bags, 3 dotted brown bags, 4 shiny coral bags. +drab gray bags contain 4 vibrant lavender bags. +dull lavender bags contain 3 vibrant lavender bags, 1 posh red bag, 4 drab tan bags, 3 light purple bags. +striped maroon bags contain 3 bright silver bags. +mirrored silver bags contain 5 clear blue bags, 3 posh magenta bags, 2 bright brown bags. +faded yellow bags contain 2 muted maroon bags. +striped purple bags contain 2 dotted yellow bags, 1 clear cyan bag, 2 dark teal bags. +clear gray bags contain 5 dim black bags, 1 faded green bag, 5 muted crimson bags. +plaid cyan bags contain 2 dark teal bags, 1 pale lime bag, 1 wavy beige bag. +bright orange bags contain 5 mirrored brown bags, 2 dotted gold bags. +dotted turquoise bags contain 3 plaid gray bags, 3 clear chartreuse bags. +vibrant turquoise bags contain 1 muted brown bag, 3 dim purple bags, 1 posh gray bag, 5 pale bronze bags. +striped lime bags contain 1 shiny gold bag. +light violet bags contain 4 mirrored purple bags, 5 clear blue bags. +striped orange bags contain 3 light gold bags, 3 light olive bags, 3 muted crimson bags, 2 pale cyan bags. +drab turquoise bags contain 3 dim magenta bags, 4 pale black bags. +pale salmon bags contain 2 mirrored cyan bags, 4 vibrant blue bags. +shiny yellow bags contain 5 vibrant tomato bags, 3 muted salmon bags, 5 wavy tomato bags. +plaid lime bags contain 2 pale yellow bags, 2 shiny red bags, 3 muted crimson bags, 4 dull green bags. +muted cyan bags contain 4 bright green bags, 5 striped bronze bags, 1 vibrant lavender bag, 4 posh violet bags. +dull cyan bags contain 5 dark lavender bags, 5 drab green bags, 1 bright crimson bag, 4 mirrored silver bags. +pale beige bags contain 3 posh coral bags. +shiny chartreuse bags contain 4 mirrored silver bags. +dark silver bags contain 2 dull turquoise bags, 1 muted maroon bag, 5 vibrant magenta bags. +mirrored violet bags contain 4 dark brown bags. +clear aqua bags contain 2 striped beige bags, 1 dotted indigo bag, 5 faded violet bags, 5 vibrant violet bags. +plaid teal bags contain 3 mirrored lavender bags, 4 posh gray bags. +wavy olive bags contain 3 dull blue bags, 5 bright salmon bags, 5 shiny purple bags. +pale lavender bags contain 4 light purple bags, 2 dotted gray bags, 2 pale plum bags, 3 shiny silver bags. +shiny blue bags contain 2 vibrant white bags, 3 light gold bags, 3 mirrored lavender bags, 1 drab plum bag. +light coral bags contain 4 light teal bags, 1 striped chartreuse bag, 5 dotted chartreuse bags. +pale brown bags contain 2 dim gold bags, 2 clear turquoise bags, 3 bright cyan bags, 4 clear maroon bags. +vibrant tomato bags contain 3 dark brown bags, 1 vibrant blue bag. +dull olive bags contain 5 mirrored yellow bags, 2 shiny cyan bags. +light chartreuse bags contain 2 dull aqua bags, 4 dull brown bags, 1 clear fuchsia bag, 4 bright yellow bags. +posh gray bags contain 4 posh green bags, 1 mirrored gray bag. +bright yellow bags contain 4 pale aqua bags. +bright gold bags contain 3 pale indigo bags, 3 dull crimson bags. +dotted red bags contain 4 pale turquoise bags, 4 muted blue bags, 1 bright bronze bag, 2 light blue bags. +clear brown bags contain 1 mirrored yellow bag. +light plum bags contain 2 bright violet bags. +dim purple bags contain 3 faded chartreuse bags, 5 light teal bags. +dull yellow bags contain 5 muted aqua bags, 3 dotted coral bags, 2 drab maroon bags. +shiny gold bags contain 4 pale black bags, 4 dim violet bags, 3 muted yellow bags. +mirrored crimson bags contain 1 striped teal bag, 5 mirrored cyan bags. +shiny lavender bags contain 4 bright brown bags, 3 bright tan bags, 5 dotted crimson bags, 4 pale black bags. +vibrant cyan bags contain 1 dim yellow bag, 5 bright tan bags. +wavy gold bags contain 2 dark brown bags, 1 dull yellow bag. +dark cyan bags contain 4 dim white bags, 2 mirrored indigo bags, 4 muted white bags, 2 bright white bags. +posh lime bags contain 4 shiny plum bags, 3 plaid fuchsia bags. +posh purple bags contain 3 muted salmon bags. +pale magenta bags contain 1 drab gold bag, 1 dark white bag, 3 posh silver bags. +dim plum bags contain 4 dark chartreuse bags, 4 mirrored lavender bags. +plaid indigo bags contain 2 clear lime bags, 5 dull tomato bags. +dark blue bags contain 1 bright olive bag, 1 dull bronze bag, 1 shiny gold bag. +dull red bags contain 2 wavy teal bags, 3 wavy crimson bags, 1 faded olive bag. +striped yellow bags contain 4 drab salmon bags. +vibrant magenta bags contain 4 light beige bags, 2 dark red bags, 1 plaid magenta bag, 5 dim magenta bags. +plaid red bags contain 2 striped red bags, 4 light plum bags, 3 mirrored silver bags. +wavy orange bags contain 5 vibrant white bags, 1 posh coral bag, 5 muted purple bags, 2 light coral bags. +pale green bags contain 5 pale aqua bags, 1 clear gray bag. +dotted chartreuse bags contain 4 muted violet bags, 5 striped teal bags. +light turquoise bags contain 5 dull turquoise bags, 2 dark aqua bags, 1 dull teal bag. +shiny violet bags contain 2 pale indigo bags. +light white bags contain 3 mirrored indigo bags, 1 faded blue bag, 1 plaid white bag, 1 posh plum bag. +muted beige bags contain 4 drab gold bags. +faded silver bags contain 2 drab white bags, 5 pale white bags, 3 clear lime bags. +faded red bags contain 1 bright turquoise bag, 5 faded coral bags, 2 drab purple bags, 5 bright olive bags. +shiny bronze bags contain 4 plaid purple bags, 5 bright red bags, 1 muted white bag, 2 dull fuchsia bags. +dull gold bags contain 1 dotted orange bag. +muted olive bags contain 1 clear coral bag, 1 posh magenta bag, 2 bright violet bags, 1 wavy chartreuse bag. +dotted bronze bags contain 1 plaid beige bag, 3 clear olive bags, 2 light lime bags, 5 dull beige bags. +shiny orange bags contain 5 pale brown bags, 5 clear tomato bags. +wavy salmon bags contain 2 shiny maroon bags. +wavy crimson bags contain 5 bright violet bags, 3 plaid violet bags. +bright coral bags contain 1 dull bronze bag, 5 dotted gold bags, 1 posh gray bag. +dotted crimson bags contain 2 posh magenta bags, 4 mirrored white bags. +bright violet bags contain no other bags. +drab blue bags contain 5 shiny gold bags, 1 shiny brown bag, 4 dark silver bags. +posh salmon bags contain 4 dim purple bags, 1 striped lime bag, 1 muted gray bag, 2 drab gold bags. +dim coral bags contain 3 dark red bags, 2 faded crimson bags. +dark aqua bags contain 3 dotted salmon bags, 4 pale olive bags, 1 vibrant aqua bag, 5 dull lavender bags. +dark orange bags contain 4 mirrored teal bags, 5 clear salmon bags. +vibrant red bags contain 3 vibrant blue bags. +muted lime bags contain 1 dull silver bag. +clear tan bags contain 2 striped beige bags, 1 posh coral bag, 1 wavy teal bag, 2 faded plum bags. +vibrant coral bags contain 2 faded blue bags, 4 bright turquoise bags. +dark olive bags contain 2 dark indigo bags. +dotted blue bags contain 5 faded cyan bags, 4 striped aqua bags, 4 dotted gold bags. +bright maroon bags contain 1 dark bronze bag, 3 vibrant aqua bags, 4 dim magenta bags, 3 clear crimson bags. +bright cyan bags contain 2 wavy tomato bags. +plaid olive bags contain 3 striped indigo bags, 5 dim purple bags, 3 striped bronze bags, 2 light teal bags. +plaid chartreuse bags contain 3 plaid yellow bags, 1 faded brown bag, 1 vibrant tan bag, 4 wavy fuchsia bags. +dull maroon bags contain 3 muted yellow bags. +light fuchsia bags contain 5 drab maroon bags, 5 muted silver bags. +dull orange bags contain 4 dim indigo bags, 4 posh beige bags, 1 bright red bag. +dull blue bags contain 5 wavy yellow bags, 4 posh gray bags. +plaid yellow bags contain 1 bright fuchsia bag, 1 faded beige bag, 1 wavy beige bag, 4 light green bags. +clear black bags contain 1 dull tomato bag. +muted coral bags contain 5 drab indigo bags. +plaid magenta bags contain 3 posh salmon bags. +clear tomato bags contain 5 dotted brown bags, 3 dim tomato bags, 3 drab brown bags. +clear yellow bags contain 3 clear black bags, 2 mirrored black bags. +dark gray bags contain 5 light bronze bags, 4 dotted coral bags, 4 dim chartreuse bags. +light magenta bags contain 4 wavy turquoise bags, 1 mirrored green bag, 2 plaid chartreuse bags. +shiny indigo bags contain 1 bright silver bag, 2 pale tomato bags, 4 light teal bags, 4 posh coral bags. +muted gray bags contain 3 faded beige bags, 1 dark teal bag, 3 muted violet bags, 3 muted white bags. +wavy lavender bags contain 1 clear chartreuse bag, 2 clear maroon bags, 5 dull plum bags. +faded olive bags contain 4 mirrored yellow bags, 4 vibrant tomato bags, 5 muted olive bags. +muted crimson bags contain 1 mirrored gray bag, 4 dim violet bags. +drab chartreuse bags contain 1 pale olive bag, 1 vibrant plum bag. +wavy cyan bags contain 2 mirrored coral bags. +mirrored plum bags contain 3 bright turquoise bags, 3 dark beige bags, 4 mirrored beige bags. +plaid lavender bags contain 1 drab white bag. +muted gold bags contain 1 clear black bag, 2 light orange bags, 4 dotted red bags, 4 dull silver bags. +faded bronze bags contain 4 posh plum bags. +clear turquoise bags contain 1 light gold bag, 1 clear beige bag, 2 striped chartreuse bags. +vibrant gray bags contain 1 plaid white bag. +bright tan bags contain 3 drab silver bags, 2 faded yellow bags, 2 bright green bags. +pale bronze bags contain 5 posh coral bags, 4 clear coral bags, 1 dotted orange bag, 4 wavy chartreuse bags. +clear plum bags contain 1 dim plum bag, 4 light gold bags. +posh turquoise bags contain 3 wavy bronze bags, 4 shiny purple bags. +posh teal bags contain 2 striped magenta bags, 3 dark magenta bags, 5 faded silver bags, 5 mirrored chartreuse bags. +dim yellow bags contain 4 pale bronze bags, 3 shiny tan bags. +faded lavender bags contain 3 dull white bags, 3 striped teal bags. +wavy magenta bags contain 2 pale aqua bags, 4 shiny indigo bags. +dim brown bags contain 2 bright brown bags, 3 striped chartreuse bags, 5 dull purple bags, 1 light cyan bag. +light lime bags contain 5 clear crimson bags, 4 plaid indigo bags, 1 pale silver bag. +striped silver bags contain 3 posh green bags, 3 muted violet bags, 1 drab green bag. +bright brown bags contain no other bags. +vibrant fuchsia bags contain 4 dull olive bags, 2 mirrored gold bags, 3 mirrored bronze bags, 1 posh crimson bag. +plaid purple bags contain 3 faded beige bags, 1 drab green bag, 2 striped chartreuse bags. +wavy violet bags contain 2 vibrant gray bags, 5 wavy fuchsia bags. +dark maroon bags contain 5 pale chartreuse bags, 5 striped brown bags. +pale coral bags contain 3 vibrant plum bags. +dark black bags contain 4 striped salmon bags, 4 dim bronze bags. +plaid bronze bags contain 2 mirrored black bags, 1 drab bronze bag, 4 plaid purple bags, 5 dull tomato bags. +faded orange bags contain 5 plaid indigo bags. +light lavender bags contain 2 shiny magenta bags, 5 dim lavender bags, 1 dotted crimson bag. +dull chartreuse bags contain 4 clear lime bags. +dark gold bags contain 4 light magenta bags. +dim black bags contain 4 shiny silver bags, 1 dull tomato bag. +plaid salmon bags contain 3 light magenta bags, 4 dull fuchsia bags, 2 striped salmon bags. +vibrant bronze bags contain 5 mirrored white bags, 1 dull coral bag. +wavy brown bags contain 1 light gold bag, 4 drab purple bags, 3 muted violet bags, 4 muted fuchsia bags. +dotted lavender bags contain 4 dotted indigo bags, 2 dull lavender bags. +dotted gold bags contain 1 posh magenta bag, 2 posh yellow bags. +faded brown bags contain 4 muted blue bags, 3 wavy teal bags. +light yellow bags contain 3 clear black bags, 1 dotted crimson bag. +striped salmon bags contain 1 dull yellow bag, 5 mirrored gray bags, 5 light lavender bags, 5 mirrored brown bags. +light blue bags contain 5 mirrored purple bags, 3 dim violet bags, 2 pale tomato bags. +faded gold bags contain 3 plaid gray bags. +shiny aqua bags contain 1 striped crimson bag, 5 pale black bags. +shiny lime bags contain 4 dark green bags. +vibrant tan bags contain 3 clear silver bags, 3 pale white bags. +vibrant aqua bags contain no other bags. +vibrant teal bags contain 3 wavy tan bags. +light maroon bags contain 3 vibrant silver bags. +faded crimson bags contain 3 plaid red bags. +light teal bags contain 2 dark teal bags, 1 faded beige bag, 4 dull cyan bags. +mirrored coral bags contain 2 vibrant plum bags. +muted black bags contain 2 drab magenta bags, 1 mirrored gray bag, 4 drab tan bags, 1 dim indigo bag. +striped gold bags contain 1 dark lavender bag, 4 drab brown bags, 2 bright silver bags, 2 striped teal bags. +light purple bags contain 3 posh gray bags. +dull silver bags contain 2 clear chartreuse bags, 3 plaid silver bags, 1 drab salmon bag, 2 wavy teal bags. +clear bronze bags contain 4 dull red bags. +wavy yellow bags contain 3 dull tomato bags, 2 posh green bags, 4 plaid aqua bags, 2 faded purple bags. +muted purple bags contain 5 pale black bags, 2 muted salmon bags, 2 muted yellow bags. +plaid aqua bags contain no other bags. +drab plum bags contain 3 drab turquoise bags. +muted orange bags contain 1 faded blue bag, 5 plaid brown bags, 4 mirrored chartreuse bags. +dim silver bags contain 4 dark fuchsia bags, 2 clear cyan bags, 2 dark green bags, 4 dotted silver bags. +pale tan bags contain 5 shiny silver bags, 5 drab indigo bags. +wavy tomato bags contain 4 clear black bags, 4 plaid gray bags. +posh bronze bags contain 4 drab green bags. +clear blue bags contain 3 bright brown bags, 5 dull tomato bags, 1 clear black bag, 5 bright violet bags. +striped plum bags contain 4 plaid yellow bags, 3 dark teal bags, 2 mirrored lavender bags, 1 dotted salmon bag. +muted salmon bags contain 1 dull cyan bag, 2 clear coral bags, 1 posh coral bag. +light aqua bags contain 4 clear maroon bags, 4 striped black bags. +bright blue bags contain 4 drab violet bags, 4 light indigo bags, 3 muted indigo bags. +light brown bags contain 5 striped lavender bags. +light salmon bags contain 1 drab beige bag, 5 faded orange bags, 4 plaid coral bags, 5 light chartreuse bags. +posh beige bags contain 1 shiny red bag. +dotted orange bags contain 2 dotted brown bags, 3 mirrored silver bags, 1 dull tomato bag. +wavy purple bags contain 1 mirrored green bag, 1 clear maroon bag. +dark coral bags contain 5 bright chartreuse bags, 4 clear lime bags. +dim lime bags contain 3 bright olive bags, 3 dull gold bags. +pale plum bags contain 1 light orange bag, 3 drab orange bags, 5 mirrored purple bags. +dim beige bags contain 5 pale fuchsia bags, 4 mirrored fuchsia bags, 4 plaid teal bags, 1 shiny orange bag. +drab tan bags contain 5 plaid silver bags, 3 muted crimson bags, 1 clear salmon bag. +posh blue bags contain 4 plaid aqua bags, 2 drab salmon bags, 4 pale teal bags, 2 drab gold bags. +drab violet bags contain 3 shiny white bags. +shiny plum bags contain 3 mirrored green bags, 2 dark yellow bags, 3 pale salmon bags. +pale fuchsia bags contain 5 faded violet bags. +clear fuchsia bags contain 2 dark lavender bags, 3 posh green bags. +mirrored lime bags contain 3 light bronze bags. +plaid white bags contain 1 dim lavender bag, 4 dim olive bags, 3 clear yellow bags. +striped violet bags contain 4 plaid plum bags, 3 plaid black bags, 4 pale teal bags, 5 wavy magenta bags. +dark purple bags contain 2 shiny gold bags, 3 faded blue bags. +mirrored blue bags contain 1 drab fuchsia bag, 4 posh white bags, 3 wavy red bags. +pale black bags contain 2 dim olive bags, 5 bright brown bags. +dark brown bags contain 5 dotted purple bags, 2 striped silver bags. +muted lavender bags contain 3 posh brown bags, 2 clear yellow bags, 3 posh coral bags, 1 shiny tan bag. +muted bronze bags contain 1 drab teal bag, 5 drab tomato bags, 1 drab magenta bag, 5 posh maroon bags. +posh violet bags contain 5 bright white bags, 5 vibrant tan bags. +clear green bags contain 3 mirrored silver bags, 2 dotted orange bags. +dotted plum bags contain 3 plaid yellow bags, 1 wavy yellow bag, 1 drab cyan bag. +drab olive bags contain 1 shiny indigo bag. +wavy turquoise bags contain 3 muted yellow bags. +dark violet bags contain 2 bright crimson bags, 4 bright fuchsia bags, 2 dull blue bags. +posh gold bags contain 3 drab teal bags. +dim cyan bags contain 5 clear olive bags, 4 bright turquoise bags, 1 pale gray bag. +posh red bags contain 1 bright salmon bag. +dull tan bags contain 4 plaid cyan bags. +faded indigo bags contain 3 light gold bags, 5 dotted brown bags, 3 dotted cyan bags, 2 drab teal bags. +clear violet bags contain 1 wavy turquoise bag, 1 vibrant chartreuse bag, 1 dark violet bag, 3 bright bronze bags. +clear indigo bags contain 1 mirrored tan bag, 4 faded indigo bags. +bright turquoise bags contain 1 drab teal bag, 4 dull salmon bags, 4 pale olive bags, 2 faded chartreuse bags. +muted tomato bags contain 1 dark purple bag, 3 striped tan bags. +posh silver bags contain 4 muted gray bags. +mirrored olive bags contain 5 bright lavender bags, 2 clear blue bags, 5 dotted crimson bags, 5 pale black bags. +shiny tomato bags contain 1 mirrored purple bag, 4 posh gold bags, 3 vibrant plum bags. +striped coral bags contain 5 clear orange bags, 3 muted coral bags, 4 bright green bags, 1 clear chartreuse bag. +mirrored chartreuse bags contain 4 clear blue bags. +pale maroon bags contain 1 muted indigo bag. +striped black bags contain 3 striped gray bags, 1 striped lime bag, 4 bright cyan bags, 4 light orange bags. +dim maroon bags contain 4 dull cyan bags. +bright beige bags contain 2 pale fuchsia bags, 5 vibrant beige bags, 1 light lavender bag. +shiny gray bags contain 2 striped lime bags, 1 pale black bag, 4 wavy tomato bags, 2 vibrant brown bags. +drab lime bags contain 5 muted bronze bags, 2 posh indigo bags. +dull gray bags contain 2 dull plum bags, 4 dim white bags, 2 shiny purple bags. +light olive bags contain 4 clear salmon bags, 1 dim indigo bag. +vibrant violet bags contain 5 striped tan bags, 1 pale lime bag, 4 posh plum bags, 4 mirrored black bags. +posh lavender bags contain 4 pale tomato bags. +plaid coral bags contain 3 mirrored olive bags, 2 muted black bags, 3 light plum bags. +vibrant blue bags contain 4 mirrored silver bags. +dim aqua bags contain 5 dim maroon bags. +wavy bronze bags contain 5 wavy plum bags, 1 bright cyan bag, 2 drab chartreuse bags. +muted plum bags contain 3 plaid silver bags, 5 faded black bags, 3 drab maroon bags. +dull turquoise bags contain 4 plaid silver bags. +plaid blue bags contain 3 plaid purple bags. +dotted tan bags contain 5 plaid chartreuse bags, 4 dotted coral bags, 4 posh green bags, 1 striped turquoise bag. +plaid black bags contain 2 drab salmon bags, 5 posh maroon bags. +light cyan bags contain 2 dotted orange bags, 5 drab green bags, 1 bright lavender bag. +dull fuchsia bags contain 2 posh red bags, 4 mirrored beige bags, 2 dull salmon bags, 4 striped purple bags. +dark turquoise bags contain 4 drab tomato bags, 3 dotted chartreuse bags, 5 muted salmon bags, 4 posh magenta bags. +vibrant silver bags contain 3 dark brown bags, 2 wavy beige bags, 5 dull turquoise bags, 2 drab tan bags. +dotted tomato bags contain 3 drab tan bags, 2 striped magenta bags, 5 dim violet bags, 4 wavy tomato bags. +vibrant white bags contain 5 bright crimson bags, 2 mirrored white bags, 5 mirrored indigo bags, 4 wavy teal bags. +shiny fuchsia bags contain 1 pale lime bag. +wavy fuchsia bags contain 4 clear cyan bags. +dotted gray bags contain 3 striped chartreuse bags, 1 dark fuchsia bag. +bright tomato bags contain 4 wavy orange bags, 2 dotted salmon bags, 1 striped gray bag, 3 pale tomato bags. +clear chartreuse bags contain 3 clear purple bags. +dim teal bags contain 3 faded silver bags, 5 vibrant silver bags, 2 wavy fuchsia bags. +dotted yellow bags contain 5 bright bronze bags, 4 drab teal bags. +dark indigo bags contain 5 plaid red bags, 5 dim purple bags. +wavy black bags contain 5 shiny tomato bags, 2 clear gray bags, 4 dim lavender bags, 3 clear blue bags. +striped green bags contain 3 light crimson bags, 5 mirrored cyan bags, 2 mirrored maroon bags, 2 faded yellow bags. +dull lime bags contain 3 pale yellow bags. +faded chartreuse bags contain 2 wavy teal bags, 3 dim olive bags, 2 dull purple bags, 5 vibrant plum bags. +dark yellow bags contain 2 muted brown bags. +plaid beige bags contain 3 pale green bags, 3 bright purple bags, 5 faded black bags, 1 drab brown bag. +faded maroon bags contain 5 drab tomato bags. +muted silver bags contain 3 striped lime bags, 3 dim orange bags, 3 muted aqua bags, 1 plaid black bag. +pale violet bags contain 1 mirrored gray bag, 1 dull gold bag, 1 wavy crimson bag, 1 pale magenta bag. +dim olive bags contain no other bags. +mirrored bronze bags contain 2 drab white bags. +dull green bags contain 1 striped silver bag, 2 bright orange bags, 4 dull yellow bags, 4 dotted chartreuse bags. +bright gray bags contain 1 striped gray bag, 5 dull teal bags, 4 light beige bags, 2 vibrant orange bags. +light indigo bags contain 1 dim maroon bag, 4 dark indigo bags, 1 dark brown bag, 2 muted beige bags. +bright magenta bags contain 2 muted lime bags. +posh crimson bags contain 4 pale indigo bags, 2 faded green bags. +vibrant plum bags contain 1 posh gray bag, 3 mirrored silver bags, 4 bright brown bags, 2 posh magenta bags. +wavy lime bags contain 4 wavy black bags, 4 shiny cyan bags, 5 striped aqua bags, 4 plaid gray bags. +shiny silver bags contain 5 dotted crimson bags, 2 wavy turquoise bags, 1 shiny coral bag. +dark tan bags contain 5 clear silver bags. +mirrored brown bags contain 1 dotted brown bag, 2 plaid gray bags, 5 dull tomato bags, 5 clear black bags. +muted brown bags contain 3 drab magenta bags, 4 plaid aqua bags, 5 dim black bags. +posh black bags contain 2 bright turquoise bags, 3 mirrored maroon bags, 1 dull white bag. +wavy aqua bags contain 3 drab green bags, 3 clear magenta bags. +vibrant chartreuse bags contain 3 muted violet bags. +wavy silver bags contain 2 muted yellow bags, 4 plaid violet bags. +shiny salmon bags contain 1 clear yellow bag. +clear purple bags contain 2 posh green bags, 2 muted gray bags. +clear cyan bags contain 5 posh gray bags, 5 plaid aqua bags, 1 wavy tomato bag, 1 dim lavender bag. +wavy coral bags contain 5 dim yellow bags, 3 clear yellow bags. +wavy green bags contain 4 plaid bronze bags, 4 dull coral bags. +mirrored gold bags contain 5 bright lavender bags. +muted fuchsia bags contain 1 dotted purple bag. +clear maroon bags contain 3 muted gray bags, 2 bright chartreuse bags, 3 dotted gold bags. +faded salmon bags contain 5 clear green bags. +striped aqua bags contain 5 pale yellow bags, 1 dotted salmon bag, 1 wavy teal bag, 1 muted yellow bag. +plaid fuchsia bags contain 2 dim olive bags. +pale chartreuse bags contain 3 posh magenta bags, 3 mirrored yellow bags. +shiny beige bags contain 1 mirrored indigo bag. +posh aqua bags contain 3 pale silver bags, 3 shiny tan bags, 5 striped blue bags, 5 dull salmon bags. +dull magenta bags contain 5 dotted lime bags, 4 bright plum bags, 5 vibrant turquoise bags. +posh tomato bags contain 5 shiny tan bags, 1 wavy salmon bag. +clear red bags contain 5 clear black bags. +dotted aqua bags contain 1 clear black bag. +clear olive bags contain 1 plaid gray bag, 3 clear cyan bags. +dotted green bags contain 3 light red bags. +clear teal bags contain 5 faded coral bags, 3 wavy plum bags, 5 bright orange bags, 1 clear purple bag. +plaid orange bags contain 4 pale chartreuse bags, 1 dark silver bag, 2 drab tomato bags. +pale teal bags contain 1 drab black bag. +posh chartreuse bags contain 1 dotted gold bag, 4 bright salmon bags. +pale red bags contain 2 vibrant plum bags, 4 wavy cyan bags, 2 dotted white bags, 1 posh silver bag. +faded violet bags contain 1 mirrored white bag, 4 muted green bags, 5 mirrored olive bags, 1 dim brown bag. +faded fuchsia bags contain 2 dark brown bags. +dotted brown bags contain 4 clear blue bags. +dark teal bags contain 5 dull cyan bags. +bright salmon bags contain 2 pale black bags, 5 dotted chartreuse bags, 2 striped chartreuse bags. +pale blue bags contain 4 shiny gold bags, 2 clear white bags, 1 dotted coral bag. +dim tan bags contain 3 plaid yellow bags, 5 clear blue bags, 2 clear cyan bags. +dull beige bags contain 5 shiny maroon bags, 4 mirrored bronze bags, 4 dark plum bags. +clear magenta bags contain 5 dim bronze bags, 5 wavy olive bags. +bright black bags contain 2 bright bronze bags, 5 mirrored gold bags, 4 dark yellow bags. +muted aqua bags contain 2 dark teal bags. +faded blue bags contain 4 clear salmon bags, 1 light cyan bag, 5 wavy tomato bags. +dotted indigo bags contain 2 shiny maroon bags, 2 wavy tan bags, 4 dim tomato bags, 1 posh plum bag. +striped chartreuse bags contain 2 dotted orange bags, 3 bright lavender bags. +dim indigo bags contain 4 shiny coral bags, 4 mirrored olive bags. +dotted purple bags contain 4 mirrored white bags, 1 posh yellow bag, 5 drab maroon bags. +muted chartreuse bags contain 5 bright silver bags, 2 bright brown bags. +shiny purple bags contain 3 dim maroon bags, 2 mirrored lime bags, 2 light lavender bags, 3 dotted salmon bags. +faded white bags contain 3 vibrant white bags, 5 muted gray bags. +muted red bags contain 3 posh coral bags. +mirrored tan bags contain 1 dotted gold bag, 2 dark coral bags, 3 light purple bags. +dim blue bags contain 3 dull blue bags, 4 posh plum bags. +bright indigo bags contain 1 muted white bag, 1 wavy fuchsia bag. +striped crimson bags contain 3 dotted coral bags. +light orange bags contain 3 striped chartreuse bags, 4 bright silver bags, 5 clear cyan bags. +posh yellow bags contain 3 bright brown bags. +dotted beige bags contain 1 plaid red bag. +faded aqua bags contain 3 drab tan bags. +shiny red bags contain 3 striped lime bags, 5 wavy teal bags, 2 muted olive bags, 1 shiny chartreuse bag. +light tomato bags contain 4 muted green bags. +bright olive bags contain 4 shiny maroon bags, 1 striped tan bag, 2 drab teal bags, 3 mirrored chartreuse bags. +mirrored white bags contain 4 vibrant aqua bags, 4 clear blue bags, 4 bright violet bags, 1 muted olive bag. +posh olive bags contain 2 shiny maroon bags, 3 faded coral bags, 1 dark turquoise bag. +vibrant lime bags contain 1 light lime bag, 5 bright lime bags, 4 vibrant olive bags. +striped brown bags contain 3 clear chartreuse bags, 4 drab magenta bags. +striped lavender bags contain 1 wavy plum bag. +wavy white bags contain 4 dotted red bags. +dark bronze bags contain 2 posh green bags, 1 dotted crimson bag, 5 bright lavender bags, 1 shiny coral bag. +mirrored black bags contain 3 muted salmon bags. +shiny magenta bags contain 4 dotted orange bags, 4 bright silver bags, 3 posh coral bags. +light bronze bags contain 3 dotted coral bags. +mirrored gray bags contain 1 muted olive bag, 1 bright violet bag. +bright lavender bags contain 1 dull tomato bag, 2 clear blue bags. +drab yellow bags contain 3 dim tomato bags, 3 striped green bags. +dark chartreuse bags contain 5 vibrant violet bags, 4 shiny tan bags, 4 dark orange bags, 1 dull tan bag. +vibrant indigo bags contain 3 mirrored violet bags, 3 light teal bags, 2 dim red bags. +plaid green bags contain 3 wavy blue bags, 4 wavy yellow bags, 1 dull lavender bag. +mirrored purple bags contain 5 vibrant silver bags. +vibrant yellow bags contain 4 plaid brown bags, 3 drab bronze bags, 5 posh bronze bags, 3 mirrored lime bags. +pale gold bags contain 4 shiny indigo bags, 4 clear maroon bags. +shiny cyan bags contain 3 dim olive bags. +dim salmon bags contain 5 faded beige bags, 2 faded orange bags, 2 shiny purple bags. +dark crimson bags contain 3 dull aqua bags, 1 wavy olive bag, 3 posh plum bags, 3 bright brown bags. +vibrant gold bags contain 3 wavy gray bags, 4 clear white bags, 1 faded salmon bag, 3 drab aqua bags. +faded magenta bags contain 5 plaid aqua bags, 4 faded purple bags, 5 wavy bronze bags. +drab black bags contain 3 pale aqua bags, 2 clear coral bags, 2 mirrored silver bags, 5 dark cyan bags. +bright green bags contain 1 shiny aqua bag, 5 drab salmon bags, 5 wavy tomato bags, 4 faded beige bags. +bright aqua bags contain 2 vibrant magenta bags, 3 dim indigo bags, 5 dark fuchsia bags. +pale olive bags contain 1 dotted brown bag. +mirrored fuchsia bags contain 1 dull brown bag, 3 light cyan bags. +mirrored red bags contain 3 plaid lavender bags. +wavy blue bags contain 5 wavy turquoise bags, 3 light green bags, 4 dim indigo bags, 3 posh coral bags. +clear silver bags contain 4 plaid gray bags. +muted white bags contain 2 dotted salmon bags, 4 mirrored white bags, 3 clear cyan bags, 2 muted chartreuse bags. +dim tomato bags contain 3 drab white bags, 1 posh gray bag, 3 dark cyan bags, 5 posh green bags. +drab beige bags contain 1 light orange bag, 3 bright salmon bags, 3 pale silver bags. +clear gold bags contain 2 vibrant white bags, 2 plaid yellow bags. +vibrant orange bags contain 5 muted chartreuse bags. +striped tan bags contain 1 wavy gold bag, 3 mirrored black bags, 1 shiny aqua bag, 5 vibrant red bags. +bright lime bags contain 4 dim indigo bags, 3 dull tomato bags. +bright red bags contain 5 drab magenta bags, 1 clear salmon bag. +vibrant green bags contain 4 plaid tomato bags. +light tan bags contain 5 muted green bags. +striped white bags contain 1 faded silver bag, 2 vibrant red bags. +dull violet bags contain 5 dull turquoise bags. +drab salmon bags contain 3 posh magenta bags, 1 dark teal bag. +mirrored cyan bags contain 2 dim violet bags, 1 plaid aqua bag, 1 vibrant blue bag, 1 posh magenta bag. +wavy teal bags contain 1 bright crimson bag, 2 light cyan bags, 4 striped silver bags. +vibrant purple bags contain 5 shiny magenta bags, 1 dotted orange bag, 2 wavy teal bags. +faded beige bags contain 1 posh green bag, 5 clear coral bags. +faded lime bags contain 1 wavy gray bag, 1 light orange bag, 5 clear bronze bags. +mirrored green bags contain 5 drab bronze bags, 3 muted violet bags, 1 clear blue bag. +light green bags contain 5 mirrored lavender bags, 3 drab gold bags. +pale crimson bags contain 3 pale chartreuse bags. +mirrored aqua bags contain 4 drab plum bags. +dull crimson bags contain 2 bright white bags, 5 drab olive bags, 5 pale salmon bags. +dull purple bags contain 1 posh magenta bag, 3 mirrored brown bags. +bright white bags contain 4 vibrant blue bags, 3 dull brown bags, 4 drab green bags. +drab indigo bags contain 2 bright salmon bags, 2 muted maroon bags, 2 clear gray bags. +striped fuchsia bags contain 2 drab gold bags, 4 mirrored white bags, 3 muted black bags, 1 dark teal bag. +dark tomato bags contain 3 muted fuchsia bags, 1 dotted lavender bag, 4 drab turquoise bags. +mirrored tomato bags contain 5 dark olive bags, 4 light black bags, 4 dark magenta bags. +dark plum bags contain 4 wavy yellow bags, 4 shiny salmon bags. +dark salmon bags contain 1 dim bronze bag, 4 pale indigo bags, 5 dotted chartreuse bags. +dotted lime bags contain 1 shiny brown bag, 3 faded lavender bags. +dark red bags contain 3 posh green bags, 1 vibrant bronze bag, 2 dull maroon bags. +dim lavender bags contain 2 dark turquoise bags. +striped cyan bags contain 1 clear chartreuse bag. +dull indigo bags contain 5 shiny brown bags. +faded green bags contain 1 drab maroon bag. +drab fuchsia bags contain 2 clear olive bags, 1 bright cyan bag. +drab gold bags contain 2 dull turquoise bags, 5 dim lavender bags, 4 light teal bags. +dotted violet bags contain 3 drab tomato bags, 5 dark lavender bags, 4 bright fuchsia bags. +shiny turquoise bags contain 4 light black bags. +muted green bags contain 3 vibrant bronze bags, 4 dim olive bags, 2 posh yellow bags, 2 dull cyan bags. +pale purple bags contain 2 drab yellow bags, 3 bright crimson bags. +posh fuchsia bags contain 1 dull tan bag, 2 dim orange bags. +drab teal bags contain 1 dim violet bag, 2 drab green bags, 5 mirrored lavender bags, 2 faded purple bags. +mirrored teal bags contain 4 vibrant aqua bags, 2 dull turquoise bags, 4 vibrant bronze bags, 3 mirrored olive bags. +muted violet bags contain 3 wavy chartreuse bags. +mirrored salmon bags contain 3 clear cyan bags, 5 posh plum bags, 1 shiny coral bag. +vibrant crimson bags contain 4 dotted chartreuse bags, 2 wavy yellow bags, 3 drab green bags. +dotted teal bags contain 3 clear black bags, 1 faded blue bag, 1 clear beige bag, 4 striped brown bags. +posh orange bags contain 1 dim olive bag. +striped bronze bags contain 1 dull salmon bag, 4 wavy teal bags, 1 pale salmon bag, 2 dim aqua bags. +clear lime bags contain 1 dim lavender bag, 1 drab magenta bag. +muted magenta bags contain 1 shiny indigo bag, 4 mirrored cyan bags, 4 shiny cyan bags, 2 posh bronze bags. +bright chartreuse bags contain 5 drab white bags, 3 dotted purple bags. +dim magenta bags contain 2 dull turquoise bags, 1 dull coral bag, 3 dark violet bags, 4 muted crimson bags. +pale cyan bags contain 5 dotted coral bags, 4 drab chartreuse bags, 4 dull plum bags. +shiny white bags contain 2 drab salmon bags, 3 shiny silver bags. +faded tan bags contain 4 posh magenta bags, 1 pale teal bag. diff --git a/2020/inputs/day8.txt b/2020/inputs/day8.txt new file mode 100644 index 0000000..1f0d43c --- /dev/null +++ b/2020/inputs/day8.txt @@ -0,0 +1,653 @@ +acc +9 +acc -2 +acc -12 +acc +33 +jmp +301 +nop +508 +jmp +216 +acc +27 +acc +35 +acc +43 +acc +31 +jmp +309 +acc +18 +acc -19 +acc +7 +jmp +44 +acc -13 +acc -17 +acc +31 +jmp +311 +nop +612 +jmp +143 +acc +22 +nop +85 +jmp +458 +acc -3 +jmp +13 +acc -19 +acc +27 +acc +12 +jmp +483 +acc +40 +acc +6 +jmp +128 +jmp +10 +acc +0 +acc -3 +acc -2 +jmp -11 +acc +43 +acc -12 +jmp +158 +acc +0 +jmp +240 +jmp +1 +acc +5 +acc +15 +jmp +187 +nop +563 +jmp +51 +acc -16 +jmp +158 +jmp +322 +acc +47 +nop -1 +jmp +299 +acc +26 +acc +25 +jmp +232 +jmp -9 +acc +15 +jmp +54 +jmp +558 +acc +7 +acc -7 +jmp +399 +nop +447 +jmp +71 +acc +26 +acc +46 +jmp +145 +acc +38 +acc +30 +acc +21 +jmp +263 +acc +10 +jmp +168 +acc +22 +nop +561 +jmp -26 +jmp +1 +acc -7 +jmp -5 +acc +28 +acc -6 +jmp +370 +jmp +94 +acc +50 +acc +42 +acc -9 +acc +30 +jmp +70 +acc +29 +jmp +166 +acc -5 +acc -18 +nop +84 +acc +2 +jmp +366 +jmp -40 +acc -4 +acc -15 +acc -1 +jmp +169 +jmp +1 +acc -4 +acc +0 +jmp -45 +nop -21 +nop +241 +acc -18 +acc +19 +jmp +26 +nop -51 +jmp +260 +acc +17 +jmp +428 +acc +6 +jmp +405 +acc +22 +acc +10 +nop +471 +jmp +352 +acc -6 +acc +48 +acc +7 +acc +3 +jmp +57 +acc -10 +acc +16 +acc +16 +acc +43 +jmp +432 +acc -5 +acc +0 +nop +339 +acc +49 +jmp +17 +acc +33 +nop +166 +acc -5 +jmp +392 +nop +246 +acc -7 +acc +21 +acc +30 +jmp +398 +acc +36 +acc +24 +acc -15 +acc -9 +jmp +114 +acc +19 +jmp +11 +acc +43 +nop +182 +jmp -129 +nop -29 +acc -6 +acc +2 +jmp +398 +jmp +78 +acc +36 +jmp +393 +acc +15 +nop -11 +acc -7 +acc -9 +jmp +76 +acc +0 +acc +27 +jmp +25 +acc +27 +nop -54 +jmp +458 +acc +3 +acc +29 +acc -4 +acc +43 +jmp +413 +acc +33 +acc +13 +jmp +382 +jmp -83 +acc +42 +acc +24 +jmp +64 +acc +23 +acc -13 +nop +110 +acc -5 +jmp +114 +jmp +113 +nop +112 +acc +26 +jmp -133 +jmp -12 +jmp +1 +jmp +330 +acc +25 +acc -1 +acc +30 +acc +42 +jmp -187 +jmp +1 +acc +20 +acc +35 +acc +36 +jmp -125 +jmp +165 +acc +28 +acc -17 +acc -12 +jmp +1 +jmp -120 +nop +1 +acc +2 +acc +26 +jmp +398 +acc +20 +acc -1 +jmp -127 +acc +36 +acc +14 +jmp +1 +jmp +331 +acc +50 +acc +1 +acc -10 +nop +159 +jmp -83 +jmp +374 +acc +17 +jmp +372 +acc +44 +nop -39 +jmp +228 +acc +17 +jmp +74 +acc +16 +acc +33 +acc -2 +jmp +152 +jmp +29 +acc +8 +acc +27 +nop +59 +jmp -32 +acc +28 +jmp -227 +nop -35 +jmp -168 +acc +13 +nop +390 +jmp -204 +acc +16 +acc +44 +jmp -230 +jmp +25 +acc +30 +jmp +383 +acc -11 +acc +38 +acc +11 +jmp +341 +acc +35 +acc +46 +acc -1 +jmp +94 +acc -4 +acc +12 +jmp +111 +jmp +133 +nop +283 +acc +13 +acc +37 +jmp +74 +nop -218 +jmp -178 +acc +46 +acc +25 +acc -5 +jmp -174 +acc +28 +acc +39 +acc +36 +acc +22 +jmp -172 +acc +19 +jmp -250 +nop +62 +acc +44 +nop +347 +acc +40 +jmp +345 +acc -3 +acc -13 +acc -11 +jmp +56 +jmp -180 +acc +17 +acc -4 +acc +46 +nop -165 +jmp +321 +acc -4 +jmp +1 +acc +9 +acc -12 +jmp -155 +acc +5 +jmp -96 +acc +0 +acc -2 +acc +38 +jmp +67 +acc -4 +nop -283 +acc +28 +jmp +324 +acc -9 +acc +43 +acc -1 +acc +9 +jmp -290 +acc +3 +acc +22 +nop +84 +acc -17 +jmp -210 +acc +7 +jmp -260 +nop -232 +nop +87 +acc +43 +acc +36 +jmp +96 +jmp +238 +acc +13 +acc -14 +acc +32 +acc +11 +jmp -146 +acc +13 +acc +37 +acc -10 +jmp +187 +acc +49 +acc +15 +jmp -234 +jmp -328 +jmp -136 +jmp +143 +jmp +1 +acc +27 +acc +22 +jmp +1 +jmp -5 +acc +30 +nop -7 +acc -6 +jmp -71 +acc -17 +acc +15 +jmp -52 +jmp -126 +acc -4 +jmp +151 +jmp +52 +nop -86 +acc +25 +jmp +187 +nop -22 +jmp -219 +acc +33 +nop -120 +acc +0 +jmp +215 +acc +46 +acc +38 +jmp +1 +jmp -262 +jmp +157 +acc -15 +acc +48 +acc +39 +acc +10 +jmp -137 +acc +47 +acc +50 +jmp -324 +nop +214 +acc +39 +jmp -178 +acc +49 +acc -10 +jmp -268 +jmp +50 +acc -14 +nop -100 +jmp +20 +acc +45 +acc -12 +acc -4 +jmp -208 +acc -19 +jmp -340 +acc +36 +nop -358 +acc +5 +jmp -348 +acc +47 +nop -18 +acc -12 +jmp -131 +acc +19 +acc +10 +acc +19 +acc +31 +jmp -164 +nop +162 +nop -260 +jmp +146 +acc +32 +acc -1 +nop -14 +jmp -192 +acc +3 +acc +31 +nop -185 +jmp -208 +jmp -69 +acc +43 +acc +43 +jmp -68 +acc -16 +acc +5 +acc -9 +jmp +126 +acc +33 +acc +2 +acc +34 +acc -9 +jmp -16 +acc +34 +acc -19 +jmp -266 +nop +135 +nop -389 +acc +33 +jmp -195 +acc +48 +jmp +1 +acc -12 +jmp +143 +nop -317 +acc -14 +nop -127 +acc +32 +jmp -372 +acc +24 +nop -41 +nop -42 +jmp -344 +acc +23 +nop +117 +nop +92 +acc +42 +jmp +143 +acc +48 +acc -6 +nop -272 +acc -13 +jmp -379 +acc -2 +acc +44 +acc +9 +jmp -369 +acc +6 +acc +25 +acc +34 +jmp -301 +nop -227 +acc +43 +jmp -141 +acc +12 +acc +41 +acc +17 +acc -11 +jmp +29 +jmp -121 +acc +6 +acc +7 +acc +7 +jmp +131 +nop +144 +nop -142 +acc -13 +acc -18 +jmp +149 +acc +14 +acc +49 +acc +25 +acc -17 +jmp -9 +acc +26 +acc -4 +jmp -230 +acc -18 +acc +36 +acc +27 +nop -142 +jmp +21 +acc +34 +nop +54 +jmp -476 +acc +10 +jmp -174 +nop -354 +acc +1 +jmp -324 +acc +40 +jmp +94 +acc -12 +jmp -136 +nop -454 +acc -14 +jmp +116 +acc +12 +acc -1 +nop -453 +jmp -241 +jmp -479 +acc -19 +jmp -87 +acc +27 +acc +48 +acc +0 +jmp -476 +acc +16 +acc +46 +jmp -534 +acc +0 +jmp -344 +acc +0 +acc +28 +jmp +10 +jmp -248 +nop -186 +jmp +1 +acc +26 +jmp -153 +acc +14 +acc -8 +nop -416 +jmp -91 +jmp -409 +jmp -326 +acc +2 +acc +8 +acc -18 +acc +33 +jmp -468 +jmp -175 +acc -7 +acc +45 +jmp -18 +jmp -375 +acc -8 +jmp +28 +acc -16 +nop -38 +acc +37 +acc +48 +jmp -343 +acc +10 +acc +26 +acc -9 +acc -16 +jmp -348 +acc +37 +jmp -453 +acc -2 +acc +27 +acc +17 +acc +28 +jmp -406 +acc +25 +acc +24 +acc +44 +acc +44 +jmp -532 +acc +10 +jmp -531 +acc +39 +acc +40 +jmp -284 +acc +19 +acc +3 +nop -533 +acc -3 +jmp -162 +nop -438 +acc -5 +jmp -114 +acc +45 +acc +1 +acc +28 +acc +9 +jmp -550 +jmp -222 +jmp -106 +acc -7 +nop -263 +nop -375 +jmp -381 +acc -4 +nop -223 +jmp -171 +jmp -465 +acc -2 +nop -562 +jmp -190 +acc +40 +jmp -4 +acc +30 +acc +21 +jmp -435 +acc +1 +acc +10 +jmp +1 +jmp -157 +acc -7 +acc +18 +acc -3 +acc +24 +jmp -113 +acc +21 +jmp -339 +acc +34 +jmp -563 +acc +27 +jmp -589 +jmp -61 +acc +35 +acc +50 +acc +8 +jmp -553 +acc +48 +acc -15 +acc +29 +acc +24 +jmp +1 diff --git a/2020/inputs/day9.txt b/2020/inputs/day9.txt new file mode 100644 index 0000000..afaf5cb --- /dev/null +++ b/2020/inputs/day9.txt @@ -0,0 +1,1000 @@ +1 +15 +32 +16 +6 +20 +25 +30 +38 +31 +48 +47 +19 +23 +39 +50 +41 +4 +27 +12 +21 +24 +26 +43 +2 +3 +5 +7 +8 +9 +6 +72 +10 +20 +11 +13 +14 +30 +25 +23 +15 +16 +17 +18 +19 +22 +21 +12 +32 +24 +28 +26 +27 +35 +29 +31 +33 +34 +36 +37 +38 +42 +39 +30 +40 +43 +41 +47 +46 +44 +50 +49 +45 +75 +51 +53 +57 +56 +81 +59 +83 +70 +64 +72 +67 +91 +69 +71 +73 +84 +85 +92 +89 +90 +93 +96 +94 +98 +123 +104 +120 +154 +115 +126 +141 +133 +131 +157 +139 +287 +238 +209 +144 +158 +175 +185 +179 +182 +183 +187 +190 +192 +286 +289 +264 +257 +241 +256 +259 +466 +270 +275 +283 +324 +462 +302 +323 +331 +333 +362 +361 +372 +365 +370 +377 +524 +475 +497 +498 +521 +844 +500 +515 +529 +545 +553 +558 +585 +1013 +887 +1210 +654 +995 +694 +735 +876 +872 +894 +747 +906 +1060 +972 +1607 +998 +1268 +1247 +1292 +1199 +1074 +1239 +1111 +1768 +1696 +1348 +1389 +1401 +1429 +1611 +1441 +1870 +1619 +1641 +1653 +1745 +1878 +1970 +3279 +2072 +5024 +2273 +2185 +2310 +2313 +3424 +3307 +2459 +3052 +3349 +2737 +2790 +4155 +4732 +4720 +3311 +3623 +4898 +6214 +3398 +3715 +5534 +4042 +4257 +4345 +4458 +4495 +7033 +6618 +4772 +5196 +8673 +6994 +5527 +8940 +9525 +6832 +6934 +8838 +10016 +6709 +7021 +7113 +7440 +14107 +11805 +9238 +16380 +8602 +9230 +8953 +9267 +13639 +14200 +11706 +15536 +13541 +15961 +13766 +21313 +13643 +15859 +13730 +16678 +13822 +14134 +14461 +16042 +16393 +17555 +17832 +17840 +17869 +18183 +29175 +30215 +25126 +45853 +25247 +25349 +27184 +27271 +27373 +33414 +27777 +27465 +27552 +27864 +34576 +32330 +28595 +30503 +43079 +35395 +35387 +35672 +60798 +58540 +43309 +50373 +57588 +50475 +50596 +52518 +55017 +54455 +54838 +54925 +58280 +55242 +70943 +55416 +56459 +125868 +59098 +85983 +73582 +70782 +71059 +85862 +98234 +100969 +172028 +109293 +105891 +101071 +105434 +159351 +125514 +109380 +109697 +109763 +176673 +251382 +156765 +111875 +115557 +144364 +144960 +129880 +141841 +144641 +270262 +223748 +184096 +199203 +202040 +211325 +206505 +250255 +210768 +274244 +219077 +219143 +253744 +340648 +221638 +355132 +227432 +286482 +271721 +245437 +348957 +274840 +366279 +449458 +721179 +383299 +386136 +394864 +996019 +408545 +417273 +605387 +429845 +440715 +505625 +464580 +627130 +576770 +449070 +467075 +472869 +499153 +517158 +520277 +735093 +623797 +660976 +885289 +778163 +791844 +769435 +781000 +803409 +849260 +825818 +990027 +870560 +947003 +948223 +931655 +966228 +916145 +1025840 +1404797 +1090872 +972022 +1486794 +1289712 +2351800 +1464385 +1603981 +1430411 +1547598 +2396858 +1550435 +1673969 +3641512 +1974063 +2115530 +1956255 +1920245 +2495821 +2498658 +1847800 +1882373 +2007017 +1888167 +3735967 +2261734 +3963043 +2402433 +2720123 +4199600 +2894796 +2980846 +3098033 +4217989 +3556342 +4452076 +3224404 +3562136 +3770540 +3730173 +3895184 +3768045 +3802618 +4290600 +3854817 +3889390 +5992829 +8306893 +5690785 +8712952 +7692008 +5122556 +6748891 +6450296 +5875642 +6078879 +9846924 +8346960 +9554965 +16595815 +6786540 +6954577 +9458830 +7498218 +7532791 +13567650 +7570663 +7657435 +7744207 +12529175 +9011946 +10813341 +12077133 +14134502 +14525240 +12865419 +14698784 +11954521 +12325938 +12662182 +13033456 +22890474 +13741117 +20406389 +26211635 +14284758 +14452795 +21951013 +15031009 +15103454 +18384004 +15228098 +15401642 +16756153 +27486251 +15690279 +24988120 +27896428 +52474371 +24280459 +30918377 +24616703 +24987977 +25359394 +25695638 +38392850 +28025875 +42115547 +30134463 +39644152 +29512856 +29483804 +30259107 +30505096 +30629740 +31091921 +69127956 +60113544 +60764203 +39970738 +40306982 +58030891 +48897162 +49268436 +54129559 +49604680 +60575725 +50347371 +56787559 +53721513 +57509679 +98873116 +79860227 +70229845 +80977111 +83642415 +59742911 +80852467 +61134836 +79526902 +97480417 +121159449 +116901103 +80277720 +96758297 +89204144 +140102627 +129128663 +102989949 +99952051 +113464424 +133989786 +111231192 +110509072 +238060552 +153872260 +139603138 +120877747 +129972756 +140020631 +168731046 +141412556 +237778850 +326982994 +196710348 +169481864 +218332807 +228132295 +177036017 +330700134 +189156195 +202942000 +240359855 +210461123 +211183243 +399652348 +456393359 +240481828 +308751677 +549032941 +317056648 +458692662 +358353438 +269993387 +414814867 +345767063 +310894420 +346517881 +458814635 +358638059 +366192212 +628346825 +986700263 +487930437 +399617318 +705155940 +549233505 +421644366 +450942951 +451665071 +510475215 +598835266 +625808325 +578745064 +580887807 +587050035 +615760450 +616511268 +628631446 +962140286 +939241245 +762559491 +712710093 +724830271 +758255377 +1139106661 +1059708720 +909574803 +938873388 +821261684 +873309437 +872587317 +902608022 +961418166 +1030410135 +1089220279 +1337000441 +1194505514 +1202810485 +1299760128 +1203561303 +1232271718 +1341341539 +1353461717 +1919335785 +1487389762 +1437540364 +1470965470 +1483085648 +1693849001 +1694571121 +1848448191 +2958355232 +1723869706 +2173069565 +1745896754 +1775195339 +1991828301 +2164228651 +3613184786 +2283725793 +2406371788 +2397315999 +3183437118 +2557023020 +3262585101 +2573613257 +2694803256 +4311816949 +3462793771 +3994563384 +3228982402 +3165536591 +3176934649 +4860107712 +3418440827 +3469766460 +3521092093 +3715698007 +3737725055 +3767023640 +4058921132 +4447954444 +4561544650 +4681041792 +5574250648 +4803687787 +5659901100 +5130636277 +5251826276 +10463588887 +8803233050 +8597832767 +6342471240 +6394518993 +6405917051 +6647423229 +6583977418 +7185464467 +6888207287 +6939532920 +10401392372 +10340942892 +18999225139 +7504748695 +9426924740 +8506875576 +9251642231 +9242586442 +9484729579 +9934324064 +10055514063 +16807309423 +12989894469 +13334051913 +13053340280 +12736990233 +12748388291 +13579983460 +12800436044 +13231400647 +13472184705 +20170933567 +16372936866 +13827740207 +16191175151 +25675904730 +16756390926 +16011624271 +18441199640 +17749462018 +22483042878 +18494228673 +18727316021 +19419053643 +22734760108 +34452823911 +31527752065 +25485378524 +25548824335 +31464306254 +25537426277 +25979788938 +35483706947 +36476778039 +49213768272 +27299924912 +29839364478 +30018915358 +35197590566 +37221544694 +42305215261 +36243690691 +45850988749 +36190661658 +37168515661 +37913282316 +38146369664 +41462076129 +42153813751 +48220138632 +51022804801 +51034202859 +51086250612 +63201333632 +51517215215 +52837351189 +74103943974 +114235536491 +57318840270 +79375358445 +59858279836 +67932197674 +87337755628 +92516430836 +72434352349 +112017226290 +73359177319 +143550633695 +74337031322 +75081797977 +79608445793 +83615889880 +115566020103 +90373952383 +99242943433 +123951567564 +136927286063 +103923601801 +104354566404 +212009084040 +186354257612 +178027545775 +130678017589 +129753192619 +127790477510 +261643435655 +140366550023 +360886379088 +220127145002 +162808304732 +147696208641 +165455750360 +153945477115 +149418829299 +390036629815 +169982398176 +228306133968 +189616895816 +194297554184 +203166545234 +232145043914 +208278168205 +324481711406 +234107759023 +257543670129 +258468495099 +293486322321 +277449401260 +268157027533 +275486686151 +313151959001 +288062758664 +297115037940 +471323572767 +319401227475 +301641685756 +467097436116 +404090157199 +478653231385 +364279952360 +442385927228 +383914450000 +392783441050 +485727569465 +411444713439 +559185355885 +465821838334 +621042913231 +890097944824 +516012165228 +723491384674 +703315677475 +641729353620 +581308986534 +563549444815 +585177796604 +944475069719 +1426807062149 +788004607199 +871436672435 +945588938894 +1025007194219 +908795606278 +2011984858753 +748194402360 +2477806697087 +776697891050 +804228154489 +1430622028320 +1406110110052 +1047130824868 +981834003562 +1079561610043 +1097321151762 +1101189961832 +1144858431349 +1345045031095 +1148727241419 +1525784056253 +1311743847175 +1675664826924 +1524892293410 +1992719763762 +1619631074795 +2149273185584 +1552422556849 +1580926045539 +1656990008638 +1730028405922 +2493772272514 +1758531894612 +1786062158051 +1851358979357 +2028964828430 +2599553381717 +2446234992927 +2242179583111 +2176882761805 +2697280988198 +3106710101792 +3516090563973 +2460471088594 +3255812462175 +2931374921970 +3470990054152 +4113403347309 +3077314850259 +3172053631644 +3209412565487 +3133348602388 +3282450962771 +3237916054177 +6103428553614 +3488560300534 +5375528185499 +4874163750003 +5618288624571 +4093538562468 +6240058704180 +5173554505081 +4623117754732 +9385879516385 +6169290976147 +9106848925105 +5391846010564 +6959550354686 +5537785938853 +6008689772229 +6210663452647 +8709839570497 +10882853522232 +8856204678748 +9412112335824 +9998645940231 +8864088486033 +12138655641519 +18249968002418 +8716656317200 +7582098863002 +14787640521323 +8967702312471 +9711827187039 +15136993288618 +9796672259813 +10160903693585 +10014963765296 +10929631949417 +11546475711082 +11400535782793 +11602509463211 +11748449391500 +13590788635231 +14718529342726 +14920503023144 +16291938433499 +16298755180202 +16438303541750 +16446187349035 +16549801175473 +24948544214908 +17293926050041 +17378771122815 +17597062628298 +26346473435286 +18679529499510 +41266976458430 +19957575953398 +27894447896710 +19811636025109 +20175867458881 +28194636740535 +22330167732210 +25339238026731 +32737058721952 +23350958854711 +29042375441541 +34035366170048 +31156832884476 +31212441456643 +53233685923441 +43640399485327 +37554638581696 +54240921331996 +61237462113625 +34672697172856 +34890988678339 +38637105452908 +37408698653407 +38491165524619 +38855396958391 +47706083921819 +39769211978507 +45515105485612 +39987503483990 +84390518807917 +65749275322231 +45681126586921 +58241947533050 +61779434163493 +52393334296252 +70981653435150 +89454388989693 +151233823153186 +77396202137397 +72227335754552 +69563685851195 +100416539616401 +72081395826263 +72299687331746 +73163862697475 +73382154202958 +75899864178026 +76264095611798 +77346562483010 +78624608936898 +79756715462497 diff --git a/2020/src/day1.php b/2020/src/day1.php new file mode 100644 index 0000000..1bf790b --- /dev/null +++ b/2020/src/day1.php @@ -0,0 +1,38 @@ + (int)$str, array_filter(explode("\n", $input), 'is_numeric')); + print 'Part 1 answer: ' . solve_part_one($nums) . "\n"; + print 'Part 2 answer: ' . solve_part_two($nums) . "\n"; + } +} + +function solve_part_one(array $nums): int +{ + for ($i = 0; $i < count($nums); $i++) { + for ($j = 0; $j < count($nums); $j++) { + if ($nums[$i] + $nums[$j] == 2020) { + return $nums[$i] * $nums[$j]; + } + } + } + + return 0; +} + +function solve_part_two(array $nums): int +{ + for ($i = 0; $i < count($nums); $i++) { + for ($j = 0; $j < count($nums); $j++) { + for ($k = 0; $k < count($nums); $k++) { + if ($nums[$i] + $nums[$j] + $nums[$k] == 2020) { + return $nums[$i] * $nums[$j] * $nums[$k]; + } + } + } + } + + return 0; +} diff --git a/2020/src/day10.php b/2020/src/day10.php new file mode 100644 index 0000000..3206e47 --- /dev/null +++ b/2020/src/day10.php @@ -0,0 +1,57 @@ + 1]; + + for ($i = $jolt_count - 2; $i >= 0; $i--) { + $count = 0; + for ($j = $i + 1; $j < $jolt_count && $joltages[$j] - $joltages[$i] <= 3; $j++) { + $count += $memo[$j]; + } + $memo[$i] = $count; + } + + return $memo[0]; +} diff --git a/2020/src/day11.php b/2020/src/day11.php new file mode 100644 index 0000000..77b8f65 --- /dev/null +++ b/2020/src/day11.php @@ -0,0 +1,126 @@ +changed; + $occupied = $simulation_result->full; + $newState = $simulation_result->state; + } + + return $occupied; +} + +function simulate(array $rows, bool $moreTolerant): day11_state +{ + $newState = $rows; + $changed = false; + $empty = 0; + $floor = 0; + $full = 0; + for ($i = 0; $i < count($rows); $i++) { + for ($j = 0; $j < strlen($rows[$i]); $j++) { + $adjacent_occupied = get_adjacent_occupied($moreTolerant, $rows, $i, $j); + if ($rows[$i][$j] === 'L' && $adjacent_occupied === 0) { + $changed = true; + $full += 1; + $newState[$i][$j] = '#'; + } elseif ($rows[$i][$j] === '#' && $adjacent_occupied >= ($moreTolerant ? 5 : 4)) { + $changed = true; + $empty += 1; + $newState[$i][$j] = 'L'; + } else { + if ($rows[$i][$j] === 'L') + $empty += 1; + elseif ($rows[$i][$j] === '#') + $full += 1; + else + $floor += 1; + } + } + } + + return new day11_state($newState, $changed, $empty, $floor, $full); +} + +function get_adjacent_occupied(bool $moreTolerant, array $state, int $y, int $x): int +{ + $occupied = 0; + + if ($moreTolerant === false) { + for ($i = $y - 1; $i < $y + 2; $i++) { + if ($i >= 0 && $i < count($state)) { + for ($j = $x - 1; $j < $x + 2; $j++) { + if ($j >= 0 && $j < strlen($state[$i]) && !($i === $y && $j === $x)) { + $occupied += $state[$i][$j] === '#' ? 1 : 0; + } + } + } + } + } else { + $x_dir = -1; + $y_dir = -1; + while (true) { + $x_pos = $x; + $y_pos = $y; + + while (true) { + if ($x_dir === 0 && $y_dir === 0) + break; + + $x_pos += $x_dir; + $y_pos += $y_dir; + if ($y_pos < 0 || $y_pos >= count($state) || $x_pos < 0 || $x_pos >= strlen($state[$y_pos])) + break; + elseif ($state[$y_pos][$x_pos] === '.') + continue; + else { + $occupied += $state[$y_pos][$x_pos] === '#'; + break; + } + } + + $y_dir += 1; + if ($y_dir == 2) { + $y_dir = -1; + $x_dir += 1; + } + if ($x_dir == 2) + break; + } + } + + return $occupied; +} + +class day11_state +{ + public array $state; + public bool $changed; + public int $empty; + public int $floor; + public int $full; + + function __construct(array $state, bool $changed, int $empty, int $floor, int $full) + { + $this->state = $state; + $this->changed = $changed; + $this->empty = $empty; + $this->floor = $floor; + $this->full = $full; + } +} diff --git a/2020/src/day12.php b/2020/src/day12.php new file mode 100644 index 0000000..a0c1321 --- /dev/null +++ b/2020/src/day12.php @@ -0,0 +1,141 @@ +v_pos) + abs($state->h_pos); +} + +function solve_part_two(array $instructions): int +{ + $state = new day12_state(); + + foreach (parse_instructions($instructions) as $instruction) + $state = move_with_waypoint($instruction, $state); + + return abs($state->v_pos) + abs($state->h_pos); +} + +function move(array $instruction, day12_state $state): day12_state +{ + switch ($instruction[0]) { + case 'N': + $state->v_pos += $instruction[1]; + break; + case 'S': + $state->v_pos -= +$instruction[1]; + break; + case 'E': + $state->h_pos += $instruction[1]; + break; + case 'W': + $state->h_pos -= $instruction[1]; + break; + case 'F': + switch ($state->facing_direction % 4) { + case 0: + $state->v_pos += $instruction[1]; + break; + case 1: + $state->h_pos += $instruction[1]; + break; + case 2: + $state->v_pos -= $instruction[1]; + break; + case 3: + $state->h_pos -= $instruction[1]; + break; + } + break; + case 'R': + $state->facing_direction += ($instruction[1] / 90); + break; + case 'L': + $state->facing_direction -= ($instruction[1] / 90); + break; + } + + if ($state->facing_direction < 0) + $state->facing_direction += 4; // NOT THAT EASY, need to wrap around 0 + + return $state; +} + +function move_with_waypoint(array $instruction, day12_state $state): day12_state +{ + switch ($instruction[0]) { + case 'N': + $state->w_v_pos += $instruction[1]; + break; + case 'S': + $state->w_v_pos -= +$instruction[1]; + break; + case 'E': + $state->w_h_pos += $instruction[1]; + break; + case 'W': + $state->w_h_pos -= $instruction[1]; + break; + case 'F': + for ($i = 0; $i < $instruction[1]; $i++) { + $state->v_pos += $state->w_v_pos; + $state->h_pos += $state->w_h_pos; + } + break; + case 'R': + for ($i = 0; $i < $instruction[1] / 90; $i++) { + $new_v_pos = -$state->w_h_pos; + $new_h_pos = $state->w_v_pos; + $state->w_v_pos = $new_v_pos; + $state->w_h_pos = $new_h_pos; + } + break; + case 'L': + for ($i = 0; $i < $instruction[1] / 90; $i++) { + $new_v_pos = $state->w_h_pos; + $new_h_pos = -$state->w_v_pos; + $state->w_v_pos = $new_v_pos; + $state->w_h_pos = $new_h_pos; + } + break; + } + + return $state; +} + +function parse_instructions(array $instructions): array +{ + $parsed_instructions = []; + + foreach ($instructions as $instruction) { + if (preg_match('/^([NSEWLRF])(\d+)$/', trim($instruction), $matches)) { + [, $inst, $arg] = $matches; + $parsed_instructions[] = [$inst, $arg]; + } + } + + return $parsed_instructions; +} + +class day12_state +{ + public int $v_pos = 0; + public int $h_pos = 0; + public int $w_v_pos = 1; + public int $w_h_pos = 10; + public int $facing_direction = 1; // N = 0, E = 1, S = 2, W = 3 +} diff --git a/2020/src/day13.php b/2020/src/day13.php new file mode 100644 index 0000000..483b316 --- /dev/null +++ b/2020/src/day13.php @@ -0,0 +1,59 @@ + $line != 'x'); + $bus_arrival_times = array_map(get_closest_arrival_time_to($arrival_time), $active_lines); + [$min_key] = array_keys($bus_arrival_times, min($bus_arrival_times)); + return $active_lines[$min_key] * ($bus_arrival_times[$min_key] - $arrival_time); +} + +function solve_part_two(array $in): int +{ + [, $lines] = $in; + $trimmed_bus_lines = array_map('trim', explode(',', $lines)); + $active_lines = array_filter($trimmed_bus_lines, fn ($line) => $line != 'x'); + return get_first_consecutive_time($active_lines)[0]; +} + +function get_closest_arrival_time_to(int $target): callable +{ + return function (int $x) use ($target): int { + $i = 1; + while ($i * $x < $target) { + $i += 1; + } + return $i * $x; + }; +} + +function get_first_consecutive_time(array $lines): array +{ + if (count($lines) == 1) + return [0, $lines[0]]; + else { + $keys = array_keys($lines); + $last_key = $keys[count($keys) - 1]; + $last_elem = array_pop($lines); + [$previous_time, $previous_lcm] = get_first_consecutive_time($lines); + $timestamp = $previous_time; + while (true) { + if (($timestamp + $last_key) % $last_elem === 0) + break; + else + $timestamp += $previous_lcm; + } + return [$timestamp, $previous_lcm * $last_elem]; + } +} diff --git a/2020/src/day14.php b/2020/src/day14.php new file mode 100644 index 0000000..c855f37 --- /dev/null +++ b/2020/src/day14.php @@ -0,0 +1,89 @@ + $addr . $bin[$i], $addresses); + break; + case '1': + $addresses = array_map(fn ($addr) => $addr . '1', $addresses); + break; + case 'X': + $new_addresses = []; + foreach ($addresses as $address) { + $new_addresses[] = $address . '0'; + $new_addresses[] = $address . '1'; + } + $addresses = $new_addresses; + break; + } + } + return array_map('bindec', $addresses); +} + +function apply_mask(string $mask, int $num): int +{ + $bin = str_pad(decbin($num), 36, '0', STR_PAD_LEFT); + for ($i = 0; $i < strlen($bin); $i++) + if ($mask[$i] != 'X') + $bin[$i] = $mask[$i]; + return bindec($bin); +} + +function parse_instructions(array $instructions): array +{ + $parsed_instructions = []; + foreach ($instructions as $instruction) { + [$inst, $arg] = array_map('trim', explode(' = ', $instruction)); + if ($inst === 'mask') + $parsed_instructions[] = [$inst, $arg]; + else + $parsed_instructions[] = ['mem', substr($inst, 4, strlen($inst) - 5), $arg]; + } + return $parsed_instructions; +} diff --git a/2020/src/day15.php b/2020/src/day15.php new file mode 100644 index 0000000..db3bde2 --- /dev/null +++ b/2020/src/day15.php @@ -0,0 +1,43 @@ + $number) + $last_spoken[(int)$number] = (int)$turn + 1; + + $last = array_keys($last_spoken)[count($last_spoken) - 1]; + + for ($i = count($last_spoken); $i < $num; $i++) { + if (array_key_exists($last, $last_spoken)) { + $prev = $last; + $last = $i - $last_spoken[$last]; + $last_spoken[$prev] = $i; + } else { + $last_spoken[$last] = $i; + $last = 0; + } + } + + return $last; +} diff --git a/2020/src/day16.php b/2020/src/day16.php new file mode 100644 index 0000000..93df8d8 --- /dev/null +++ b/2020/src/day16.php @@ -0,0 +1,154 @@ + $idx) { + if (str_starts_with($rule_name, "departure")) + $accum *= $my_ticket[$idx]; + } + + return $accum; +} + +function get_valid_rules(array $rules, array $my_ticket, array $nearby_tickets, array $invalid_tickets): array +{ + $possible_valid_rules = []; + + foreach ($rules as $rule) { + for ($i = 0; $i < count($my_ticket); $i++) { + $rule_valid = true; + foreach ($nearby_tickets as $idx => $ticket) { + if (in_array($idx, $invalid_tickets) == false) { + $field = $ticket[$i]; + if ((($field >= $rule[1][0] && $field <= $rule[1][1]) || ($field >= $rule[2][0] && $field <= $rule[2][1])) == false) { + $rule_valid = false; + break; + } + } + + if ($rule_valid == false) + break; + } + + if ($rule_valid) { + $possible_valid_rules[$i][] = $rule[0]; + } + } + } + + return get_valid_rules_from_possibilities($possible_valid_rules); +} + +function get_valid_rules_from_possibilities(array $possible_valid_rules): array +{ + $valid_rules = []; + + uasort($possible_valid_rules, fn ($x, $y) => count($x) > count($y) ? 1 : (count($x) < count($y) ? -1 : 0)); + for ($idx = 0; $idx < count($possible_valid_rules); $idx++) { + $elem = $possible_valid_rules[array_keys($possible_valid_rules)[$idx]]; + if (count($elem) == 1) { + $rule_name = $elem[array_keys($elem)[0]]; + $valid_rules[$rule_name] = $idx; + $possible_valid_rules = array_map(fn ($arr) => array_diff($arr, $elem), $possible_valid_rules); + } + } + + return $valid_rules; +} + +function get_invalid_tickets(array $nearby_tickets, array $rules): array +{ + $invalid_tickets = []; + foreach ($nearby_tickets as $idx => $ticket) { + $ticket_valid = true; + foreach ($ticket as $field) { + if (field_is_valid($rules, $field) == false) + $ticket_valid = false; + } + + if ($ticket_valid == false) + $invalid_tickets[] = $idx; + } + + return $invalid_tickets; +} + +function field_is_valid(array $rules, int $field): bool +{ + $valid = false; + foreach ($rules as $rule) { + if (($field >= $rule[1][0] && $field <= $rule[1][1]) || ($field >= $rule[2][0] && $field <= $rule[2][1])) { + $valid = true; + break; + } + } + return $valid; +} + +function parse_lines(array $lines): array +{ + $section = 0; + $rules = []; + $my_ticket = []; + $nearby_tickets = []; + foreach ($lines as $line) { + if ($line === '') { + $section += 1; + } else { + if ($line != 'your ticket:' && $line != 'nearby tickets:') { + switch ($section) { + case 0: + $rules[] = parse_rule($line); + break; + case 1: + $my_ticket = array_map(fn ($x) => (int)$x, explode(',', $line)); + break; + case 2: + $nearby_tickets[] = array_map(fn ($x) => (int)$x, explode(',', $line)); + break; + } + } + } + } + + return [$rules, $my_ticket, $nearby_tickets]; +} + +function parse_rule(string $line): array +{ + [$name, $values] = array_map('trim', explode(':', $line)); + [$min_range, $max_range] = array_map('trim', explode(' or ', $values)); + [$min_min, $min_max] = array_map(fn ($x) => (int)$x, explode('-', $min_range)); + [$max_min, $max_max] = array_map(fn ($x) => (int)$x, explode('-', $max_range)); + + return [$name, [$min_min, $min_max], [$max_min, $max_max]]; +} diff --git a/2020/src/day2.php b/2020/src/day2.php new file mode 100644 index 0000000..064891e --- /dev/null +++ b/2020/src/day2.php @@ -0,0 +1,47 @@ += $min && $letters[$key] <= $max) + return 1; + return 0; + } + + return parse_passwords_and_solve($passwords, 'solve_1'); +} + +function solve_part_two(array $passwords): int +{ + function solve_2(int $pos1, int $pos2, string $key, string $pass): int + { + if ($pass[$pos1 - 1] === $key xor $pass[$pos2 - 1] === $key) + return 1; + return 0; + } + + return parse_passwords_and_solve($passwords, 'solve_2'); +} + +function parse_passwords_and_solve(array $passwords, callable $fun): int +{ + $ret = 0; + foreach ($passwords as $policy) { + preg_match('/^(\d+?)-(\d+?) ([a-z]): (.+?)$/', $policy, $matches); + [$match, $min, $max, $key, $pass] = $matches; + if ($match) + $ret += $fun($min, $max, $key, $pass); + } + return $ret; +} diff --git a/2020/src/day3.php b/2020/src/day3.php new file mode 100644 index 0000000..55872aa --- /dev/null +++ b/2020/src/day3.php @@ -0,0 +1,40 @@ + 0, 'y' => 0]; + $trees = 0; + while ($current_coords['y'] < (count($coords) - 1)) { + $current_coords['x'] += $incr_x; + $current_coords['y'] += $incr_y; + + $current_line = trim($coords[$current_coords['y']]); + $actual_x = $current_coords['x'] % strlen($current_line); + if ($current_line[$actual_x] === '#') + $trees += 1; + } + return $trees; +} diff --git a/2020/src/day4.php b/2020/src/day4.php new file mode 100644 index 0000000..06a5e15 --- /dev/null +++ b/2020/src/day4.php @@ -0,0 +1,150 @@ += $min && $year <= $max))) + return true; + else + return false; + } + + function validate_height(string $value): bool + { + if (preg_match('/^(\d.+?)(cm|in)$/', $value, $matches) > 0) { + if (($matches[2] == 'cm' && $matches[1] >= 150 && $matches[1] <= 193) || ($matches[2] == 'in' && $matches[1] >= 59 && $matches[1] <= 76)) + return true; + } + + return false; + } + + $validate_hair_color = fn ($value) => preg_match('/^#([a-f0-9]{6})$/', $value); + + $validate_eye_color = fn ($value) => preg_match('/^(amb|blu|brn|gry|grn|hzl|oth)$/', $value); + + $validate_pid = fn ($value) => preg_match('/^0*(\d{9})$/', $value); + + $valid_passports = []; + $passports = get_valid_passports($credentials); + + foreach ($passports as $passport) { + $valid = true; + foreach ($passport as $field => $value) { + switch ($field) { + case 'byr': + if (!validate_year($value, 1920, 2002)) + $valid = false; + break; + case 'iyr': + if (!validate_year($value, 2010, 2020)) + $valid = false; + break; + case 'eyr': + if (!validate_year($value, 2020, 2030)) + $valid = false; + break; + case 'hgt': + if (!validate_height($value)) + $valid = false; + break; + case 'hcl': + if (!$validate_hair_color($value)) + $valid = false; + break; + case 'ecl': + if (!$validate_eye_color($value)) + $valid = false; + break; + case 'pid': + if (!$validate_pid($value)) + $valid = false; + break; + } + } + + if ($valid) + $valid_passports[] = $passport; + } + + return $valid_passports; +} + +#[Pure] function get_valid_passports(array $credentials): array +{ + $passports = parse_passports($credentials); + $required_fields = ['byr', 'iyr', 'eyr', 'hgt', 'hcl', 'ecl', 'pid']; + $valid_passports = []; + + foreach ($passports as $passport) { + $valid = true; + foreach ($required_fields as $required_field) { + if (!array_key_exists($required_field, $passport)) + $valid = false; + } + + if ($valid) + $valid_passports[] = $passport; + } + + return $valid_passports; +} + +#[Pure] function parse_passports(array $credentials): array +{ + $passports = []; + $current_credentials = []; + for ($i = 0; $i < count($credentials); $i++) { + $cred = trim($credentials[$i]); + if ($cred == '') { + $passports[] = parse_single_passport($current_credentials); + $current_credentials = []; + } else + $current_credentials[] = $cred; + } + + if (count($current_credentials) != 0) + $passports[] = parse_single_passport($current_credentials); + + return $passports; +} + +function parse_single_passport(array $fields): array +{ + $passport = []; + + foreach ($fields as $fieldlist) { + $kvps = explode(' ', $fieldlist); + foreach ($kvps as $kvp) { + [$field, $value] = explode(':', $kvp); + $passport[$field] = $value; + } + } + + return $passport; +} diff --git a/2020/src/day5.php b/2020/src/day5.php new file mode 100644 index 0000000..98dc317 --- /dev/null +++ b/2020/src/day5.php @@ -0,0 +1,73 @@ + $max_pass) + $max_pass = $pass[2]; + + return $max_pass; +} + +function solve_part_two(array $passes): int +{ + $valid_passes = parse_passes($passes); + $sorted_ids = array_map(fn ($pass) => $pass[2], $valid_passes); + sort($sorted_ids); + + for ($i = 0; $i < count($sorted_ids); $i++) + if ($sorted_ids[$i] - $sorted_ids[0] != $i) + return $sorted_ids[$i] - 1; + + return 0; +} + +function parse_passes(array $passes): array +{ + $parsed_passes = []; + + foreach ($passes as $pass) { + if (preg_match('/^([FB]{7})([LR]{3})$/', trim($pass), $matches) > 0) { + $min_row = 0; + $max_row = 127; + $min_col = 0; + $max_col = 7; + + for ($i = 0; $i < strlen($matches[1]); $i++) { + $tot_rows = $max_row + 1 - $min_row; + $new_tot_rows = $tot_rows / 2; + if ($matches[1][$i] === 'F') { + $max_row -= $new_tot_rows; + } else { + $min_row += $new_tot_rows; + } + } + + for ($i = 0; $i < strlen($matches[2]); $i++) { + $tot_cols = $max_col + 1 - $min_col; + $new_tot_cols = $tot_cols / 2; + if ($matches[2][$i] === 'L') { + $max_col -= $new_tot_cols; + } else { + $min_col += $new_tot_cols; + } + } + + $parsed_passes[] = [$min_row, $min_col, $min_row * 8 + $min_col]; + } + } + + return $parsed_passes; +} diff --git a/2020/src/day6.php b/2020/src/day6.php new file mode 100644 index 0000000..d224faa --- /dev/null +++ b/2020/src/day6.php @@ -0,0 +1,44 @@ + strlen(implode('', array_unique(str_split(implode('', $form))))); + + return parse_declaration_forms_and_solve($answer_groups, $solve_1); +} + +function solve_part_two(array $answer_groups): int +{ + $solve_2 = fn ($form) => count(call_user_func_array('array_intersect', array_map(fn ($str) => str_split($str), $form))); + + return parse_declaration_forms_and_solve($answer_groups, $solve_2); +} + +function parse_declaration_forms_and_solve(array $answer_groups, callable $fn): int +{ + $current_answers = []; + $ret = 0; + + for ($i = 0; $i < count($answer_groups); $i++) { + $answer = trim($answer_groups[$i]); + if ($answer == '') { + $ret += $fn(array_map(fn ($val) => trim($val), $current_answers)); + $current_answers = []; + } else + $current_answers[] = $answer; + } + + if (count($current_answers) != 0) + $ret += $fn(array_map(fn ($val) => trim($val), $current_answers)); + + return $ret; +} diff --git a/2020/src/day7.php b/2020/src/day7.php new file mode 100644 index 0000000..e23056f --- /dev/null +++ b/2020/src/day7.php @@ -0,0 +1,64 @@ + $count) + $ret += $count * get_content_count($rules, $content_color); + + return $ret + 1; +} + +function get_parent_colors(array $rules, string $color): array +{ + $ret = []; + + foreach ($rules as $parent_color => $content) + if (array_key_exists($color, $content)) + $ret = array_merge($ret, [$parent_color], get_parent_colors($rules, $parent_color)); + + return array_unique($ret); +} + +function parse_bag_rules(array $bag_rules): array +{ + $ret = []; + + foreach ($bag_rules as $rule) { + if (preg_match('/^(([a-z ]+) bags?) contain ([0-9a-z, ]+ bags?)+\.$/', trim($rule), $matches)) { + [,, $color, $content] = $matches; + if ($content === 'no other bags') + $ret[$color] = []; + elseif (preg_match_all('/((\d+) ([a-z ]+) bags?)+?,?/', trim($content), $content_matches, PREG_SET_ORDER)) { + $parsed_content = []; + foreach ($content_matches as $content_match) { + [,, $content_qty, $content_color] = $content_match; + $parsed_content[$content_color] = $content_qty; + } + $ret[$color] = $parsed_content; + } + } + } + + return $ret; +} diff --git a/2020/src/day8.php b/2020/src/day8.php new file mode 100644 index 0000000..6550204 --- /dev/null +++ b/2020/src/day8.php @@ -0,0 +1,108 @@ + $instruction) { + $altered_instructions = $original_instructions; + switch ($instruction[0]) { + case 'jmp': + $altered_instructions[$idx][0] = 'nop'; + break; + case 'nop': + $altered_instructions[$idx][0] = 'jmp'; + break; + } + + if (terminates_correctly($altered_instructions)) + return get_acc($altered_instructions); + } + + return 0; +} + +#[Pure] function terminates_correctly(array $instructions): bool +{ + $acc = 0; + $ip = 0; + $execution_count = []; + + while ($ip < count($instructions)) { + if (array_key_exists($ip, $execution_count) && $execution_count[$ip] != 0) + return false; + $execution_count[$ip] = 1; + [$acc, $ip] = run_instruction($instructions[$ip], [$acc, $ip]); + } + + return true; +} + +#[Pure] function get_acc(array $instructions): int +{ + $acc = 0; + $ip = 0; + $execution_count = []; + + while ($ip < count($instructions)) { + if (array_key_exists($ip, $execution_count) && $execution_count[$ip] != 0) + return $acc; + $execution_count[$ip] = 1; + [$acc, $ip] = run_instruction($instructions[$ip], [$acc, $ip]); + } + + return $acc; +} + +function run_instruction(array $instruction, array $regs): array +{ + [$inst, $arg] = $instruction; + [$acc, $ip] = $regs; + switch ($inst) { + case 'acc': + $acc += $arg; + $ip += 1; + break; + case 'jmp': + $ip += $arg; + break; + case 'nop': + $ip += 1; + break; + } + + // print 'Executed ' . $inst . ', $acc = ' . $acc . ', $ip = ' . $ip . "\n"; + + return [$acc, $ip]; +} + +function parse_instructions(array $instructions): array +{ + $parsed_instructions = []; + + foreach ($instructions as $instruction) { + if (preg_match('/^(acc|jmp|nop) ([+\-\d]+)$/', trim($instruction), $matches)) { + [, $inst, $arg] = $matches; + $parsed_instructions[] = [$inst, $arg]; + } + } + + return $parsed_instructions; +} diff --git a/2020/src/day9.php b/2020/src/day9.php new file mode 100644 index 0000000..c62d175 --- /dev/null +++ b/2020/src/day9.php @@ -0,0 +1,74 @@ + $result) { + $min_pos += 1; + $length = 2; + break; + } + + $length += 1; + } + } + + return 0; +} diff --git a/2021/inputs/day1.txt b/2021/inputs/day1.txt new file mode 100644 index 0000000..7e216a8 --- /dev/null +++ b/2021/inputs/day1.txt @@ -0,0 +1,2000 @@ +191 +185 +188 +189 +204 +213 +215 +227 +222 +221 +236 +235 +236 +232 +224 +228 +234 +226 +227 +228 +230 +232 +234 +213 +197 +198 +210 +238 +248 +261 +263 +265 +262 +295 +296 +311 +330 +333 +337 +344 +345 +356 +359 +360 +364 +367 +383 +386 +387 +391 +424 +426 +428 +440 +442 +446 +450 +423 +428 +423 +425 +445 +429 +436 +465 +456 +463 +461 +463 +483 +484 +500 +517 +525 +529 +527 +530 +535 +566 +578 +582 +587 +604 +613 +614 +609 +611 +619 +623 +627 +621 +622 +626 +644 +646 +655 +657 +659 +661 +671 +673 +668 +673 +676 +682 +683 +678 +679 +682 +681 +684 +686 +690 +693 +698 +700 +702 +707 +708 +732 +733 +734 +743 +745 +776 +794 +804 +784 +790 +813 +856 +855 +859 +850 +851 +886 +885 +888 +889 +883 +885 +920 +919 +917 +915 +918 +909 +910 +924 +925 +932 +933 +935 +966 +970 +971 +974 +958 +959 +961 +959 +964 +969 +970 +973 +972 +976 +998 +1009 +1010 +1011 +1046 +1047 +1040 +1041 +1056 +1062 +1061 +1062 +1077 +1078 +1080 +1082 +1094 +1096 +1097 +1103 +1128 +1125 +1167 +1176 +1175 +1173 +1183 +1182 +1183 +1188 +1202 +1204 +1205 +1206 +1207 +1212 +1235 +1236 +1256 +1268 +1270 +1276 +1281 +1283 +1276 +1287 +1292 +1295 +1291 +1297 +1298 +1301 +1312 +1316 +1333 +1327 +1340 +1338 +1348 +1364 +1381 +1382 +1383 +1394 +1385 +1388 +1387 +1388 +1394 +1398 +1400 +1397 +1399 +1401 +1408 +1410 +1420 +1421 +1434 +1433 +1436 +1456 +1455 +1479 +1482 +1483 +1522 +1526 +1527 +1542 +1543 +1544 +1548 +1557 +1571 +1574 +1580 +1579 +1602 +1618 +1605 +1608 +1612 +1622 +1625 +1626 +1633 +1648 +1641 +1643 +1650 +1652 +1659 +1678 +1681 +1688 +1692 +1702 +1686 +1688 +1685 +1684 +1674 +1694 +1696 +1695 +1720 +1729 +1736 +1762 +1763 +1767 +1780 +1789 +1796 +1798 +1799 +1800 +1808 +1800 +1805 +1848 +1849 +1867 +1888 +1902 +1903 +1920 +1923 +1926 +1930 +1933 +1925 +1906 +1878 +1898 +1899 +1930 +1936 +1948 +1974 +1983 +1984 +1986 +1983 +1984 +1987 +1985 +1988 +1992 +2005 +2009 +2013 +2025 +2033 +2043 +2046 +2030 +2014 +2009 +2011 +2013 +2043 +2049 +2053 +2065 +2070 +2079 +2080 +2090 +2092 +2102 +2116 +2138 +2140 +2141 +2143 +2149 +2152 +2153 +2154 +2170 +2194 +2192 +2216 +2231 +2246 +2261 +2268 +2269 +2252 +2260 +2264 +2274 +2289 +2293 +2296 +2297 +2300 +2305 +2334 +2329 +2353 +2357 +2359 +2364 +2374 +2377 +2364 +2365 +2366 +2360 +2362 +2360 +2361 +2367 +2357 +2362 +2376 +2379 +2380 +2381 +2401 +2436 +2435 +2439 +2446 +2454 +2456 +2459 +2492 +2493 +2514 +2519 +2524 +2529 +2530 +2535 +2548 +2549 +2551 +2548 +2553 +2552 +2556 +2563 +2570 +2603 +2616 +2617 +2623 +2630 +2631 +2641 +2645 +2660 +2662 +2663 +2664 +2662 +2668 +2673 +2677 +2687 +2688 +2699 +2698 +2691 +2695 +2696 +2710 +2711 +2717 +2722 +2723 +2747 +2746 +2754 +2753 +2752 +2771 +2773 +2774 +2777 +2789 +2790 +2805 +2807 +2818 +2817 +2825 +2818 +2828 +2833 +2834 +2837 +2839 +2854 +2856 +2858 +2859 +2863 +2880 +2882 +2884 +2887 +2888 +2889 +2902 +2911 +2917 +2936 +2938 +2940 +2943 +2944 +2943 +2947 +2954 +2956 +2957 +2959 +2957 +2958 +2959 +2956 +2959 +2960 +2969 +2974 +2979 +2983 +2985 +2986 +2992 +2993 +2995 +3025 +3037 +3036 +3037 +3038 +3040 +3043 +3049 +3058 +3071 +3072 +3080 +3083 +3081 +3090 +3091 +3070 +3076 +3079 +3083 +3084 +3086 +3101 +3114 +3106 +3107 +3137 +3138 +3139 +3137 +3133 +3137 +3102 +3108 +3109 +3124 +3130 +3138 +3149 +3150 +3160 +3171 +3191 +3190 +3200 +3205 +3229 +3235 +3237 +3238 +3239 +3243 +3244 +3245 +3246 +3250 +3265 +3268 +3269 +3271 +3279 +3278 +3279 +3280 +3281 +3290 +3295 +3296 +3300 +3303 +3304 +3305 +3308 +3325 +3313 +3326 +3327 +3335 +3336 +3337 +3335 +3361 +3378 +3374 +3378 +3387 +3406 +3416 +3418 +3438 +3454 +3460 +3475 +3476 +3477 +3471 +3476 +3477 +3486 +3487 +3500 +3502 +3503 +3530 +3531 +3530 +3556 +3563 +3564 +3565 +3566 +3580 +3587 +3591 +3598 +3599 +3612 +3613 +3624 +3623 +3631 +3660 +3661 +3662 +3668 +3671 +3672 +3674 +3683 +3684 +3693 +3694 +3700 +3696 +3699 +3705 +3706 +3710 +3717 +3731 +3734 +3729 +3735 +3736 +3739 +3749 +3734 +3739 +3742 +3753 +3756 +3757 +3775 +3777 +3774 +3780 +3785 +3786 +3790 +3792 +3796 +3798 +3802 +3817 +3818 +3815 +3822 +3824 +3849 +3856 +3871 +3845 +3847 +3849 +3851 +3853 +3884 +3885 +3887 +3889 +3891 +3894 +3895 +3900 +3918 +3935 +3936 +3941 +3945 +3936 +3942 +3945 +3942 +3943 +3965 +3974 +3976 +3979 +3975 +3976 +3980 +3993 +3992 +3991 +3999 +4000 +3996 +4019 +4028 +4029 +4031 +4053 +4054 +4080 +4087 +4089 +4088 +4098 +4100 +4103 +4104 +4112 +4125 +4145 +4148 +4152 +4153 +4158 +4162 +4165 +4177 +4184 +4203 +4205 +4206 +4207 +4211 +4215 +4221 +4240 +4247 +4253 +4261 +4262 +4265 +4269 +4273 +4274 +4258 +4260 +4264 +4282 +4299 +4313 +4284 +4287 +4289 +4290 +4293 +4295 +4297 +4296 +4310 +4314 +4313 +4327 +4329 +4330 +4328 +4338 +4347 +4368 +4371 +4373 +4379 +4388 +4392 +4396 +4393 +4394 +4393 +4397 +4406 +4409 +4410 +4414 +4437 +4436 +4428 +4429 +4434 +4426 +4427 +4428 +4445 +4447 +4467 +4471 +4470 +4472 +4485 +4487 +4493 +4495 +4491 +4497 +4500 +4506 +4507 +4508 +4511 +4518 +4519 +4523 +4520 +4523 +4540 +4541 +4548 +4549 +4550 +4551 +4560 +4570 +4586 +4575 +4581 +4585 +4586 +4591 +4601 +4595 +4597 +4601 +4613 +4615 +4617 +4619 +4604 +4609 +4610 +4616 +4640 +4666 +4676 +4677 +4678 +4709 +4704 +4719 +4727 +4729 +4730 +4747 +4753 +4755 +4768 +4770 +4772 +4777 +4781 +4811 +4814 +4843 +4844 +4846 +4850 +4862 +4863 +4868 +4869 +4870 +4871 +4874 +4881 +4882 +4878 +4887 +4895 +4898 +4910 +4920 +4908 +4910 +4909 +4914 +4916 +4922 +4914 +4918 +4926 +4949 +4952 +4953 +4955 +4956 +4959 +4985 +4986 +4990 +4992 +5028 +5029 +5032 +5030 +5037 +5038 +5047 +5053 +5054 +5059 +5057 +5059 +5062 +5067 +5085 +5086 +5090 +5084 +5077 +5078 +5081 +5091 +5094 +5096 +5095 +5097 +5103 +5118 +5144 +5146 +5153 +5160 +5169 +5173 +5174 +5175 +5184 +5187 +5195 +5196 +5216 +5225 +5238 +5239 +5232 +5235 +5237 +5242 +5244 +5247 +5254 +5262 +5271 +5281 +5287 +5288 +5260 +5264 +5282 +5295 +5301 +5304 +5310 +5295 +5296 +5297 +5298 +5303 +5304 +5305 +5277 +5278 +5289 +5295 +5290 +5297 +5299 +5320 +5328 +5341 +5347 +5356 +5361 +5364 +5365 +5378 +5379 +5377 +5378 +5367 +5380 +5381 +5387 +5385 +5390 +5391 +5392 +5415 +5422 +5423 +5425 +5439 +5441 +5448 +5455 +5470 +5477 +5482 +5488 +5489 +5492 +5501 +5499 +5496 +5499 +5533 +5552 +5562 +5563 +5565 +5566 +5572 +5571 +5581 +5583 +5589 +5594 +5593 +5596 +5602 +5606 +5629 +5643 +5644 +5652 +5673 +5676 +5680 +5676 +5681 +5696 +5703 +5698 +5718 +5720 +5733 +5736 +5741 +5766 +5771 +5786 +5787 +5793 +5790 +5786 +5804 +5805 +5808 +5809 +5816 +5810 +5811 +5818 +5829 +5836 +5839 +5824 +5839 +5843 +5845 +5849 +5853 +5856 +5861 +5873 +5894 +5895 +5896 +5897 +5898 +5899 +5900 +5913 +5917 +5918 +5923 +5924 +5934 +5935 +5952 +5965 +5963 +5958 +5961 +5975 +5988 +5989 +5996 +5997 +6008 +6011 +6023 +6024 +6033 +6048 +6050 +6051 +6049 +6048 +6043 +6048 +6051 +6055 +6081 +6084 +6087 +6093 +6092 +6090 +6078 +6079 +6103 +6092 +6094 +6099 +6100 +6116 +6123 +6129 +6127 +6138 +6139 +6141 +6143 +6146 +6147 +6159 +6162 +6163 +6177 +6179 +6183 +6187 +6188 +6194 +6198 +6213 +6237 +6267 +6282 +6288 +6292 +6297 +6310 +6323 +6325 +6324 +6347 +6349 +6350 +6353 +6363 +6376 +6384 +6394 +6397 +6401 +6402 +6399 +6415 +6416 +6421 +6422 +6423 +6420 +6445 +6446 +6449 +6451 +6457 +6460 +6461 +6467 +6468 +6473 +6474 +6517 +6522 +6519 +6515 +6532 +6533 +6535 +6530 +6532 +6522 +6548 +6549 +6565 +6568 +6579 +6556 +6563 +6565 +6572 +6576 +6578 +6601 +6608 +6611 +6612 +6626 +6619 +6651 +6657 +6658 +6666 +6665 +6660 +6682 +6704 +6705 +6711 +6708 +6716 +6720 +6725 +6727 +6729 +6733 +6734 +6737 +6736 +6741 +6742 +6743 +6750 +6756 +6757 +6758 +6755 +6774 +6773 +6774 +6780 +6781 +6790 +6791 +6800 +6812 +6815 +6817 +6827 +6826 +6832 +6833 +6834 +6833 +6822 +6825 +6829 +6836 +6840 +6846 +6850 +6861 +6868 +6869 +6872 +6879 +6882 +6884 +6907 +6917 +6930 +6924 +6934 +6931 +6918 +6924 +6928 +6934 +6935 +6936 +6953 +6955 +6964 +6987 +6999 +7009 +7042 +7048 +7027 +7054 +7053 +7072 +7073 +7055 +7056 +7057 +7079 +7080 +7084 +7095 +7108 +7107 +7109 +7111 +7134 +7135 +7137 +7138 +7145 +7151 +7161 +7172 +7179 +7183 +7189 +7188 +7189 +7195 +7202 +7236 +7241 +7250 +7277 +7295 +7297 +7294 +7298 +7297 +7301 +7289 +7291 +7276 +7293 +7295 +7311 +7318 +7341 +7378 +7398 +7408 +7409 +7412 +7409 +7413 +7397 +7399 +7423 +7424 +7423 +7426 +7418 +7414 +7409 +7412 +7425 +7426 +7433 +7439 +7448 +7462 +7466 +7467 +7468 +7477 +7480 +7481 +7498 +7499 +7501 +7507 +7527 +7535 +7548 +7551 +7552 +7555 +7561 +7554 +7559 +7560 +7587 +7590 +7596 +7620 +7628 +7645 +7646 +7652 +7653 +7654 +7663 +7670 +7678 +7683 +7686 +7687 +7683 +7692 +7691 +7687 +7688 +7691 +7699 +7698 +7725 +7733 +7734 +7736 +7740 +7751 +7744 +7724 +7719 +7729 +7731 +7746 +7747 +7749 +7722 +7725 +7730 +7735 +7737 +7738 +7739 +7724 +7721 +7724 +7736 +7727 +7730 +7731 +7732 +7736 +7737 +7768 +7787 +7797 +7807 +7815 +7819 +7825 +7852 +7856 +7862 +7869 +7881 +7882 +7885 +7888 +7892 +7889 +7893 +7895 +7896 +7901 +7919 +7921 +7932 +7933 +7964 +7979 +7990 +7991 +7994 +7997 +8011 +8005 +8006 +8014 +8047 +8049 +8064 +8065 +8046 +8047 +8079 +8081 +8082 +8083 +8055 +8052 +8056 +8063 +8064 +8066 +8053 +8067 +8072 +8073 +8077 +8079 +8081 +8076 +8083 +8086 +8098 +8100 +8109 +8107 +8124 +8125 +8126 +8127 +8145 +8146 +8152 +8175 +8176 +8177 +8182 +8193 +8195 +8197 +8199 +8203 +8204 +8213 +8217 +8237 +8240 +8239 +8230 +8237 +8245 +8259 +8264 +8272 +8288 +8285 +8286 +8300 +8301 +8304 +8305 +8327 +8326 +8327 +8341 +8343 +8356 +8357 +8358 +8367 +8374 +8375 +8391 +8392 +8393 +8394 +8399 +8405 +8402 +8404 +8435 +8444 +8484 +8481 +8490 +8492 +8493 +8494 +8503 +8506 +8516 +8515 +8516 +8504 +8508 +8513 +8529 +8542 +8545 +8541 +8546 +8549 +8570 +8552 +8553 +8581 +8578 +8585 +8593 +8596 +8605 +8606 +8608 +8616 +8627 +8628 +8627 +8639 +8644 +8645 +8626 +8633 +8635 +8636 +8640 +8645 +8655 +8673 +8693 +8694 +8695 +8696 +8695 +8714 +8716 +8742 +8739 +8735 +8740 +8763 +8762 +8771 +8772 +8777 +8776 +8787 +8788 +8795 +8796 +8777 +8782 +8783 +8794 +8800 +8810 +8827 +8828 +8833 +8829 +8841 +8862 +8865 +8867 +8869 +8895 +8899 +8901 +8904 +8908 +8909 +8927 +8928 +8930 +8931 +8935 +8945 +8946 +8950 +8954 +8957 +8959 +8949 +8961 +8976 +8980 +8986 +8988 +8992 +9003 +9008 +9009 +9029 +9050 +9051 +9054 +9055 +9068 +9054 +9071 +9082 +9087 +9089 +9112 +9113 +9127 +9126 +9125 +9129 +9138 +9140 +9145 +9149 +9151 +9179 +9185 +9187 +9188 +9189 +9186 +9190 +9207 +9208 +9209 +9221 +9228 +9252 +9254 +9264 +9267 +9276 +9287 +9293 +9292 +9260 +9261 +9260 +9265 +9266 +9285 +9287 +9289 +9290 +9291 +9292 +9293 +9295 +9313 +9314 +9291 +9282 +9304 +9315 +9316 +9317 +9327 +9345 +9350 +9352 +9356 +9366 +9367 +9400 +9407 +9408 +9415 +9418 +9419 +9432 +9441 +9442 +9439 +9440 +9451 +9455 +9464 +9472 +9479 +9481 +9490 +9514 +9527 +9546 +9552 +9556 +9570 +9582 +9584 +9592 +9597 +9602 +9618 +9619 +9622 +9639 +9645 +9648 +9643 +9647 +9648 +9650 +9641 +9665 +9678 +9681 +9682 +9683 +9692 +9703 +9704 +9702 +9704 +9712 +9726 +9731 +9732 +9733 +9744 +9745 +9757 +9755 +9763 +9764 +9766 +9768 +9782 +9780 +9781 +9783 +9786 +9803 +9804 +9821 +9822 +9840 +9841 +9843 +9839 +9840 +9846 +9856 +9859 +9863 +9862 +9864 +9865 +9866 +9870 +9878 +9877 +9894 +9896 +9937 +9938 +9943 +9944 +9943 +9952 +9962 +9983 +9985 +9984 +9992 +10002 +10003 +10041 +10040 +10041 +10040 +10042 +10029 +10034 +10033 +10034 +10052 +10053 +10062 +10055 +10056 +10057 +10069 +10073 +10067 +10070 +10065 +10064 +10069 +10071 +10092 +10069 +10070 +10080 +10095 +10099 +10100 +10101 +10099 +10115 +10116 +10117 +10122 +10124 +10129 +10096 +10101 +10106 +10099 +10102 +10143 +10144 +10145 +10146 +10148 +10149 +10150 +10160 +10132 +10137 +10177 +10181 +10178 +10183 +10189 +10191 +10192 +10194 +10203 +10199 +10207 +10218 +10223 +10224 +10225 +10245 +10239 +10247 +10252 +10250 +10254 +10255 +10256 +10279 +10280 +10292 +10293 +10300 +10310 +10312 +10321 +10324 +10326 +10330 +10329 +10328 +10329 +10333 +10355 +10354 +10349 +10352 +10357 +10369 +10386 +10387 +10402 +10406 +10407 +10404 +10405 +10407 +10408 +10412 +10413 +10417 +10420 +10412 +10426 +10427 +10424 +10433 +10434 +10435 +10456 +10472 +10492 +10494 +10508 +10510 +10511 +10512 +10513 +10514 +10507 +10510 +10511 +10515 +10525 +10526 diff --git a/2021/inputs/day2.txt b/2021/inputs/day2.txt new file mode 100644 index 0000000..a40e69b --- /dev/null +++ b/2021/inputs/day2.txt @@ -0,0 +1,1000 @@ +forward 5 +down 8 +down 6 +down 7 +down 8 +forward 7 +down 3 +up 6 +forward 6 +down 2 +forward 5 +down 6 +up 3 +down 4 +forward 4 +down 6 +down 1 +up 5 +forward 5 +down 1 +down 7 +up 2 +down 7 +forward 1 +forward 6 +down 1 +up 1 +up 4 +forward 3 +forward 6 +forward 1 +forward 4 +up 3 +forward 1 +forward 4 +down 9 +forward 4 +forward 8 +up 8 +forward 5 +up 4 +up 3 +down 8 +forward 5 +down 4 +forward 1 +forward 7 +down 1 +forward 8 +down 4 +forward 2 +forward 7 +forward 9 +up 4 +down 3 +forward 7 +forward 6 +down 8 +forward 2 +forward 5 +forward 4 +down 6 +forward 6 +up 5 +down 3 +down 6 +down 5 +down 7 +down 8 +up 5 +down 5 +forward 5 +forward 4 +up 3 +down 7 +down 3 +forward 4 +down 2 +forward 4 +forward 3 +forward 4 +forward 9 +forward 6 +forward 8 +up 8 +down 8 +up 5 +down 4 +down 8 +up 7 +up 8 +down 6 +down 3 +forward 2 +forward 7 +up 1 +up 2 +forward 2 +down 7 +down 1 +up 9 +forward 6 +forward 4 +down 2 +up 6 +down 2 +down 1 +down 3 +up 6 +down 1 +down 8 +forward 7 +up 8 +forward 5 +forward 8 +down 8 +forward 6 +forward 8 +down 3 +down 4 +down 6 +up 2 +forward 6 +up 9 +forward 4 +forward 8 +up 4 +down 8 +forward 8 +down 8 +down 4 +down 5 +forward 7 +down 6 +down 6 +up 2 +up 1 +forward 7 +forward 8 +forward 4 +forward 9 +down 7 +forward 4 +up 5 +down 3 +up 4 +down 9 +down 2 +down 8 +forward 3 +forward 5 +forward 7 +forward 9 +forward 5 +forward 8 +forward 6 +forward 4 +forward 6 +forward 7 +forward 2 +down 1 +down 8 +down 4 +down 5 +down 6 +up 3 +up 2 +forward 4 +down 4 +forward 7 +up 6 +up 9 +down 1 +down 3 +down 1 +up 3 +up 1 +down 2 +up 5 +forward 1 +down 7 +forward 9 +down 4 +up 4 +down 6 +down 3 +forward 4 +up 6 +up 4 +forward 1 +up 7 +down 1 +down 7 +down 7 +forward 9 +down 3 +down 3 +forward 6 +down 2 +forward 7 +up 4 +up 8 +down 8 +forward 7 +forward 6 +down 7 +forward 5 +up 6 +up 6 +down 9 +up 6 +up 2 +forward 9 +forward 1 +up 5 +up 3 +down 9 +up 8 +down 7 +up 7 +forward 5 +down 7 +down 4 +forward 2 +forward 3 +forward 5 +down 1 +up 6 +down 6 +up 6 +down 8 +down 3 +down 4 +forward 9 +down 3 +forward 3 +up 1 +down 2 +forward 8 +down 7 +up 9 +forward 1 +down 3 +forward 1 +forward 8 +down 3 +forward 8 +forward 6 +down 1 +down 9 +forward 2 +down 1 +down 6 +up 1 +up 7 +down 9 +forward 6 +forward 5 +forward 2 +up 6 +down 6 +forward 6 +up 3 +down 7 +down 8 +forward 5 +down 7 +forward 8 +down 8 +forward 4 +down 6 +forward 4 +down 7 +up 5 +down 5 +down 5 +down 4 +down 3 +forward 8 +forward 1 +down 8 +down 2 +forward 3 +forward 7 +forward 3 +down 5 +down 6 +down 8 +down 6 +forward 9 +forward 4 +forward 8 +down 5 +down 7 +forward 4 +up 5 +down 8 +up 6 +up 7 +down 6 +down 8 +forward 3 +up 6 +forward 7 +down 4 +up 1 +up 8 +forward 3 +down 6 +down 1 +forward 7 +down 1 +down 9 +forward 6 +down 4 +forward 3 +forward 1 +down 5 +down 9 +down 9 +down 5 +down 8 +down 7 +forward 1 +forward 5 +down 2 +forward 2 +forward 1 +down 8 +forward 6 +down 3 +forward 4 +up 2 +up 8 +forward 7 +forward 4 +down 8 +up 6 +forward 3 +up 1 +up 2 +forward 5 +forward 9 +down 5 +forward 2 +forward 5 +up 6 +down 1 +down 1 +down 6 +forward 6 +down 7 +forward 5 +forward 8 +down 7 +down 5 +forward 9 +forward 1 +up 6 +down 7 +forward 1 +forward 4 +down 5 +down 6 +up 3 +up 8 +up 5 +down 8 +down 8 +down 6 +down 2 +down 3 +down 9 +forward 8 +forward 7 +forward 7 +up 5 +down 5 +forward 9 +up 8 +up 5 +forward 1 +down 9 +down 9 +forward 9 +forward 4 +forward 6 +up 9 +up 5 +up 3 +down 9 +up 7 +up 1 +down 3 +down 9 +down 7 +forward 6 +down 7 +forward 7 +forward 8 +down 2 +forward 5 +up 1 +down 6 +up 9 +forward 5 +up 9 +down 2 +down 3 +forward 5 +down 9 +forward 9 +forward 2 +forward 8 +down 1 +forward 8 +up 1 +forward 3 +up 1 +down 1 +forward 9 +down 2 +forward 2 +up 1 +up 8 +down 2 +down 7 +down 5 +up 2 +up 6 +down 9 +down 7 +down 7 +up 6 +up 8 +down 7 +forward 5 +down 4 +down 5 +up 8 +up 6 +down 6 +forward 6 +up 6 +down 1 +down 1 +down 1 +forward 1 +down 8 +down 4 +down 5 +down 2 +down 5 +up 8 +up 8 +down 3 +down 6 +down 1 +forward 6 +forward 5 +forward 1 +down 3 +down 4 +up 9 +down 3 +up 8 +forward 5 +down 5 +forward 2 +down 8 +down 2 +up 1 +forward 7 +up 8 +forward 7 +down 3 +down 1 +down 3 +forward 4 +down 5 +down 8 +forward 8 +forward 3 +forward 7 +down 7 +forward 4 +down 1 +forward 3 +up 2 +down 7 +down 1 +forward 4 +forward 7 +down 3 +down 1 +forward 4 +down 3 +forward 2 +up 9 +down 5 +down 9 +forward 5 +up 5 +down 3 +up 6 +up 8 +down 7 +down 3 +down 9 +forward 6 +forward 8 +forward 3 +down 6 +up 8 +forward 8 +forward 9 +down 4 +down 1 +forward 2 +down 2 +up 2 +down 5 +down 1 +down 3 +forward 4 +down 3 +up 8 +up 6 +up 5 +down 4 +forward 3 +up 6 +forward 6 +forward 2 +down 8 +down 5 +forward 3 +up 1 +forward 5 +forward 9 +forward 5 +down 5 +forward 3 +forward 6 +forward 5 +forward 3 +down 1 +down 1 +down 1 +down 9 +forward 8 +forward 2 +forward 4 +forward 8 +down 1 +up 8 +down 1 +down 6 +down 5 +up 8 +down 4 +forward 8 +forward 6 +down 6 +forward 2 +forward 7 +forward 2 +up 7 +forward 4 +up 1 +up 8 +down 3 +down 2 +down 3 +up 7 +down 9 +up 5 +down 1 +down 3 +up 5 +down 6 +up 9 +down 4 +down 7 +down 6 +down 4 +forward 5 +forward 6 +down 8 +forward 3 +forward 8 +up 5 +up 6 +up 8 +forward 8 +forward 1 +down 6 +forward 3 +forward 3 +forward 6 +down 3 +down 2 +forward 5 +down 5 +forward 6 +down 3 +down 9 +down 8 +down 6 +down 6 +forward 1 +up 5 +down 9 +forward 3 +forward 3 +down 2 +forward 8 +forward 3 +forward 2 +forward 5 +down 4 +down 1 +up 2 +down 1 +down 1 +forward 5 +down 7 +up 7 +down 9 +down 8 +down 6 +forward 3 +forward 5 +down 3 +down 6 +up 3 +up 2 +up 8 +down 3 +up 3 +down 6 +forward 7 +forward 4 +up 5 +forward 1 +up 3 +forward 8 +down 2 +down 5 +down 2 +forward 4 +forward 4 +down 4 +up 8 +down 1 +up 2 +forward 2 +forward 9 +forward 4 +down 3 +down 7 +forward 1 +down 2 +forward 8 +down 8 +forward 3 +down 7 +forward 9 +forward 6 +up 1 +forward 3 +up 2 +up 3 +forward 6 +down 8 +up 9 +down 2 +down 9 +down 6 +down 4 +forward 5 +forward 3 +up 7 +forward 7 +up 7 +up 6 +down 7 +down 2 +up 7 +down 5 +up 9 +forward 3 +up 6 +up 6 +up 6 +up 1 +forward 5 +forward 5 +down 8 +forward 6 +forward 7 +down 3 +down 4 +down 2 +down 4 +down 1 +forward 7 +down 7 +down 5 +forward 8 +up 6 +up 8 +forward 8 +forward 2 +forward 4 +down 6 +down 4 +down 2 +down 3 +forward 8 +forward 6 +down 3 +forward 7 +forward 4 +up 8 +down 9 +forward 5 +up 5 +up 5 +up 7 +forward 3 +up 1 +down 2 +forward 5 +forward 5 +up 1 +forward 4 +down 6 +up 5 +up 3 +forward 9 +down 9 +down 6 +down 1 +down 2 +down 4 +down 7 +forward 3 +up 5 +forward 2 +down 3 +forward 7 +up 8 +up 3 +forward 6 +up 7 +up 1 +up 2 +down 5 +forward 5 +down 3 +down 5 +down 6 +up 1 +down 2 +up 1 +forward 3 +down 3 +down 4 +down 6 +down 1 +down 3 +forward 9 +forward 1 +down 1 +up 3 +forward 4 +forward 7 +forward 4 +down 2 +forward 6 +forward 2 +forward 7 +down 9 +forward 8 +forward 3 +up 8 +down 9 +up 8 +forward 5 +forward 9 +down 4 +forward 1 +up 9 +forward 2 +down 6 +up 3 +forward 1 +forward 3 +forward 8 +down 7 +down 3 +down 5 +down 2 +down 2 +forward 4 +forward 1 +down 2 +up 8 +down 2 +forward 3 +down 2 +down 6 +down 1 +up 1 +down 7 +down 3 +forward 3 +forward 1 +forward 9 +down 9 +down 2 +up 1 +forward 9 +up 2 +down 2 +forward 3 +down 4 +forward 9 +forward 5 +up 5 +forward 2 +up 3 +forward 8 +down 3 +forward 5 +forward 5 +down 8 +up 9 +forward 7 +up 2 +up 2 +up 1 +up 7 +down 8 +forward 9 +forward 9 +up 6 +down 5 +forward 7 +down 9 +down 8 +down 5 +down 3 +down 2 +forward 6 +down 7 +forward 3 +up 5 +forward 1 +up 7 +forward 3 +down 5 +down 9 +down 8 +forward 2 +up 4 +forward 7 +forward 5 +forward 8 +forward 7 +up 7 +forward 4 +up 7 +down 9 +forward 1 +forward 3 +down 3 +forward 4 +down 3 +forward 3 +down 5 +down 1 +forward 6 +down 4 +down 3 +down 2 +up 1 +down 1 +down 6 +down 6 +forward 9 +down 5 +forward 1 +up 4 +forward 7 +down 8 +forward 1 +forward 9 +forward 7 +down 1 +down 3 +up 2 +down 5 +up 6 +forward 2 +up 2 +down 7 +down 9 +forward 3 +up 5 +up 7 +down 4 +forward 6 +down 8 +forward 7 +up 1 +up 4 +forward 4 +down 9 +forward 9 +forward 9 +down 3 +forward 5 +forward 1 +down 3 +down 8 +forward 7 +down 4 +forward 3 +down 3 +forward 8 +forward 2 +forward 6 +up 9 +forward 2 +down 9 +forward 2 +down 1 +forward 9 +up 1 +up 4 +up 1 +down 1 +forward 4 +up 9 +up 8 +down 1 +down 3 +down 2 +forward 9 +down 7 +down 4 +forward 2 +up 9 +down 7 +down 1 +down 9 +forward 2 +down 2 +forward 9 +down 5 +up 1 +down 3 +up 6 +down 4 +forward 8 +down 2 +down 2 +down 9 +forward 9 +forward 2 +down 1 +forward 6 +down 2 +up 4 +down 8 +up 4 +down 6 +down 2 +forward 7 +down 3 +up 3 +forward 1 +up 4 +forward 5 +down 7 +down 8 +forward 7 +forward 3 +down 5 +up 6 +down 7 +down 1 +up 7 +down 1 +forward 6 +forward 3 +forward 3 +forward 7 \ No newline at end of file diff --git a/2021/inputs/day3.txt b/2021/inputs/day3.txt new file mode 100644 index 0000000..16977ec --- /dev/null +++ b/2021/inputs/day3.txt @@ -0,0 +1,1000 @@ +000110000001 +011011001101 +001101100111 +001101011001 +110111011101 +110011101010 +111101010001 +010100111101 +011000011000 +001110110011 +001100010110 +110111101100 +110001111100 +001011111100 +000000011010 +110101100111 +011000011111 +011000000111 +011111000110 +100101110111 +010101001110 +111101000011 +010010010110 +100100011111 +101011001110 +001111110000 +110000011111 +110000011000 +011001111100 +010010001101 +000111001110 +110111001110 +110001010101 +100111011001 +000101110000 +110001011100 +111101010010 +101011000001 +001101001111 +110111101010 +101111111000 +110101000110 +011111001001 +001110100001 +010100110111 +110100000110 +101010110010 +100100101110 +101111011110 +000110110101 +011011110101 +111001011110 +110110100111 +000100010001 +001101010110 +100011000110 +001110010010 +010111110111 +011010011101 +110000011100 +010100001001 +000110100000 +101001010000 +000001110000 +101110010011 +010011100111 +010011011000 +110111011111 +000111010010 +101010111010 +111001100100 +101110100011 +111101111110 +010111111000 +010010001111 +110010000011 +001110000010 +100101111110 +000100101001 +101101010000 +111111010000 +101010011000 +011100100001 +011101101000 +001010010100 +010010100011 +110011111111 +110100011001 +111010011110 +011110001101 +011010011100 +100100000001 +111111001010 +110100110011 +110100011111 +100010001110 +101000111100 +100001110010 +110101010011 +101010011101 +011010011010 +101110101101 +001100011010 +101001010101 +101010000100 +000110101010 +100000111100 +000111111100 +000001001011 +010010111100 +011000111001 +111010101100 +010011100010 +010100110001 +001100111011 +101100001111 +111010101111 +010001000011 +000001100010 +000100001011 +100110011011 +101100001110 +000010110100 +011000101011 +010011011100 +110101010000 +101101101100 +101001110000 +010111010011 +110101110001 +011000001000 +011101010010 +111011111110 +010010000110 +110000111000 +101000000110 +011100110000 +111001111010 +110000001100 +101011111110 +100001111100 +011011100110 +101000001101 +001011110011 +111100100011 +101111000111 +101000000001 +001001011010 +010111111010 +101010111001 +011110101001 +101100111101 +011100000010 +000110001111 +111100110101 +100011100010 +000110010100 +011000000011 +010011001011 +000001101111 +101011101101 +100100100101 +011001110110 +010100000000 +100100010001 +001100000100 +100000111010 +101001011001 +010010111001 +110000101010 +001101010101 +110110011100 +010000000011 +111100011000 +000101111110 +100010110101 +101111010000 +000010100010 +101101001010 +011111000000 +011000100100 +110010100110 +010001110011 +010101101101 +001011100000 +001000110110 +001000110111 +110100111110 +110010110100 +101010100111 +000111011001 +111000101101 +110000010110 +010011101010 +110100111011 +100110010100 +100111000011 +011110111111 +010010000111 +111100111110 +001010111101 +000011001110 +000110010101 +111100110011 +101111111001 +101001111011 +111010110000 +000001010101 +100010011001 +111110110010 +110100101100 +100001011110 +100001000011 +101111000011 +101111110100 +111010000010 +001010010110 +010001000110 +100010000101 +111101111010 +000101111111 +010110110100 +110111111110 +011010101011 +100000110011 +000000101001 +010010101111 +010001001010 +000101010100 +101110111010 +101001000000 +001010101111 +011110100110 +110101011001 +100111101101 +110001001001 +110100001010 +100100101001 +110111010011 +011010001011 +011001001101 +110100010001 +010100001100 +011011000001 +110100011100 +001110111111 +111001110010 +001110010000 +011100001110 +001111110001 +001101010111 +111110011100 +111100111010 +010100010100 +000011001010 +011110001010 +111101010011 +100111001010 +010110110011 +000101000000 +000110011010 +100100001111 +000100111111 +010100010101 +001110100011 +100111000100 +100001101110 +011010011110 +001111010101 +111000001100 +100111110110 +101110001100 +101011000111 +001010110010 +100011011100 +110000010000 +101001101011 +111011011000 +000101101001 +011001111011 +101011001111 +001111111111 +110000101011 +111111100011 +101010101111 +001001010001 +011111010001 +001011101110 +011010011011 +011000001011 +100000100000 +001011110110 +011000100011 +001010011010 +000010111111 +001110001111 +111110001100 +010110100011 +110101100010 +100111110000 +010000101011 +011100011111 +001100101010 +101110110100 +100101000111 +111111111010 +000001000001 +110111011001 +010011000000 +101100000101 +110000100100 +110100100101 +101011010010 +101001000101 +110001001111 +010010011010 +000110110111 +011010110001 +001101001001 +010110101000 +101000011000 +110010011010 +100101011111 +001101110011 +110001110001 +011110000110 +111011100101 +001100111001 +001011011011 +001011110001 +010001111101 +011000101001 +100100000110 +011000101111 +001010110100 +000100101010 +111011010110 +100111000000 +001000111010 +101101001111 +000110111010 +001111100001 +011110011001 +100011000101 +001010010011 +110011100110 +010010001011 +110101101110 +111100100101 +101100100010 +111010111101 +000000000011 +011011001110 +101110000001 +000111111000 +100000110001 +101101100111 +001001011001 +101100010010 +001000011100 +111011111100 +010000100011 +111010111100 +011001101111 +100011001111 +011001111010 +110110100101 +010110100110 +011110101101 +011101110001 +111000100101 +000010000000 +100110111001 +000101000001 +000001101100 +011010000100 +111000101001 +111100111111 +100110000110 +100010001010 +011110001000 +100001100100 +101101101010 +101111010001 +010001111100 +001010111001 +001101110111 +010100101100 +100011011101 +010100111000 +000110000000 +110101101010 +010100000101 +101110111100 +001010110000 +000000010101 +000100011000 +011010110100 +010000000010 +111101100011 +000111101001 +011101011100 +101000101101 +110110101011 +011010110011 +011001101010 +100000000011 +101001111111 +111010110100 +010000011100 +011011100000 +110011011000 +111011101111 +100010110110 +010000100111 +110101110101 +100010111001 +011011101000 +011010000001 +001001111110 +100010010001 +010101000110 +111111110010 +101011011110 +010011110110 +000010010100 +100011101111 +001001110110 +000100110100 +100101110110 +011010111001 +010010101110 +110010100011 +011010101010 +000101111000 +111011110011 +100111101110 +101111101001 +010111100010 +111011001011 +111110011110 +110110010110 +010110010111 +011111001100 +110111110010 +110011111000 +001110111101 +111100111000 +000100000010 +110101111110 +010111101101 +111001001010 +000010011100 +110101100100 +111000011110 +010110000000 +011100010011 +011110010100 +101000100111 +111011110101 +000100010000 +000110110011 +100011001011 +111010100000 +010100110101 +001000000101 +010001101100 +010110000101 +100100101111 +011101111110 +000011110000 +000011010011 +101111111110 +101001101010 +000010100011 +010100101010 +001111001110 +011000001001 +010001110100 +010111011110 +100000111111 +101100010101 +111101000110 +110111101111 +011010010010 +011100011100 +001111010010 +111001101000 +110110111010 +101110000111 +011100101100 +011100001010 +110101011101 +011100010010 +010101010010 +000001111101 +110100110111 +011111100111 +111101011110 +110110000110 +100110001011 +111110000001 +010001010011 +101001110110 +011101011101 +010011011110 +000100000000 +100110010001 +000011100110 +101111100001 +101100101010 +001010101110 +001111001101 +110000000111 +110010100001 +011100000111 +100111100111 +101001011111 +110000100011 +111001000111 +010101111010 +110111100100 +001010101100 +001011110100 +001010010111 +110001001000 +110010011001 +110111011100 +001110000011 +010001000010 +100000000101 +110001101001 +000101010111 +101010110101 +100000010000 +000000111100 +011011100100 +110010001110 +110110100000 +101100001100 +110010110111 +010001100010 +101110100010 +001101101101 +010100110000 +010010100000 +011101110100 +100011011001 +010110111101 +010110011011 +011111011111 +001000000000 +001101110101 +010000010101 +000101001000 +011011100101 +001010000101 +110010001101 +000001000011 +001101001110 +000101100010 +010110100001 +010111110011 +011000100111 +100001101011 +100100100011 +111100011001 +010010101000 +101010000010 +010011000001 +100000000010 +010011101011 +101110100111 +111101101011 +011010001111 +001000011000 +011111110111 +101111011100 +011011011111 +110111100010 +010010110001 +111100010111 +111000001111 +101100010011 +010101001101 +110101100001 +010111010110 +110000001111 +000111000000 +110010010001 +001110110101 +101000010010 +010110001100 +001101101010 +110110110110 +000000000111 +011010010000 +011001010111 +001010101011 +001001100011 +001111010110 +000000100111 +000000010100 +001001110011 +010111000010 +010000001100 +101111010111 +101001110100 +100011010111 +000111110100 +011101111010 +000111000010 +011100111100 +011011110100 +101000110011 +010101110111 +111101101000 +010010011011 +000101011111 +010000000110 +011110100101 +111000000100 +010110110101 +010110111001 +101110010000 +010111001111 +001001000110 +010100010000 +101100100111 +101100001000 +110110001001 +011001001010 +011001001110 +110011101001 +010100101111 +111101001000 +100000101100 +111000011000 +011000011100 +111111010001 +111100100100 +011000111110 +010011010000 +100110101100 +110000100001 +001101010011 +011000101110 +000110010000 +011010101100 +001110001010 +010101000001 +101010010101 +100000010111 +000100110101 +110111010110 +101101101011 +100101100101 +101010011110 +111001000100 +011101100111 +010000110101 +100111010110 +010011111110 +111011100100 +100010101101 +010110100101 +100011100000 +110010011101 +011110000011 +111111110011 +100001101100 +000000011000 +000100101101 +000100110000 +000110000010 +011110010011 +111001111111 +000011110101 +111001101100 +111010111010 +000101000101 +111000010110 +111010011000 +101110100110 +111100000100 +101000110001 +000001010110 +101000100000 +110111001010 +001001101000 +010011111010 +100010100100 +110010101001 +111101100101 +010001000101 +011001111101 +110000001110 +100101101100 +110110111100 +010111011101 +111011011100 +011111011100 +100100011001 +111010011011 +110011101011 +100001101000 +010110100010 +101100100110 +010110111010 +111111011001 +101011110011 +011001101001 +110011100111 +010100111110 +001001010011 +010101110000 +010111010101 +100110011100 +110010011011 +001011010111 +000001010100 +001111011100 +000010100100 +010101011011 +010100001011 +000001011110 +011111010111 +010000101100 +111111101111 +100101010110 +100011010101 +100101100100 +010011111101 +010011001111 +011010000101 +110010000111 +101110110110 +000010001001 +111000010010 +111001001111 +111000111010 +010111011100 +011010001101 +111011011111 +001010110001 +011111111101 +001001001011 +100100011000 +001000101010 +101001111010 +011101000010 +111010000111 +001000100000 +100000100010 +111111011000 +110011000110 +111111100010 +100110011101 +101111101000 +001001001100 +100001100001 +100111110011 +001000100010 +011100011000 +000001010010 +100010111110 +101111010010 +100100000011 +000101000010 +101001011100 +000101001101 +000101110010 +111111111011 +110100000100 +000001000010 +101011010101 +000011110011 +000011001000 +010111111001 +111110100111 +100110100111 +001100001111 +000100011110 +001101000101 +011110000000 +000100111100 +011110010111 +011011010011 +010101011110 +100111001100 +011111101010 +011011001000 +100100110100 +011101010101 +100101111001 +100011101001 +101010000001 +101110111001 +110100101111 +010001001100 +100110110000 +100000111001 +010111011011 +111110001000 +101000111101 +000011010110 +100010010010 +010010011111 +011110111110 +000100111000 +111100001101 +000010110101 +010010001110 +101111000100 +100101111100 +010100011111 +110101010010 +000010111110 +100001000100 +001010001010 +110000111100 +010000101000 +111000110110 +001001101010 +001101011100 +001000001100 +110010011100 +011111000011 +111100101101 +110111010101 +000010010110 +111101110111 +000011010010 +111110000000 +001111000101 +100010111100 +001011000011 +010110000010 +001101111101 +101011000011 +100001010010 +100001010100 +111100011101 +010110001101 +011101101101 +101010101110 +110111110100 +001111001010 +100010111101 +011010001001 +111111001000 +100010100001 +111010010110 +001101000011 +000011111011 +110101000100 +110101111101 +010010000011 +110101001111 +001110111110 +101111100011 +011011011100 +001100100100 +010011111000 +101010001111 +111101010101 +001110110001 +101100010100 +100010001000 +101110000110 +001101100001 +111001000110 +101110011110 +100010000110 +101010111011 +001010110101 +001101101110 +100000101111 +011001000001 +010100001110 +100111101000 +011000110000 +110000101111 +010110111111 +001110101000 +111010100010 +100000110100 +100100000010 +101010110011 +010101000100 +100100001011 +000110011011 +110001000010 +111111000111 +010001010010 +001000011011 +110010000101 +111110110111 +001000111001 +101111100010 +101001110010 +001101101111 +101001101101 +001000010011 +111000011111 +111111110101 +101001000001 +010101101111 +110100100100 +001011101011 +001010111100 +000111100011 +010001010100 +110011000011 +100111100000 +001001111001 +111111100001 +001001100110 +001000101001 +111101011011 +111000000010 +100000100111 +101011100100 +001010111110 +100110110100 +110111100111 +000110101000 +011001000111 +010111000001 +101111101101 +000001101101 +000110100111 +110001010100 +111110101111 +111110110101 +111000010001 +101111011010 +101111110110 +000000101100 +010011010010 +000101010101 +100110101000 +000111000011 +001000010110 +000111001010 +000001000111 +000101000110 +000100010100 +001011011101 +001001111101 +000000000101 +000100100101 +101010001101 +001010000111 +110110001110 +000010011010 +011001110101 +111111101011 +001100001100 +100111001000 +011010011000 +000001101001 +010001111001 +001001110100 +111110111000 +000010010001 +111111010011 +100000011011 +010110010100 +010000111000 +100001110110 +111101111001 +110000011010 +100110101111 +010001100111 +100001011100 +110000010011 +010100001111 +110010010110 +110010111000 +001011000110 +101011001101 +010000000100 +010010000000 +010100100101 +110010100101 +010101110110 +101101001101 +110000110011 +110011110110 +111101110110 +001011111001 +110101101000 +101111111100 +110011111101 +100001111110 +011101111000 +101010000111 +101110011111 +101000010101 \ No newline at end of file diff --git a/2021/inputs/day4.txt b/2021/inputs/day4.txt new file mode 100644 index 0000000..11224a7 --- /dev/null +++ b/2021/inputs/day4.txt @@ -0,0 +1,602 @@ +23,30,70,61,79,49,19,37,64,48,72,34,69,53,15,74,89,38,46,36,28,32,45,2,39,58,11,62,97,40,14,87,96,94,91,92,80,99,6,31,57,98,65,10,33,63,42,17,47,66,26,22,73,27,7,0,55,8,56,29,86,25,4,12,51,60,35,50,5,75,95,44,16,93,21,3,24,52,77,76,43,41,9,84,67,71,83,88,59,68,85,82,1,18,13,78,20,90,81,54 + +50 98 65 14 47 + 0 22 3 83 46 +87 93 81 84 58 +40 35 28 74 48 +45 99 59 37 64 + +85 66 90 32 88 +95 6 4 74 27 + 1 10 70 41 92 +54 36 42 9 39 +60 99 31 67 16 + + 4 44 66 10 58 +33 64 93 42 46 +19 63 6 83 54 +60 51 76 8 30 +71 49 73 7 55 + +17 67 52 61 98 +46 5 4 51 76 +73 59 74 8 33 +48 96 20 26 15 +55 19 86 29 43 + +20 75 12 67 41 +89 36 65 66 92 +40 19 1 0 28 +99 61 85 58 50 +44 72 57 35 86 + +69 87 27 59 33 +47 34 60 93 9 +71 84 46 24 96 +15 91 5 61 19 +57 78 55 31 8 + +19 10 1 81 96 +27 71 2 52 56 +15 22 48 82 34 +64 47 42 49 51 +26 72 61 12 57 + +71 94 40 34 26 +12 80 57 38 55 + 4 56 11 73 49 +75 60 61 9 50 +91 70 23 1 90 + +39 86 30 73 38 + 6 53 58 14 36 +85 12 75 88 5 + 0 29 41 21 15 +47 66 59 54 1 + +99 97 50 17 60 +36 13 29 80 32 +49 85 75 71 15 +10 79 41 61 66 +68 57 55 74 98 + +68 33 87 89 59 +96 35 76 78 55 + 4 63 51 10 65 +58 38 22 54 9 +66 18 37 60 6 + +43 86 50 23 77 +10 42 19 61 2 +40 29 20 84 0 +70 59 96 80 57 +76 12 39 36 6 + +73 43 92 37 99 +36 42 10 77 87 + 3 57 4 20 35 +18 7 46 91 11 +17 98 8 53 61 + +22 37 89 51 9 +71 6 72 87 32 +13 79 86 53 98 +16 2 93 48 38 +63 82 66 61 69 + +73 90 85 54 65 + 9 66 28 5 63 +91 50 70 59 80 +95 68 92 72 67 +69 88 36 43 53 + +36 81 66 78 90 + 2 25 94 82 55 +34 45 1 14 37 +13 4 70 48 75 +67 73 32 18 91 + +33 93 71 48 47 + 8 79 69 53 82 + 5 31 80 45 37 +67 77 41 56 97 +65 46 62 42 81 + +67 70 59 24 88 +84 11 29 52 78 + 4 39 12 90 2 +44 3 10 75 89 +30 93 22 14 8 + +79 60 98 99 49 +23 26 86 91 38 +77 45 95 66 75 +81 42 85 21 3 +40 37 65 20 50 + +12 54 0 86 52 +15 56 29 39 94 +66 79 14 65 26 + 3 4 59 60 40 +47 48 19 13 85 + +32 44 69 90 21 +35 8 1 59 56 +72 71 84 18 11 +96 38 23 37 79 +92 20 33 94 17 + + 1 94 42 21 82 +92 60 9 32 38 +71 3 37 77 18 +89 16 74 76 2 +83 30 28 11 70 + +94 3 1 71 87 + 6 66 19 76 28 +10 86 22 62 2 +67 0 31 46 27 + 8 33 43 92 29 + +35 90 8 30 27 +67 60 82 68 1 + 5 29 93 44 34 +56 65 48 37 51 +57 45 63 94 77 + +67 80 45 57 43 +37 81 25 84 82 +50 8 9 64 7 +29 18 52 16 14 +73 28 11 76 6 + + 5 76 67 18 16 +68 47 15 29 59 +46 32 40 9 84 +30 17 20 22 3 +35 80 38 72 88 + +35 44 14 89 72 +75 67 56 2 3 +58 41 49 12 52 +92 9 22 34 88 +65 39 93 61 47 + +38 67 33 18 60 +34 50 69 31 83 +29 30 9 12 95 +79 2 24 54 87 +46 68 48 58 42 + +61 87 46 26 34 +74 85 9 54 38 +50 29 84 40 4 +49 39 33 99 53 +77 59 0 42 35 + +86 68 23 62 5 +96 92 7 4 1 +50 70 12 83 46 +34 63 91 56 11 +76 90 71 88 95 + +19 18 13 3 62 +42 29 57 79 85 +39 64 14 28 98 +99 36 91 9 63 +69 66 2 17 31 + +51 43 49 98 94 +31 64 53 54 57 + 3 28 10 12 2 +24 99 95 35 17 +76 27 48 0 41 + +80 62 13 38 98 +32 15 16 8 96 +93 43 81 99 40 +20 57 37 24 3 +94 17 70 14 7 + +52 71 49 95 84 +76 38 45 59 89 + 1 7 27 0 98 +92 64 8 50 68 +13 91 26 51 2 + +31 45 25 1 5 +50 68 77 61 53 +74 20 99 38 63 +76 44 15 42 51 +67 87 86 12 24 + +49 0 70 82 9 + 2 24 96 74 60 +68 16 40 32 20 +48 6 98 11 65 +94 10 54 8 95 + +74 41 11 33 76 + 2 10 44 89 23 +56 45 78 60 34 +15 5 26 83 71 +20 72 85 75 54 + +15 59 93 53 8 + 4 10 84 44 36 +17 62 24 27 98 +87 54 73 13 35 + 9 48 52 33 7 + +56 80 70 74 35 +53 69 75 25 27 +47 91 85 62 32 +93 26 89 18 52 +16 73 49 55 77 + +42 40 54 67 73 +11 10 49 35 59 +12 93 37 15 69 +97 41 47 39 2 +75 99 21 29 26 + +23 75 41 10 86 +71 67 66 38 99 +91 92 63 40 28 +69 97 42 77 60 +44 53 12 84 57 + +72 51 31 90 37 +35 89 55 73 87 +46 32 45 0 58 +50 81 13 18 66 +38 4 40 62 22 + +14 48 35 76 83 +13 70 26 4 1 +30 22 91 93 29 +69 41 74 40 63 +80 65 66 72 23 + +23 65 33 56 38 +84 41 34 21 2 + 4 78 27 17 11 +22 53 52 32 80 +24 25 42 91 99 + +54 51 0 23 52 +92 69 10 46 7 +20 35 12 37 73 +19 56 26 79 32 +27 74 34 5 57 + +75 10 24 32 7 +96 54 22 78 5 +23 69 65 43 20 +29 85 44 92 71 +41 87 73 0 48 + +54 92 16 36 37 +42 59 4 9 44 +52 14 12 6 47 +57 38 70 82 0 +53 81 32 35 3 + +17 22 62 80 30 + 8 28 15 42 46 +79 64 32 29 75 + 5 0 9 90 69 +41 71 85 1 6 + +68 89 40 31 39 +32 48 64 38 28 +80 98 88 14 97 + 6 60 52 11 55 +95 34 63 81 4 + +80 33 14 83 68 +78 69 81 59 15 +72 0 74 21 75 +49 6 67 73 64 + 8 25 87 3 45 + +34 97 86 1 79 +49 12 63 10 59 +88 30 84 74 87 +67 47 26 0 57 +71 40 2 76 98 + +15 89 23 65 44 +27 87 54 38 12 +43 29 18 39 94 +48 0 7 57 61 +70 28 60 68 50 + +13 34 49 67 40 +88 74 99 20 26 +63 69 62 24 32 +35 45 96 79 1 +92 7 17 76 30 + +95 21 75 46 74 +39 7 58 23 90 +61 64 37 81 82 +92 36 54 9 53 +17 51 33 10 27 + +67 35 44 22 23 +28 96 1 56 29 + 0 12 5 50 99 +70 42 8 24 25 +39 53 51 89 85 + +50 15 94 84 27 +72 26 51 3 85 +63 45 1 64 44 +17 80 13 88 2 +12 97 91 25 18 + +59 14 9 67 63 + 6 18 26 98 50 +86 74 75 56 34 +48 7 99 20 64 + 8 53 10 15 57 + + 6 35 13 68 24 +90 19 91 71 86 +95 58 10 44 98 + 8 41 60 1 16 +29 59 43 84 48 + +48 56 8 74 4 +66 30 77 35 90 +94 0 75 49 84 + 5 39 11 54 87 +33 58 96 22 2 + + 5 38 57 63 65 +74 58 22 8 81 +45 96 78 3 11 +28 42 30 39 51 +87 33 34 75 14 + +56 34 67 70 17 + 7 80 10 31 85 +68 59 63 74 40 +13 81 99 62 6 +92 84 71 37 39 + +85 99 74 16 10 +12 21 91 2 83 + 4 94 38 51 36 +41 97 45 65 24 +50 82 92 52 35 + +28 65 6 13 23 + 7 57 86 18 67 +26 85 29 22 89 +99 62 94 31 96 +14 17 50 56 9 + +98 10 63 4 8 +46 21 58 89 3 +27 12 11 55 16 +61 38 43 33 54 +53 14 99 31 25 + +25 70 24 40 14 +75 82 58 68 41 +22 71 72 93 1 +47 97 6 81 45 +92 42 2 76 12 + +31 84 30 0 85 +55 70 72 45 57 +78 52 67 60 22 +43 32 8 44 34 +14 64 91 89 18 + +70 19 62 16 56 +84 49 41 3 20 +85 5 76 95 22 +63 55 37 31 72 +42 17 28 65 1 + +85 17 57 62 48 +34 29 69 52 28 +90 64 54 21 38 + 0 50 84 44 60 +93 80 75 89 83 + +39 84 78 12 5 +29 4 35 7 85 +73 25 58 27 45 +22 90 91 47 74 +60 96 15 24 26 + +13 30 82 31 43 +23 71 1 51 36 +40 62 25 54 86 + 8 83 2 47 34 +33 41 27 98 24 + +13 25 53 50 56 +77 4 41 19 22 +68 70 75 9 65 +30 33 60 74 80 +31 83 34 79 11 + +11 90 38 78 73 +17 16 14 37 4 +80 68 21 70 92 +47 26 81 67 25 +10 31 23 41 22 + +90 62 2 50 79 +77 51 8 11 13 +32 29 43 88 33 +39 34 89 45 23 +91 9 6 68 3 + +62 70 89 27 87 +45 65 96 80 29 + 1 54 90 68 16 +72 50 28 95 12 +21 71 81 10 60 + +33 14 60 44 78 + 6 65 87 11 8 +79 21 59 35 19 +26 69 67 42 27 +25 36 80 10 45 + +71 24 80 87 56 + 7 61 43 38 18 +52 46 41 28 48 + 0 74 20 34 63 + 3 84 42 85 9 + +36 64 41 7 49 +91 92 13 94 88 +73 98 79 0 12 +76 66 86 67 9 + 2 85 74 5 34 + + 8 81 7 56 28 +36 13 42 29 75 +12 27 85 45 9 +26 25 62 41 22 +79 11 95 0 24 + +72 76 81 67 16 +96 41 94 58 7 + 0 79 38 27 11 +61 36 56 88 39 +89 63 31 75 8 + +62 51 5 46 28 +77 97 89 86 13 +87 55 73 90 57 +84 44 40 49 34 +25 0 58 6 21 + + 7 56 15 41 94 +42 89 16 18 74 +57 79 96 35 3 +14 45 20 19 80 +87 85 28 69 17 + +27 88 54 62 65 +44 93 69 13 9 +85 63 43 11 47 +83 57 30 20 56 +71 46 49 7 77 + +45 24 75 39 69 +48 74 44 49 64 +65 25 22 46 93 +88 52 27 37 50 +19 35 47 54 67 + +44 32 71 13 57 + 7 38 26 98 65 +46 1 21 8 55 +30 62 92 27 3 +69 50 99 85 11 + +86 6 64 34 97 +47 98 7 38 9 +26 68 75 92 54 +58 42 13 78 37 +85 28 81 16 51 + +82 74 15 4 86 +55 0 70 88 24 +50 79 63 40 21 +47 39 61 49 36 +89 16 13 2 37 + +89 19 9 82 13 +84 34 58 56 10 +27 92 46 4 94 +44 24 52 86 55 +39 23 22 99 5 + +65 92 8 86 77 +98 79 72 28 78 +16 23 3 55 48 +68 95 66 30 43 +50 31 15 11 45 + +32 70 25 59 31 +47 68 77 56 23 +66 78 54 88 50 +55 60 58 89 83 +84 99 86 97 95 + +53 46 1 94 87 + 8 80 38 77 81 +17 51 47 19 69 +86 50 71 5 93 +61 66 36 58 0 + +90 58 17 29 92 +67 1 8 64 99 +63 22 57 19 68 +78 36 93 53 2 +27 48 62 39 14 + + 8 49 22 90 54 +26 4 99 27 34 +78 25 11 85 28 +31 42 36 53 15 +64 75 60 45 35 + +99 84 26 53 90 +61 51 98 39 86 +47 37 52 80 63 +67 49 35 70 11 +32 45 94 73 43 + +91 92 74 94 32 +27 56 50 33 54 +67 46 35 25 10 +93 97 30 90 4 +57 15 69 83 39 + +71 68 74 81 11 +44 98 60 17 73 +43 40 32 38 39 +61 56 97 94 70 +23 2 86 91 54 + +19 98 93 42 88 + 0 16 30 32 71 +89 86 81 76 68 +29 2 14 72 63 + 7 27 67 59 1 + +24 18 28 98 95 +10 62 80 71 36 + 3 89 20 63 46 +47 65 84 22 6 +82 19 81 38 45 + +54 85 67 34 79 +25 58 38 73 61 +72 98 4 19 40 +32 10 29 31 89 +15 33 5 7 63 + +49 48 71 81 88 +70 5 39 41 22 +19 20 7 75 23 +69 46 63 14 54 +80 45 94 6 55 + +88 62 76 78 95 +64 65 36 58 22 + 7 21 98 93 42 +79 99 9 89 10 + 6 5 33 92 72 + diff --git a/2021/inputs/day5.txt b/2021/inputs/day5.txt new file mode 100644 index 0000000..8671f02 --- /dev/null +++ b/2021/inputs/day5.txt @@ -0,0 +1,501 @@ +445,187 -> 912,654 +820,46 -> 25,841 +216,621 -> 458,379 +955,898 -> 67,10 +549,572 -> 549,520 +796,107 -> 109,794 +729,698 -> 338,698 +11,987 -> 968,30 +381,840 -> 381,409 +80,467 -> 80,48 +132,197 -> 132,92 +343,96 -> 343,710 +42,854 -> 346,550 +503,56 -> 804,56 +599,206 -> 60,206 +702,920 -> 474,920 +496,790 -> 223,517 +969,579 -> 583,579 +897,66 -> 604,66 +484,754 -> 640,910 +330,49 -> 949,49 +908,132 -> 714,132 +517,153 -> 97,573 +317,865 -> 678,504 +800,61 -> 800,51 +179,242 -> 179,202 +529,757 -> 529,838 +288,953 -> 393,953 +372,15 -> 925,568 +100,85 -> 654,639 +663,562 -> 737,636 +576,981 -> 245,981 +347,240 -> 347,928 +91,119 -> 413,441 +637,397 -> 330,90 +534,257 -> 950,257 +155,636 -> 694,97 +539,274 -> 539,327 +329,795 -> 824,300 +103,51 -> 961,909 +87,868 -> 168,787 +21,250 -> 157,386 +591,316 -> 670,395 +722,670 -> 630,670 +28,167 -> 28,489 +480,210 -> 68,622 +573,700 -> 354,919 +186,59 -> 700,59 +121,186 -> 670,186 +797,985 -> 671,985 +836,804 -> 335,804 +701,835 -> 104,238 +456,718 -> 456,964 +694,891 -> 694,839 +205,637 -> 205,318 +40,958 -> 773,225 +151,391 -> 151,779 +693,894 -> 417,894 +418,700 -> 656,700 +196,985 -> 896,985 +357,509 -> 608,258 +552,558 -> 552,482 +184,412 -> 170,412 +122,746 -> 643,225 +268,930 -> 247,930 +979,820 -> 407,248 +755,893 -> 845,893 +706,843 -> 706,225 +162,726 -> 895,726 +140,888 -> 289,888 +614,432 -> 903,721 +272,725 -> 272,598 +529,672 -> 967,234 +903,989 -> 785,871 +422,355 -> 422,360 +313,722 -> 713,322 +460,121 -> 460,151 +55,944 -> 946,944 +795,744 -> 221,744 +816,953 -> 471,953 +865,186 -> 557,186 +94,976 -> 747,323 +302,961 -> 811,452 +361,966 -> 921,406 +197,988 -> 571,988 +310,905 -> 722,493 +699,91 -> 272,518 +295,306 -> 84,95 +220,116 -> 395,291 +183,364 -> 523,364 +16,986 -> 16,319 +54,980 -> 635,399 +340,110 -> 651,421 +788,76 -> 788,635 +933,375 -> 458,375 +12,434 -> 494,916 +253,892 -> 962,183 +240,508 -> 240,234 +763,934 -> 506,677 +308,135 -> 239,66 +117,649 -> 751,15 +95,535 -> 428,868 +16,937 -> 902,51 +547,404 -> 547,830 +128,581 -> 970,581 +959,810 -> 564,415 +971,738 -> 378,145 +919,210 -> 295,210 +737,43 -> 231,43 +82,577 -> 455,204 +821,337 -> 570,337 +688,753 -> 538,753 +891,844 -> 124,844 +74,957 -> 946,85 +43,942 -> 43,210 +100,391 -> 100,142 +975,527 -> 175,527 +510,844 -> 395,959 +558,231 -> 558,858 +839,915 -> 262,338 +784,290 -> 875,199 +644,824 -> 812,824 +899,657 -> 500,657 +263,668 -> 263,964 +157,374 -> 820,374 +530,301 -> 530,67 +15,688 -> 15,572 +216,844 -> 479,581 +973,59 -> 68,964 +104,92 -> 104,547 +421,472 -> 421,176 +887,805 -> 231,149 +140,980 -> 852,980 +248,602 -> 346,602 +334,961 -> 334,471 +892,892 -> 958,958 +270,83 -> 270,135 +950,105 -> 404,651 +979,476 -> 930,427 +416,430 -> 879,430 +796,937 -> 796,415 +670,679 -> 72,679 +733,884 -> 733,302 +745,196 -> 306,196 +174,353 -> 667,846 +285,978 -> 254,978 +10,63 -> 936,989 +242,107 -> 242,725 +238,341 -> 238,800 +975,102 -> 174,903 +530,474 -> 530,853 +931,47 -> 467,47 +86,141 -> 821,141 +263,15 -> 654,15 +688,542 -> 378,232 +826,793 -> 989,793 +729,285 -> 729,192 +587,915 -> 587,79 +548,667 -> 877,667 +15,836 -> 783,68 +662,673 -> 71,82 +312,681 -> 910,83 +760,418 -> 491,418 +175,502 -> 443,502 +817,878 -> 29,90 +798,569 -> 811,582 +703,141 -> 743,181 +941,849 -> 941,778 +63,24 -> 500,461 +697,183 -> 119,761 +705,672 -> 152,672 +150,567 -> 656,567 +158,411 -> 965,411 +702,872 -> 276,446 +141,179 -> 741,779 +533,886 -> 817,886 +569,949 -> 285,949 +699,764 -> 699,780 +333,863 -> 805,391 +861,804 -> 524,467 +791,501 -> 718,501 +976,265 -> 976,713 +129,342 -> 339,132 +322,738 -> 212,738 +700,534 -> 622,456 +68,314 -> 14,314 +146,112 -> 215,181 +170,211 -> 482,211 +159,412 -> 159,32 +312,939 -> 312,95 +232,18 -> 912,698 +950,114 -> 950,826 +620,848 -> 620,11 +624,288 -> 544,208 +752,479 -> 752,577 +784,796 -> 784,872 +130,55 -> 974,899 +434,82 -> 434,481 +988,230 -> 892,134 +159,252 -> 159,291 +462,14 -> 462,977 +553,981 -> 553,390 +231,936 -> 51,936 +58,759 -> 60,759 +572,891 -> 584,891 +705,303 -> 124,303 +144,894 -> 970,68 +865,275 -> 865,956 +492,491 -> 470,491 +971,15 -> 977,15 +750,521 -> 33,521 +913,947 -> 387,421 +368,677 -> 570,677 +795,186 -> 882,186 +404,840 -> 678,840 +187,488 -> 403,488 +824,706 -> 642,706 +330,541 -> 330,195 +564,531 -> 774,531 +271,857 -> 20,606 +976,975 -> 976,843 +323,341 -> 21,39 +575,643 -> 267,643 +827,295 -> 827,854 +749,486 -> 749,780 +656,716 -> 656,470 +635,187 -> 417,187 +503,488 -> 503,393 +592,688 -> 592,567 +515,408 -> 128,795 +608,158 -> 780,158 +677,96 -> 11,762 +127,452 -> 339,452 +117,985 -> 291,811 +157,371 -> 157,916 +640,758 -> 983,758 +906,413 -> 906,776 +224,842 -> 627,439 +903,728 -> 903,459 +358,138 -> 822,602 +30,16 -> 929,915 +440,900 -> 294,900 +809,73 -> 987,73 +55,410 -> 304,161 +441,672 -> 315,672 +939,40 -> 234,40 +334,698 -> 309,698 +572,738 -> 572,226 +445,71 -> 445,468 +225,660 -> 427,458 +390,320 -> 449,320 +507,635 -> 507,169 +47,116 -> 738,807 +127,14 -> 689,14 +316,760 -> 316,432 +831,101 -> 250,682 +370,807 -> 370,898 +678,186 -> 491,186 +866,83 -> 539,83 +518,848 -> 518,962 +188,135 -> 81,28 +378,226 -> 597,226 +646,534 -> 141,534 +275,672 -> 275,854 +67,421 -> 676,421 +386,323 -> 988,323 +903,984 -> 10,91 +37,348 -> 529,840 +872,134 -> 358,648 +42,826 -> 42,822 +688,922 -> 21,922 +47,539 -> 942,539 +739,483 -> 375,847 +23,217 -> 800,217 +589,512 -> 589,953 +292,229 -> 107,229 +873,678 -> 873,770 +794,295 -> 739,240 +464,559 -> 936,559 +685,736 -> 368,736 +114,941 -> 114,307 +571,643 -> 74,643 +281,185 -> 273,177 +497,937 -> 497,469 +152,815 -> 702,815 +76,43 -> 980,947 +272,149 -> 101,149 +934,945 -> 107,118 +532,476 -> 759,476 +955,942 -> 397,942 +31,918 -> 931,18 +790,420 -> 389,420 +36,496 -> 215,317 +252,209 -> 139,209 +704,148 -> 719,133 +413,571 -> 165,571 +690,433 -> 864,607 +976,417 -> 517,876 +803,568 -> 443,568 +335,558 -> 335,334 +405,807 -> 691,521 +194,482 -> 486,190 +377,856 -> 377,802 +313,842 -> 313,254 +449,961 -> 198,710 +197,916 -> 197,797 +82,965 -> 959,88 +371,239 -> 829,697 +471,70 -> 596,70 +835,144 -> 835,950 +283,486 -> 506,486 +147,29 -> 147,747 +187,485 -> 187,195 +781,144 -> 480,144 +801,839 -> 925,715 +415,960 -> 415,442 +877,939 -> 29,91 +22,118 -> 22,439 +460,315 -> 450,315 +982,960 -> 71,49 +105,231 -> 105,331 +98,174 -> 551,174 +721,978 -> 38,295 +167,290 -> 167,133 +218,158 -> 218,908 +819,812 -> 758,812 +123,92 -> 123,132 +66,721 -> 66,906 +478,441 -> 967,930 +284,58 -> 464,58 +958,15 -> 37,936 +310,337 -> 359,288 +212,763 -> 212,373 +101,279 -> 101,267 +622,409 -> 106,925 +318,657 -> 318,432 +938,631 -> 938,650 +142,881 -> 254,881 +848,987 -> 848,451 +686,223 -> 481,223 +124,248 -> 812,248 +246,267 -> 246,148 +96,670 -> 324,442 +645,888 -> 385,628 +417,555 -> 417,858 +543,495 -> 543,150 +73,350 -> 440,717 +459,704 -> 459,179 +871,493 -> 871,764 +911,34 -> 64,881 +544,791 -> 703,791 +447,218 -> 62,218 +202,649 -> 396,649 +935,916 -> 55,36 +124,408 -> 477,761 +608,850 -> 484,850 +935,876 -> 582,876 +377,612 -> 269,612 +413,727 -> 365,679 +64,451 -> 850,451 +684,807 -> 357,807 +323,364 -> 372,364 +887,300 -> 419,300 +837,831 -> 837,927 +294,255 -> 768,729 +878,23 -> 141,760 +36,627 -> 157,627 +824,703 -> 824,968 +356,109 -> 657,109 +799,266 -> 313,752 +71,600 -> 650,21 +564,863 -> 564,54 +36,720 -> 109,720 +318,488 -> 682,488 +249,350 -> 979,350 +560,502 -> 255,502 +132,327 -> 132,246 +287,906 -> 791,906 +818,110 -> 818,882 +937,17 -> 113,841 +50,710 -> 673,87 +702,952 -> 702,533 +666,552 -> 611,552 +612,962 -> 112,462 +260,529 -> 351,529 +440,313 -> 440,663 +605,341 -> 405,141 +277,287 -> 461,287 +268,890 -> 268,92 +764,526 -> 877,639 +165,697 -> 832,697 +240,716 -> 801,155 +872,429 -> 578,429 +88,816 -> 338,816 +981,881 -> 981,138 +457,351 -> 457,679 +850,526 -> 850,447 +139,449 -> 165,449 +127,544 -> 127,934 +160,890 -> 745,305 +526,113 -> 303,336 +17,500 -> 17,621 +796,311 -> 181,926 +260,218 -> 787,218 +536,989 -> 536,261 +257,826 -> 257,180 +531,37 -> 531,493 +961,942 -> 206,187 +536,668 -> 536,868 +154,967 -> 154,931 +808,317 -> 808,873 +487,258 -> 599,258 +59,962 -> 802,219 +322,945 -> 322,837 +378,973 -> 33,628 +668,556 -> 691,556 +819,728 -> 787,728 +484,261 -> 484,874 +333,271 -> 278,271 +733,515 -> 741,523 +775,854 -> 523,602 +67,215 -> 616,215 +951,685 -> 951,433 +372,105 -> 372,494 +917,788 -> 917,23 +890,584 -> 245,584 +748,276 -> 893,276 +733,721 -> 733,747 +225,908 -> 897,908 +437,140 -> 423,140 +456,513 -> 136,833 +413,135 -> 413,596 +143,245 -> 879,981 +870,639 -> 942,639 +28,175 -> 696,843 +393,303 -> 393,197 +169,986 -> 458,986 +43,44 -> 952,953 +236,405 -> 60,229 +266,845 -> 292,845 +529,98 -> 95,532 +95,658 -> 695,658 +368,454 -> 112,710 +506,776 -> 662,776 +928,494 -> 604,170 +179,138 -> 900,859 +45,560 -> 408,197 +655,654 -> 37,36 +56,432 -> 56,456 +844,614 -> 844,898 +240,191 -> 240,112 +639,911 -> 213,911 +47,887 -> 830,104 +57,50 -> 977,970 +899,928 -> 111,928 +962,676 -> 962,518 +129,585 -> 469,245 +988,775 -> 988,553 +417,344 -> 842,769 +468,110 -> 506,72 +687,204 -> 687,345 +828,553 -> 765,490 +75,894 -> 75,93 +26,798 -> 11,783 +967,44 -> 967,478 +240,481 -> 947,481 +794,254 -> 162,254 +502,944 -> 812,944 +331,417 -> 410,417 +850,275 -> 850,980 +671,130 -> 671,941 +240,99 -> 240,381 +771,399 -> 318,399 +946,11 -> 28,929 +731,939 -> 824,846 +268,71 -> 832,635 +968,37 -> 968,642 +935,365 -> 515,365 +199,792 -> 932,792 +32,116 -> 371,116 +324,67 -> 941,67 +453,181 -> 453,128 +958,982 -> 115,139 +962,168 -> 154,976 +474,215 -> 333,215 +458,675 -> 458,315 +577,302 -> 300,302 +704,493 -> 704,876 +887,549 -> 887,439 +81,328 -> 724,328 +575,490 -> 670,490 +576,17 -> 576,218 +21,46 -> 963,988 +532,235 -> 532,615 +796,213 -> 796,407 +55,948 -> 980,23 +775,471 -> 272,471 +26,138 -> 344,138 +635,518 -> 915,518 +727,365 -> 727,216 + diff --git a/2021/inputs/day6.txt b/2021/inputs/day6.txt new file mode 100644 index 0000000..b323221 --- /dev/null +++ b/2021/inputs/day6.txt @@ -0,0 +1 @@ +3,3,2,1,4,1,1,2,3,1,1,2,1,2,1,1,1,1,1,1,4,1,1,5,2,1,1,2,1,1,1,3,5,1,5,5,1,1,1,1,3,1,1,3,2,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,3,3,1,1,3,1,3,1,2,1,3,1,1,4,1,2,4,4,5,1,1,1,1,1,1,4,1,5,1,1,5,1,1,3,3,1,3,2,5,2,4,1,4,1,2,4,5,1,1,5,1,1,1,4,1,1,5,2,1,1,5,1,1,1,5,1,1,1,1,1,3,1,5,3,2,1,1,2,2,1,2,1,1,5,1,1,4,5,1,4,3,1,1,1,1,1,1,5,1,1,1,5,2,1,1,1,5,1,1,1,4,4,2,1,1,1,1,1,1,1,3,1,1,4,4,1,4,1,1,5,3,1,1,1,5,2,2,4,2,1,1,3,1,5,5,1,1,1,4,1,5,1,1,1,4,3,3,3,1,3,1,5,1,4,2,1,1,5,1,1,1,5,5,1,1,2,1,1,1,3,1,1,1,2,3,1,2,2,3,1,3,1,1,4,1,1,2,1,1,1,1,3,5,1,1,2,1,1,1,4,1,1,1,1,1,2,4,1,1,5,3,1,1,1,2,2,2,1,5,1,3,5,3,1,1,4,1,1,4 diff --git a/2021/inputs/day7.txt b/2021/inputs/day7.txt new file mode 100644 index 0000000..041daee --- /dev/null +++ b/2021/inputs/day7.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,12,186,94,505,338,1527,356,122,360,745,28,227,799,305,177,1188,317,3,462,986,230,438,542,112,1334,620,1351,697,7,478,155,208,175,28,107,1501,238,40,0,469,20,945,699,144,822,189,290,37,1158,920,175,102,1042,590,1219,1110,514,126,142,28,282,1198,80,223,196,13,974,543,28,867,816,959,864,45,556,1106,219,259,14,817,312,1743,151,189,1199,300,823,749,747,42,1525,59,587,222,894,240,635,600,1179,324,1435,274,223,1095,25,423,115,472,22,443,827,622,171,102,175,303,67,86,103,0,1541,1086,217,1497,0,1217,919,1107,1052,1003,298,225,593,42,107,461,286,1254,7,827,724,1216,966,682,1660,201,27,190,1159,120,467,1151,886,173,106,6,141,1946,60,5,901,718,74,1040,149,1,839,986,0,817,1454,781,1541,108,1432,564,782,1747,492,24,949,369,1773,166,72,1372,1473,72,243,251,69,752,916,412,837,56,50,378,1332,0,432,310,281,622,107,414,1069,635,1898,483,1284,213,1613,664,0,29,1257,410,716,44,1529,661,430,1152,1023,25,1641,929,582,161,219,198,982,916,1079,83,19,346,45,452,398,161,12,1077,9,1300,363,438,368,30,195,245,657,404,244,219,99,644,191,1139,133,386,738,36,573,194,223,1224,144,537,1520,1124,389,21,610,652,347,619,121,557,1291,349,5,423,241,83,306,850,24,169,584,997,19,507,395,1076,1005,265,1057,1,1268,598,86,807,52,1160,253,325,462,48,707,694,960,1169,102,238,1108,425,420,15,1710,19,381,980,263,363,70,99,361,973,391,131,372,172,22,13,106,1579,961,20,788,25,126,340,206,17,717,286,1077,362,510,243,177,1063,551,667,1534,409,340,1071,415,160,1067,223,120,77,612,117,160,292,185,1167,214,1519,1265,1355,698,344,157,130,863,48,666,7,459,888,193,657,419,14,320,650,490,290,498,225,720,829,1613,509,645,339,301,868,275,457,1307,125,9,518,43,15,9,7,390,568,1847,165,42,256,432,337,38,11,1485,1758,47,257,1268,1898,701,622,346,111,109,210,27,437,1381,622,7,1226,226,1682,94,63,502,12,1308,723,215,276,460,7,159,599,78,1198,304,268,588,1086,44,1389,3,654,1602,834,165,570,736,1289,817,496,396,977,886,912,926,395,395,401,334,262,491,1138,78,0,757,622,10,299,85,355,1097,312,633,452,1409,27,275,458,101,393,508,1206,1,788,51,299,74,560,143,1610,237,223,1259,669,286,1046,668,733,508,665,354,651,40,1374,495,778,101,578,78,17,358,621,1080,38,142,33,182,538,912,76,446,79,1193,70,477,161,498,487,642,901,464,210,916,1410,674,71,208,709,304,80,1048,87,386,1665,907,573,305,974,242,836,811,90,11,64,175,98,162,390,69,145,468,818,1637,21,730,15,590,620,459,5,392,119,134,496,925,367,16,16,1443,687,1045,1704,256,667,10,850,1555,831,103,658,1097,745,380,48,210,994,163,428,669,1547,833,4,177,222,342,882,69,1350,500,154,218,358,183,83,739,297,1302,368,53,524,577,765,149,801,17,206,293,578,94,149,702,861,998,512,364,525,1849,682,1,204,96,119,815,118,1317,103,688,641,317,361,364,332,1020,1522,5,306,460,527,206,406,93,1433,221,70,1116,894,1240,157,299,812,121,1324,166,254,429,89,599,92,540,77,323,156,546,374,184,666,126,812,888,1195,412,305,325,216,1165,274,705,556,135,35,260,107,371,1515,125,703,149,433,515,698,163,369,537,63,1119,346,321,166,157,326,173,1022,50,929,14,1100,1289,334,1017,72,510,203,417,562,147,1098,1371,396,60,941,266,1195,960,629,698,46,443,1278,1601,1123,14,114,928,98,561,742,1501,860,610,941,591,3,120,1362,1176,75,185,144,851,570,55,317,126,179,202,1552,854,585,195,70,756,328,720,732,851,1080,1303,277,6,214,85,136,1594,469,345,176,835,126,1035,1006,66,1082,26,31,10,942,1546,186,575,712,775,14,920,169,733,220,1069,1300,19,47,816,675,102,307,1336,5,37,6,1258,340,373,26,42,4,358,260,174,635,245,108,466,891,662,658,341,10,777,613,749,164,118,235,997,74,674,120,501,924,1393,601,3,374,8,187,58,13,284,20,26,541,381,281,1135,19,1538,1306,1292,643,538,653,716,614,47,245,198,926,1845,95,864,234,476,18,1002,240,326,293,955,1196,907,129,115,250,991,1313,1801,60,183,16,150,440,900 diff --git a/2021/src/day1.php b/2021/src/day1.php new file mode 100644 index 0000000..48a4132 --- /dev/null +++ b/2021/src/day1.php @@ -0,0 +1,36 @@ + (int)$str, array_filter(explode("\n", $input), 'is_numeric')); + print 'Part 1 answer: ' . solve_part_one($nums) . "\n"; + print 'Part 2 answer: ' . solve_part_two($nums) . "\n"; + } +} + +function solve_part_one(array $nums): int +{ + $inc = 0; + for ($i = 1; $i < count($nums); $i++) { + if ($nums[$i] > $nums[$i - 1]) { + $inc += 1; + } + } + + return $inc; +} + +function solve_part_two(array $nums): int +{ + $inc = 0; + for ($i = 3; $i < count($nums); $i++) { + $slider1 = $nums[$i] + $nums[$i - 1] + $nums[$i - 2]; + $slider2 = $nums[$i - 1] + $nums[$i - 2] + $nums[$i - 3]; + if ($slider1 > $slider2) { + $inc += 1; + } + } + + return $inc; +} \ No newline at end of file diff --git a/2021/src/day2.php b/2021/src/day2.php new file mode 100644 index 0000000..9b344af --- /dev/null +++ b/2021/src/day2.php @@ -0,0 +1,59 @@ + trim($str), explode("\n", $input)); + print 'Part 1 answer: ' . solve_part_one($binaries) . "\n"; + print 'Part 2 answer: ' . solve_part_two($binaries) . "\n"; + } +} + +function solve_part_one(array $binaries): int +{ + $gamma = ""; + $epsilon = ""; + + for ($i = 0; $i < strlen($binaries[0]) - 1; $i++) { + $zeroes = 0; + $ones = 0; + + foreach ($binaries as $bin) { + if ((int)($bin[$i]) == 0) + $zeroes += 1; + else + $ones += 1; + } + + if ($zeroes > $ones) { + $gamma .= "0"; + $epsilon .= "1"; + } else { + $gamma .= "1"; + $epsilon .= "0"; + } + } + + return bindec($gamma) * bindec($epsilon); +} + +function solve_part_two(array $binaries): int +{ + $o2 = ""; + $co2 = ""; + $possible_o2 = $binaries; + $possible_co2 = $binaries; + + for ($i = 0; $i < strlen($possible_o2[0]); $i++) { + $zeroes = 0; + $ones = 0; + + foreach ($possible_o2 as $bin) { + if ((int)($bin[$i]) == 0) + $zeroes += 1; + else + $ones += 1; + } + + if ($zeroes > $ones) + $mcb = "0"; + elseif ($ones > $zeroes) + $mcb = "1"; + else + $mcb = "="; + + $new_o2 = []; + foreach ($possible_o2 as $binary) { + if ($o2 == "") { + if ($mcb == "0" && $binary[$i] == "0") + $new_o2[] = $binary; + elseif (($mcb == "1" || $mcb == "=") && $binary[$i] == "1") + $new_o2[] = $binary; + } + } + + if (count($new_o2) == 1) + $o2 = $new_o2[0]; + else + $possible_o2 = $new_o2; + + if ($o2 != "") + break; + } + + for ($i = 0; $i < strlen($possible_co2[0]); $i++) { + $zeroes = 0; + $ones = 0; + + foreach ($possible_co2 as $bin) { + if ((int)($bin[$i]) == 0) + $zeroes += 1; + else + $ones += 1; + } + + if ($zeroes > $ones) + $mcb = "0"; + elseif ($ones > $zeroes) + $mcb = "1"; + else + $mcb = "="; + + $new_co2 = []; + foreach ($possible_co2 as $binary) { + if ($co2 == "") { + if (($mcb == "1" || $mcb == "=") && $binary[$i] == "0") + $new_co2[] = $binary; + elseif ($mcb == "0" && $binary[$i] == "1") + $new_co2[] = $binary; + } + } + + if (count($new_co2) == 1) + $co2 = $new_co2[0]; + else + $possible_co2 = $new_co2; + + if ($co2 != "") + break; + } + + return bindec($o2) * bindec($co2); +} \ No newline at end of file diff --git a/2021/src/day4.cs b/2021/src/day4.cs new file mode 100644 index 0000000..8874609 --- /dev/null +++ b/2021/src/day4.cs @@ -0,0 +1,122 @@ +var boards = new List(); +using var sr = new StreamReader("../inputs/day04.txt"); +var lines = sr.ReadToEnd().Split("\n").Select(x => x.Trim()).ToList(); +var numbers = lines.First().Split(",").Select(x => Convert.ToByte(x)).ToList(); +lines.RemoveAt(0); //Drop numbers +lines.RemoveAt(0); //Drop whitespace + +var currentBoard = new List(); +foreach (var line in lines) +{ + if (!string.IsNullOrEmpty(line)) + { + currentBoard.Add(line); + } + else + { + boards.Add(new Board(currentBoard)); + currentBoard = new List(); + } +} + +var part1Done = false; +foreach (var number in numbers) +{ + foreach (var board in boards) + board.Mark(number); + + var winningBoards = + boards.Where(board => board.Win).ToArray(); // Need to enumerate this before the loop or it will break + foreach (var board in winningBoards) + { + if (!part1Done) + { + Console.WriteLine($"2021 Day 04 Part 1 result: {board.Score * number}"); + part1Done = true; + } + + if (boards.Count == 1) + Console.WriteLine($"2021 Day 04 Part 2 result: {board.Score * number}"); + + boards.Remove(board); + } + + if (!boards.Any()) + break; +} + +private class Board +{ + private readonly byte?[,] _rows; + internal int Score => _rows.Cast().Aggregate(0, (score, number) => score + (number ?? 0)); + private bool HorizontalWin => DidRowWin(_rows); + private bool VerticalWin => DidRowWin(Transpose()); + internal bool Win => HorizontalWin || VerticalWin; + + internal Board(IEnumerable inputRows) + { + _rows = new byte?[5, 5]; + + for (var r = 0; r < inputRows.Count(); r++) + { + var nums = inputRows + .ElementAt(r) + .Split(" ") + .Where(x => !string.IsNullOrEmpty(x)) + .Select(x => Convert.ToByte(x)); + + for (var c = 0; c < nums.Count(); c++) + { + _rows[c, r] = nums.ElementAt(c); + } + } + } + + internal void Mark(byte number) + { + for (var r = 0; r < _rows.GetLength(0); r++) + { + for (var c = 0; c < _rows.GetLength(1); c++) + { + if (_rows[c, r].HasValue && _rows[c, r].Value == number) + _rows[c, r] = null; + } + } + } + + private byte?[,] Transpose() + { + var cols = new byte?[5, 5]; + + for (var c = 0; c < 5; c++) + { + for (var r = 0; r < 5; r++) + { + cols[c, r] = _rows[r, c]; + } + } + + return cols; + } + + private static bool DidRowWin(byte?[,] rows) + { + var win = true; + + for (var r = 0; r < rows.GetLength(0); r++) + { + win = true; + + for (var c = 0; c < rows.GetLength(1); c++) + { + if (rows[c, r].HasValue) + win = false; + } + + if (win) + break; + } + + return win; + } +} diff --git a/2021/src/day5.cs b/2021/src/day5.cs new file mode 100644 index 0000000..83b88b0 --- /dev/null +++ b/2021/src/day5.cs @@ -0,0 +1,55 @@ +// TODO: I've shamelessly copied this off Reddit because i had no idea how to solve it. +// I need to come back to this and actually solve this myself. + +/*using var sr = new StreamReader("./day05.txt"); +var input = sr.ReadToEnd().Split("\n").Select(x => x.Trim()); +foreach (var line in input) +{ + var nums = line.Split(", ->".ToArray(), StringSplitOptions.RemoveEmptyEntries).Select(byte.Parse).ToArray(); + var start = new Vector2(nums[0], nums[1]); + var end = new Vector2(nums[2], nums[3]); +}*/ + +using var sr = new StreamReader("../inputs/day05.txt"); +var input = sr.ReadToEnd(); + +Console.WriteLine(GetIntersectionCount(ParseLines(input, skipDiagonals: true))); +Console.WriteLine(GetIntersectionCount(ParseLines(input, skipDiagonals: false))); + +private static int GetIntersectionCount(IEnumerable> lines) +{ + // build a grid with iterating over all points, counting intersections: + var grid = new Dictionary(); + foreach (var pt in lines.SelectMany(pt => pt)) + { + grid[pt] = grid.GetValueOrDefault(pt, 0) + 1; + } + + return grid.Count(kvp => kvp.Value > 1); +} + +private static IEnumerable> ParseLines(string input, bool skipDiagonals) => + from line in input.Split("\n") + // parse the numbers first: + let ns = ( + from st in line.Split(", ->".ToArray(), StringSplitOptions.RemoveEmptyEntries) + select int.Parse(st) + ).ToArray() + + // line properties: + let start = new Vec2(ns[0], ns[1]) + let end = new Vec2(ns[2], ns[3]) + let displacement = new Vec2(end.x - start.x, end.y - start.y) + let length = 1 + Math.Max(Math.Abs(displacement.x), Math.Abs(displacement.y)) + let dir = new Vec2(Math.Sign(displacement.x), Math.Sign(displacement.y)) + + // represent lines with a set of points: + let points = + from i in Enumerable.Range(0, length) + select new Vec2(start.x + i * dir.x, start.y + i * dir.y) + + where !skipDiagonals || dir.x == 0 || dir.y == 0 // skip diagonals in part 1 + + select points; + + record Vec2(int x, int y); diff --git a/2021/src/day6.cs b/2021/src/day6.cs new file mode 100644 index 0000000..ac13e2f --- /dev/null +++ b/2021/src/day6.cs @@ -0,0 +1,25 @@ +string input; +using (var sr = new System.IO.StreamReader("../inputs/day6.txt")) + input = sr.ReadToEnd(); + +var startPop = input.Split(",").Select(int.Parse).ToList(); +var pop = new long[9]; + +foreach (var fish in startPop) + pop[fish] += 1; + +for (int i = 0; i < 256; i++) +{ + long newFishes = pop[0]; + + for (int j = 0; j < 8; j++) + pop[j] = pop[j + 1]; + + pop[8] = newFishes; + pop[6] += newFishes; + + if (i == 79) + Console.WriteLine(pop.Sum()); +} + +Console.WriteLine(pop.Sum()); diff --git a/2021/src/day7.cs b/2021/src/day7.cs new file mode 100644 index 0000000..f5d52d3 --- /dev/null +++ b/2021/src/day7.cs @@ -0,0 +1,38 @@ +using var sr = new StreamReader("../input/day7.txt"); +var lines = sr.ReadToEnd().Split("\n").Select(x => x.Trim()).ToList(); +var numbers = lines.First().Split(",").Select(double.Parse).ToList(); + +var acc = 0.0; +var median = GetMedian(numbers.ToArray()); +foreach (var num in numbers) + acc += Math.Abs(num - median); + +Console.WriteLine(acc); +acc = 0.0; +var avg = Math.Floor(numbers.Average()); +foreach (var num in numbers) +{ + var n = Math.Abs(num - avg); + acc += n * (n + 1) / 2; // Gauss formula, one of the very very few math tricks i know +} + +Console.WriteLine(acc); + +double GetMedian(double[] nums) +{ + var ret = 0.0; + + Array.Sort(nums); + if (nums.Length % 2 == 0) + { + var firstValue = nums[(nums.Length / 2) - 1]; + var secondValue = nums[(nums.Length / 2)]; + ret = (firstValue + secondValue) / 2.0; + } + if (nums.Length % 2 == 1) + { + ret = nums[(nums.Length / 2)]; + } + + return ret; +} diff --git a/2023/day01.py b/2023/day01.py new file mode 100644 index 0000000..ef0a5e9 --- /dev/null +++ b/2023/day01.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +lines = [] +with open('./inputs/day01.txt') as f: + lines = f.readlines() + +# part 1 +calibration_values = [] +for line in lines: + digits = [] + + for ch in line: + if (ch.isdigit()): + digits.append(int(ch)) + + calibration_values.append(int(f''.join(map(str, [digits[0], digits[-1]])))) + +print(calibration_values) +print(sum(calibration_values)) + +# part 2 +calibration_values_with_replace = [] +for line in lines: + digits = [] + + # replace 'one' with 'o1e', 'two' with 't2o', etc. + temp = line.lower() + temp = line.replace('one', 'o1e') + temp = temp.replace('two', 't2o') + temp = temp.replace('three', 'th3ee') + temp = temp.replace('four', 'f4ur') + temp = temp.replace('five', 'f5ve') + temp = temp.replace('six', 's6x') + temp = temp.replace('seven', 'se7en') + temp = temp.replace('eight', 'ei8ht') + temp = temp.replace('nine', 'ni9e') + + for ch in temp: + if (ch.isdigit()): + digits.append(int(ch)) + + calibration_values_with_replace.append(int(f''.join(map(str, [digits[0], digits[-1]])))) + +print(calibration_values_with_replace) +print(sum(calibration_values_with_replace)) \ No newline at end of file diff --git a/2023/day02.py b/2023/day02.py new file mode 100644 index 0000000..1d546bc --- /dev/null +++ b/2023/day02.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 + +lines = [] +with open('./inputs/day02.txt') as f: + lines = f.readlines() + +# part 1 +games = {} +max_red = 12 +max_green = 13 +max_blue = 14 +valid_games = [] + +for line in lines: + # parse line from format 'Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green' + gameid = int(line.split(':')[0].split(' ')[1]) + + games[gameid] = [] + + for pullstr in line.split(':')[1].split(';'): + pull = {} + + for color in map(lambda x: x.strip(), pullstr.split(',')): + c = color.split(' ') + pull[c[1]] = int(c[0]) + + # if pull does not contain color set it to 0 + if 'red' not in pull: + pull['red'] = 0 + if 'green' not in pull: + pull['green'] = 0 + if 'blue' not in pull: + pull['blue'] = 0 + + games[gameid].append(pull) + + game_valid = True + + for pull in games[gameid]: + if pull['red'] > max_red or pull['green'] > max_green or pull['blue'] > max_blue: + game_valid = False + break + + if game_valid: + valid_games.append(gameid) + +print(f'valid games: {valid_games}') +print(f'sum: {sum(valid_games)}') + +# part 2 +# for each game get the minimum number for each color between all pulls +powers = [] +for game in games: + max_red = 0 + max_green = 0 + max_blue = 0 + + for pull in games[game]: + if pull['red'] > max_red: + max_red = pull['red'] + if pull['green'] > max_green: + max_green = pull['green'] + if pull['blue'] > max_blue: + max_blue = pull['blue'] + + power = max_red * max_green * max_blue + powers.append(power) + print(f'game {game}: max red: {max_red}, max green: {max_green}, max blue: {max_blue}, power: {power}') + +print(f'sum: {sum(powers)}') \ No newline at end of file diff --git a/2023/day03.py b/2023/day03.py new file mode 100644 index 0000000..106eb29 --- /dev/null +++ b/2023/day03.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 + +lines = [] +with open('./inputs/day03.txt') as f: + lines = f.readlines() + +class Point: + def __init__(self, x, y): + self.x = x + self.y = y + + def __str__(self): + return f'({self.x}, {self.y})' + +class Number: + def __init__(self, start, end, digits): + self.start = start + self.end = end + self.digits = digits + self.value = int(f''.join(map(str, digits))) + + def __str__(self): + return f'({self.start}, {self.end}, {self.digits}, {self.value})' + + def adjacentToSymbols(self, symbols): + for symbol in symbols: + if self.adjacentTo(symbol): + return True + + return False + + def adjacentTo(self, symbol): + if abs(self.start.y - symbol.y) <= 1 and ((self.start.x - 1) <= symbol.x <= (self.end.x + 1)): + return True + + return False + +class Symbol: + def __init__(self, x, y, value): + self.x = x + self.y = y + self.value = value + + def __str__(self): + return f'({self.x}, {self.y}, {self.value})' + + def gearRatio(self, numbers): + if not self.value == '*': + return -1 + + adjacent = [] + + for number in numbers: + if number.adjacentTo(self): + adjacent.append(number) + + if len(adjacent) == 2: + return adjacent[0].value * adjacent[1].value + + return -1 + +# part 1 +numbers = [] +symbols = [] + +for y in range(len(lines)): + line = lines[y] + digits = [] + numberStarted = False + start = None + end = None + + for x in range(len(line)): + ch = line[x] + if (ch == '.' and not numberStarted): + continue + + if (ch.isdigit() and not numberStarted): + numberStarted = True + start = Point(x, y) + + if (ch.isdigit()): + digits.append(int(ch)) + + if ((not ch.isdigit()) and numberStarted): + end = Point(x - 1, y) + numbers.append(Number(start, end, digits)) + numberStarted = False + digits = [] + + if ((not ch.isdigit()) and (not ch == '.') and (not ch == '\n')): + symbols.append(Symbol(x, y, ch)) + +print(f'Part 1: {sum([number.value for number in numbers if number.adjacentToSymbols(symbols)])}') + +# part 2 +print(f'Part 2: {sum([symbol.gearRatio(numbers) for symbol in symbols if symbol.gearRatio(numbers) > 0])}') \ No newline at end of file diff --git a/2023/day04.py b/2023/day04.py new file mode 100644 index 0000000..8d308c2 --- /dev/null +++ b/2023/day04.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 + +lines = [] +with open('./inputs/day04.txt') as f: + lines = f.readlines() + +class scratch_card: + def __init__(self, card_input): + card = card_input.split(':')[1] + self.card_number = int(card_input.split(':')[0].split()[1]) + numbers = card.split('|') + self.winning_numbers = list(map(lambda x: int(x.strip()), numbers[0].split())) + self.card_numbers = list(map(lambda x: int(x.strip()), numbers[1].split())) + self.winning_count = len(list(filter(lambda x: x in self.winning_numbers, self.card_numbers))) + self.card_score = 2 ** (self.winning_count - 1) if self.winning_count > 0 else 0 + + def __str__(self): + return f'({self.card_number}: {self.card_score}, {self.winning_count}, {self.winning_numbers}, {self.card_numbers})' + +# part 1 +cards = [] +cards_by_number = {} + +for line in lines: + cards.append(scratch_card(line)) + cards_by_number[cards[-1].card_number] = cards[-1] + +print(sum([card.card_score for card in cards])) + +# part 2 +for card in cards: + if card.winning_count > 0: + for i in range(1, card.winning_count + 1): + cards.append(cards_by_number[card.card_number + i]) + +print(len(cards)) \ No newline at end of file diff --git a/2023/day05.py b/2023/day05.py new file mode 100644 index 0000000..63bc8d5 --- /dev/null +++ b/2023/day05.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +lines = [] +with open('/home/wasp/personal/x/fun/advent-of-code/2023/inputs/day05.txt') as f: + lines = f.readlines() + +# part 1 +seeds = [] +maps = [] +parsing_map = False +current_map = {} + +for line in lines: + if 'seeds:' in line: + seeds = list(map(lambda x: int(x.strip()), line.split(':')[1].strip().split())) + else: + if 'map' in line: + parsing_map = True + spl = line.split(' ')[0].split('-') + source = spl[0] + target = spl[2] + current_map['source'] = source + current_map['target'] = target + current_map['map'] = {} + elif parsing_map: + if line == '\n': + maps.append(current_map) + current_map = {} + parsing_map = False + else: + spl = line.split(' ') + dest = int(spl[0]) + source = int(spl[1]) + length = int(spl[2]) + for i in range(length): + current_map['map'][source + i] = dest + i + + +maps.append(current_map) + +destinations = [] +for seed in seeds: + source_type = 'seed' + m = next((m for m in maps if m['source'] == source_type), None) + source = seed + destination = None + + while (not m is None): + if source in m['map'].keys(): + destination = m['map'][source] + else: + destination = source + + source_type = m['target'] + source = destination + m = next((m for m in maps if m['source'] == source_type), None) + + destinations.append(destination) + +print(min(destinations)) \ No newline at end of file diff --git a/2023/inputs/day01.txt b/2023/inputs/day01.txt new file mode 100644 index 0000000..5af9fcb --- /dev/null +++ b/2023/inputs/day01.txt @@ -0,0 +1,1000 @@ +gtlbhbjgkrb5sixfivefivetwosix +ninesixrgxccvrqscbskgzxh6cpvpxsqnb6 +dxxzrlzkksfsffp4 +sbzvmddhnjtwollnjv33d2lbcscstqt +88xpnfpb +ninevct4cpdvqfxmspbz9xrvxfvbpzthreesfnncrqn +mqsxzsglbtmsbltrbzkbrt23 +seven16ninefc +8jdddctvxs3 +fivennhhdfpmrnpjhdm2sixkrsgdt +2bgkccmp2khbhmptwogsz +rrddms473xcjrtsdnhp4 +two7eighteight29 +onek3three8lpfcfivenxpkhbvdm +spcdsstlkr7fone1 +9ninejcngjshghz +six78fivethreesix7fivetwo +nine17bsrfbzpcr +1qcdtzzfdpbcshjsjdmgsix +fourtwosix3one +26rqmtqznds +fivefour4kmgtsplpvvvhspsjrsxqjmzmb +fourone1pfjsxxprgxszsmg64nine +78four +sixvrxzf8mthh +three819 +eightnqzrshnbf7gxpndlncztwonztq +szsvltgsc1onecccbfour3oneightfh +vjdbqpninepqhlbcj61sixnine +2dbpnlhxtdninesix896sevenj +6fiventhree6 +four7xfour +jlnine6cqtdltpxt4 +sevencplmbvshm5flzlqxlbjjcrfxv18fivebpscblpj +fourfourfjft3three5 +3tgsppcfpk +seven48xcgqcfhnvc +twofive619hdbghs +4xppxkgpng4mttgskp8gxnzsfivethree +zbmzpstjf6znpflg +onefour9sixseven6 +327vjsevensfcgdbdeight +hftcndxpnine7 +9onert32m5 +bfdkjxcp56 +v4vqpstmlhtt +pjb5fivemonepcfc +cjftpgfive61five +7ffjkxkbnqfninevhnnbp +xcqkcbfv9xffn2six59 +nine4ssixvlrzjsrqvkg5 +seveneight74ljmjfthree33 +hdgsbjdsixtwo7chczjk +kkrpsbqmkkpmq4two9 +sg1kllqqfpbrcvgf43 +5one5threethreefoursevenoneljddmkss +cjcvnxone47eight6five +ghqqmsxnconetrhqrq3sixsix +sixfourg3 +ndlnhscmrx53six58 +xmktfbmqdgndhcvbpb93trvgv +52 +7twobkgsntslhthreeqttvx1six1v +kfreightwoonebbhqnqdfdkvgbcx5 +ninesixnineqzgzgzhdjsix8 +four7eighttwo6 +2pnine7 +6seventhree +five4four6 +2twozbsqkgkmfive62 +one9bkbnnineninempsqszz +two9jzgzbtwonef +8txvhbm5qpcvgkdfvg1hzmvcprvs +threeeight52 +five3qbhtfpkcvn4nine4 +9vrqkdrkl12jdsfpsg69 +seven757two12bxv +njnrmxbpvfourskvbp2sixthreexqstpvxjss3four +ninejfvfsp6twoness +22rcfzrbpbgq5twoone3four +rktqjcbz53five9foureight +pcjbdlsix5threeonepdvsevenone +oneonenine2hxpmqckdrftktntwo +7four92 +qxgfxkxkkf6hqbnsg4sevenninebvpjdnnrone +ckpf2five7six +three27rgsthreeseven +19jztwo6vninevmds +eightcdtwo7 +1c8kdqkrgjfour33zp +jxsdh8eightwoffl +sljxsjgvqfive4drrdlbbcrsthreesevenqktkjkrfrzv +pfjd5sevenfiveseveneight +fivesgzvngjfvz9eight +three99jrscbrhkczxdbtqqrfdtxh +bzhbbpkpbrqvhjmgsqq72eightwod +seven88 +3msvninelbhvqhfj871 +33sevenfn +49nineseveneightfive +7ttsfxbkjqonenbkrsdthreeqbp +cqjxgppqn2746one +six1vthdh +nbchjfgzmplxlrrtprkvhxmqdp4rdckh +two5six4four +four7lvttsbdj5 +4six9tnnsj +four4seven4svfm6zg +7threefive +twoqbxzxglsevennxsqpkpneightlxzndhmfourthree6 +nine5ldqdknsjsncbjmkmlpx +jpngl7668 +sevensixffour6 +689oneeightthreekrkkgjtcvh +97szfivekptsgppfmbseven3seven +gchqxphzf7threebzglvjsxxteight +4onefour46kn9five +bqncvpx25sjlnhdlm39 +69mnbns +1ffhnnhs2mftxnfcdhtdntbxjmeight5 +7nhmmbnxglndmg9ninefivetbkjkv +six7feight +7eightfourgtcj +4seven7six8gdjpxl14pgfkfmms +8mvrzktbvhrblflvndvksjkthree8 +9hcj +eightfoursevenngssddrstz8nineseven +pdbffvgqsnmzgccnhmzpxcnctkqqpzx1 +onegsrzht7ghgmkbrdzvhd +gvkjggsrmzfive1 +2dvdxtgqpdvccfiveck2ninectrcnkdcm +onexjbpzznnv21sixsevenrnshz +5oneqqq372bhzbgpltwofive +1xzhlgkgnmmqbtlkflvlrhrhkpglgsix +sixsixnjjrncqqrpbkfour338mztvsxl +rvthjblx55kjqvnlhgkf7sevensixpbd +9vfqfdrkeighttqmclffive6 +four6fourhtspfivefourcmzhkfive +sn2one +9ninefour7 +xoneightnineoneltpvkzfvpqhxszqmv3hthtn +4fivegqdgkknineonelfg +rzxkqbpsp32ndhgqjjonelp +three6chvkhhzrjttconethree +xsmdhzsfgrmhseven6eightndcpgrrfjsix +pkdqlfive7oneonendgtdjtwo +8dpfqfour6onenqmfxhrmsx +four854hcdzjv +ninemg8xm5gftwovnn +5ptkfjdrkmdtvkgpnsixtwo2 +qmseven2 +27khblcrxdmzjxrqcsgrlninejbjg +4ftzjmgzgninenine +six78seven +3three7dndseven +qbtgsxbfour9sevenfour2ktlnsthhsznine +59eight +xdmbrqpgdqxrrtxcmrdstq2jrtfktzr4five +2kkpdpmrjh1xvmnkbkqgxthree +9threefour9drjzhjfdbnineeightwofc +eightknfgls6ztjtxmgvmeightfggfdcfjnf +7hkbnqkf23 +hjjmdpxztwoseven9three +qp6two2 +vxlkhqtwoggcgcvnhdrfds19 +four2sevenseventdpjtfnine +24nine79kvzjnnf +t23cbtmfour +fourkksztczpgthree2gr56 +57sixnineeightjdqvbtsrfj6 +sixsdlhnldk6seven5zncgtctrrhczbnrqs31 +8onefour +mtfzxxlpnqt3mnrsrfscgm +two2bdxjzbfxzblbzzdfive +five67tdmxgmfxbseven2twoeightgcrbz +zsstjzljxbzrgt5eightfcpkzsths8 +twosevenbgfxdvkloneqffplfive7 +rnkoneight1bvvhkd +sevenonebrnq4 +zrxlcfxkckk57nbvls7 +99cjnj3brlnvrfqjgtwo6 +6lx8srsflntthree +rzvgnfdzrt36f4nine6 +fourmtonehlngpjvfhjfzmbdznpp8 +7seven28xrmr +93sevennine43seven +mnnqqsixsvdpqk9fpzd +zdpvcmcjq23 +82five1jpbldxgglcsqseven9 +two7rx9seven3 +3tcnxsevenninefoureighttwo +83sevennnjjjzsdzlx5ninexns7 +1seven4 +kczs59ksfnjzthree +93zsjzjn6862pdgfxqmghcrg +threethreeqntmqqm1fqgrxdlzlrzp2 +xxroneightonefive6vjmqbr2fjdtxhjk +2vlxfvqtd +9vdhdvgllhvjthvvmg +khvlqone77seveneight +eightfourjkqfzblbr7dpkgdgm +zdddkdnineseven6vzmsqrninetwo +dcspvl6brpdhqrrxrds3sxgvdlxrfhvh36 +twosevenv7lxtmxlrsdzqvcrtkdrxs +mjjdznk4pgkrjppqr1f +jtwonenhv4rml36bdqgbbgvzqbksrlqnxone +twottz9eight +thtzc9fivetwoeight87blggcsbk +eight2seven +xlbbchh6 +332ponesjqxnnftj +821pgvbsbq9 +4seven1smptmjbfsztwo6eighttwotwonevcv +fourvkjmrhgxqnztkdgj2four +xtjrp7bsmdmlvpmjfive +1ninesmtxnv +tzkl385gjsixtwosix +6xckhjxhsgq3fourbxtfseven3 +rjcrvbsxlq84eightseven +hpvnq2 +twofivecxxzvpfrfourfour448 +82fournfour +2nchszknqrqtghsfivenine +ptssxccnvlzrtscnsl6fpqrjtrfffour1656 +29rlrctthree4vbdmmkpg +twofiveqvllxsfj1sevengnkxhthreehppbslzmcgpg +5ninefvvvmfourzndnmvgcll812 +zxqxqzc4twoeightjfrfdjnlntjbpsevenone +hrhvjbdrfourrjj45 +7sevendtgjkbmlgpmeightone1 +lxfmntfkzh5lxdhmpfrkxqckrbl +616fourkdsp +7dfllkzmcbplzqseven9five +25833eightfourseventwo +four9sixrgnscd6seveneight +two89pxddpnbtck993lfxrhpx +ckpgbsfpdffiveprvqmmczhsthreeeight9 +431knfdk +ones7 +two4fiveninesixeightonethreefour +twosixsix9tsdrcft7 +8twokstblnjfivetwothcbqh +9twothreedtcone1twoeightfk +slq9seven1mjcqsstkxnhkmzznine4fvphmqsgr +fjmmkb6four +38xzqvzm45ldkkgxzlmtwodkgmd +1eightfive5hbs9twonnxbtghrbcd +9sixlcttnctfng7vxnpmntnxh4 +2two2rzkns7two +eightdbqninekmvfcceight65 +554 +dzlc5 +8597six4 +v7 +83vrfdbksmthree3nmmrbdmpmsj1 +4fourmcbdnrmd1 +three8kphbvvndl +nineppfhcn32 +eight7fiveeightvp +nine2threebvbnp8 +435pjthreerdtf +9xvxxcrscx53rbblg5 +nine2fcmjdbsrrlrvqmxhndgvgmqnhvqjm +56z8one5sixfive +threesixtwonine5eightfive3 +1ppzmxrbrgvseven +2xqfoureightqflxrshthree4 +12five91fkeightrsxgfl +sevennfffgrc9four +51ninesix5ninenineone +fiveeightlxqzjxcthree48one +sxoneightkkckxpxmhklhdcqzh7fxhjrsix5 +1289xjht3seven5b +9qjjseven7ninemmsn58 +dcspkncsffourgghhgvgc234 +62rdlnmbfnsc8 +khpklssix6cklksvqgqmjccffkrbcjjszhbdlm +qlhfqbbdg8fninedtnvpxffbj7four5 +65sknldglkhseven5bpcvsc24 +three41sztsmds3qxrkxgbcsnjjpgmkttjzfts +2fivefivenv +mjzfiveqsdvrllthreembzcvrjgzqqsp8 +8rxtwoqsfdpksc +fivezxseventwo32nine +onesmfsthreezdcrsdzjf6twoksvpqtfrn5 +sixthreetwosnine6gbjfpone +8six39 +onetwoseven3bplhxvhkkzjgjdxjknjfktn7 +xhgkqbltlxdnq51three31one +threekbknvpssvgtvbsevenrlkczg4gtfqpvrsmj +mqzdlfour7lrc3one +2rnthreesixsevenqtgvplzjleight57 +ljvfrfqvlbnsm1fivebxnfgxptn6ffkhhrzmfz +8fourfoureightbjkcl +gsvshhxbqv1nhhsgjnkhjshqtwo +eighteighteight1 +cxfprkbjp1psdkneightwojlf +eight9dgchpkgxpkrgjrclqqrd91tlvhhspzlmcpgr +zcjshj1twofourgsgvpljsixpmlh6 +9cnrztv +qvrdxrjk5sevenbmmbrchzgthreebjhrtxgeight +qdfsdhthreevdx4qspvkbdtccpdljcsfq +onefourm9hbpvsxbqxonegtsvfltdsg +srssgmrhszjvkrszhktfsbmccz4tvsqxvcxpx6three +dxvgjmcxbmfive4zvtfour +vtfxpjqkfive6one +ctshxrjvbslhtninedfour2 +eighteighteightseventwo5zsninesix +one37qfhtfpvpmmvjnpfgbkkbhgbdhdnine +tbeightwo2qxvttmcqonesixeight +btdrgxpthreenine8gq +1vfqvmgqvpmjrtgfqngkm +one13two +8eight2eightfiveninexfsptn +qlddc8 +ninenine8 +vtwoneb2lfj +3sixeightseven +94ctfzmjhzlpkjnbrrtoneightsrm +6mqkpvlf +trspvjctskfsbj5 +9tlkmnndlnqpcspq4one +eight1three8sevenoneftrjjxhblv5eight +twothree4nrshvjkxvq1sevenseventwom +2two5sixthreedjgcfhvz4sixrm +ntwo5one7ninembfive +qgclmrksfqjcrh849 +3twoone628five +5dqzjdmcninejlhqone +99mpmtfjbxmrjsix27four +sixthreeonecxvzmrm55rkx +5threeeightseven +tq8twotfgsnjctnseven +2nine76fourtfmqjkrdtrp +2lrfive +1sxkrpzjseveneight +xtbtqzvkvfourvkjjtsevenfdmsf2 +9rlnrjhxstsixrrqcgmxr +vhzpsrzfive2nine76nineddkqzq +sloneight27ninebnfxmgfour +ninesprstwothree8threeklrfour +two7onegxqvmjvdgb1hxsjllprk +1six5foureighttwoeightthree2 +5three4hfive +nine1oneeightlhnine5three +hfz7lbtffkphnvp8 +sxp7 +kfclfdhtplbmpzsnplmqfgnc56pgprnlkp9 +threethreevfourfivehtxchgc1two +7five4five222 +7qqnfoneprdsgj +457 +fivesmgdghmfour48one +kkr7 +rpqdl8fzgdg9ljnbxzdxs +tvmtggfnkq8fxbmgntmtffive1gbreight +5fcncxjb719fivepbn +7msvcmpknn +f61 +ltzcqsf1ninebbbkzkcsix6plsp8 +16glvnbcseven8eightdp +bdvgvrmpbpztjtdsqxk391 +keight9qsqfhzgbh5zzqvtkr +eightone944bp187 +9three2 +klgsfsjgptcqz4dkd5five +ninesix6qbbqdnsmjd1five5fourxprrc +2onesevendkspzqmhjdkrvgnhqfkvh +eightvsgnsrbkk34four +czbkrztcpkctv9fhmjmm +dfourpjjbffbtj9eightsix4tzqnnnsqbzqp +sixdvmclzpfnthreefive9fourseven +sixninerknqqsdl3twotwo +fiveonefltlnpsdgmpmzqp633 +three617six +ddngjtdnine8tdxcs +onefiveqhzxr8pftvhbhphr +three469 +69mzmtjgfztwo1 +551zbxzjfglghcmfoneseventwo9 +4sfive55eightqnk +chgsglxjlmnineninesixhhqbppctqvmrslbj46dnzsmlg +zvgjxm1sixninebxzpbknmqh1skzqqblm +fourdrf28sevenfour7 +j4zgctfmgcf +4t3eight3vlvgzbjlrzbdxjkthree4 +threefournineklg4threefour5bkmxtfxtnm +5five9 +svqsrqlfjhthreegnkjb1bjvsstkdc +gcs2nine +gqnsnjvpnmsllxhxstonethree5eightone +6fnzprvv1threefive62brhhz +two89xdrzrfr96 +4ninetwotwo32zhsnzlx +ntwone4eightfourthreeeight +87rsrlb9threesixthreejjnhcnx +6onenine +twoeightfive13 +one5bqvctcbnrdktf7qszxrxvgtfc +two9jtwo +dnsrkkdjbscltfsnonethreefive1 +three5one +37dhone6one +eighttwo2five2643 +7nknhfeightfour +nineninenine2pztjcjtsmn3one +7fxvql +gdgzvxnlkbtgkssdjrxftwo2 +fourtwo9 +onefoursixzeightone262 +kjbhkp3vjvdqchhmqpnbzjxvfrgpnqzpbn6eight +52tpgzzbb85 +seven4tmzv9 +1jncptklvtwo24four38five +nv447oneeightznqddpvvztwo3 +five7971bcqk +jdmxv6hhgstzcnvscphjbgrj1sixsxp1 +fhrcrqzqglr7 +15fourgvzbczonexlqzkdx4djvckdcfour +gbtgdlzsdvseven5five16 +tzklvspsz33vpjd3 +9snmndhqmtoneprpzfnsjq +85bvtnqqhqnbkmxkqqxzxlxqbnkh +8threecfnmsffphrninehjbxlc3 +n19five9z +gqrqz1 +mtmhphhspflprqgzlzgthreeggrtppdgflrrjdseven6 +pbdfzdqbx27oneeightseven +rtgnhlgqpkfour3cmbmhtsr +26fsdgjdbsevennine9l +eightxxnvlvdsdttwo9 +kthree3 +1nckxqpkthree91 +7bxdbjtqphs9five2nxrddxstwo +seven67rrvfztx +xkqk4ninesxfive4three6rnx +mnnspxdqjf3 +zpvzzptfsevensevenseven48 +threeonetwo1dqcgzkmdqkcdzpmqhzmm +sr19 +eight9nine9four +cpfrzhrnfivevqdr8nine +4zkhhfv9 +fjzmqgr3869 +mnxtwone1982sixfournxvmnvzmxlqm4 +6rg164three +zoneightnbbnrxclsthjboneninevkjnzhqrkvmtt6 +eight7nnpn52 +nine8threejrxc4seven +4fivetcq58 +skqfhjbtqthree7 +3mhlr +three6tzhlhgnx5ljb32nine +t31kxcf +41gdkmnf2two +ffsqhzmznsixtwokxjtwoeight73 +trtcc477 +seven1261 +4eight8rhrvlzpmnqseven9twohpn +dzfffzff5fiveplhmbfnzrvphfoursix2four +onedmhzhhzrmtwofourfive7 +zqmqlcrgzb2ninesevenrrdlhznhcqxsmfltworqlvzkdhqhskshjsh +37brxzssqonefive67 +xkptstf98fivebdlrslpjfxtvzfour +oneqpsfnprzd5nine +6gxxvxb7 +39two +nggltz4sgkdnpbvzz2nineblfff1fivesix +vvxrpdvbzppfour6gz3six +dfrdtwo3284fpntbqx9 +1zgxhdt94vmxmfiveoneqvfjjq +3lrsjmr44snx +eightonerjhrdftxrvqkzfive4zvtqnddtwo +bxfive2eight +jjnine662nine1 +onesixone1kknsjgzlbbrgxdbrxlpjvhtnkjbb +fivefive2three5 +sixsevend5 +6ninelfhjjfourfour24sevenxg +dpdvmrs7rbstcg +phxszdrzdfivepfkzcmhnineeight97fivecnkcxjqrf +7dpdbzbfxztqlrsixlzgcbctp7six +eight3one9 +nineeightjpxtpltworthree2xcrk +xtgfive49 +dndltvlglgtwo2seven +6lfxsgqzqj +7bqsvgzkphcmcdcpfg242lsnine +895bcx +fourzlxshjgtplrzk24xfspckjdone +stwonefivethreefivefdgnr6five +2bcsft42three7jnndsjqckmseven +oneqkmbqdfgljtgx3 +bpfk4rdxqptq +fourfivepsqvthreejzx12pdg +sixsixseven53fgrvckfxtlseven1 +9foursix +hvznsjjtsjdcng9 +7szrvscmcdmrjtzcj7 +r13bdr +ddghbfour3tnfmj49bm43 +54gggltwooneninekzkbf +48one8kpnfsnfflzbkr +chgcrmfour6two9tone +4pvjgzptwoqdrkjthtninesixfour5six +nbfbfndd4crjnsvrvmnxvp5rthlxzttzq +jsix5 +gptkdhsdjz8dgpmddsfdbncgsfdzknxjrlzrcfive +3grpkfkczphcxdsrczr +rmvthreeone62bg +9zqt +four8fourone +two4fivem2 +four1nseight4cvnjp +fivefiveeightseventzqlznsix12hxlcfk +chjvnmjcl7 +one2ninetwohhmnine835 +8ninensgmfdm +threemcfqntmffn43foursixtwo +hkkfour1 +4fivevsnmccnstffqtmsixonefvmsbeightwold +cvghfqsnvp3threefive +1qqtbzgvjhchcxrd4tgpsstwojlvmnine8 +2twofqxhhnmf +eightlpjfnkv5one2zxrtgskffive +fourfourninezhczvqkjcqnshzfbc9fivet +onefive7vtztjcpgrpb +9five8threebfpdtlvtrftdxcjfive4pzp +4eightsevenzfqkgn +9c547onetpztzvnnkf6 +8threenineonettlhvhszncfznxbc +twofivesixn4 +two1fpbvrbthreejxgsssrfivethreeftqdp +kxgmqzpxrqxnjjrfourtwonine3fivesevensix +6tvztdsix +855jftzthzltjgsixdftmtp +nbxtrrchtprn6 +eightfive1 +rnbxngxkfkksgmssqh8 +twozcd26onefourr +5fivecsnpmgn +9mhqlbgxzqfeightfivenine6tmz +425zxgqm5rkvrggpkhxblkgkpgonenine +d73zklxbnine +8nineeightfive +czgzhvglkczxmx5four +nineqkcjhpgcthreeninejxpqzmxjtxoneqmzxdgrngh2 +dthrngfour6cjfsmsqdfnfqzdxqpqtxtwo +onedqrjseight6mrbrnfgmj9 +45qjdsevenlhnbgvzsjkr +threetwo5eightfivethree +onevqtfourtwo3 +zvhtctbqnbfivesixsmtksdg8eight +xvlts6 +8d8mcseven +1tpgzvbqsvnbhhcqtwo9sevendpzncglvl1 +2threeseven +rkpffs8bmnthcx +one433dnqpone +threefive67 +vdkmsevenfourtwodjkrdfl3oneqqfjpq +four1seven1vthrcfjfhjzbzvhxpfour +3seven5 +5xtjnbgvr +1sbkcftcklnrninesixseven9trdptfive +six697nine +four9eightone6jr4 +four5mnsnineonesevenfive +svxqbqjeightxph3threetctlxqbn +fskcnineztzxrxlfmdnp9 +17dnd4sixdzq21ssggqvvjzh +4kpgmgpgseven69two73 +nine7nvdqnrptv1threemncvtwothreenine +dvljgdqhsknpbhhbcptvpmlbvqtwosrsntmvjpbs3lvdtgzcndsthree +gseven7eight8four +mpvmb7rcmbjgchtwoone +sevenmzbqcvxrfourmjfqkqvlcmcfkcfive5 +25rmeight6seven +gthxtj3rlsqxkzgxb4six +pfrjqrs6fivekmjkhmr3eight1 +onefive9 +4five1hmg7ninesixntssdbfgltcqnj +5dqh95 +one5fivefour7 +gxkq1ninetnbbmmptthreeninevhxlxkrm +9threecv +onethreefqzkz9 +4onetwoddb2two +twojv8 +m8eightcsvbjjglfxlkhr +1ffdndfmps3dqcz1 +25dfgdhtdfsgp9 +68lxlln268six +twothreethree26 +six2xbfdvjdtpn5nine1ninelqpmbnvg +2lkhg4 +hbxctckzsevenseven8 +ghdmhjtjseventlb1xmjlcnslj3 +five7threev2sevenhzndbnjfpkvcznmrtzcpxrlj +zqhb8 +nrknllzbkdpxtwoccxpgninerszrdmhdbqtfbkp6 +eightppfpmvlbvsixqjnnkzcc39eightwogx +ftqxlqgrdpprrkrsix1oneightp +sixmtrtd392lhczn +6three8sixseven76pgvrfb5eightwof +zszr2rvfnine +rltwoseventwo6 +9qtsblhddtseven4six6 +1sevenqddm +7ghjhklgfjrmrfqprmb2jgf6bsctzhkzx +rtwone6ninenine2two4one +3five2nine +two498 +twojf3onefour2sixzxzc2 +eightshflmonexxtbsdzvsj6 +5fourkddmhvtbmjgkrlsevensix +7twosmdcftxkglpncxctbpmmhmd2sixqf +sixjthpkpbpqnqvrzzxcfjnlgeight3 +8kx2 +6twodmnkteightghnpdbcn26four +qzvnrncqzf11eight6 +5fournine6kqcg +klvnhhpspghveightthreesix2onekvh +seven7vshrlkpc2dtoneightk +nine1twosix5one +four5four6fivebdkgztp5dbzddxdpc +75oneltfnbxsfive3 +61ninethreerdlrjg +srjlctwo5 +eightfourfive3 +nmlkrh6eight7229five4 +8qtqsjshzfour9skonereight +7cbhhxqmlveight +xlctdkp68nine2qfkfv +sevenonekjone7 +3twothree +lpdxfivecqqkxshmxsghtwo4zfszfxbgffxhdhszr +5fnctfcp6six +sevenone595seven +onezbtwo4 +phbbllmmhzh8btvpgjvs8 +vrqdqksv82768rsqv +fivemzscrninepgtnseven54 +5kmcsmvjqfive87xqz8 +5sixchpxtkjbggztphrlqcjszpzmcbnone2twohjchhcm +lktwoneqkhrnvkone4 +41684 +four81qjvcjmgszfqfiveonerps +1two443dvjxfpzdcpseveneight +hkpf9seven5seven +seven5rtzk87 +371hpjtkthreef8 +2fourfour6xptbrvf71nine +cmhgh8drvxcrcjsz2 +fourlfqrsxbztvjjtxggpmkmtggxfourmfive1 +ninegssvllggld662six +8sevenfbthtxglsbeightonenp3qrbhtz6 +threemjhtsbm8mdzk +6lgbr5fourfour4v6jhdhvkrk +nmseven553two4 +bvs3twovbzthreeeight +mshlfpjltwo6two +4two7nine +4sixtcrcxzph9 +8zjrrhp6kvd +mznthreesixglsf881seven +2five511hone +pmoneightzvrvmkrn1tkxqrcnfivecfnqxvtkxtwo +6gxt7fivejmdhnzxzslvqgghgfive +seven1one +8thdkltfourl5five +oner6fivelxsmcmsix +5fivezcntznpxsljzxldvqx +fivefivedbvdxfnvxzsix19 +fivefive6twoqqpkh27 +9qvpdkone +brvxnqdnzkztdqpbb1vxg35kstpxscninekgkmrtmrff +fourfourbhzgmp3sevensevenpsrndk +seven8dgvpxrmmthree19 +neightwofiveeightsixjjfnllthree6 +91threesevenpjxsixgmrzsjmz +4zcq23sixfourjpjtgvtnqqqdctlf1 +crgjmshnzprnrc979 +qsmmztjzz4eight7sevendg +9423 +fivesevenseven48 +fjrrstz4cfrxfrslvtmjpfxtkbhsjpppfkrzeight6 +7dpfvrktp +z3ddjbvmcdsgddprhc3 +bng89ninesfv2rvchkhqhz7 +2vclrzqgnnnfour1 +ggldndrnlkeight4seven2bcxvdzjflpdxvvgxkkzgeight +heightwoonetwo119l1cbvf +cvponeight3 +three5mrqjbroneone1cckghmznvxnj +9ninembpxffcqktwo18 +eightfour44fived1nkgpk5 +1nine24 +vhmdjp43seven8sevenvnsflnfx9 +nine3fivefivesevenhklhcg +bjndsctqthgzone2twonev +sixninekznkgrjjj4 +98fourfiveeightqgrzjkvfj3six +124onedjnrthpzxqmzpcnhzfour +threethreexfgbjpv2eighteightzdffvnmcz +four5dnlncmtrq5sevenfvjkh759 +5rzsfqblznf6kxmkfcgpxfive986 +8eightonenxpntbctcrseven +ksvveightsevenmgczltdvmp9 +7zthlrqqs +5674mgxzdsxhmzfour6gvjtdfnqjrggkjbvc +nqnn9 +1lvmcghmv +lrthree7sixdsdvlkl +threefourfourthreethreerntmpsqzb8 +xgstwosix3 +4jbdqxone263rzkmjpqcrkltcnrpfour +5eightcnrdqprxjzq +three32onerhjlrxrb2 +cnzcqfour5 +seven5one +five2541 +four9bzlqpf65m +6ttg55gkmbbn66two5 +sevenbxcl8eightonefour3seven +sixlxfhnine2njtsjtwosix3 +3173two +8twosh1threepdp7 +3zxpvtbdkfivesixeightthree +ctheightwobhqpfour1two9twonine +jmm74hrlvonestds +seven5tgmphz +4xtztkdntxfour +5ninettwothree +threernhzsk9psrkxprjkgeight +two9fivet8one48eight +58threehcgkgdxp8 +eight2kmhz66nine +onenine7czjxbeight +dx7qbp1 +three9onedone +7vmhzdjbfvnine +5ksnxncqsshzsixzvtgkrzrnrhltvzhqh32 +seven66twomchrdkseven +86jptqljgcrtrzjg7 +ndxxntxz9fivefnzdxjbz49gtfivenstgqbn +rpcfkdzlbnkvdc8 +sevenkbslmkmfivekccclm929 +378zrrcfrsrzpgfkdjbmsix8 +19dtrqvzfqm5two +drlpsxbscldfhj48mpxzz +sggmjfqffmtwo5nineone +1kfsttv +one9sqntcvldnvtrjrp1 +hmx6mkxkxbp4oneightxgd +onethree845n3htlxkj +rqmnxsdnfeight2khvfivelzpsxpsevenqddk +dtrgs7onefive43 +seven6onehvnsnlfbhbfourgcf +bvzqgvhzgl54 +dshsqgmb9nine4five8 +kqvzvbhb18 +nbchkr5 +fbnpvprb1gnfive +7tvdhmgxttwothree91cone +sevenvhldmzqgdrjkx64hnine4 +72fivefour +xmmtbr5 +xc6fivexplnftpkp8 +onezh7threetwo +chdkkxmxrt81two +ktz9gnjv7ddgnbplfour +xzpmsqpcvf95 +nine9qnvrzfone1threeptlxqjksbg +onesix9seven9tggdzxhvm5tctqmseven +sevenfour6pvhnmmm +fbvkkcvpvfive3six +9kzmrxmqxdp +seven456nine +6srtgpkzkhbkv392sk1one +qhgsrhskdrsgntbq7five15 +nkjnhqp3nine1kkth1 +threeninethree7cnhtvrvpmxltwohbkznkpmmq +fvnbvcxtjfx5fourninejlzbgztg +nine1twoseven5fxxjtrtnchsgggbszkpr +16rkgclhpfive7fiverzgqdfczh +six6fournnfhseven34 +3vspnbvfqnjdbsthree7sqhrjpdllxmmt +zxptrvxqfivenqbtlzdgrd59 +twosnzvbxmfk4sgpcgthree2threeqtnjp +fourthree3dmxhninellfive5mnllrzm +three8seven549fournrxpnjrhvt +9gdfflxhmhpsix895xbptvxp +1fivefour4two7 +seven5rkmrc8six9oneights +hgbrl1svqnlneight6 +7zzbvnzsix26zkftwo3 +two4745three65seven +six3three458sixtwofour +fourjnine4 +9nine6 +twopnxcfourpfstqln7fzvtvtn +four5nineqfhkstftjfives6threeptcn +qqkzslhpjkmrtm7nine +fourhjxklxxqxmfgvjsnsczxfrxcgqmcjlndsqhtwothree6fltvvq +eight3mq9gdtmlm +nineseven422 +4fourlthreeoneightjb +3vccbrlshrgpcgjrpgfj +5rrvzchsp2seventwo2 +four1gtrdkmzkl3 +ksvdqxpsdfveight6szgjsdzpxqzlheightone +threesevenfive9onefgfive95 +76hztsngfour4twodzcjshdqxkfive1 +eighthffxm8mzsktlthreelhhfdkgcptkl +6922two51lvzrhvfour +fivesix3tvvkhmsqm9 +38g +four3fqx1zkxvlsmqstwo +468845sevendrhkfqrsk6 +gmxdrbkb9zrxqpfvgjqjprdpgtwovtwofour4 +dlzgv6two8eight +one2ninefoureighttwo8 +ltrstvmcc2jnmvmdc +m22six +5jsbzptglftwonvzccxhrcj +2vcfivednhldrhdonef1 +1fourpxnpbmglfseveneightqkfour +vqxz6bzfcpmpsmq67gthree +five3onesixqxv +81twoonenineeight +vcpjcrsnbtzbz1rkhl +rgzhqsix4twofljjzpkm +gzhn139twoseven2lrtwo +l4ninehzsnine7hxjtb +cszmdjlpxgonesix2sevenseven +2jdqxpt +nbcfc6lpfourfivecnklxnsq3 +kqrvrvmk41threenineeight23six +ttpjhz65three3three +eight7one5twoonesix9 +sc89four71 +tss2qprfour +47eightdpdcbjbkmxbssnrslqzthreelsqtjm7 +ltv5twombc7 +cs6758nsmgss +5mzbrvlct +rzggbmgfrmfqfsglkbtzmfour6fivebgnxlkhhvz8two +jblbqgzc8sdctvcgjfouronedjvhthree +41six9sfvv3four8 +fqrvpnine8 +kqdkzneight595three881 +two2xj23six5 +xpvhl74lqhjbdxgsznjf7five7 +qlf44fxjxj62 +fivegvvsscthreeone6239one +6oneeightcnhmps2twosevensixvqj +7stbrlvjmc +23lfxjhfpnqhnine3gdjqfjmthreehrgfk +hkgjjmdsix2tczq516qm +6eight14 +3onegnsxqf +qf31eightsevenz +cfsslclscsfgfbdpdzzknine3 +5mzlfdgsvc3sjztcjmrd +zcrjglqhkgzh6nvxpbdmsh +three93eightmvscdpvrbsjh +cfour2 +3fivefive3four63 +sevensixnineeightgztgcldrf66one +qqvxmvqtdpnrzxzt8 +onezzrgqzh8cflqzgpqhrgr +3fourvnxxllj3three4 +seventwo54threemppbvtpsix +nhchm9dtkbpkbtwonbfnjfgctwosevenlvxvvtlmzptzpc +pkdtwo7five +sixvr5jhzzvl9three66three +eightfour5558h9 +6foursevennc +1knskl +fourrnncfssxeight8lvknmmsixnxdjbcsgmfour7 +85nhxggnbprbpnfrkjf +twotwo84eight7hmxsvseven +xpjzvvjt4threepslbkml +foursevenszone19 +tvjbkvqzdffour63gfnmkmdzzjn +jzln78l6phtndcgseven +6bgqscglgsninefour9nine +blninetwoeight3 +twoqlmkmdgvk1kqlfmvnrphcssq2one +twoqpxzxvdnsxrksnhvbj6nine47 +zlmn8n839nspkrvxxkbl +one11 +3seven68 +3sevenjlvjf1j +vjjtb4jkggqhheightninefivevrshccfk4 +eight77lv3threecxzxxsbzlr +73tnbpzvgnrgh +53twoeighteightthdxsf4 +1vrcmrj +1seven5tvmhzxsldbnine9onethree3 +two3nine1fournng +5two2 +dsvj9sixseven +7tcckcrmhdx55 +6sevengsmxeightfive5seven +eightmdj1 +sevenfourtwotwo66six +threejmgvv6three5rtpqnt +fmrkcmdbggxxm7two +eight5four6twotwo +qckktvninedjj13nrdtmcscsmlrpl4 +9bstmqqmdfmhzlbsfpfivetwovffcqtpjbkntnv +kj63foureightfoursix44 +qxsrsfvj9oneonefour2mblthree +gthffbrrbhfzsq4 +dflchfive5xgpcsfcksl +twoeight7pbt +7pnjqhtmfsbmpplsixthreezfcqpvfourtwoner +rfourhrv2fiveseven +1ggzvninenqrhbdpqnxsixmvsevenrcsqptdl +two7bmxpmhhx +tfsprzdnineqfourtwo87 +9n89three3eight +8xrbvvgfqz +onefourttdlbrjcf2smrsfbtrfourdsnbgzcgqbkb +hxkktcf9 +sixsevenqmfs6rdzthree +64nine +seven9pxmlbdd5seven +kxvlrzhhgtxnnhg5lnrjqqxjsixkmnxxthrees +tscnzpglccjqhz1mqtqvkgl +vfdqx6sixsix +3nine3 +mdfsxsx3fiveone39seven8five +lsrsbqkvfxrvlr68fourgzsrvpone +oneonethree74 +eight3rxxjkm +sz5 +3r7sevensevenx3 +jzrhnqdthree6661 +six1pcknpvv +qlxvsixonehbdfsxvhsevenzqcdrvk421 +27six2sixjqctbbfv5 +6fiveeighttwo +mcclrxlpqhvhkptbsrrrsgbdzq6one +9fiveghrrhtqnmhtwoonenine +9lb +3hbvtsnqtksevenone8mlftbqjcdxtqkfive +vvqgkbj2fivedt +threefive47 +drmjdqbg37 +qvzqtbqpkktnjj83eighthrcvdxppone97 +mdxxvhtmxninerzqnkmkj8eightsixfivex +kkhclsffivefour7two +4mzhlxrcsm38twotwo +lcmpj3nine7 +fourbpgqn1tworsknxlqdl8zzdlxpgx +nine8eightsevensixkztqszjr9 +fourfive5jhgpcxmqpr41two +fgjfpxkbszsdkbrzmpronecxzhhcsixonegmkppllnd2 +five2853 +zszgxvdtq3three +5tkvc5twosixspzhdfourninestpsj +1sevenoneeightlbxskgvpft +ptcfnjgchx1 +8mfeightqrqrhvfsb18nnlcc9 +nineltnphnvhpvrxbfc1 +tcvmnphpmthree56rx +99rsvrmxbgxtjtclnbbmb8sixone3 +sevenvfjzctwoqjqmvjrdxpxzsfour5 +3d2nhtrhbtfourgsml +9672seven +zttst57zkbjlrmr +455six8fivehqthdfmjfgc +5sevenkgsmclonedvgzqfkgjtwo4 +sixsixjkv6nqdhrlkr +qxjbsevenlp56 +one13tpbhsixfive8jbt +6five8nnqlcbvmb7 +2three1jlghgbzxz751 +ninevktrhnf71one4l +13foursixqcrzsrrffknfive +2crb2 +1mjmxsvnb3eight +eight517feightmxl8 +one1threeeight76rcmkskpvmrz +onethreecqnczs8tdfiveeightthree +fourtwo15nine1 +1rxfour4xjzdfgqsixmjvvzfnh6m +zvcfive2eight5hghsix19 +3nxlmh448two899 +three98oneightzn +3fourtwozszhmcp +twopvhd73 +oneqdlsb7sixllszjbceight +xmqxqsixpgclxldnvlzvjm7nine4 +fourfive4tttldbmmkxvhqrmvmrkpxfzbd7 +44two1 +eightrtsjszc2 diff --git a/2023/inputs/day02.txt b/2023/inputs/day02.txt new file mode 100644 index 0000000..2c674ee --- /dev/null +++ b/2023/inputs/day02.txt @@ -0,0 +1,100 @@ +Game 1: 19 blue, 12 red; 19 blue, 2 green, 1 red; 13 red, 11 blue +Game 2: 1 green, 1 blue, 1 red; 11 red, 3 blue; 1 blue, 18 red; 9 red, 1 green; 2 blue, 11 red, 1 green; 1 green, 2 blue, 10 red +Game 3: 3 blue, 2 red, 6 green; 4 blue, 6 green, 1 red; 11 green, 12 blue; 2 red, 6 green, 4 blue; 4 green +Game 4: 10 red, 5 green, 5 blue; 3 red, 3 blue, 6 green; 2 blue, 9 red, 6 green; 8 green, 10 red, 4 blue; 9 red, 2 green, 3 blue; 1 blue, 5 red, 15 green +Game 5: 11 green, 7 blue; 5 green, 5 red, 1 blue; 1 green, 1 red, 4 blue; 1 red, 1 blue, 4 green; 4 blue, 1 red, 10 green; 5 red, 6 green +Game 6: 1 green, 1 red, 11 blue; 1 blue, 2 green; 1 red, 5 green, 9 blue; 7 blue; 1 red, 2 green, 9 blue; 12 blue, 1 red, 2 green +Game 7: 1 blue, 10 red, 7 green; 14 blue, 10 green; 12 red, 2 green; 16 red, 13 blue, 1 green; 12 green, 10 red, 3 blue; 9 red, 19 blue, 11 green +Game 8: 3 blue, 1 green, 3 red; 4 blue, 10 red, 6 green; 1 green, 10 red, 9 blue; 9 blue, 7 red, 8 green; 8 green, 12 red, 8 blue; 6 blue, 1 green, 13 red +Game 9: 10 green, 2 blue, 11 red; 2 green, 2 red; 6 blue, 8 red, 13 green +Game 10: 8 red, 3 blue, 5 green; 5 green, 7 blue, 1 red; 3 red, 10 blue, 6 green; 2 red, 6 green, 7 blue; 3 blue, 11 red, 4 green; 8 red, 8 blue, 4 green +Game 11: 14 green, 9 red; 3 blue, 6 green, 8 red; 14 green +Game 12: 10 red, 5 blue, 1 green; 4 blue, 8 red; 5 blue, 1 green, 6 red; 14 red, 4 blue; 1 green, 11 red, 3 blue +Game 13: 1 blue, 16 green, 1 red; 6 red, 2 blue, 5 green; 2 blue, 12 red, 10 green; 3 red, 4 blue, 13 green; 14 red, 4 blue, 12 green; 7 red, 2 green +Game 14: 17 red, 11 blue, 3 green; 16 red, 3 blue, 8 green; 3 green, 9 red, 13 blue; 4 green, 15 red, 14 blue +Game 15: 7 blue, 2 red, 2 green; 1 green, 5 red, 6 blue; 3 green, 6 red, 2 blue +Game 16: 3 red, 3 green; 6 green, 4 red, 3 blue; 3 red, 4 blue; 4 blue, 2 red, 4 green +Game 17: 6 red, 1 blue, 5 green; 3 red, 1 green, 12 blue; 13 green, 1 blue; 5 blue, 7 green, 6 red; 5 blue, 14 green, 2 red; 4 green, 6 red, 10 blue +Game 18: 4 red, 8 blue; 8 blue, 4 red; 12 blue, 1 green +Game 19: 1 blue, 15 green, 9 red; 1 red, 3 green; 4 blue, 2 green, 1 red +Game 20: 7 blue, 4 green, 12 red; 1 red, 9 green, 8 blue; 4 blue, 2 green; 13 green, 8 blue; 3 red, 4 green, 1 blue; 6 green, 7 red, 3 blue +Game 21: 9 green, 4 blue, 8 red; 5 blue; 7 red, 8 blue, 1 green +Game 22: 3 green, 4 red; 6 red, 3 green; 4 red, 1 blue, 1 green; 11 red, 3 green, 1 blue; 7 red, 1 blue +Game 23: 3 blue, 4 green; 3 green, 1 red; 1 red, 2 blue, 4 green +Game 24: 2 blue, 3 green; 9 red, 4 green; 2 blue, 9 red; 2 green, 10 red, 1 blue; 1 blue, 1 red, 5 green +Game 25: 8 green, 4 blue; 9 blue, 7 red; 5 green, 15 blue, 11 red; 11 green, 14 red, 10 blue +Game 26: 3 blue; 2 red, 1 green; 2 red, 3 blue; 10 blue, 1 red, 3 green; 1 green, 2 red; 1 green, 6 blue +Game 27: 1 green, 6 blue; 2 green, 1 red, 6 blue; 1 red, 2 blue, 1 green +Game 28: 8 blue, 1 red, 5 green; 1 red; 3 green, 4 red, 2 blue; 4 green, 2 red, 4 blue; 5 blue, 3 red, 7 green +Game 29: 2 green, 4 blue; 7 blue, 4 red, 10 green; 7 blue, 9 green; 14 green, 7 red, 5 blue +Game 30: 19 green, 3 red; 19 green; 1 blue, 14 green; 2 blue, 5 green; 3 red, 19 green +Game 31: 3 red, 1 green, 4 blue; 10 blue; 3 red, 4 green, 5 blue; 10 blue, 1 red, 6 green +Game 32: 19 red, 1 green, 2 blue; 1 blue, 6 green, 13 red; 10 green, 9 red; 11 red, 2 blue, 6 green; 8 green, 5 red +Game 33: 2 red, 8 blue, 2 green; 1 red, 3 green; 9 red, 9 blue, 1 green; 6 red, 1 green; 9 blue, 1 green, 8 red; 5 green, 10 red, 8 blue +Game 34: 1 red, 6 blue, 2 green; 7 red; 14 red, 13 blue; 13 red, 12 blue; 1 green, 9 red, 13 blue; 2 green, 15 blue +Game 35: 8 blue, 2 red, 3 green; 2 green, 2 red; 3 red, 6 blue, 2 green; 2 green, 6 blue; 1 green, 5 blue, 4 red; 3 green, 6 blue +Game 36: 3 red, 5 blue, 10 green; 1 red, 1 green, 7 blue; 2 blue, 2 green, 1 red +Game 37: 8 red, 7 green; 5 green, 1 blue, 6 red; 7 red, 6 blue, 11 green +Game 38: 4 green, 10 red, 9 blue; 12 green, 2 blue, 2 red; 6 red, 6 blue, 9 green; 1 blue, 1 green, 6 red; 3 blue, 1 red, 5 green; 5 blue, 2 red, 12 green +Game 39: 1 blue, 2 red; 7 blue, 2 green, 1 red; 7 blue, 11 green, 3 red; 8 blue, 13 green, 1 red; 6 green, 6 blue, 3 red +Game 40: 8 green, 5 blue; 5 green, 1 blue, 10 red; 9 green, 3 blue; 3 green, 7 red; 2 green, 3 blue, 5 red +Game 41: 7 green, 8 red; 3 blue, 15 green, 7 red; 2 red, 2 green, 4 blue; 10 green, 4 red, 5 blue; 3 red, 8 blue, 9 green; 7 red, 8 green +Game 42: 6 blue, 12 green; 3 red, 1 green; 1 red, 12 green, 3 blue; 10 red, 9 green; 9 red, 4 green, 5 blue +Game 43: 11 red, 6 green; 2 blue, 11 red; 3 red, 1 blue; 3 green, 11 red, 2 blue; 4 red, 5 green, 1 blue; 8 green, 2 blue, 17 red +Game 44: 2 green, 9 blue, 3 red; 7 blue, 1 green, 4 red; 1 green +Game 45: 1 green, 10 red; 5 red, 10 green, 1 blue; 11 red, 3 green, 2 blue; 2 blue, 3 green, 4 red; 7 green, 3 red, 2 blue; 1 blue, 10 red +Game 46: 1 green, 4 blue, 7 red; 13 blue, 2 green, 9 red; 7 blue, 3 red, 1 green +Game 47: 4 blue; 2 green, 2 red, 1 blue; 1 green, 1 red, 4 blue; 1 green, 2 red, 2 blue; 2 blue, 2 red +Game 48: 5 green, 10 red; 7 red, 5 green; 1 green, 11 red; 12 red, 11 green; 11 red, 1 blue, 1 green +Game 49: 2 green, 1 red, 1 blue; 1 blue, 2 red; 2 green, 1 red, 2 blue; 1 blue, 1 red, 1 green +Game 50: 5 green, 2 blue; 4 green, 4 blue, 3 red; 1 red, 7 green, 3 blue +Game 51: 9 green, 1 red, 2 blue; 7 red, 3 blue, 6 green; 5 green, 4 blue, 5 red +Game 52: 2 green, 4 blue, 1 red; 2 blue, 2 red, 13 green; 8 blue, 3 green; 3 green, 4 blue, 2 red; 2 green +Game 53: 3 red; 4 blue, 4 red; 2 blue, 2 red; 6 blue, 1 red, 2 green; 1 red, 1 green, 6 blue; 2 blue, 4 red +Game 54: 3 blue, 3 green, 18 red; 4 blue, 18 red, 3 green; 7 blue, 4 green +Game 55: 1 green, 2 red, 3 blue; 1 red, 4 blue, 1 green; 3 blue, 2 red; 2 blue, 1 green; 3 blue, 2 red; 1 blue, 1 green, 1 red +Game 56: 12 green, 2 red, 1 blue; 11 green, 16 red, 13 blue; 7 red, 5 blue, 12 green; 4 blue, 16 red; 5 red, 1 blue, 3 green +Game 57: 5 green, 17 blue, 11 red; 6 blue, 1 green; 1 green, 5 blue, 8 red; 9 green, 11 red, 1 blue; 9 green, 11 blue, 7 red; 8 green, 4 blue +Game 58: 5 red, 10 blue, 6 green; 5 green, 11 blue, 5 red; 9 green; 4 red, 2 green +Game 59: 2 red, 6 blue, 1 green; 1 green, 12 blue; 2 red +Game 60: 6 blue, 10 green, 9 red; 8 red, 19 blue, 2 green; 16 red, 10 green, 12 blue; 13 red, 12 blue, 6 green +Game 61: 12 green, 1 red, 3 blue; 3 red, 4 blue, 19 green; 1 blue, 7 green +Game 62: 7 red, 6 blue, 8 green; 10 blue, 3 green, 17 red; 13 blue, 3 red, 10 green; 13 red, 5 blue, 9 green; 12 blue, 4 red; 10 red, 4 green +Game 63: 19 green, 4 red; 5 blue, 4 red, 1 green; 4 red, 2 blue, 15 green; 5 green, 4 red, 5 blue +Game 64: 6 red, 3 green; 6 green, 3 red, 3 blue; 3 blue, 8 red, 5 green; 3 blue, 7 red, 1 green; 1 blue, 6 red, 6 green +Game 65: 1 green, 9 blue; 6 blue, 4 green, 6 red; 6 blue, 5 green; 3 red, 1 blue, 4 green +Game 66: 1 blue, 2 red; 2 green, 1 blue; 2 red, 1 blue, 1 green; 1 blue, 1 green +Game 67: 16 blue, 1 green; 1 blue, 2 green, 2 red; 1 red, 9 blue; 12 blue, 4 green, 1 red; 6 green, 11 blue, 3 red +Game 68: 6 blue, 2 red, 1 green; 2 blue, 2 green; 1 green, 7 red, 15 blue; 14 blue, 12 green, 3 red; 13 green, 10 red, 6 blue; 2 green, 5 blue, 1 red +Game 69: 2 red, 1 blue, 2 green; 1 blue, 7 green, 1 red; 3 blue, 1 red, 7 green; 2 red, 1 blue, 11 green +Game 70: 2 green, 9 red, 3 blue; 12 blue, 1 green, 13 red; 6 red, 1 green, 5 blue; 1 red, 17 blue +Game 71: 7 red, 5 green, 6 blue; 5 blue, 5 green; 7 green, 4 blue; 2 green, 4 blue, 8 red; 10 red, 8 green; 3 blue, 13 red, 7 green +Game 72: 13 red, 17 green; 9 red, 20 green, 3 blue; 1 green, 3 blue, 8 red +Game 73: 1 blue, 7 red, 2 green; 2 green, 1 blue, 8 red; 1 blue, 2 red; 4 red, 7 green; 4 red, 5 green; 3 green, 7 red +Game 74: 2 green, 14 blue; 1 red, 1 blue, 7 green; 1 red, 8 green, 11 blue; 4 green, 12 blue; 1 green, 5 blue +Game 75: 12 blue, 1 red; 1 red, 7 blue, 4 green; 4 blue, 6 green; 4 green, 3 blue, 1 red +Game 76: 7 green, 5 red, 6 blue; 18 red, 1 green; 14 green, 4 red, 15 blue; 4 blue, 6 red +Game 77: 2 blue, 2 green, 2 red; 2 blue, 1 red, 1 green; 2 green, 1 red; 6 blue, 4 green; 1 red, 1 blue, 6 green +Game 78: 5 red, 16 blue, 12 green; 11 blue, 3 red, 2 green; 13 blue, 4 red +Game 79: 9 red, 11 green, 6 blue; 1 red, 3 green; 7 blue, 7 red, 11 green; 8 red, 9 blue, 11 green; 7 red, 11 green, 4 blue +Game 80: 7 green, 5 red, 2 blue; 1 blue, 7 green, 1 red; 2 red, 2 blue; 1 red, 4 blue, 12 green; 4 green, 2 blue +Game 81: 5 blue, 2 green, 12 red; 2 green, 1 blue, 5 red; 3 blue, 13 red, 3 green; 3 green, 9 blue, 3 red; 10 blue, 4 red, 3 green +Game 82: 11 blue, 1 red, 9 green; 11 green, 1 blue, 12 red; 13 red, 6 blue, 19 green +Game 83: 6 red, 5 blue, 16 green; 4 green, 17 blue, 9 red; 15 red, 2 green, 9 blue +Game 84: 19 green, 11 blue, 3 red; 1 blue, 18 green, 6 red; 17 blue, 5 green, 4 red; 18 blue, 7 green, 3 red +Game 85: 3 green, 15 blue; 12 blue; 2 green, 1 red; 1 red, 9 blue, 1 green; 12 blue, 3 red, 1 green +Game 86: 3 green, 4 blue, 5 red; 9 red, 4 green, 1 blue; 6 green, 1 blue, 8 red; 3 green, 2 blue, 5 red +Game 87: 2 red, 8 blue, 5 green; 3 red, 5 blue, 10 green; 2 red, 3 green +Game 88: 16 green, 13 red; 7 green, 1 blue, 2 red; 7 red, 12 green; 5 red, 7 green, 2 blue; 2 blue, 10 green, 7 red; 8 red, 16 green +Game 89: 1 blue, 8 red; 2 green, 10 red, 12 blue; 13 green, 14 blue; 10 blue, 15 red, 13 green; 2 green, 5 red, 13 blue +Game 90: 16 blue, 7 red, 4 green; 4 green, 6 red, 11 blue; 2 red, 8 blue, 2 green; 5 green, 8 red, 10 blue; 4 red, 2 green, 7 blue; 4 green, 5 blue, 5 red +Game 91: 4 red, 4 green, 1 blue; 3 blue, 2 green; 6 blue, 4 green, 5 red; 2 red, 6 blue, 4 green; 6 blue, 1 green +Game 92: 1 red, 3 green; 3 blue, 6 green; 5 blue, 1 red, 11 green; 1 red; 3 green, 13 blue +Game 93: 1 red, 14 blue, 6 green; 10 blue, 6 red; 9 green, 15 red, 17 blue; 9 red, 1 green, 9 blue +Game 94: 3 red, 14 green; 3 blue, 15 green, 3 red; 2 red, 15 green +Game 95: 4 blue, 13 red; 5 blue, 1 green, 11 red; 3 green, 3 blue, 10 red; 13 red, 6 blue; 2 green, 5 blue; 3 green, 11 red +Game 96: 7 blue, 1 green; 1 green, 4 blue; 1 green, 2 red, 5 blue; 1 red, 2 blue, 1 green; 1 blue +Game 97: 15 green, 9 blue; 14 blue, 14 red, 2 green; 18 red, 12 blue, 2 green +Game 98: 1 green, 9 red; 1 red, 2 green, 7 blue; 8 red, 1 blue; 6 red, 2 green; 1 green, 6 blue +Game 99: 1 green, 2 red, 6 blue; 6 red, 1 green, 5 blue; 11 blue, 6 red; 11 red, 1 green; 1 green, 11 red, 9 blue +Game 100: 12 green, 8 blue, 2 red; 7 blue, 14 red, 8 green; 14 red, 1 blue, 4 green diff --git a/2023/inputs/day03.txt b/2023/inputs/day03.txt new file mode 100644 index 0000000..86d4798 --- /dev/null +++ b/2023/inputs/day03.txt @@ -0,0 +1,140 @@ +...766.......821.547.....577......................................387.....................56..........446.793..........292.................. +...........................%...../.....981..........627..../..........-.....623......610..-..............*..................16......891..... +...$...........716..&336.......470.325.................*.84........$..34....*.....+.....#.....*76....#.........303.433........-........&.... +.117../359.#...............595............129..963#..722..........128........192.313........31........887...............234.......-......... +............298.....922...*.......482.......*..................*......./.........................395................264..../.......166...... +.732..................*..815..920*......113.827.........453.571.356..902......693...147............*.....128................................ +...*..........451-.442..................*...................................+....*....*.......918...680...........................529+...... +....844.587.....................347...425.....974......348.........$615....174.330..............*..................556.......972*........... +..........&...676.........947..%.................*976.*.................45..........192........272.131..............-..977*......85......... +.588..........*........$.$.......515...493.............73.....%...........*.....428.*....................*968..............964.......153*274 +....=..860...157....347............*..*......954.930.......472...618....899......%..726.330..44.......687........$.......................... +..........@..................+....465..47.......*......*............*........554............@...................485..320.................... +.....................%831.267.......................305.844.........413........*........741....-...692.948..........*..........650.......510 +....................................*212....419..............848............710.............670.....*......932...281......-.........398..... +.......%....782.......187#..-....890...........@................*../...*531.....745................645......*........#..&..835......*....... +.......180..=....153*......487........@322.........693.........805.687..............350.......259........626...849.221.833.......573....%674 +.....................821...........................*...988.............90..273...................*............*............................. +.....65*845..346%..................*412...@.....901.............79.....*.....*..........169.764.14...3.....839...........559..=............. +.....................553..798.............318.%..............29......772...................*......................511.........749...697..... +.........@............*....*.........414.......13.517.......*...............597.....................28*366..........*......%.........*...... +......412...........724....973...&....*.............*..#......................%...910...........702......../......473.651...375.*347........ +.............*559................906..111........449....510......+342............*....797.262.............650............................175 +...........40.........793...................156......./.....643................577..........+.....................*304...711....437*368..... +.........................*.............................843..*...........47..........406............=..../......761.......*...............851 +......309@......283...296......#.....322............./.....72.....729.....+...515......*..78......735..970.130..........16...../.&...426*... +................................720.@......952....958.........672*..................239....*...............+................816..1.......... +............=..............259........494.+...........................+...447...........310............*...............%553................. +....650....999..837*.......+.........*......%359..604.....577.........591.+.......................832.383........@252.........292........... +....*...............677..........581.528...........*..=.....%.....................583.........................&........*354................. +.................=.........470...*...........=...467...117........$736..3.........*...........................127...945.......808...&....785 +.747...658.....223...../........563.......466..........................#...652.841......417...........253.................906.*...984....... +..........*106.......173....396.....................*106....645...426........*.......*......310.........%.....238*546.....*...442......$145. +...618.........&203............*........988......833.................*......594.....837.....*...........................460.......671....... +........................*...548.....704*......................274..985.575*...............122.....574......=391.............433%.-.......... +......871...747.......468................466*367..482....455....*..........53...................&.*.................507@.................... +........*..*..............597......................*...........855............................502.243.$484......446............-............ +.......51.............841...+...........7.565.....281.873*305........603................$..................#781...*.819.....591..104....675. +............+..........*.......391-......*...........................-....658....515...861.......195/....................................... +.............130.903...235..........757................&...765*237.........&....*...........215.......389%............*...269*812........... +.526.919...........+.......-.......*........508*202...109............53.......899...........*....@..................55.94..............26... +...*....................329........73...........................60=..+.....................10..152........674*993..........74..343.......... +......305......................902........349...542/.......................783..352...38.....................................=..*....507.... +.797.....+...............@.......=.......$.............303.348..408............*......-...729......=867.683..+.425*137.........698....&..... +....*...........988.964.145.785.....916............*.....#.*...*.....535%.806.532.........*....@.........*..11.............................. +.684..834...473*.....*.......-.....*........892.372.448.....77.220........*............326..723.........836...........#503...994....*786.... +.........*..........863..483....773...........*.........101................121..535..................46......706..............*..334........ +.938*..304..../854......*...........267...462..367........#.......................*..%..............*........*...&...*......631.......384... +....................................@.....*......................485..836...197..594..393....433..169.209..13....812..849..........=..../... +.....................#.....132........172....419..380..245*860...........*...$.................=......@............................264...... +....52.555.........602...*........780*..........*...*............................398*245................................61.196.+............ +......*........@........624...823...............823..770.@....518......663.........................@972.....396*975.......*.....986.....*968 +.............694.308........................373...........578...#.........................959........................=250............461.... +..601...............#....719.-.......&.......................................757.............*.........344................660............699 +.....-.358..480*989...........261.....749......@......-689...209-.......826$...-..194........457..........*...473..........*.........893*... +.339......%...........221..................643..564................................*.............443.....798.=.........668..69....@......... +....*702..........&........145.734...........@..........$951...............325......439...........&.......................*....151.......436 +.........#......554.661....%......-....243.....................735.......-.....457.........769*........474*769............547........331.... +136.361..907.........*........../..........600.....-..739.769..#.........306.....*.............245..............*218..296......683...*...... +...*..................682...746.765..............681.....*...........511......704.........231................892..................*.715..728 +.......*415...................*........295..468.......................*.............35...*......./................665.985..&148.........&... +....831.......510....444.......565.................3.....334......558..........626........342..532..426......709...#....*.......815......... +..............*......*.............................*....*....*...*...............@.....................................418......*......%527. +.280#...515..706..305........................344.623...957.803..2..............=...871.............243..989....+..............218........... +.........*...............773...../...........@.......$................519/.88..249.+...........449*........#....86....454...2........$437... +..........822...197.........*..717......./.......8....562.58*102.936@......*............187...........................@.........212......... +..349.719.............728..623...........58.....*........................610....873........@...................................*............ +...*..*..................%.......423*214......259....426...101.....346............*.+.........359.....813.=...686.....$...639............140 +..839.768....464.........................../........*.....&...........@....367.951...741..........*....=..283...+..195.....%........632.*... +...........#.......................821.893..539..287....................../.....................942...........................149.....*.925. +......%....155..........*48.............*............143....../901.............844*368...=...................48....777.........*....246..... +....79...............282.............437...............+...........561.....736............133.%.........+......*....*...257*....71.......... +.............655.131................................................*..........%..............154.......897..791.....29.....358............. +...$...966.....*....*....864......892...........661..857=........=..259........645.................................$....630...........134... +.806...=.....=....949...............*....#.......*..............531.................410.............................428..*.................. +..............225............941....570...705....705..36.86...........................%...972/...735....448/............528................. +.....253................................................*...506.918.......390.478............................862............................ +.....*......137......................300..........607.....#....*......663................190................*.....869&..117$................ +.831.252.......+...%483..110.........*......299.........606..........&..................=................148...24..............147*748...851 +...........................-.......431.....%....820.........713.219....366.......704...........................*....%...&...............*... +.......669.295.......*.................................155..*......#......*......=.....727........494...27...110...588..676..904...345...382 +......@...........987.829......732/......=.517*519.405.......897........115........716*...................*....................*......*..... +..........................740..........713.........*.............978........*................+387.......=..885....-...+968......951....669.. +....105..............907.-.......105.......807..741.........*....*........627...882...=...........695..779.......248.......421.............. +...$................$.............*..907*.....*.....*....111.215.89...723........&....546.....849*....................119.....*......644*... +.......62.....723......155.923...26......678.341.998.107...................=.........................=.........934.9....*................... +....20*.................*...........251..............................470.46../........................31............*...406...441........... +........$61......#...628......942......&......255/..926.......................520......47&...............240.......791.......*....875...424. +.851.27.......700............*.....234..............-.......91.......=..729......................706...........458.....752...722.*......*... +....*...............997....635...........920...*...........*.......266............2................*.............*......=................656 +.........=...................................57.115.773.944..107.........368...../..205.......971..829.728........566..........75....269.... +.......538...........646.......706#..762..............*........*.814=...................291..*..............30................*......&...... +..605*..............*...............*.......226.....709.8...671............159..974#...$.....427.......................645..587............. +..........973.866..799......913...741...600*....705...............+........*.............................565..606.........*........654.778.. +......872....*.....................................#.873.....-225.499..546.847.......763..743@......113.....*.....=....380............*..... +.........+......891.53.......206..........760..................................822.....-........136..%.....610.....20......85............... +............200..+....*......*....236*511......849+.....672-.&................@..........591*.....*....292......%......176*.......571....... +....#15......*......783....512..+....................*........914.86...-216........-574......381.658......*..201....17......758..*......$... +..............560................725...628...+...646.432..867.....*.....................................734........*..........*.570....948.. +....417.....................................992....*............638......696..362...=.......40......................843.....722............. +....*......*.................855.169...623......816..816...97.........*....*.....-..998..............................................3...... +...646..646.389..........................-..............*../.....990...972.92......................333....=..........185..261.400...*...#... +.................966.&.............$.........#.....413.700........*...............................&....465...........*......=...+.621....452 +..873..247........*...212....290....429...551.....=............305....#...719.776....573#....657...............972..477..................... +.....*...........725............*.........................405.........952..*.....$..........*.....856.......................295............. +.....661.............919*92.....373.917*..794....#............12/..&.......468.......$....841.680.../..303..$..............*....653.197.=... +..........730...........................9.#...#..166...206..........794.............891........*.............192.....300...329..+...*....884 +............/...........*189.....*..........677........+...%.............961.................819....294*............................242..... +.....................139......607.41.923....................610..528......*...&455.....70.-.............215.......827&...256....124......... +...............342..........................454.................*.......885.&...........*..396....69&....................*........%......... +................&...........842...581..335.&.......672.......144.............852.......801...............&60..*............&..........802... +..73.133.40....................+...*....%...........+...............248..........769.......511......707*......710..........228..........*... +.....*...*.........984.....532....415..................................=.........*...151....*...........467........170..........#....913.... +..206.....147.....%....338....@..........394.........143%./......958..........749...*....569...................848...#.........268.......... +..............493......*.............*....................844....*................824...........=...553.......%...........894............... +......................38..........796.852...=....955............674.974...................964..551.=............*259..-..*.................. +...596............857......941...............497...&.564.890.........*..311.905......382...../..........25...329.....241..174......873...... +...........907.......#........*741.....................*......180.808..*......*........*..........764..........................269*......... +...308.......&.569......898........524...452...426..430....34.*.......937...231........752..........&.......111.......................93.... +....*..........&..............754...*.....*......................409............619................................610...............*...... +...20...886............788.......&..261.943.............#...#.....................*.../........@......+..137........*..460.205......760.71.. +........*.........+........837........................184..892...................811..161....648...643.....*........10.......*.............. +........309.....290..........*...../227.......331...........................659............................876..440.......891.........893... +............*..........198...................*.............711*629.............*....837....538..-................*....335.....+.........=... +..........923.............*281.330..423...726....530..*280....................990..*.............651..661......121......=.....236...344..... +.....419...........$.............*...*..........*.............866..904............96..422.............@......%.....744.....$.......*........ +.......*..........770......../..843.794..42......201...........-..*.....................*........%.........905........&.....335..865...255.. +....164....95.814...........300.............*332...................180.....739...=..464.619....617......-.............................#..... +.............*.........*.............304..81................../...........*....662...*................658...............368..%...........996 +.........755........738.329.&866...../.....................614...$.......851.......254......917.152............297..860*.....466...774...... +..........*................................467.....173.........$.684...........................*.......535.......$....................*..... +..960..569.....888..=......................+........*........744.................................882........................975........841.. +...*..............*.700..........................458....*817......668..........882.710.............#.413%......@.............*.............. +..648............63...............803.237...341......229.............*..632....*......*910...405................625...........805...&...$... +....................../...=............*.........984..........417...78.....*..141.+............*....46..839............786*88......454.289.. +.....145..=........502..63............111...826....*.../.........*......740.......153.432.....74......*....&.430..............594........... +.......*...739..............599.&.............#...454.611........291........196......................172.......*.%434............*.......... +.........*..............671..&...266............/.......................928.-................................434......387/......16.699...... +......538.581........&....*............%......10.....168....537&....296..*......177...192................-.......470........................ +..................661......496.346*.....870............*................958....-......*......-....@......101.....+.......................... +..808..............................365..................195.........................90......482.837............................404.214...... diff --git a/2023/inputs/day04.txt b/2023/inputs/day04.txt new file mode 100644 index 0000000..fef951e --- /dev/null +++ b/2023/inputs/day04.txt @@ -0,0 +1,202 @@ +ard 1: 73 92 13 35 18 96 37 72 76 39 | 82 14 66 57 25 98 49 28 3 95 81 85 31 30 16 79 7 12 55 19 97 45 9 58 2 +Card 2: 41 93 82 81 96 56 46 13 44 79 | 13 28 47 49 46 94 84 87 96 45 41 79 35 43 31 34 81 82 64 93 8 56 9 44 55 +Card 3: 22 26 55 46 94 88 3 17 91 95 | 95 97 44 25 46 91 17 20 43 94 22 34 62 73 31 55 60 79 88 90 3 80 33 89 26 +Card 4: 78 32 27 65 64 28 43 81 50 93 | 95 37 77 46 29 55 98 88 94 72 53 80 43 41 7 63 92 33 32 66 2 35 31 24 65 +Card 5: 74 21 96 20 45 88 18 10 53 73 | 80 87 86 81 28 11 77 16 70 44 8 22 72 85 27 35 42 36 84 37 59 9 41 56 3 +Card 6: 70 48 93 10 63 97 20 77 72 42 | 19 7 12 1 47 31 72 88 36 82 69 17 29 62 22 8 32 86 52 76 96 41 51 55 44 +Card 7: 79 43 87 42 8 74 51 69 3 44 | 30 27 19 42 99 28 68 43 5 36 54 24 92 97 34 44 96 2 50 82 35 69 25 45 18 +Card 8: 11 39 32 62 93 41 75 94 23 29 | 40 31 95 41 17 21 81 90 34 13 4 5 48 24 20 80 50 26 27 43 54 61 8 73 89 +Card 9: 75 99 39 45 32 35 55 87 76 21 | 34 14 80 3 93 46 71 78 23 22 87 82 42 49 76 94 10 51 44 58 11 4 91 26 43 +Card 10: 34 53 9 36 52 30 70 60 65 96 | 85 31 29 41 4 88 63 93 9 52 11 37 23 61 51 71 97 26 70 15 38 72 94 64 95 +Card 11: 41 92 42 94 63 89 85 25 86 98 | 3 20 70 74 93 34 21 82 37 55 9 79 85 41 14 99 2 92 90 26 40 57 67 89 31 +Card 12: 50 37 85 46 56 44 2 42 60 66 | 69 78 30 59 71 87 6 51 9 81 75 45 24 16 31 61 44 96 41 86 23 17 42 27 40 +Card 13: 24 46 50 29 89 77 49 25 53 65 | 63 66 43 86 11 9 40 70 38 79 78 27 12 20 84 42 67 73 22 8 68 35 6 4 69 +Card 14: 72 68 9 78 90 40 55 37 16 52 | 27 98 76 63 58 70 8 44 48 90 6 92 3 20 96 88 59 31 95 15 45 47 30 65 64 +Card 15: 15 28 38 87 24 61 26 13 18 94 | 63 56 51 29 17 47 21 62 19 14 69 32 60 41 11 10 54 89 7 35 71 16 96 20 27 +Card 16: 11 24 42 76 99 12 45 94 33 10 | 36 94 72 31 12 28 24 18 11 99 61 33 79 10 53 35 76 42 43 22 78 27 62 59 45 +Card 17: 72 40 35 28 16 51 2 89 83 39 | 68 79 67 15 77 35 12 34 57 16 10 75 72 39 89 60 27 29 19 17 32 45 37 38 14 +Card 18: 13 68 25 92 79 95 67 87 50 7 | 29 23 1 59 91 51 17 80 12 84 27 66 69 61 39 16 34 44 54 37 4 11 9 45 14 +Card 19: 62 14 80 15 40 69 26 65 83 32 | 72 18 66 83 59 48 65 50 37 93 80 14 67 60 40 68 32 69 27 85 30 31 62 15 26 +Card 20: 4 20 48 56 11 13 8 83 98 96 | 87 25 5 99 19 3 51 79 36 35 39 43 45 63 80 40 20 75 24 64 54 98 95 68 72 +Card 21: 13 67 19 78 79 47 49 69 8 9 | 44 9 47 62 50 78 19 76 8 57 77 13 39 11 43 67 49 18 79 94 69 55 58 7 70 +Card 22: 21 39 6 99 81 57 22 53 95 90 | 80 46 74 15 69 72 14 16 87 10 99 20 45 81 6 27 51 21 40 89 90 95 65 57 50 +Card 23: 27 36 95 10 68 52 30 43 51 70 | 62 52 51 95 68 25 11 30 65 10 55 49 27 81 34 37 63 43 9 56 96 70 1 36 58 +Card 24: 31 57 94 2 78 82 63 27 97 70 | 97 58 46 37 70 2 98 57 11 29 36 94 51 90 56 27 13 31 39 28 60 71 96 78 26 +Card 25: 96 13 61 89 70 80 93 57 9 28 | 13 27 29 50 9 94 59 80 16 7 40 89 91 3 60 75 17 18 36 86 15 28 26 61 57 +Card 26: 53 96 15 97 36 13 31 22 19 35 | 61 55 1 92 93 65 19 41 52 3 85 24 22 78 13 70 66 54 31 95 71 96 58 97 35 +Card 27: 56 75 28 85 82 52 58 59 13 33 | 2 31 12 10 81 94 9 80 5 95 43 55 83 60 66 79 61 58 49 34 29 57 99 92 88 +Card 28: 4 21 19 94 95 47 92 52 78 73 | 72 96 85 7 26 44 56 86 49 6 63 35 1 66 4 70 13 40 71 17 62 8 69 76 32 +Card 29: 44 13 92 57 70 83 96 63 6 76 | 51 30 71 38 42 76 77 99 10 64 26 81 21 50 89 59 31 8 79 83 85 2 5 75 44 +Card 30: 59 26 61 78 20 5 11 32 87 23 | 97 41 35 31 27 80 83 51 42 2 17 48 69 6 37 62 43 29 18 73 8 95 82 79 45 +Card 31: 80 30 36 54 1 81 95 16 45 62 | 99 73 91 43 93 23 4 51 71 30 84 28 80 63 46 53 49 55 74 31 25 2 52 3 21 +Card 32: 10 9 5 18 68 47 81 1 93 65 | 55 80 77 33 50 94 56 9 58 22 86 31 51 2 88 44 98 99 26 21 3 30 20 52 93 +Card 33: 16 48 32 5 1 96 11 2 14 46 | 80 10 79 87 19 5 71 72 30 29 93 13 39 67 8 49 22 48 76 28 52 23 58 38 81 +Card 34: 70 24 23 27 67 55 95 96 80 92 | 54 5 42 37 93 49 10 7 74 80 50 34 78 40 2 28 39 52 3 83 62 21 91 71 73 +Card 35: 70 96 75 73 29 58 88 16 77 71 | 68 42 64 11 65 63 5 79 38 52 34 41 86 35 25 44 48 93 20 60 78 4 90 80 21 +Card 36: 17 59 71 39 41 83 86 51 4 23 | 88 96 35 17 91 16 34 26 27 92 75 97 46 78 39 80 32 60 70 9 81 28 50 95 18 +Card 37: 52 75 8 64 39 42 10 34 71 73 | 62 34 29 80 46 64 2 42 81 45 55 44 17 33 66 26 12 50 52 8 94 4 43 85 48 +Card 38: 61 74 68 26 97 31 86 96 41 98 | 95 56 70 49 3 86 21 8 90 39 96 26 30 16 46 31 97 89 61 68 53 41 98 54 74 +Card 39: 3 18 75 56 73 41 43 82 34 33 | 70 26 42 78 6 56 90 41 17 75 18 47 82 32 13 60 81 39 5 52 54 55 12 48 98 +Card 40: 96 25 22 84 95 72 50 40 90 69 | 48 91 77 78 16 17 55 26 1 28 14 31 23 79 51 24 82 97 62 47 13 93 12 4 20 +Card 41: 71 54 24 39 7 51 95 46 90 17 | 96 44 64 69 8 62 97 39 48 2 76 71 37 84 90 54 95 81 46 63 7 51 50 24 47 +Card 42: 48 94 44 43 57 58 55 7 17 11 | 2 12 84 40 96 57 73 17 55 94 43 87 90 95 35 21 11 42 34 26 25 10 74 60 41 +Card 43: 75 8 12 87 36 35 33 62 11 39 | 25 73 71 64 46 99 60 57 15 24 80 10 74 67 12 23 63 69 56 55 20 53 1 52 81 +Card 44: 66 71 25 56 8 65 96 38 68 41 | 41 33 18 60 66 72 37 87 59 94 56 96 5 7 17 21 14 25 93 39 74 79 46 71 11 +Card 45: 27 8 93 49 24 48 23 78 98 51 | 71 37 96 47 74 21 9 40 12 45 49 70 84 76 58 53 50 91 34 85 13 7 5 29 55 +Card 46: 84 42 44 27 98 64 19 28 93 74 | 17 15 4 47 75 52 73 90 89 57 55 36 80 81 54 71 88 53 1 56 21 32 66 91 38 +Card 47: 53 21 4 28 65 58 49 98 10 23 | 25 20 19 64 10 67 15 78 80 7 83 13 35 38 75 86 33 28 98 27 73 70 59 79 14 +Card 48: 37 12 5 10 95 45 70 11 72 97 | 16 89 35 32 24 78 71 91 14 52 9 63 53 36 17 8 82 97 69 27 26 12 81 67 43 +Card 49: 54 4 71 83 72 50 95 78 35 36 | 46 87 98 18 36 72 74 75 66 70 69 16 21 58 90 33 93 68 41 59 7 23 92 5 11 +Card 50: 70 93 33 38 27 36 61 55 74 94 | 40 20 58 70 78 12 14 31 95 29 19 65 81 17 90 16 45 51 13 97 72 63 53 41 88 +Card 51: 27 14 41 6 24 48 96 66 43 18 | 11 1 81 92 8 29 26 13 35 73 3 78 93 52 98 77 60 99 62 79 22 54 9 21 30 +Card 52: 1 28 54 70 24 22 50 37 63 87 | 22 11 71 87 50 25 24 70 37 14 95 28 40 80 3 54 63 58 82 1 34 41 13 10 75 +Card 53: 33 96 53 80 60 6 35 77 32 83 | 35 5 43 67 32 80 18 79 58 91 28 96 23 53 6 83 77 86 71 50 21 33 60 30 24 +Card 54: 45 76 84 5 12 3 44 2 81 59 | 6 76 63 81 16 2 12 3 87 44 21 24 45 19 59 84 5 17 68 80 66 36 15 99 31 +Card 55: 5 67 46 50 68 64 14 94 11 4 | 45 34 62 53 97 65 37 27 68 36 22 44 20 60 75 77 89 55 33 9 13 28 63 31 47 +Card 56: 51 96 40 33 39 81 74 60 62 65 | 70 90 69 76 32 62 40 65 56 80 28 33 74 81 82 94 60 12 49 7 39 96 8 63 51 +Card 57: 24 71 51 97 23 89 41 46 6 56 | 62 52 20 4 67 24 38 5 92 50 11 63 59 17 55 83 98 21 48 87 97 32 23 53 66 +Card 58: 63 72 78 10 64 46 65 54 95 9 | 8 77 4 58 32 82 42 49 97 47 40 2 87 24 9 94 63 61 17 27 56 55 12 75 39 +Card 59: 62 67 17 58 45 46 91 94 81 93 | 46 40 52 26 74 81 17 41 82 61 12 50 35 97 62 94 28 58 38 45 92 63 67 93 91 +Card 60: 81 21 13 88 69 2 49 17 59 51 | 64 4 59 28 95 21 2 17 49 88 48 13 82 51 18 65 54 81 42 10 22 69 32 85 60 +Card 61: 50 51 58 20 22 31 61 89 84 7 | 1 68 27 88 52 39 13 23 2 3 42 5 55 29 77 38 44 95 63 34 46 75 4 60 16 +Card 62: 62 84 76 41 71 86 25 15 55 42 | 71 32 35 76 42 41 84 15 1 43 30 88 48 86 25 70 98 62 93 3 13 46 77 97 50 +Card 63: 34 20 1 29 7 61 31 97 81 85 | 26 8 78 2 29 61 23 59 60 7 10 86 12 64 1 87 24 56 58 30 19 53 36 81 34 +Card 64: 3 82 28 70 49 95 9 52 45 38 | 27 28 65 81 57 15 29 71 32 60 48 52 4 73 38 72 67 10 88 7 3 5 78 91 18 +Card 65: 85 74 52 87 60 24 82 72 67 93 | 72 4 87 52 86 48 39 67 18 15 99 41 78 38 60 84 36 75 79 23 2 42 54 16 69 +Card 66: 33 54 78 76 24 29 62 20 2 98 | 76 98 51 99 75 2 30 83 33 72 28 3 29 62 20 84 54 61 59 94 1 16 63 24 78 +Card 67: 59 78 56 63 44 35 10 94 13 4 | 46 63 56 1 94 86 55 80 20 28 50 67 4 53 6 59 13 58 93 10 22 19 84 12 8 +Card 68: 87 12 41 7 75 43 62 68 63 81 | 4 95 20 24 91 37 70 56 67 49 90 82 6 21 59 30 71 64 41 65 58 96 8 25 13 +Card 69: 89 39 8 86 62 97 53 84 72 74 | 11 48 25 89 72 59 7 85 15 19 65 80 54 1 21 38 29 30 40 58 56 49 3 83 52 +Card 70: 75 49 73 78 29 12 47 36 24 88 | 92 84 50 75 12 34 73 28 97 86 29 56 78 8 69 47 17 44 32 68 81 15 16 26 37 +Card 71: 44 41 24 40 59 85 74 36 4 92 | 33 48 32 49 78 34 35 29 45 93 36 37 18 98 16 17 58 69 40 61 66 94 60 59 75 +Card 72: 9 21 83 27 2 23 99 7 6 59 | 73 74 81 25 65 33 29 14 27 44 24 63 49 43 12 37 69 79 36 54 52 82 55 78 94 +Card 73: 71 70 3 47 31 76 78 72 86 98 | 95 20 70 33 45 89 85 29 52 88 42 90 6 80 25 58 79 13 48 67 41 49 24 27 39 +Card 74: 22 39 58 70 56 59 3 98 61 97 | 13 84 72 47 11 52 4 35 46 49 5 24 62 43 9 40 63 16 99 93 33 83 30 91 14 +Card 75: 29 48 85 95 64 61 35 99 15 46 | 98 97 9 76 5 14 74 87 38 75 82 54 4 63 20 53 79 40 62 96 2 85 31 36 80 +Card 76: 70 94 3 1 46 48 87 5 16 74 | 52 14 22 6 24 65 4 8 42 36 66 43 9 45 93 69 51 57 19 44 81 98 77 35 79 +Card 77: 77 8 29 21 11 31 93 74 72 71 | 67 8 43 72 62 40 11 77 71 29 61 92 74 12 52 37 78 93 56 31 14 21 63 39 35 +Card 78: 66 48 5 4 63 54 91 74 76 77 | 48 54 36 95 11 61 76 52 46 65 18 67 66 63 62 19 5 74 77 64 4 42 9 91 55 +Card 79: 57 19 65 23 69 74 28 97 89 41 | 89 15 41 99 58 53 8 17 23 81 28 94 43 57 1 46 71 38 87 6 49 59 80 85 75 +Card 80: 64 39 19 41 14 6 91 8 61 46 | 66 94 39 82 43 92 33 8 30 1 40 55 18 95 6 86 7 80 91 65 97 9 12 61 2 +Card 81: 26 28 44 29 78 30 14 68 22 40 | 38 8 25 72 51 31 16 71 45 37 87 23 85 64 7 6 34 44 90 9 13 15 82 49 32 +Card 82: 47 26 6 33 32 1 37 42 96 29 | 68 20 10 56 6 27 13 22 83 15 41 37 24 79 52 93 80 94 45 92 50 46 2 78 42 +Card 83: 33 32 63 1 19 69 29 3 64 10 | 69 43 8 32 9 67 40 23 64 20 96 27 1 42 11 19 3 10 63 33 22 29 55 6 49 +Card 84: 25 47 44 53 22 60 77 89 37 67 | 99 48 44 53 60 6 9 8 22 70 37 96 50 47 25 89 11 49 67 90 29 32 77 40 66 +Card 85: 30 60 57 86 93 88 18 27 48 82 | 94 10 57 86 59 88 48 52 78 29 20 41 82 77 90 87 64 6 60 81 44 51 2 68 45 +Card 86: 8 29 97 92 91 69 48 82 51 67 | 40 81 10 97 57 94 7 65 84 17 96 38 5 76 98 55 39 34 88 27 12 18 3 26 9 +Card 87: 29 21 65 98 26 23 40 94 90 51 | 42 53 95 94 62 75 86 55 29 49 92 21 87 37 56 40 13 68 65 23 26 98 38 31 69 +Card 88: 30 79 14 43 73 41 36 83 19 17 | 3 73 70 55 99 34 90 38 26 5 85 22 81 97 66 16 24 88 2 33 21 63 96 58 41 +Card 89: 81 41 29 97 76 57 30 79 25 52 | 76 37 89 90 38 17 87 46 7 93 99 54 41 62 79 43 82 95 70 61 29 58 48 12 60 +Card 90: 26 94 39 29 48 22 16 98 66 64 | 52 66 61 50 45 64 80 27 5 14 68 13 58 37 7 26 39 82 16 72 33 8 48 99 88 +Card 91: 87 17 19 24 64 7 45 28 36 23 | 54 16 64 83 48 49 61 31 95 66 92 15 85 41 3 82 63 67 55 57 9 68 18 32 43 +Card 92: 48 41 8 81 26 60 65 73 1 88 | 39 65 51 63 69 88 25 41 3 13 66 98 18 31 73 71 86 12 10 96 6 93 20 9 82 +Card 93: 79 2 21 93 97 59 62 43 83 73 | 26 9 28 84 47 46 44 2 83 5 13 95 7 4 36 35 11 10 72 82 90 65 73 98 87 +Card 94: 74 86 50 28 11 2 94 47 54 77 | 1 69 35 40 22 19 16 61 66 68 28 56 29 85 10 51 83 7 50 59 92 71 9 86 67 +Card 95: 96 12 56 26 91 15 64 61 82 40 | 52 14 50 70 93 83 54 42 84 19 43 80 82 25 73 3 44 45 81 5 87 41 8 16 78 +Card 96: 80 38 2 91 44 92 19 43 10 64 | 11 45 21 28 31 71 23 88 93 62 17 27 7 78 33 32 54 84 5 72 15 52 63 68 91 +Card 97: 32 54 71 38 5 89 28 47 75 42 | 98 34 57 25 9 80 37 71 61 62 94 6 65 13 92 84 11 2 72 90 17 67 4 1 46 +Card 98: 39 57 6 68 64 91 90 51 78 10 | 56 30 1 12 62 44 21 69 53 65 84 32 96 25 94 92 38 60 14 47 77 13 71 93 20 +Card 99: 6 89 48 77 90 57 21 72 87 73 | 39 48 45 73 87 79 14 25 57 72 66 89 31 30 77 50 74 6 34 36 21 23 90 10 49 +Card 100: 33 40 16 54 58 60 30 47 22 6 | 31 47 30 76 48 67 33 68 22 57 54 5 16 6 58 43 3 64 55 15 40 60 77 13 4 +Card 101: 19 52 71 42 34 73 35 89 62 46 | 9 73 26 49 72 14 19 46 99 32 4 88 84 10 87 17 27 89 30 98 40 7 75 78 90 +Card 102: 2 79 8 73 25 16 82 47 20 52 | 71 88 82 79 2 51 52 3 54 20 56 19 69 10 97 66 45 28 36 39 47 61 40 13 42 +Card 103: 77 28 11 32 36 23 39 88 76 51 | 26 36 99 55 25 19 31 42 18 66 39 11 59 46 4 74 23 71 77 16 84 58 28 32 53 +Card 104: 22 90 17 19 96 62 98 55 41 49 | 90 91 74 23 98 84 77 31 81 16 41 67 49 55 56 86 22 24 73 52 99 62 93 32 34 +Card 105: 41 91 2 4 18 81 52 93 89 87 | 3 47 6 77 60 24 97 26 70 19 37 36 51 82 48 21 31 99 73 88 59 15 46 35 32 +Card 106: 48 54 60 39 80 50 13 61 43 51 | 24 66 90 38 10 74 28 29 89 16 5 25 2 54 15 34 70 7 44 47 14 48 69 78 13 +Card 107: 10 20 81 62 85 75 4 49 58 1 | 32 89 48 79 90 96 15 59 36 14 49 55 38 34 30 11 62 28 53 72 17 77 41 80 66 +Card 108: 79 94 49 89 78 71 20 7 48 56 | 11 53 35 90 22 29 4 71 48 94 70 8 72 78 27 45 7 21 49 16 55 56 73 42 81 +Card 109: 32 73 98 31 4 46 57 11 40 88 | 36 40 89 47 18 87 98 48 45 84 21 1 80 33 67 32 64 28 61 3 51 10 86 97 62 +Card 110: 45 51 97 87 23 48 19 50 63 55 | 19 20 15 22 27 24 38 93 55 54 98 23 28 97 82 59 73 11 8 1 18 64 50 63 48 +Card 111: 38 1 49 22 26 96 3 88 24 70 | 79 58 20 74 70 80 55 68 35 77 88 3 24 40 87 53 50 47 38 54 82 26 49 7 2 +Card 112: 79 90 9 20 94 36 88 31 48 42 | 25 68 69 52 24 98 76 63 97 41 67 94 61 90 32 87 18 13 75 38 84 60 64 86 89 +Card 113: 7 32 6 52 76 72 39 24 46 79 | 67 19 31 94 50 26 66 11 45 80 86 68 88 22 65 3 99 12 90 79 38 14 4 73 54 +Card 114: 80 54 9 2 58 26 44 63 15 21 | 5 60 76 47 87 33 89 23 4 55 17 42 62 46 97 48 90 91 95 82 34 64 30 19 31 +Card 115: 51 34 88 42 20 98 75 79 39 48 | 76 94 13 58 12 66 50 72 2 89 68 21 96 25 10 45 30 7 99 15 46 59 90 9 53 +Card 116: 43 32 82 89 9 63 78 57 55 77 | 19 47 23 27 70 22 18 52 28 93 36 76 80 65 21 8 67 20 84 9 12 90 92 97 5 +Card 117: 71 50 45 29 32 75 10 96 82 43 | 96 46 83 47 10 11 16 39 36 3 89 9 67 5 72 53 2 27 19 7 8 24 61 37 4 +Card 118: 37 44 20 31 43 47 13 46 51 39 | 8 70 7 66 48 50 18 82 84 96 73 12 6 97 62 75 17 49 26 22 4 24 54 94 61 +Card 119: 36 75 46 25 47 69 95 8 94 81 | 48 91 62 11 99 10 9 7 26 15 1 79 54 45 49 27 53 78 64 65 33 31 59 17 5 +Card 120: 37 96 65 31 64 95 9 55 92 29 | 71 62 77 18 86 52 33 19 8 93 30 74 17 84 59 11 69 4 41 67 76 10 66 43 38 +Card 121: 39 99 21 22 11 13 61 72 49 29 | 98 79 29 42 27 73 12 40 96 13 88 45 14 18 4 36 99 80 11 22 49 23 67 21 72 +Card 122: 74 88 60 36 94 18 99 55 70 16 | 91 77 18 6 93 84 97 68 45 13 63 94 14 21 31 10 65 16 61 54 70 51 30 46 36 +Card 123: 67 91 97 35 11 3 8 69 81 15 | 14 45 66 15 8 29 69 24 68 67 10 59 35 18 17 53 11 3 91 12 43 72 97 81 89 +Card 124: 64 61 94 18 21 17 42 80 86 43 | 25 83 69 59 57 51 87 38 91 54 56 46 4 75 99 90 73 37 20 86 49 98 21 58 81 +Card 125: 51 79 20 71 43 42 46 36 77 7 | 55 46 22 24 76 86 34 95 73 36 98 63 49 43 54 28 58 10 26 62 79 97 39 60 32 +Card 126: 44 51 42 27 1 84 56 38 18 91 | 27 67 1 51 42 44 19 18 73 84 16 12 56 24 91 21 97 47 99 88 90 25 6 38 65 +Card 127: 85 92 63 8 17 51 43 61 52 78 | 37 81 65 43 88 97 17 79 46 51 39 23 44 78 95 2 28 49 32 85 63 84 61 8 92 +Card 128: 36 40 7 30 79 76 4 37 97 27 | 97 29 30 58 84 71 4 98 78 27 6 76 43 22 37 40 36 32 7 23 70 92 53 79 48 +Card 129: 98 81 33 49 20 93 32 82 39 48 | 39 65 7 78 52 87 79 53 33 60 63 81 71 93 55 92 12 30 82 32 38 27 90 95 84 +Card 130: 29 59 99 28 65 42 80 87 19 85 | 87 65 59 82 28 29 64 99 79 33 9 31 19 75 53 1 20 42 97 39 72 80 8 85 63 +Card 131: 88 58 37 3 66 87 67 60 84 5 | 84 86 40 82 37 16 34 55 54 70 80 65 22 77 31 48 78 11 68 18 12 52 69 17 32 +Card 132: 50 23 57 31 27 1 25 2 38 21 | 52 61 75 38 15 71 90 50 76 66 22 39 99 68 13 37 78 18 87 43 63 40 53 84 2 +Card 133: 3 59 60 91 93 68 65 45 86 20 | 13 32 74 8 90 68 58 94 67 38 93 97 75 2 71 20 31 37 59 30 39 44 28 34 64 +Card 134: 42 6 64 28 96 55 43 58 24 40 | 36 99 10 79 2 9 42 61 84 58 35 7 77 38 85 21 64 32 78 6 96 74 89 40 55 +Card 135: 38 15 49 59 73 40 13 60 41 25 | 46 80 2 60 42 59 51 57 56 27 40 62 76 37 84 16 89 18 25 73 5 22 45 70 81 +Card 136: 18 17 68 43 77 76 91 13 4 79 | 11 67 10 73 23 71 8 46 87 79 5 51 58 47 62 66 24 29 55 82 93 20 80 32 42 +Card 137: 60 51 99 79 67 59 66 40 25 87 | 44 53 76 5 77 75 65 90 9 41 55 22 60 23 71 30 1 86 88 15 54 66 59 13 68 +Card 138: 78 65 89 48 62 88 3 12 87 99 | 11 19 39 38 69 81 12 75 17 52 26 56 29 77 91 23 93 53 50 66 15 16 85 80 71 +Card 139: 34 12 48 47 25 98 32 37 21 54 | 13 62 79 43 90 72 47 11 20 82 38 29 69 10 66 35 1 84 7 52 27 42 46 91 58 +Card 140: 61 27 68 51 7 58 43 89 26 59 | 2 17 44 87 36 15 6 35 57 29 62 13 56 81 40 19 53 9 85 5 10 46 64 86 88 +Card 141: 40 28 9 81 37 43 18 77 83 23 | 13 59 2 31 52 30 47 6 42 89 70 69 86 92 19 93 58 49 36 8 29 99 60 63 67 +Card 142: 25 6 69 2 14 44 13 93 89 95 | 13 33 76 2 14 68 95 25 18 23 44 43 89 6 93 11 4 24 9 45 38 69 36 15 17 +Card 143: 3 87 14 59 7 5 69 35 20 17 | 5 16 21 69 38 50 64 97 72 30 53 77 73 13 33 55 79 70 4 10 95 59 3 41 42 +Card 144: 94 63 13 51 62 72 33 9 64 22 | 11 90 13 28 47 56 10 4 93 30 7 70 33 69 62 36 72 96 24 22 71 63 52 86 73 +Card 145: 76 1 41 88 97 18 10 11 52 20 | 18 11 41 1 71 52 12 94 74 44 58 70 69 73 79 97 20 45 59 76 78 88 4 10 64 +Card 146: 93 1 18 44 21 66 28 60 98 9 | 13 42 18 46 28 23 96 16 12 55 70 53 98 56 64 50 15 61 25 72 24 35 8 43 97 +Card 147: 67 27 79 43 7 74 11 15 64 75 | 17 57 90 7 41 36 93 29 62 14 77 5 38 33 68 70 32 13 23 6 25 30 55 45 9 +Card 148: 59 62 37 5 52 53 43 29 98 2 | 33 62 93 52 29 68 43 23 11 35 87 14 76 53 59 77 4 89 48 13 2 15 49 72 99 +Card 149: 38 74 24 93 50 21 19 65 95 5 | 93 82 57 95 67 11 9 55 5 74 46 2 96 19 21 92 56 14 38 33 77 58 32 43 37 +Card 150: 8 99 26 38 47 48 96 20 82 92 | 80 46 13 97 66 22 40 36 85 73 63 32 1 70 49 60 90 88 43 2 48 5 76 34 50 +Card 151: 41 69 32 12 5 72 3 29 2 79 | 28 41 11 64 69 71 3 87 45 40 5 15 50 95 90 53 19 55 26 98 82 12 6 77 14 +Card 152: 96 20 94 19 7 68 24 56 88 97 | 54 70 63 84 26 73 35 24 39 99 6 79 44 20 64 12 38 87 1 43 46 42 11 60 8 +Card 153: 60 9 99 62 93 22 16 11 34 28 | 57 43 38 98 82 89 20 58 71 40 79 53 86 1 69 4 27 19 36 85 83 33 59 90 96 +Card 154: 45 75 27 11 76 24 1 4 21 99 | 96 51 54 55 78 69 24 31 77 18 92 17 89 86 3 11 19 15 88 64 49 47 68 36 14 +Card 155: 97 56 99 89 82 6 17 15 52 29 | 23 26 85 70 13 47 72 1 51 64 90 44 53 45 42 77 88 32 74 25 58 68 37 21 79 +Card 156: 28 78 54 72 36 25 84 47 87 30 | 75 49 44 5 83 48 16 17 82 33 60 15 12 94 41 66 23 51 43 39 6 55 34 77 32 +Card 157: 44 74 36 93 15 96 25 12 19 40 | 84 44 54 96 80 48 59 79 78 55 42 27 11 69 76 19 93 2 35 83 77 43 40 85 99 +Card 158: 74 73 99 41 17 45 92 80 21 85 | 85 51 97 91 69 81 74 73 88 80 28 14 6 95 99 92 50 29 17 5 77 89 76 21 41 +Card 159: 7 2 83 33 51 95 96 18 75 52 | 52 96 21 27 47 98 51 83 29 77 75 53 2 64 7 33 57 82 50 14 95 34 79 44 18 +Card 160: 46 54 7 84 37 42 60 9 47 10 | 84 34 9 85 24 29 80 8 88 10 1 46 43 59 47 76 81 26 68 60 30 42 7 56 37 +Card 161: 18 88 61 65 90 29 1 20 22 25 | 25 84 28 2 45 61 39 71 35 32 16 18 65 1 29 23 49 5 22 83 78 24 20 88 90 +Card 162: 78 93 50 17 75 29 69 31 65 85 | 31 18 45 12 28 85 65 69 81 15 32 64 22 40 33 23 50 17 29 97 7 37 63 93 78 +Card 163: 66 47 30 99 34 45 60 82 72 43 | 73 98 29 36 35 54 49 61 17 1 52 95 81 56 31 27 15 96 24 20 32 33 65 55 82 +Card 164: 45 23 93 75 49 1 3 12 36 67 | 77 79 15 82 12 93 49 23 45 31 8 62 66 75 32 48 6 30 78 67 64 3 36 1 94 +Card 165: 75 62 57 30 69 52 35 84 17 32 | 9 17 46 33 69 29 35 34 84 55 57 83 56 70 10 7 30 75 27 99 52 62 32 47 77 +Card 166: 2 79 15 96 51 77 38 98 36 74 | 1 54 12 73 39 75 87 24 49 74 43 53 56 16 34 99 26 30 50 40 86 94 35 66 65 +Card 167: 41 77 3 17 78 56 92 33 87 52 | 98 37 44 68 43 53 76 13 74 59 49 71 66 90 54 82 46 5 95 16 15 62 96 58 25 +Card 168: 23 61 30 69 41 58 21 49 97 16 | 26 74 24 40 58 30 20 38 34 87 72 46 15 77 50 2 57 1 75 81 84 70 23 69 11 +Card 169: 9 17 32 25 1 65 22 46 8 99 | 84 19 66 27 28 15 34 90 42 2 43 87 78 6 81 46 24 13 63 3 48 20 86 70 73 +Card 170: 32 86 96 77 56 40 66 46 89 2 | 87 1 50 91 59 96 29 70 92 93 33 10 20 45 12 60 63 21 14 54 36 80 56 19 75 +Card 171: 70 36 51 80 5 24 40 87 72 30 | 30 52 71 81 84 97 22 95 72 53 46 55 44 51 24 19 98 63 73 56 6 80 90 59 77 +Card 172: 97 74 79 52 85 56 40 2 30 54 | 66 40 49 94 16 47 57 85 24 45 53 63 51 74 69 38 46 90 50 91 75 97 28 31 62 +Card 173: 72 49 45 75 23 20 90 50 48 94 | 38 34 28 33 91 65 87 19 37 30 9 18 64 14 53 70 49 39 90 79 88 51 12 57 48 +Card 174: 48 39 78 41 80 49 43 87 61 22 | 68 39 65 84 67 79 10 29 78 81 36 73 62 6 44 72 27 1 19 66 93 4 16 46 50 +Card 175: 96 91 10 82 43 98 30 65 3 83 | 49 77 40 78 70 23 52 34 16 2 64 72 69 61 15 33 79 32 39 74 7 92 24 46 36 +Card 176: 29 21 33 68 60 35 11 99 82 61 | 81 13 97 71 32 40 23 36 59 53 66 54 62 47 89 93 44 33 87 55 26 18 31 64 67 +Card 177: 97 45 62 55 76 34 66 54 14 68 | 94 42 28 30 32 58 33 48 46 80 7 15 92 98 95 81 90 17 71 24 26 16 39 13 93 +Card 178: 99 45 47 89 4 17 36 14 86 96 | 40 33 56 89 17 93 94 45 75 4 5 99 37 36 47 98 70 44 86 65 14 73 96 8 22 +Card 179: 30 63 6 25 4 85 41 17 83 11 | 44 92 25 71 95 61 50 11 27 4 6 30 9 85 63 67 87 13 17 83 18 53 41 10 52 +Card 180: 70 89 32 66 15 30 76 8 42 36 | 36 16 89 13 45 42 31 77 76 30 71 27 8 95 98 32 35 14 66 70 26 85 72 33 15 +Card 181: 74 81 12 28 22 21 14 54 3 5 | 32 59 69 67 15 35 42 12 34 11 5 71 79 2 73 14 55 87 56 65 28 17 30 99 9 +Card 182: 79 41 90 19 21 15 66 2 55 59 | 2 93 34 65 67 63 72 79 15 5 59 14 55 95 70 83 90 21 68 66 19 7 41 92 3 +Card 183: 6 8 44 39 74 78 10 2 61 59 | 6 61 75 44 62 92 77 29 8 39 78 20 73 18 68 4 60 66 74 59 49 3 2 5 10 +Card 184: 68 32 10 82 15 95 56 89 28 42 | 25 56 28 73 6 11 43 37 95 2 70 18 19 90 45 89 26 42 10 32 7 98 82 15 68 +Card 185: 66 74 17 3 71 21 51 28 14 48 | 80 34 77 37 45 74 84 20 44 14 31 66 51 48 17 86 12 43 71 56 35 13 4 93 27 +Card 186: 79 33 25 28 86 18 57 7 76 40 | 26 16 59 99 31 62 77 21 23 70 7 25 35 49 81 18 72 45 65 58 86 51 88 80 76 +Card 187: 1 2 73 43 13 64 69 21 3 46 | 65 37 53 92 82 13 12 28 3 58 71 46 64 1 56 19 98 21 73 43 60 2 57 29 69 +Card 188: 85 77 35 15 22 67 79 18 66 99 | 42 46 93 19 28 4 89 32 95 75 11 57 6 40 39 30 22 43 41 24 8 78 58 69 48 +Card 189: 13 48 6 61 55 38 75 96 76 42 | 42 32 61 81 55 13 26 41 9 77 70 68 56 35 58 89 20 75 6 72 91 38 90 93 96 +Card 190: 19 78 50 35 32 14 45 70 16 77 | 32 92 71 86 75 77 9 8 19 68 16 6 67 33 15 78 43 57 55 85 69 35 73 50 14 +Card 191: 71 62 7 72 70 4 89 95 94 59 | 36 94 40 6 71 59 45 28 90 12 89 95 16 85 83 88 4 48 72 62 76 7 13 70 11 +Card 192: 52 15 61 83 18 67 29 75 34 36 | 8 65 43 93 67 53 88 83 52 75 81 37 49 29 6 39 76 91 92 36 19 98 50 41 33 +Card 193: 78 94 7 48 25 16 91 38 13 5 | 22 77 76 84 17 40 41 36 93 56 50 35 64 59 23 95 89 49 61 30 42 85 37 92 44 +Card 194: 66 92 16 37 42 62 86 76 98 36 | 46 60 34 31 79 40 11 19 16 74 75 36 71 43 13 2 90 76 50 29 85 55 54 10 35 +Card 195: 66 23 45 62 30 95 38 5 97 39 | 96 65 37 89 95 73 69 75 25 45 51 22 62 7 33 13 94 78 34 35 36 56 55 70 24 +Card 196: 15 45 70 41 97 27 80 64 25 28 | 88 93 65 83 36 16 35 92 6 71 82 24 17 64 66 33 37 69 78 60 56 49 91 19 61 +Card 197: 46 35 2 60 75 99 6 42 47 21 | 91 93 70 8 46 6 35 50 55 72 71 64 47 82 39 94 25 67 41 60 86 83 87 90 7 +Card 198: 71 62 73 96 79 63 41 17 56 68 | 95 77 16 70 29 68 66 63 98 80 20 18 31 34 52 5 42 22 49 6 25 38 51 75 50 +Card 199: 70 84 46 98 44 45 16 36 29 99 | 78 21 92 77 32 91 22 90 76 74 42 55 51 69 94 64 26 65 41 97 10 34 15 35 9 +Card 200: 96 60 87 21 80 48 44 69 3 49 | 2 65 66 94 55 62 72 52 86 15 30 71 45 82 49 47 81 33 14 42 4 1 51 75 34 +Card 201: 55 53 33 19 1 70 17 61 2 72 | 62 6 30 86 45 71 46 33 15 90 73 37 18 12 68 87 89 49 8 60 52 22 51 25 74 +Card 202: 5 47 96 53 54 14 77 29 12 3 | 26 71 91 86 59 70 78 8 83 92 35 64 9 79 84 34 36 93 90 40 16 44 51 6 4 diff --git a/2023/inputs/day05.txt b/2023/inputs/day05.txt new file mode 100644 index 0000000..d1aabaa --- /dev/null +++ b/2023/inputs/day05.txt @@ -0,0 +1,197 @@ +seeds: 3127166940 109160474 3265086325 86449584 1581539098 205205726 3646327835 184743451 2671979893 17148151 305618297 40401857 2462071712 203075200 358806266 131147346 1802185716 538526744 635790399 705979250 + +seed-to-soil map: +931304316 1786548802 232453384 +3500539319 2322065235 6421609 +496396007 147739714 266329192 +3169724489 768672891 39526579 +3689153715 1361862036 346985 +1936948751 3328259881 542896984 +3209251068 3154345676 173914205 +1163757700 2814318523 24125066 +2484210664 1362209021 231487475 +3991904247 2133571422 188493813 +1187882766 4045525873 83717994 +861951350 3084992710 69352966 +2715698139 2838443589 43714032 +3830303258 4025104215 20421658 +768672891 1268583577 93278459 +4180398060 2019002186 114569236 +3689500700 1593696496 10659519 +1271600760 808199470 460384107 +166497091 526585653 102729094 +3700160219 3894961176 130143039 +2966889400 2882157621 202835089 +147739714 414068906 18757377 +3850724916 4133608796 141179331 +2759412171 2328486844 183672918 +2479845735 4129243867 4364929 +3480360150 4274788127 20179169 +402636637 432826283 93759370 +3383165273 2717123646 97194877 +3506960928 1604356015 182192787 +269226185 629314747 133410452 +2943085089 3871156865 23804311 +1731984867 2512159762 204963884 + +soil-to-fertilizer map: +3368312743 826425240 243745914 +1045038113 3682756471 174490549 +3931158487 1530223690 363808809 +1219528662 2460222182 131099318 +3020480207 1894032499 63879875 +121779694 248970341 36319877 +1993634034 2662348686 86667553 +3612058657 1323325837 196530127 +1531175223 2604354699 57993987 +158099571 121779694 127190647 +1867147432 3317666386 126486602 +2080301587 2768963716 548702670 +1402482267 1070171154 21180243 +2959841028 4051272297 60639179 +834756529 1966243663 128160296 +3911211010 2749016239 19947477 +962916825 3857247020 82121288 +2629004257 3444152988 238603483 +826425240 1957912374 8331289 +1350627980 3939368308 51854287 +1589169210 4214533702 80433594 +2867607740 2094403959 92233288 +1669602804 1125781209 197544628 +3084360082 1519855964 10367726 +1483712212 1091351397 34429812 +3094727808 2186637247 273584935 +1423662510 3991222595 60049702 +3808588784 4111911476 102622226 +1518142024 2591321500 13033199 + +fertilizer-to-water map: +206818393 1973789958 18543481 +2641351404 1992333439 41420268 +58400970 2574944960 107826712 +3710426911 4065366707 42793360 +4217161704 4274048011 20919285 +1926695368 705931711 328031436 +1449580741 1210970895 50549447 +907984567 1421828853 15115545 +769748018 1108192216 102778679 +451427938 35457870 38201654 +2254726804 2033892789 137829519 +923239194 1513967644 270588891 +3753220271 4108160067 165887944 +499804857 310274559 109862756 +3061525238 3535532059 426476055 +1193828085 73659524 196024324 +872526697 0 35457870 +1766386857 1261520342 160308511 +4057593930 3283950856 159567774 +1389852409 646203379 59728332 +3919108215 3962008114 103358593 +1577153434 1784556535 189233423 +4022466808 3443518630 35127122 +489629592 1098016951 10175265 +923100112 2033753707 139082 +2392556323 2390203683 158894869 +1500130188 1436944398 77023246 +2577297600 1033963147 64053804 +609667613 2171722308 160080405 +3488001293 3061525238 222425618 +2551451192 2549098552 25846408 +4238080989 3478645752 56886307 +166227682 269683848 40590711 +0 2331802713 58400970 +225361874 420137315 226066064 + +water-to-light map: +1833244152 0 764535859 +212138399 2132863085 224047237 +445686952 1600446740 163005122 +3322180377 2914685303 488586806 +2739726430 3712513349 582453947 +3946546331 3589340640 8839399 +1441711040 799272484 245821386 +1038755613 1763451862 6623730 +608692074 1587251997 13194743 +701103180 2356910322 39153476 +1687532426 1045093870 145711726 +2597780011 764535859 34736625 +740256656 1490869662 54307168 +0 1920724686 212138399 +2632516636 1545176830 9229765 +668257778 1554406595 32845402 +3955385730 2739726430 39179725 +4180633986 3598180039 114333310 +3810767183 2778906155 135779148 +1291061946 1770075592 150649094 +436185636 1481368346 9501316 +1045379343 2396063798 245682603 +794563824 1237176557 244191789 +621886817 1190805596 46370961 +3994565455 3403272109 186068531 + +light-to-temperature map: +432141642 1268486741 19474646 +3617581823 3276436954 357008111 +3505110084 3786131308 49942802 +0 1287961387 432141642 +3096011130 1808659179 409098954 +1347993824 2675880000 161612192 +3019335150 3199760974 76675980 +3555052886 3137232037 62528937 +2778092757 1720103029 88556150 +451616288 2217758133 458121867 +1509606016 0 1268486741 +909738155 3836074110 138515824 +1048253979 2837492192 299739845 +2866648907 3633445065 152686243 + +temperature-to-humidity map: +646729740 1519504972 559297346 +1894539176 2990410634 44298872 +232257988 972432123 414471752 +2277879451 278205785 108711195 +1775790220 132298732 118748956 +3371687162 2663455233 326955401 +1612056920 272509895 5695890 +1208383109 3703499740 147415518 +4070380190 4053129082 69974785 +4155541210 3305585510 139426086 +81956384 386916980 150301604 +3987543096 896459472 75972651 +2148980475 1386903875 128898976 +1617752810 3445011596 154599732 +4063515747 2078802318 6864443 +2392568787 3599611328 101532389 +2386590646 4123103867 5978141 +2494101176 2122546980 187027686 +2681128862 2085666761 36880219 +4140354975 2648268998 15186235 +1772352542 3051742077 3437678 +1355798627 3850915258 202213824 +3720104770 3055179755 250405755 +3032992830 2309574666 338694332 +1206027086 3701143717 2356023 +1938838048 537218584 44257139 +1558012451 81956384 50342348 +3970510525 3034709506 17032571 +1608354799 1515802851 3702121 +1983095187 4129082008 165885288 +3698642563 251047688 21462207 +2718009081 581475723 314983749 + +humidity-to-location map: +971626884 4275486551 19480745 +1218249913 2090555906 502249162 +2914848039 2902831882 224865747 +3341591733 2819947352 82884530 +991107629 2592805068 227142284 +3424476263 606585628 95279547 +4279176998 2064757318 10971709 +3139713786 4068790015 201877947 +606585628 701865175 365041256 +3534582689 3291885426 744594309 +1916997152 1066906431 997850887 +1752809355 3127697629 164187797 +1720499075 4036479735 32310280 +4290148707 4270667962 4818589 +3519755810 2075729027 14826879 diff --git a/2023/inputs/example01.txt b/2023/inputs/example01.txt new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/2023/inputs/example01.txt @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/2023/inputs/example02.txt b/2023/inputs/example02.txt new file mode 100644 index 0000000..1cd7d33 --- /dev/null +++ b/2023/inputs/example02.txt @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green \ No newline at end of file diff --git a/2023/inputs/example03.txt b/2023/inputs/example03.txt new file mode 100644 index 0000000..624ea4f --- /dev/null +++ b/2023/inputs/example03.txt @@ -0,0 +1,10 @@ +467..114.. +...*...... +..35..633. +......#... +617*...... +.....+.58. +..592..... +......755. +...$.*.... +.664.598.. \ No newline at end of file diff --git a/2023/inputs/example04.txt b/2023/inputs/example04.txt new file mode 100644 index 0000000..9bdb874 --- /dev/null +++ b/2023/inputs/example04.txt @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 diff --git a/2023/inputs/example05.txt b/2023/inputs/example05.txt new file mode 100644 index 0000000..f756727 --- /dev/null +++ b/2023/inputs/example05.txt @@ -0,0 +1,33 @@ +seeds: 79 14 55 13 + +seed-to-soil map: +50 98 2 +52 50 48 + +soil-to-fertilizer map: +0 15 37 +37 52 2 +39 0 15 + +fertilizer-to-water map: +49 53 8 +0 11 42 +42 0 7 +57 7 4 + +water-to-light map: +88 18 7 +18 25 70 + +light-to-temperature map: +45 77 23 +81 45 19 +68 64 13 + +temperature-to-humidity map: +0 69 1 +1 0 69 + +humidity-to-location map: +60 56 37 +56 93 4