aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aoc/2021/day02/input.txt994
-rw-r--r--aoc/2021/day03/input.txt1012
-rw-r--r--aoc/2021/day04/input.txt620
3 files changed, 2595 insertions, 31 deletions
diff --git a/aoc/2021/day02/input.txt b/aoc/2021/day02/input.txt
index b7172ac..2efbeb6 100644
--- a/aoc/2021/day02/input.txt
+++ b/aoc/2021/day02/input.txt
@@ -1,6 +1,1000 @@
+forward 9
+down 9
+down 6
+up 2
+down 5
+forward 3
+forward 6
+forward 8
+down 8
+up 4
+down 5
+down 4
+up 6
+down 7
+forward 5
+forward 5
+down 9
+down 5
+up 4
+forward 1
+forward 7
+down 8
+up 2
+down 1
+down 3
+up 7
+up 5
+down 8
+down 6
+forward 9
+up 8
+down 4
+forward 9
+forward 4
+forward 1
+up 9
+forward 5
+forward 1
+down 2
+down 7
+forward 5
+up 8
+forward 1
+down 9
+down 3
+forward 6
+up 6
+down 4
+forward 6
+down 3
+forward 5
+forward 1
+down 3
+forward 3
+down 8
+down 2
+forward 8
+forward 1
+up 4
+forward 4
+down 1
+down 5
+forward 2
+forward 9
+forward 5
+down 2
+up 9
+forward 2
+down 2
+down 2
+down 9
+up 8
+down 3
+forward 8
+down 4
+up 3
+down 1
+forward 7
+down 7
+forward 9
+down 2
+up 9
+up 3
+down 2
+up 2
+forward 8
+down 3
+forward 2
+forward 6
+down 5
+up 9
+forward 6
+forward 7
+down 3
+forward 1
+down 2
+forward 8
+up 5
+down 6
+forward 1
+down 8
+down 5
+forward 4
+down 5
+forward 3
+forward 5
+up 3
+down 4
+down 8
+up 7
+down 7
+forward 3
+down 2
+forward 3
+up 2
+down 1
+up 2
+forward 4
+forward 2
+down 1
+up 9
+forward 5
+forward 7
+down 6
+down 3
+down 5
+down 4
+up 4
+forward 8
+down 6
+forward 1
+forward 6
+down 8
+down 2
+down 3
+up 8
+forward 9
+down 5
+down 6
+forward 7
+down 2
+forward 6
+up 3
+up 6
+forward 2
+up 8
+up 2
+up 4
+forward 3
+forward 4
+down 7
+up 1
+forward 5
+forward 1
+forward 9
+forward 8
+up 6
+forward 4
+forward 2
+up 9
+forward 8
+down 2
+forward 4
+forward 4
+forward 6
+down 3
+forward 8
+forward 7
+forward 6
+forward 3
+down 5
+down 3
+forward 4
+forward 7
+forward 4
+forward 3
+forward 1
+forward 1
+up 1
+down 4
+up 5
+up 4
+up 8
+forward 7
+forward 4
+forward 3
+up 6
+up 4
+down 4
+up 4
+down 6
+forward 1
+forward 5
+up 3
+forward 5
+up 9
+down 9
+forward 1
+down 3
+forward 7
+up 2
+up 1
+down 8
+forward 9
+forward 3
+forward 2
+forward 6
+down 2
+forward 4
+up 9
+forward 6
+forward 8
+down 5
+down 6
+forward 7
+forward 5
+forward 6
+forward 9
+forward 5
+up 3
+forward 2
+forward 2
+forward 8
+down 5
+forward 9
+forward 7
+forward 5
+up 2
+up 7
+forward 7
+forward 9
+down 9
+up 5
+up 5
+up 1
+forward 8
+forward 3
+forward 2
+forward 4
+down 7
+down 7
+forward 7
+down 2
+forward 4
+down 6
+down 8
+down 5
+down 9
+forward 1
+forward 4
+forward 1
+forward 1
+up 5
+down 5
+up 7
+up 7
+down 6
+down 5
+forward 9
+up 7
+down 2
+down 9
+down 9
+forward 3
+up 9
+down 7
+down 2
+up 6
+down 9
+down 6
+up 3
+up 6
+forward 4
+forward 6
+down 2
+up 3
+down 3
+forward 8
+up 1
+forward 8
+forward 5
+forward 4
+forward 9
+forward 8
+up 1
+forward 2
+down 8
+up 9
+forward 3
+forward 9
+down 3
+down 8
+down 5
+up 5
+up 3
+down 5
+down 4
+down 2
+forward 1
+forward 8
+down 3
+down 1
+down 5
+down 1
+up 1
+down 4
+forward 6
+down 5
+down 7
+forward 4
+down 2
+down 2
+up 1
+forward 9
+down 2
+forward 7
+up 4
+down 8
+down 5
+up 2
+down 7
+forward 7
+up 4
+down 8
+forward 9
+up 3
+down 9
+forward 4
+forward 5
+up 6
+forward 5
+down 6
+down 3
+down 1
+down 6
+forward 7
+forward 3
+forward 4
+up 8
+forward 7
+down 3
+up 2
+up 3
+up 5
+forward 4
+forward 9
+forward 1
+down 2
+forward 4
+forward 1
+forward 6
+down 6
+forward 8
+down 2
+forward 7
+down 5
+forward 6
+down 4
+down 8
+down 6
+forward 9
+forward 2
+forward 4
+forward 9
+down 1
+down 9
+forward 2
+down 3
+forward 2
+down 4
+down 6
+up 5
+forward 9
+forward 1
+down 1
+forward 8
+forward 7
+forward 2
+forward 4
+forward 3
+up 8
+down 4
+forward 5
+up 5
+forward 4
+up 5
+forward 7
+up 7
+forward 5
+down 3
+up 9
+up 2
+forward 9
+forward 8
+forward 7
+down 8
+forward 8
+down 2
+forward 7
+forward 4
+down 7
+up 4
+forward 2
+forward 1
+up 5
+forward 5
+down 5
+down 1
+down 7
+up 6
+down 5
+down 6
+forward 2
+forward 2
+forward 8
+down 9
+down 4
+down 3
+forward 7
+forward 6
+forward 5
+up 9
+forward 8
+forward 9
+forward 4
+down 9
+down 6
+down 2
+down 7
+up 3
+forward 3
+forward 5
+up 6
+down 7
+down 3
+forward 3
+down 5
+down 2
+down 4
+up 4
+down 5
+forward 3
+forward 1
+forward 7
+down 7
+forward 8
+up 7
+forward 3
+forward 8
+down 9
+down 1
+forward 4
+forward 4
+forward 5
+forward 6
+down 5
+down 6
+forward 6
+down 5
+down 7
+forward 2
+down 1
+down 8
+down 3
+down 4
+forward 9
+forward 4
+down 4
+up 4
+down 3
+forward 5
+down 4
+forward 3
+forward 9
+up 7
+down 5
+down 1
+forward 8
+down 2
+forward 9
+forward 6
+forward 3
+down 7
+forward 2
forward 5
+down 6
+forward 1
+forward 7
+up 1
+forward 3
+forward 7
+forward 3
+forward 5
+down 5
+forward 6
+forward 9
+up 4
+forward 6
+forward 3
+down 9
+up 4
+up 6
down 5
+down 8
+down 2
+down 9
+forward 8
+up 8
+forward 3
forward 8
+up 8
+down 5
+down 9
+down 1
+down 3
+forward 3
+forward 9
+up 9
+down 5
+down 6
+down 1
+forward 9
up 3
+forward 3
+forward 9
+down 7
+down 4
+down 5
+up 5
+forward 2
+down 5
+up 5
+up 4
+up 5
+forward 1
+down 2
+forward 7
+down 9
+forward 8
+forward 7
+forward 5
+down 3
+forward 5
+forward 7
+forward 1
+up 5
+forward 3
+forward 1
+down 1
+up 1
+down 7
+up 4
+forward 8
+up 9
+down 9
+down 9
+forward 8
+forward 3
+forward 3
+up 4
+down 3
+forward 4
+forward 6
+forward 7
+down 2
+forward 5
+down 3
+down 9
+down 4
+down 4
+forward 3
+down 3
+down 6
+up 5
+up 4
+down 6
+up 9
+down 9
+up 2
+up 1
+down 3
+forward 6
+up 6
+forward 1
+down 9
+down 6
down 8
+down 9
+down 6
+forward 4
+up 6
+down 2
+forward 9
+forward 2
+down 4
+up 3
+forward 6
+down 2
+down 7
+down 1
+up 6
+down 5
+forward 1
+forward 7
+up 9
+forward 2
+up 8
+down 4
+forward 8
+up 2
+up 2
+down 1
+forward 6
+down 3
+forward 7
+forward 2
+down 5
+down 6
+up 8
+forward 4
+up 2
+forward 7
+forward 4
+forward 2
+down 1
+forward 7
+down 1
+up 1
+down 9
+forward 5
+forward 3
+down 6
+up 5
+up 9
+down 1
forward 2
+forward 8
+down 5
+down 4
+forward 6
+forward 1
+forward 4
+forward 2
+forward 4
+up 7
+forward 5
+forward 2
+down 2
+forward 1
+forward 4
+down 4
+forward 7
+down 6
+forward 9
+forward 9
+forward 3
+up 5
+up 5
+down 6
+forward 7
+forward 8
+down 5
+forward 6
+forward 5
+forward 1
+forward 7
+forward 6
+up 2
+up 4
+forward 6
+down 4
+down 9
+forward 9
+down 4
+up 2
+down 5
+forward 9
+down 7
+forward 9
+up 9
+forward 9
+up 7
+up 2
+up 6
+forward 1
+up 9
+down 4
+down 8
+forward 8
+forward 7
+up 5
+forward 4
+down 3
+down 5
+up 9
+up 5
+forward 1
+down 3
+down 9
+up 2
+forward 5
+down 8
+down 3
+forward 5
+up 8
+forward 1
+forward 8
+forward 6
+down 2
+down 8
+down 8
+down 8
+forward 8
+forward 9
+up 2
+up 9
+up 8
+forward 2
+down 4
+up 7
+down 3
+forward 1
+forward 7
+down 8
+down 2
+forward 6
+forward 2
+down 6
+down 6
+up 9
+forward 9
+down 7
+forward 7
+down 4
+up 2
+up 7
+down 8
+forward 6
+up 2
+forward 4
+forward 9
+down 7
+forward 4
+up 4
+forward 8
+down 4
+forward 6
+forward 8
+down 2
+down 6
+up 4
+forward 5
+forward 1
+down 2
+up 6
+down 6
+down 3
+up 2
+up 4
+forward 1
+up 3
+up 5
+down 4
+down 1
+down 7
+down 7
+down 4
+forward 7
+down 9
+down 4
+down 2
+down 7
+forward 7
+forward 8
+forward 1
+down 8
+down 3
+down 5
+down 8
+forward 7
+forward 9
+forward 3
+up 8
+forward 5
+up 5
+up 2
+forward 4
+forward 6
+down 8
+down 1
+up 6
+forward 5
+forward 5
+down 9
+forward 3
+up 1
+down 1
+forward 5
+forward 5
+up 5
+down 4
+up 6
+forward 8
+forward 6
+up 5
+forward 2
+up 3
+forward 9
+forward 5
+down 9
+forward 3
+forward 1
+forward 4
+up 5
+forward 3
+forward 3
+up 9
+down 2
+down 3
+down 1
+forward 8
+down 4
+forward 8
+forward 8
+down 8
+forward 9
+forward 8
+forward 7
+down 6
+forward 5
+down 6
+up 8
+forward 6
+down 8
+forward 8
+down 6
+up 2
+forward 5
+forward 1
+up 2
+forward 4
+down 5
+up 8
+up 3
+forward 8
+down 3
+forward 4
+up 5
+forward 2
+down 3
+down 2
+down 7
+forward 5
+down 5
+forward 2
+up 1
+down 3
+down 9
+up 4
+up 3
+down 8
+up 1
+down 5
+down 5
+forward 7
+up 2
+down 3
+up 3
+forward 1
+forward 4
+forward 3
+up 5
+down 5
+up 3
+down 2
+forward 6
+down 6
+up 3
+forward 9
+down 9
+up 4
+down 4
+down 6
+up 9
+forward 3
+forward 2
+up 2
+up 5
+forward 2
+up 5
+forward 7
+down 8
+down 7
+up 8
+down 1
+up 1
+up 9
+forward 7
+forward 5
+down 9
+forward 8
+down 8
+forward 4
+forward 1
+forward 2
+down 8
+forward 3
+forward 6
+down 9
+forward 2
+forward 9
+down 4
+down 1
+down 1
+down 8
+down 1
+down 4
+up 3
+down 7
+down 5
+forward 1
+forward 5
+forward 8
+forward 4
+down 7
+down 6
+forward 2
+down 3
+down 3
+down 3
+forward 5
+forward 7
+down 4
+forward 6
+forward 9
+down 1
+forward 7
+down 5
+up 4
+up 5
+down 3
+down 1
+up 5
+forward 4
+down 9
+down 7
+up 1
+up 9
+up 4
+forward 7
+down 5
+down 8
+forward 5
+forward 9
+down 2
+down 7
+forward 8
+forward 7
+down 6
+down 8
+forward 3
+forward 6
+down 5
+forward 7
+up 7
+down 8
+forward 9
+down 3
+up 3
+forward 4
+up 4
+forward 3
+forward 4
+forward 9
+forward 5
+down 3
+down 6
+forward 9
+forward 4
+forward 1
+forward 7
+forward 8
+forward 2
+forward 7
+up 9
+down 8
+forward 4
+forward 4
+down 5
+forward 2
+forward 5
+down 6
+forward 4
+forward 2
+forward 7
+down 6
+down 2
+down 5
+down 1
+forward 5
diff --git a/aoc/2021/day03/input.txt b/aoc/2021/day03/input.txt
index a6366a8..6a7de1a 100644
--- a/aoc/2021/day03/input.txt
+++ b/aoc/2021/day03/input.txt
@@ -1,12 +1,1000 @@
-00100
-11110
-10110
-10111
-10101
-01111
-00111
-11100
-10000
-11001
-00010
-01010
+101011111001
+100100110111
+101010101011
+010100010000
+001101101101
+110001101010
+001001011001
+101111101111
+110001001000
+111111000000
+111100110001
+101100010100
+000010000011
+000110000011
+101010100101
+000111001010
+100101101110
+111111010101
+110010001100
+000011001101
+001001111110
+100101001100
+000011100100
+000100110011
+000101101000
+101010011011
+101011110000
+010010110011
+110110101110
+001110000110
+001110111101
+110111100101
+000010101010
+101010101010
+011011001101
+110110000111
+011010011000
+000111000101
+100000101011
+010010101100
+110000101110
+000010001001
+101010001100
+101111110101
+101111011110
+110011100001
+011011100100
+111100011010
+110110101001
+101011100010
+111000110110
+111011100101
+111000001111
+101110110011
+111101000000
+101111100110
+011111101101
+100111110111
+000111011011
+001001001111
+100010110000
+001101010000
+100101101001
+100001010000
+110101110001
+100111111111
+101101000101
+001110100110
+101010110000
+101111010010
+101011100101
+001110010100
+011110110100
+100011000000
+001000000100
+010000010001
+101101111011
+111010001011
+101010100000
+101001000000
+001000010101
+010011000111
+101010111100
+111101000101
+111111100010
+100010011101
+101001111101
+010111001111
+111111110110
+100111101010
+010101000101
+100101010010
+010110010001
+011101000111
+011110011010
+100000111100
+011111111000
+001111010001
+110110100111
+111000001011
+110010010011
+101010110010
+110000110111
+101111010000
+110111010000
+110011100011
+010000100111
+001010110001
+011101011010
+110111010010
+011001001101
+101101001111
+011101110100
+001101101110
+011011101101
+111001010001
+001100101000
+010011100000
+011000010100
+111000111111
+001001100001
+010011001010
+001110101100
+010010111010
+000111111011
+010010000110
+110001100100
+001110110111
+000010001111
+100011100001
+100001101110
+100001110111
+010110100000
+100101101111
+001100000111
+101100111001
+100100001100
+100000101100
+010101000110
+101110001000
+101110000110
+101110011100
+001001010001
+110111101011
+101001000001
+111100111110
+001100010100
+010001111111
+110011000011
+100110011101
+011010100100
+011111000011
+000110001000
+010010111111
+010011111011
+001000111110
+000111101011
+100010111100
+010110001111
+011011000000
+010111000011
+010001011111
+111000101100
+010110110000
+001100111011
+011110100101
+100011100011
+001000101000
+101011001011
+101111001111
+111000100101
+111101100111
+111010101000
+001110000111
+010101011110
+001111010100
+101011011101
+000111101010
+000011001011
+111000010001
+011001011011
+011011011001
+011110111000
+000010001100
+011110010000
+010000101001
+101011011111
+100111001100
+101000011100
+111000000100
+011100110000
+011100101010
+010001110011
+100100100010
+011110010010
+011000100111
+110101000101
+111011000001
+011000010111
+010011110011
+011001000001
+000100101110
+100111110001
+010010011010
+111101011001
+100110101111
+100010001100
+010010000111
+100011100100
+111001111011
+110000010111
+101001010001
+011111001010
+110111111100
+000101111101
+101011000111
+000100010000
+111100001111
+100000110010
+110001110100
+000001001100
+000101000001
+100111101011
+011000110110
+101111000000
+010100101100
+101111100011
+100111001101
+100000010010
+100101001111
+011110100010
+110110100110
+100000100001
+110100001110
+010011001111
+011010010000
+000000010101
+111111011100
+000011100000
+011110111101
+110000011100
+011011011000
+010100111010
+010010100101
+001110100011
+000110000100
+100111000101
+000010001000
+110110110000
+010011000100
+011001100010
+110000011110
+000110100111
+010111111011
+011100000011
+100011101110
+001100011010
+000010100100
+000011110000
+000000101000
+101001101001
+101111010101
+101100101101
+110000000000
+111011001110
+001100101110
+100101111000
+010001000111
+111100111010
+000100011101
+010001000011
+100000101001
+111111101101
+000000011101
+001101110110
+001100000101
+010110011110
+001011100100
+110001100101
+001011110011
+011101111000
+001001100110
+000001011000
+001011010000
+110001010100
+000100011011
+010101101010
+101000101010
+101111011000
+110001010111
+111100110011
+101011101000
+000100010110
+111010000110
+000100000001
+101011110101
+010010010011
+100101011001
+100101001010
+110100110101
+010011100111
+100110010101
+111010000011
+011011110110
+111000101110
+001011101100
+010110100010
+011001101011
+011000101101
+011011111110
+011011111001
+100001001101
+101110011011
+001111011100
+111110010011
+000010101011
+001111101010
+100001101000
+111100100000
+010011100100
+011101101100
+000001101011
+001100001110
+000011000111
+100110001000
+101101101011
+001011011110
+101010111101
+101110100110
+011111000100
+111101111000
+001011110111
+010010011001
+111110110001
+100101000100
+011011010101
+100010010000
+100010101000
+110010000100
+000001001111
+101110011010
+010000111111
+111101010001
+100000000000
+011101100110
+001110101101
+001001110010
+110011101001
+101101011001
+000000110101
+011101100011
+010100000011
+101011110010
+100101000010
+100110001100
+000111111010
+111100011001
+111110101001
+010000111000
+100110000011
+100011001110
+000100010010
+001101100100
+000000001100
+011101001001
+100001001000
+101100111000
+110011011111
+111110101110
+101101001010
+111000011001
+111110011001
+110111010100
+011001111011
+101101111000
+010010010100
+100000110110
+011110010100
+010010101010
+001111100100
+100000011101
+110100010010
+101101100000
+111001111010
+010001100110
+011000110101
+011110010011
+011111100000
+001000101100
+000100010111
+011000101010
+011000010110
+010001101011
+110101010000
+000100100100
+011011001100
+010100011101
+100111110110
+111010000001
+001001111111
+010100001111
+011111101011
+011000011011
+111010000100
+110001001111
+111011011010
+001110001110
+100100101001
+101101101001
+001100001001
+001000001110
+101111000010
+000110001110
+101111110010
+110011001011
+000000010100
+110100110001
+111000011111
+100000001110
+100100011011
+101100100011
+011101000010
+001100100101
+111110101101
+011100001001
+101100000110
+101011010011
+000101101100
+001011101001
+110000000101
+011111011110
+000001100110
+100110011011
+111010100100
+011001101001
+010111110011
+110111000000
+011100101011
+010110100111
+110011001001
+000010111011
+101110010110
+000001011001
+100101000111
+110110111011
+000101110001
+100000111101
+011110001011
+000101010101
+101011110011
+000110011001
+101010000001
+100001011110
+010000000111
+000011100110
+100111100010
+110101000111
+001010101110
+111000100000
+001100101101
+000111010111
+101110000000
+011111000010
+111000001110
+001100110101
+101001000100
+010111011101
+000100000100
+111111000111
+111011001111
+101000011110
+110011101101
+111101000011
+101101111001
+010010010101
+110000100010
+000100100111
+000110111111
+000011001000
+011011100001
+101100111101
+011111000001
+000110101100
+010010111001
+111100101110
+100111010100
+011111000000
+001011001000
+101111000011
+000100001010
+110100010000
+110001000011
+010010101111
+001010001010
+010001110001
+011000001101
+101001010111
+000000011100
+010011111000
+110010011011
+001110100111
+011101000011
+111110011101
+100111000000
+101011101110
+111000010111
+101001000011
+011110011001
+000100010001
+101110000100
+111101101101
+000100100110
+010011010001
+000101100110
+010111110001
+001110111100
+100000111111
+101100000011
+110011000100
+100000001011
+010101100000
+101010000101
+010110101101
+010011100001
+001101001111
+101100100111
+100000001101
+100100101100
+101111010111
+010101001100
+011001111111
+010111110000
+010100110101
+101111010001
+111101111100
+011010011011
+111100110100
+111110001010
+011110011111
+000110001100
+011001010111
+000010010111
+011100101111
+111110111000
+110010110010
+000101111010
+001010010100
+100110110001
+101101010001
+100001111011
+010101001001
+000001000010
+100101100011
+010100101010
+001001001100
+101000110110
+111110001000
+100101110010
+001000111011
+100111010111
+000000110000
+110101111000
+011000101110
+110101001111
+101000010010
+101011000010
+100110000111
+110101011001
+110010010100
+010000001111
+110011011001
+111010110100
+010000101010
+101100111011
+000000011010
+110110001000
+001011011011
+101110100001
+010100011011
+111101001101
+010000011001
+110010100100
+101101011010
+110000100001
+010101111000
+101000111010
+011011010100
+011110011101
+010000100100
+001111101001
+010011110000
+111000100111
+010101010101
+000001001010
+010001001100
+111011111100
+001110000011
+110101101000
+111010011110
+110011010011
+001010101101
+001111110001
+110001011110
+011110010001
+010010000100
+111010111001
+000100111111
+000001010101
+001010110111
+000110010011
+000010011111
+011110100001
+011111010110
+001110010110
+001001000011
+101111011101
+011100110111
+010000001101
+010010100111
+010000110011
+011110110111
+010000110110
+011101011011
+000010100001
+001100011111
+011110110000
+111011011011
+101011101111
+010001000101
+010100001000
+010100101110
+001000000101
+001001011011
+111001000101
+110101110100
+111111010111
+101010100111
+110000011010
+000100100000
+011101000001
+000011000001
+010101010001
+010010011100
+010001110101
+010110110111
+010011110010
+011011100110
+000110100011
+100010100011
+101111110011
+001011100101
+011101110000
+110001110000
+111010010000
+111111000011
+010010001100
+010111101010
+010010101000
+111001010111
+010110110011
+001101110010
+011111001111
+010100110100
+010010100100
+101011101100
+000111101001
+000001011010
+101010111000
+100011111111
+100100011111
+111000010010
+011011100010
+000111010010
+101010101111
+010000100101
+100110110101
+011011100011
+011011110011
+111011000100
+100010001010
+110000010000
+100101011111
+101100001100
+111110101111
+100111000100
+011101001110
+100011011101
+111101011010
+110101111001
+001000110101
+111110101100
+001010010111
+100110000000
+110101010100
+110110001101
+011110101101
+100110101110
+000000000010
+011010111001
+000001101111
+000100000101
+110000100011
+001010000101
+100111011010
+000001101001
+001011000001
+000111100110
+111111110011
+000101000000
+111000110000
+000010000111
+000101010001
+000011110001
+101100110100
+100001111110
+001111111111
+100011000110
+011100011001
+101011110100
+001010001111
+100010100001
+001111100110
+010110110010
+110010110101
+011000110011
+000101011110
+101000100100
+010110010110
+001000000110
+110000100100
+011101101011
+100100000111
+000111010101
+110111000100
+001010110000
+101001110001
+001001101011
+101000100101
+111111000010
+000010110101
+110000000110
+000100110000
+111111011011
+101101100101
+011001010010
+111111101111
+000111101101
+100110110011
+110000001000
+111000001101
+110011010010
+110110111110
+000001011111
+001100001010
+111101011100
+010010100010
+110100011011
+110001101011
+010111111010
+011111100100
+001010010110
+001010111111
+111110111110
+011010000110
+111111111001
+011011011110
+001010011101
+001110010111
+001001111100
+110010111000
+000111000100
+001100001000
+110110110100
+101001010000
+000101000101
+010101101100
+101010110110
+111101011000
+101010011100
+110010110011
+111110001110
+100100101110
+001010000000
+001000110010
+101000111111
+111110111101
+000110010110
+101100100110
+100010011001
+100110100010
+111101100110
+111100111111
+010111011011
+111100011111
+001010010011
+111101010010
+110111001010
+010110000000
+011111011001
+101011100011
+011100110011
+111100011110
+101001001001
+100101100110
+000100110010
+010011101110
+000011110111
+000000011111
+110011011100
+111110100100
+101110101111
+001101011000
+101101110001
+101011000100
+111001101100
+110111111001
+011010101001
+000000000000
+111100000101
+110010111001
+000100001110
+110101111100
+110010011111
+001001110111
+111111111111
+000110011100
+110101111010
+011010111011
+111000000101
+011110100111
+001010101111
+001011011001
+101010001011
+100001000000
+111110111010
+001110111110
+000000110100
+111110111001
+111000010101
+110011110111
+110111001101
+111011010010
+110100000110
+100111111100
+010001100010
+111100010000
+100111011101
+101001000111
+111110110011
+010101010100
+101000110111
+000111101100
+100001011001
+010000011111
+000100101011
+011011011010
+001111000010
+111001101011
+100011010111
+110111100111
+100001010110
+100001110101
+100110110111
+011111111011
+111111101110
+111111001000
+101010000110
+110010010110
+100110100111
+011101011100
+011010011101
+101111101101
+110111010110
+110000000100
+110000110100
+001100000110
+001011001101
+001010011111
+011001110000
+100111100100
+001111000000
+110100011001
+110000110011
+000000101101
+111101111111
+111111010010
+011101101110
+111101101100
+100000110000
+110101010001
+101001110100
+010010110110
+111011000111
+101100000100
+010011010101
+111101000001
+101001111000
+101110000011
+001011011101
+111010000010
+001001110100
+111111001001
+001001010000
+001110000001
+111100000000
+010101110100
+000101011011
+001100011001
+001110001100
+001110100010
+000000100111
+000100111000
+110100101100
+110100111010
+111001101101
+111100101011
+011101100000
+100000100011
+010111110010
+010011001000
+101001100110
+100110001111
+000110110101
+111001110110
+000101010110
+011000011010
+010100110110
+110100111111
+111000110011
+001011111000
+001000000000
+111111010100
+111111100110
+000000001111
+110001000001
+010000101000
+101111111010
+100100001101
+111011110100
+110101110011
+010111111110
+001000101111
+100110101100
+110010010010
+010010001000
+011111101100
+111100100011
+110111101000
+100000111001
+001011100011
+001010111100
+000100001100
+010111000110
+001111000101
+001110000010
+110100101000
+001110000101
+101000110000
+001001011101
+101001011001
+011110100011
+101010010110
+101000001101
+110111111111
+010010001101
+011100010110
+000100100001
+001111111101
+001001111000
+001100101111
+111010111100
+110100010111
+000000010011
+100110110000
+101100101111
+100011010100
+001001101110
+110001101000
+110101101110
+010011110101
+010000110001
+100011111000
+111110000010
+100111100000
+100001100110
+110111000110
+000101100011
+010110001100
+100000100010
+001011000000
+110101000010
+101110101001
+011010100110
+111111110000
+001010110010
+010000001011
+100000010011
+010111010111
+101111100010
+010100010011
diff --git a/aoc/2021/day04/input.txt b/aoc/2021/day04/input.txt
index 669a51d..5cfac3d 100644
--- a/aoc/2021/day04/input.txt
+++ b/aoc/2021/day04/input.txt
@@ -1,19 +1,601 @@
-7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1
-
-22 13 17 11 0
- 8 2 23 4 24
-21 9 14 16 7
- 6 10 3 18 5
- 1 12 20 15 19
-
- 3 15 0 2 22
- 9 18 13 17 5
-19 8 7 25 23
-20 11 10 24 4
-14 21 16 12 6
-
-14 21 17 24 4
-10 16 15 9 19
-18 8 23 26 20
-22 11 13 6 5
- 2 0 12 3 7
+59,91,13,82,8,32,74,96,55,51,19,47,46,44,5,21,95,71,48,60,68,81,80,14,23,28,26,78,12,22,49,1,83,88,39,53,84,37,93,24,42,7,56,20,92,90,25,36,34,52,27,50,85,75,89,63,33,4,66,17,98,57,3,9,54,0,94,29,79,61,45,86,16,30,77,76,6,38,70,62,72,43,69,35,18,97,73,41,40,64,67,31,58,11,15,87,65,2,10,99
+
+42 47 77 49 67
+64 82 32 94 78
+96 62 45 11 43
+55 92 81 66 88
+12 95 19 24 71
+
+96 40 25 11 89
+84 33 10 55 16
+22 90 54 42 86
+73 13 70 32 56
+18 78 41 81 50
+
+58 48 24 3 40
+38 61 95 39 36
+45 21 2 90 57
+42 41 22 83 67
+73 77 59 0 85
+
+ 2 11 17 28 22
+93 1 27 85 13
+37 72 54 94 86
+25 40 57 60 71
+38 46 83 30 92
+
+14 88 34 10 87
+31 47 46 72 28
+26 1 50 81 76
+98 2 17 59 39
+80 99 84 62 44
+
+22 80 28 31 27
+21 92 5 64 65
+73 85 35 66 76
+11 29 75 81 37
+90 69 53 97 67
+
+84 89 93 1 37
+99 13 17 52 81
+31 0 28 12 91
+92 20 41 36 35
+40 26 23 51 64
+
+72 50 20 87 82
+28 88 15 9 24
+47 54 3 84 76
+14 34 33 65 78
+53 60 23 21 77
+
+76 17 7 38 25
+72 82 96 83 2
+94 86 56 43 97
+26 93 59 48 55
+ 3 85 29 19 4
+
+58 95 50 21 47
+85 33 76 97 62
+39 70 42 25 71
+53 79 87 41 91
+45 27 3 92 88
+
+ 9 38 32 18 56
+40 5 62 70 41
+ 1 30 39 90 79
+69 84 74 59 35
+65 54 21 27 73
+
+92 85 69 5 29
+91 74 1 26 60
+63 87 37 71 62
+59 15 56 45 95
+86 67 39 34 89
+
+89 30 39 15 3
+71 37 38 56 77
+67 13 41 85 36
+32 7 12 97 87
+50 42 21 33 23
+
+11 40 38 96 6
+88 39 64 33 86
+51 79 63 12 3
+47 7 69 41 80
+10 28 91 37 89
+
+90 14 52 49 93
+62 2 35 46 42
+87 3 85 29 68
+15 96 72 10 59
+50 80 5 20 44
+
+58 92 96 48 74
+ 2 17 54 93 32
+39 46 76 91 10
+26 21 52 11 65
+23 36 78 77 43
+
+79 5 10 41 97
+80 45 81 32 87
+18 78 21 92 74
+14 49 94 59 37
+ 6 62 76 57 35
+
+52 59 3 78 89
+ 6 49 90 54 15
+82 30 64 7 85
+51 50 73 71 60
+17 26 18 98 94
+
+71 86 8 0 34
+77 81 47 13 53
+99 93 29 28 85
+76 49 51 1 4
+90 65 88 16 98
+
+89 32 50 77 71
+35 34 66 60 27
+52 24 57 42 37
+31 1 70 13 62
+33 91 61 7 30
+
+55 10 86 85 46
+ 2 96 68 40 24
+44 49 6 13 99
+93 36 31 52 67
+84 81 48 14 1
+
+84 92 66 24 95
+70 26 67 25 32
+52 11 55 76 78
+82 33 83 93 37
+21 68 15 94 10
+
+95 45 58 25 27
+15 93 10 76 86
+59 90 87 99 72
+ 4 71 31 3 37
+52 35 83 54 33
+
+73 39 32 89 84
+ 5 70 47 61 18
+16 92 78 26 8
+94 37 14 53 27
+44 30 68 77 63
+
+94 24 54 1 49
+27 90 84 79 69
+ 6 70 25 36 80
+14 16 53 92 44
+61 33 55 89 23
+
+85 92 37 64 59
+70 67 55 60 27
+69 62 45 48 57
+30 75 99 18 43
+82 7 10 19 38
+
+78 46 32 95 58
+67 66 39 77 62
+50 53 47 55 70
+23 42 38 22 60
+30 29 10 40 84
+
+27 89 46 75 73
+84 48 7 12 82
+34 15 81 98 65
+24 83 87 4 86
+ 9 55 47 8 36
+
+30 70 5 21 82
+95 11 49 37 48
+68 74 41 63 85
+93 35 7 8 80
+45 31 53 55 26
+
+98 75 47 9 18
+44 97 26 73 64
+62 99 13 43 0
+51 37 10 74 94
+35 68 22 76 83
+
+35 9 82 95 40
+30 10 99 7 47
+12 77 54 25 34
+73 97 38 11 17
+70 41 87 29 57
+
+95 50 69 58 93
+89 52 23 24 8
+20 53 43 22 84
+60 4 19 64 6
+92 21 10 26 85
+
+37 48 98 80 77
+15 76 12 75 52
+94 41 40 69 63
+92 28 74 14 17
+ 3 62 86 19 82
+
+40 1 33 53 64
+60 9 76 50 44
+ 0 34 51 98 12
+ 6 84 72 86 15
+18 80 13 5 23
+
+40 86 96 61 34
+13 0 39 88 32
+36 91 82 51 97
+83 87 63 94 26
+53 30 23 14 45
+
+93 20 29 9 66
+25 72 10 54 30
+31 51 41 15 47
+71 61 96 55 81
+ 3 50 36 94 27
+
+ 8 23 14 30 10
+91 36 58 40 92
+74 84 33 44 96
+86 20 82 57 5
+87 11 95 46 31
+
+95 51 73 41 10
+31 15 70 56 39
+83 11 37 38 42
+13 58 53 77 14
+79 71 5 29 93
+
+21 59 62 60 87
+92 90 51 15 57
+38 68 26 78 36
+31 84 97 81 74
+12 48 35 70 93
+
+13 52 95 80 87
+71 77 74 35 61
+37 41 14 73 46
+62 90 54 0 88
+67 20 56 22 85
+
+95 56 68 49 44
+34 18 65 13 71
+52 94 87 90 19
+36 30 45 3 77
+84 89 64 20 41
+
+17 6 13 27 64
+14 34 60 32 40
+51 97 8 57 88
+44 79 82 31 2
+15 99 59 62 50
+
+86 16 33 27 39
+ 3 34 42 15 48
+84 2 85 31 87
+97 41 49 13 23
+51 6 71 82 10
+
+82 25 17 28 48
+95 7 29 55 81
+97 3 26 64 11
+98 75 45 89 96
+49 70 84 41 57
+
+ 5 51 65 35 27
+89 17 18 66 37
+16 68 56 87 33
+71 86 52 48 23
+47 10 53 7 55
+
+76 88 50 5 83
+23 63 13 26 41
+84 60 36 80 68
+37 79 47 74 1
+59 55 58 99 65
+
+48 51 12 74 9
+31 26 67 95 98
+54 46 56 3 80
+10 57 17 37 92
+78 87 28 82 52
+
+49 85 57 58 30
+77 76 92 97 3
+69 66 14 25 83
+63 98 47 37 78
+22 96 89 91 95
+
+ 5 24 38 66 88
+32 18 82 26 23
+41 36 14 91 21
+56 51 99 83 58
+28 27 78 3 43
+
+55 65 60 13 11
+10 41 9 39 62
+75 85 12 61 66
+35 43 64 94 48
+44 28 1 92 2
+
+19 81 21 33 15
+48 55 91 95 7
+34 90 64 50 97
+23 43 60 3 26
+16 22 67 58 9
+
+83 33 88 16 47
+13 98 43 24 34
+45 9 27 2 76
+ 4 57 80 77 87
+61 11 66 81 50
+
+17 62 88 23 5
+57 25 84 55 65
+60 85 39 90 99
+83 79 37 34 46
+29 54 92 12 51
+
+28 59 78 96 55
+12 77 46 81 23
+60 54 17 16 45
+42 89 62 63 47
+26 98 31 85 7
+
+86 91 2 39 0
+67 73 62 69 38
+ 6 94 25 66 7
+26 41 81 59 79
+71 44 33 46 10
+
+24 22 21 82 62
+48 74 83 17 64
+66 23 4 78 36
+54 80 38 20 14
+47 85 96 39 12
+
+72 56 75 34 59
+20 22 90 87 97
+24 95 61 91 74
+51 38 7 18 21
+73 57 89 80 92
+
+42 23 22 5 37
+72 77 88 63 7
+44 80 62 10 69
+91 1 60 70 25
+67 97 75 45 55
+
+ 3 45 91 4 13
+14 6 34 49 82
+31 98 35 23 85
+10 71 16 40 15
+11 99 7 32 28
+
+42 44 52 27 25
+31 28 11 86 81
+35 80 20 65 24
+17 8 93 49 58
+16 92 78 63 61
+
+57 60 34 95 46
+78 25 79 42 36
+65 84 74 82 91
+33 44 9 47 90
+53 69 54 0 76
+
+67 29 7 82 73
+87 49 44 10 14
+40 98 89 41 12
+58 20 27 13 53
+51 78 96 59 80
+
+75 8 73 47 4
+46 67 28 78 5
+29 62 65 19 13
+48 95 21 81 50
+80 38 51 96 91
+
+45 41 80 64 32
+14 93 40 76 70
+15 77 49 0 98
+19 68 16 18 92
+81 83 47 36 44
+
+56 3 88 97 72
+60 46 98 11 51
+52 8 54 89 9
+67 41 78 17 82
+99 2 6 7 77
+
+66 20 48 64 9
+19 52 74 56 59
+42 81 29 93 6
+72 75 83 15 76
+99 23 14 44 50
+
+77 90 79 49 3
+51 76 2 41 74
+86 96 36 84 16
+85 5 95 18 47
+73 33 32 45 58
+
+82 72 86 18 84
+59 60 6 22 7
+31 19 90 47 58
+65 71 4 67 92
+17 95 44 35 26
+
+14 81 55 51 29
+44 64 99 41 43
+82 72 53 33 10
+95 38 76 68 56
+57 88 39 0 5
+
+15 47 2 78 9
+13 36 41 29 97
+86 18 57 69 49
+79 37 91 88 59
+21 23 87 1 30
+
+39 45 56 8 89
+ 2 42 66 3 70
+75 80 17 64 97
+32 35 60 23 88
+18 51 99 7 38
+
+30 54 83 88 74
+52 15 91 77 86
+ 2 79 12 16 50
+40 14 97 63 35
+33 71 25 21 94
+
+37 85 35 10 22
+52 31 77 48 82
+51 3 49 95 20
+24 75 0 89 97
+78 63 14 46 42
+
+91 26 28 38 31
+55 32 0 95 10
+68 25 45 57 56
+36 14 69 30 15
+81 3 37 13 40
+
+75 30 8 28 44
+60 79 59 74 9
+81 50 66 92 61
+29 2 88 15 99
+87 91 26 7 96
+
+74 75 81 72 89
+44 8 94 3 97
+93 46 37 0 56
+63 21 29 91 55
+41 4 31 49 33
+
+55 8 57 29 63
+85 36 58 89 33
+44 75 67 23 39
+49 46 32 10 84
+15 7 59 56 12
+
+ 1 91 65 67 4
+31 5 34 30 37
+93 66 18 79 19
+28 6 0 47 42
+21 98 87 89 81
+
+79 30 10 21 69
+56 19 27 90 72
+77 57 93 92 97
+15 45 4 18 68
+59 2 29 26 83
+
+21 41 53 30 31
+85 18 17 52 39
+49 38 4 57 54
+63 74 59 16 8
+66 62 27 10 37
+
+28 94 59 97 5
+91 17 72 84 80
+21 6 60 77 98
+50 70 44 85 95
+92 61 43 16 93
+
+10 91 27 84 63
+69 97 9 83 89
+ 6 47 42 87 77
+20 94 34 4 64
+ 0 12 38 39 18
+
+ 4 54 55 76 64
+39 15 80 42 9
+57 56 87 61 28
+70 85 36 25 75
+38 53 12 71 47
+
+83 97 32 29 0
+60 30 31 92 61
+ 1 42 17 94 67
+20 39 36 91 10
+18 69 47 43 76
+
+63 74 68 71 92
+85 94 8 41 35
+39 32 62 67 87
+70 95 40 84 51
+52 30 53 22 1
+
+17 39 74 50 55
+72 7 88 4 68
+94 91 45 15 77
+48 53 62 46 67
+69 12 70 32 35
+
+56 89 96 51 14
+23 77 62 4 22
+88 87 27 5 94
+ 6 28 40 11 83
+33 86 99 80 63
+
+ 2 96 16 33 81
+18 9 45 39 49
+ 3 21 59 27 58
+48 31 28 42 77
+37 83 61 25 71
+
+13 1 6 34 23
+56 40 66 50 99
+46 28 65 32 27
+60 67 22 17 0
+29 43 21 8 59
+
+90 86 69 22 5
+72 96 29 62 59
+40 1 54 87 55
+41 78 28 43 33
+77 49 82 13 61
+
+82 8 39 68 51
+97 13 22 7 92
+60 88 84 16 30
+86 54 71 50 87
+72 24 41 25 48
+
+ 9 35 43 49 77
+24 29 1 70 80
+15 4 93 48 6
+31 17 0 99 95
+28 13 56 41 97
+
+24 75 16 59 98
+86 5 7 93 10
+42 71 6 91 21
+43 69 78 94 33
+ 3 45 73 11 20
+
+19 3 17 58 89
+11 54 53 34 14
+66 82 44 46 41
+ 1 22 62 69 25
+65 98 76 84 13
+
+37 93 47 15 20
+43 46 82 53 75
+18 90 25 69 92
+54 42 83 41 17
+44 14 22 70 4
+
+78 72 96 86 89
+64 61 69 79 85
+10 59 37 18 46
+ 5 22 31 81 7
+40 57 53 66 32
+
+ 8 77 33 81 90
+27 2 94 24 59
+79 28 30 97 60
+32 18 10 1 38
+58 12 5 87 17
+
+68 76 4 63 16
+75 66 19 50 14
+73 24 22 6 33
+99 61 87 1 47
+35 83 48 39 20
+
+42 39 28 87 37
+89 12 75 82 84
+17 74 49 3 5
+56 76 66 92 85
+27 18 86 8 58
+
+71 83 21 29 63
+46 38 62 3 67
+56 72 40 96 64
+95 89 91 4 47
+ 7 92 80 69 61