├── README.md ├── day2 ├── sample ├── Makefile ├── to-bqn.awk ├── main.bqn ├── main.pl └── input ├── day6 ├── sample ├── main.pl └── input ├── day8 ├── sample ├── main.pl └── input ├── day12 ├── sample ├── main.pl └── input ├── day9 ├── sample ├── main.pl └── input ├── day4 ├── sample ├── main.pl └── input ├── day1 ├── main.bqn ├── sample ├── Makefile ├── to-bqn.awk ├── main.el ├── main.pl └── input ├── day5 ├── sample ├── main.pl └── input ├── day3 ├── sample ├── main.pl └── input ├── day7 ├── sample ├── main.pl └── input ├── LICENSE ├── day10 ├── input ├── sample └── main.pl └── day11 └── main.pl /README.md: -------------------------------------------------------------------------------- 1 | # advent-of-code-2022 -------------------------------------------------------------------------------- /day2/sample: -------------------------------------------------------------------------------- 1 | A Y 2 | B X 3 | C Z 4 | -------------------------------------------------------------------------------- /day6/sample: -------------------------------------------------------------------------------- 1 | bvwbjplbgvbhsrlpgdmjqwftvncz -------------------------------------------------------------------------------- /day8/sample: -------------------------------------------------------------------------------- 1 | 30373 2 | 25512 3 | 65332 4 | 33549 5 | 35390 6 | -------------------------------------------------------------------------------- /day12/sample: -------------------------------------------------------------------------------- 1 | Sabqponm 2 | abcryxxl 3 | accszExk 4 | acctuvwj 5 | abdefghi 6 | -------------------------------------------------------------------------------- /day9/sample: -------------------------------------------------------------------------------- 1 | R 4 2 | U 4 3 | L 3 4 | D 1 5 | R 4 6 | D 1 7 | L 5 8 | R 2 9 | -------------------------------------------------------------------------------- /day4/sample: -------------------------------------------------------------------------------- 1 | 2-4,6-8 2 | 2-3,4-5 3 | 5-7,7-9 4 | 2-8,3-7 5 | 6-6,4-6 6 | 2-6,4-8 7 | -------------------------------------------------------------------------------- /day1/main.bqn: -------------------------------------------------------------------------------- 1 | data ← •Import ⊑•args 2 | solution1 ← ⊑∨+´¨ data 3 | solution2 ← +´3⊸↑∨+´¨ data 4 | •Show solution1 ⋈ solution2 5 | -------------------------------------------------------------------------------- /day1/sample: -------------------------------------------------------------------------------- 1 | 1000 2 | 2000 3 | 3000 4 | 5 | 4000 6 | 7 | 5000 8 | 6000 9 | 10 | 7000 11 | 8000 12 | 9000 13 | 14 | 10000 15 | -------------------------------------------------------------------------------- /day1/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: bqn 2 | bqn: 3 | awk -f to-bqn.awk sample > sample.bqn 4 | bqn main.bqn sample.bqn 5 | awk -f to-bqn.awk input > input.bqn 6 | bqn main.bqn input.bqn 7 | -------------------------------------------------------------------------------- /day2/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: bqn 2 | bqn: 3 | awk -f to-bqn.awk sample > sample.bqn 4 | bqn main.bqn sample.bqn 5 | awk -f to-bqn.awk input > input.bqn 6 | bqn main.bqn input.bqn 7 | -------------------------------------------------------------------------------- /day2/to-bqn.awk: -------------------------------------------------------------------------------- 1 | BEGIN { 2 | IF=" " 3 | print "⟨"; 4 | } 5 | 6 | /.*/ { 7 | print "⟨'" $1 "','" $2 "'⟩"; 8 | } 9 | 10 | END { 11 | print "⟩"; 12 | } 13 | -------------------------------------------------------------------------------- /day5/sample: -------------------------------------------------------------------------------- 1 | [D] 2 | [N] [C] 3 | [Z] [M] [P] 4 | 1 2 3 5 | 6 | move 1 from 2 to 1 7 | move 3 from 1 to 3 8 | move 2 from 2 to 1 9 | move 1 from 1 to 2 10 | -------------------------------------------------------------------------------- /day3/sample: -------------------------------------------------------------------------------- 1 | vJrwpWtwJgWrhcsFMMfFFhFp 2 | jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL 3 | PmmdzqPrVvPwwTWBwg 4 | wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn 5 | ttgJtRGJQctTZtZT 6 | CrZsJsPPZsGzwwsLwLmpwMDw 7 | -------------------------------------------------------------------------------- /day1/to-bqn.awk: -------------------------------------------------------------------------------- 1 | BEGIN { 2 | print "⟨"; 3 | print "⟨"; 4 | } 5 | 6 | /^$/ { 7 | print "⟩,⟨"; 8 | } 9 | 10 | /[0-9]+/ { 11 | print $0 ","; 12 | } 13 | 14 | END { 15 | print "⟩"; 16 | print "⟩"; 17 | } 18 | -------------------------------------------------------------------------------- /day7/sample: -------------------------------------------------------------------------------- 1 | $ cd / 2 | $ ls 3 | dir a 4 | 14848514 b.txt 5 | 8504156 c.dat 6 | dir d 7 | $ cd a 8 | $ ls 9 | dir e 10 | 29116 f 11 | 2557 g 12 | 62596 h.lst 13 | $ cd e 14 | $ ls 15 | 584 i 16 | $ cd .. 17 | $ cd .. 18 | $ cd d 19 | $ ls 20 | 4060174 j 21 | 8033020 d.log 22 | 5626152 d.ext 23 | 7214296 k 24 | -------------------------------------------------------------------------------- /day2/main.bqn: -------------------------------------------------------------------------------- 1 | data ← •Import ⊑•args 2 | Chooses ← 23-˜'A'-˜1⊸⊑¨ 3 | ChoosesPoints ← +´1+Chooses 4 | Opponent ← 'A'-˜⊑¨ 5 | outcomes ← [3‿6‿0, 0‿3‿6, 6‿0‿3] 6 | opponentPoints ← +´(⊑⟜outcomes)¨ (Opponent ⋈¨ Chooses) data 7 | Points ← ChoosesPoints⊸+⟜opponentPoints 8 | solution1 ← Points data 9 | •Show solution1 10 | -------------------------------------------------------------------------------- /day1/main.el: -------------------------------------------------------------------------------- 1 | (let ((bags (with-temp-buffer 2 | (progn (insert "((") 3 | (insert-file-contents "input") 4 | (while (re-search-forward "^$" nil t) 5 | (replace-match ")(" nil nil)) 6 | (end-of-buffer) 7 | (insert "))") 8 | (goto-char 0) 9 | (read (current-buffer)))))) 10 | (cl-reduce #'max 11 | (mapcar (lambda (bag) (cl-reduce #'+ bag)) bags)) 12 | ) 13 | 14 | 15 | (let ((bags (with-temp-buffer 16 | (progn (insert "((") 17 | (insert-file-contents "input") 18 | (while (re-search-forward "^$" nil t) 19 | (replace-match ")(" nil nil)) 20 | (end-of-buffer) 21 | (insert "))") 22 | (goto-char 0) 23 | (read (current-buffer)))))) 24 | (cl-reduce #'+ 25 | (seq-take 26 | (sort (mapcar (lambda (bag) (cl-reduce #'+ bag)) bags) #'>) 27 | 3) 28 | ) 29 | ) 30 | -------------------------------------------------------------------------------- /day6/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dif)). 2 | :- use_module(library(dcgs)). 3 | :- use_module(library(format)). 4 | :- use_module(library(lists)). 5 | :- use_module(library(ordsets)). 6 | :- use_module(library(pio)). 7 | 8 | star(1, X) :- 9 | phrase_from_file(seq(Data), "input"), 10 | first_marker(Data, 4, X). 11 | 12 | star(2, X) :- 13 | phrase_from_file(seq(Data), "input"), 14 | first_message(Data, 14, X). 15 | 16 | % PART 2 17 | first_message(Data, Chars0, Chars) :- 18 | length(ListSet, 14), 19 | append(ListSet, Xs, Data), 20 | list_to_ord_set(ListSet, Set), 21 | ( 22 | length(Set, 14) -> 23 | Chars0 = Chars 24 | ; ( 25 | Chars1 is Chars0 + 1, 26 | ListSet = [_|Ls], 27 | append(Ls, Xs, Data1), 28 | first_message(Data1, Chars1, Chars) 29 | ) 30 | ). 31 | 32 | % PART 1 33 | 34 | first_marker([A,B,C,D|Xs], Chars0, Chars) :- 35 | ( dif(A, B), 36 | dif(B, C), 37 | dif(C, D), 38 | dif(A, C), 39 | dif(A, D), 40 | dif(B, D), 41 | Chars0 = Chars 42 | ) ; ( 43 | Chars1 is Chars0 + 1, 44 | first_marker([B,C,D|Xs], Chars1, Chars) 45 | ). 46 | 47 | -------------------------------------------------------------------------------- /day1/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(charsio)). 2 | :- use_module(library(dcgs)). 3 | :- use_module(library(format)). 4 | :- use_module(library(lists)). 5 | :- use_module(library(pio)). 6 | 7 | star(1, X) :- 8 | phrase_from_file(lines(Lines), "input"), 9 | elf_data(Lines, Data), 10 | maplist(sum_list, Data, Elves), 11 | list_max(Elves, X). 12 | 13 | star(2, X) :- 14 | phrase_from_file(lines(Lines), "input"), 15 | elf_data(Lines, Data), 16 | maplist(sum_list, Data, Elves), 17 | maplist(list_to_keysort, Elves, ElvesKeysort), 18 | keysort(ElvesKeysort, ElvesSorted), % sort removes duplicates 19 | reverse(ElvesSorted, ElvesSortedDescent), 20 | ElvesSortedDescent = [Elf1-a, Elf2-a, Elf3-a|_], 21 | sum_list([Elf1, Elf2, Elf3], X). 22 | 23 | list_to_keysort(X, X-a). 24 | 25 | lines([]) --> []. 26 | lines([X|Xs]) --> seq(X), "\n", lines(Xs). 27 | 28 | elf_data(Xs, Ys) :- elf_data_(Xs, [], Ys). 29 | elf_data_([X|Xs], Zs, Ys) :- 30 | X \= "", 31 | number_chars(Z, X), 32 | elf_data_(Xs, [Z|Zs], Ys). 33 | 34 | elf_data_([X|Xs], Zs, [Zs|Ys]) :- 35 | X = "", 36 | elf_data_(Xs, [], Ys). 37 | 38 | elf_data_([], Zs, [Zs]). 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /day4/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(format)). 3 | :- use_module(library(lists)). 4 | :- use_module(library(ordsets)). 5 | :- use_module(library(pio)). 6 | 7 | star(1, X) :- 8 | phrase_from_file(pairs(Data), "input"), 9 | maplist(contains, Data, Contains), 10 | sum_list(Contains, X). 11 | 12 | star(2, X) :- 13 | phrase_from_file(pairs(Data), "input"), 14 | maplist(overlaps, Data, Overlaps), 15 | sum_list(Overlaps, X). 16 | 17 | % PART 2 18 | overlaps(pair(range(S0, E0), range(S1, E1)), 1) :- 19 | S1 >= S0, 20 | S1 =< E0. 21 | 22 | overlaps(pair(range(S0, E0), range(S1, E1)), 1) :- 23 | S0 >= S1, 24 | S0 =< E1. 25 | 26 | overlaps(_, 0). 27 | 28 | % PART 1 29 | 30 | % R1 is in R0 31 | contains(pair(range(S0, E0), range(S1, E1)), 1) :- 32 | S0 =< S1, 33 | E1 =< E0. 34 | 35 | % R0 is in R1 36 | contains(pair(range(S0, E0), range(S1, E1)), 1) :- 37 | S1 =< S0, 38 | E0 =< E1. 39 | 40 | % No contains 41 | contains(_, 0). 42 | 43 | pairs([]) --> []. 44 | pairs([pair(R0, R1)|Ps]) --> 45 | range(R0), 46 | ",", 47 | range(R1), 48 | "\n", 49 | pairs(Ps). 50 | 51 | range(range(Start, End)) --> 52 | seq(StartStr), 53 | "-", 54 | seq(EndStr), 55 | { 56 | length(StartStr, N0), 57 | N0 > 0, 58 | length(EndStr, N1), 59 | N1 > 0, 60 | number_chars(Start, StartStr), 61 | number_chars(End, EndStr) 62 | }. 63 | -------------------------------------------------------------------------------- /day3/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(lists)). 3 | :- use_module(library(format)). 4 | :- use_module(library(pio)). 5 | 6 | star(1, X) :- 7 | phrase_from_file(rucksacks(Rucksacks), "input"), 8 | maplist(common_items, Rucksacks, CommonItems), 9 | maplist(items_priority, CommonItems, Priorities), 10 | sum_list(Priorities, X). 11 | 12 | star(2, X) :- 13 | phrase_from_file(rucksacks(Rucksacks), "input"), 14 | maplist(rucksacks_join, Rucksacks, JoinedRucksacks), 15 | common_group_items(JoinedRucksacks, CommonItems), 16 | maplist(items_priority, CommonItems, Priorities), 17 | sum_list(Priorities, X). 18 | 19 | % PART 2 20 | 21 | rucksacks_join(rucksack(P1, P2), P) :- 22 | append(P1, P2, P). 23 | 24 | common_group_items([], []). 25 | common_group_items([P1,P2,P3|Rs], [C|Cs]) :- 26 | member(C, P1), 27 | member(C, P2), 28 | member(C, P3), 29 | common_group_items(Rs, Cs). 30 | 31 | % PART 1 32 | 33 | items_priority(Item, Priority) :- 34 | P = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 35 | nth0(N, P, Item), 36 | Priority is N + 1. 37 | 38 | common_items(rucksack(P1, P2), Common) :- 39 | member(Common, P1), 40 | member(Common, P2). 41 | 42 | rucksacks([]) --> []. 43 | rucksacks([rucksack(P1, P2)|Rs]) --> 44 | seq(Xs), 45 | "\n", 46 | { 47 | append(P1, P2, Xs), 48 | length(P1, N), 49 | length(P2, N) 50 | }, 51 | rucksacks(Rs). 52 | -------------------------------------------------------------------------------- /day2/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(format)). 3 | :- use_module(library(lists)). 4 | :- use_module(library(pio)). 5 | 6 | star(1, X) :- 7 | data(Data, "input"), 8 | play(Data, X). 9 | 10 | star(2, X) :- 11 | data(Data, "input"), 12 | play_two(Data, X). 13 | 14 | % PART 1 15 | 16 | shape_score('X', 1). 17 | shape_score('Y', 2). 18 | shape_score('Z', 3). 19 | 20 | outcome_score('A', 'X', 3). 21 | outcome_score('A', 'Y', 6). 22 | outcome_score('A', 'Z', 0). 23 | outcome_score('B', 'X', 0). 24 | outcome_score('B', 'Y', 3). 25 | outcome_score('B', 'Z', 6). 26 | outcome_score('C', 'X', 6). 27 | outcome_score('C', 'Y', 0). 28 | outcome_score('C', 'Z', 3). 29 | 30 | play([], 0). 31 | play([round(X, Y)|Rs], Score) :- 32 | outcome_score(X, Y, Score0), 33 | shape_score(Y, Score1), 34 | play(Rs, ScoreRs), 35 | Score is Score0 + Score1 + ScoreRs. 36 | 37 | % PART 2 38 | 39 | outcome_shape_score('X', 0). 40 | outcome_shape_score('Y', 3). 41 | outcome_shape_score('Z', 6). 42 | 43 | outcome_shape(X, Y, Z) :- 44 | outcome_shape_score(Y, P), 45 | outcome_score(X, Z, P). 46 | 47 | play_two([], 0). 48 | play_two([round(X, Y)|Rs], Score) :- 49 | outcome_shape(X, Y, Z), 50 | outcome_shape_score(Y, Score0), 51 | shape_score(Z, Score1), 52 | play_two(Rs, ScoreRs), 53 | Score is Score0 + Score1 + ScoreRs. 54 | 55 | % DATA 56 | 57 | data(Data, File) :- 58 | phrase_from_file(strategy_guide(Data), File). 59 | 60 | strategy_guide([]) --> []. 61 | strategy_guide([round(X, Y)|Xs]) --> 62 | [X], 63 | " ", 64 | [Y], 65 | "\n", 66 | strategy_guide(Xs). 67 | 68 | -------------------------------------------------------------------------------- /day10/input: -------------------------------------------------------------------------------- 1 | addx 1 2 | addx 4 3 | noop 4 | noop 5 | addx 30 6 | addx -24 7 | addx -1 8 | noop 9 | addx 4 10 | addx 1 11 | addx 5 12 | addx -4 13 | addx 5 14 | addx 4 15 | addx 1 16 | noop 17 | addx 5 18 | addx -1 19 | addx 5 20 | addx 3 21 | noop 22 | addx -38 23 | addx 9 24 | addx -4 25 | noop 26 | addx 3 27 | noop 28 | addx 2 29 | addx 3 30 | noop 31 | addx 2 32 | addx 3 33 | noop 34 | addx 2 35 | addx 3 36 | noop 37 | addx 2 38 | addx -17 39 | addx 22 40 | addx -2 41 | addx 5 42 | addx 2 43 | addx 3 44 | addx -2 45 | addx -36 46 | noop 47 | addx 5 48 | noop 49 | addx 3 50 | noop 51 | addx 2 52 | addx -5 53 | noop 54 | addx 10 55 | addx 3 56 | addx -2 57 | addx 3 58 | addx 2 59 | addx 4 60 | noop 61 | noop 62 | noop 63 | noop 64 | addx 3 65 | noop 66 | noop 67 | addx 7 68 | addx 1 69 | noop 70 | noop 71 | addx -38 72 | addx 39 73 | addx -32 74 | noop 75 | noop 76 | noop 77 | addx 5 78 | addx 2 79 | addx -1 80 | addx 4 81 | noop 82 | addx 5 83 | addx -2 84 | addx 5 85 | addx 2 86 | addx -26 87 | addx 31 88 | addx -2 89 | addx 4 90 | addx 3 91 | addx -18 92 | addx 19 93 | addx -38 94 | addx 7 95 | noop 96 | noop 97 | addx 34 98 | addx -39 99 | addx 8 100 | addx 5 101 | addx 2 102 | addx 10 103 | addx -5 104 | addx -2 105 | addx 5 106 | addx 2 107 | addx 11 108 | addx -6 109 | noop 110 | addx 3 111 | noop 112 | addx 2 113 | addx 3 114 | addx -2 115 | addx -38 116 | noop 117 | noop 118 | noop 119 | addx 5 120 | addx 11 121 | noop 122 | addx -3 123 | noop 124 | noop 125 | noop 126 | addx 2 127 | noop 128 | addx -11 129 | addx 16 130 | noop 131 | addx 3 132 | addx 2 133 | addx 8 134 | noop 135 | noop 136 | noop 137 | noop 138 | noop 139 | addx 4 140 | addx 3 141 | noop 142 | addx -20 143 | noop 144 | -------------------------------------------------------------------------------- /day10/sample: -------------------------------------------------------------------------------- 1 | addx 15 2 | addx -11 3 | addx 6 4 | addx -3 5 | addx 5 6 | addx -1 7 | addx -8 8 | addx 13 9 | addx 4 10 | noop 11 | addx -1 12 | addx 5 13 | addx -1 14 | addx 5 15 | addx -1 16 | addx 5 17 | addx -1 18 | addx 5 19 | addx -1 20 | addx -35 21 | addx 1 22 | addx 24 23 | addx -19 24 | addx 1 25 | addx 16 26 | addx -11 27 | noop 28 | noop 29 | addx 21 30 | addx -15 31 | noop 32 | noop 33 | addx -3 34 | addx 9 35 | addx 1 36 | addx -3 37 | addx 8 38 | addx 1 39 | addx 5 40 | noop 41 | noop 42 | noop 43 | noop 44 | noop 45 | addx -36 46 | noop 47 | addx 1 48 | addx 7 49 | noop 50 | noop 51 | noop 52 | addx 2 53 | addx 6 54 | noop 55 | noop 56 | noop 57 | noop 58 | noop 59 | addx 1 60 | noop 61 | noop 62 | addx 7 63 | addx 1 64 | noop 65 | addx -13 66 | addx 13 67 | addx 7 68 | noop 69 | addx 1 70 | addx -33 71 | noop 72 | noop 73 | noop 74 | addx 2 75 | noop 76 | noop 77 | noop 78 | addx 8 79 | noop 80 | addx -1 81 | addx 2 82 | addx 1 83 | noop 84 | addx 17 85 | addx -9 86 | addx 1 87 | addx 1 88 | addx -3 89 | addx 11 90 | noop 91 | noop 92 | addx 1 93 | noop 94 | addx 1 95 | noop 96 | noop 97 | addx -13 98 | addx -19 99 | addx 1 100 | addx 3 101 | addx 26 102 | addx -30 103 | addx 12 104 | addx -1 105 | addx 3 106 | addx 1 107 | noop 108 | noop 109 | noop 110 | addx -9 111 | addx 18 112 | addx 1 113 | addx 2 114 | noop 115 | noop 116 | addx 9 117 | noop 118 | noop 119 | noop 120 | addx -1 121 | addx 2 122 | addx -37 123 | addx 1 124 | addx 3 125 | noop 126 | addx 15 127 | addx -21 128 | addx 22 129 | addx -6 130 | addx 1 131 | noop 132 | addx 2 133 | addx 1 134 | noop 135 | addx -10 136 | noop 137 | noop 138 | addx 20 139 | addx 1 140 | addx 2 141 | addx 2 142 | addx -6 143 | addx -11 144 | noop 145 | noop 146 | noop 147 | -------------------------------------------------------------------------------- /day10/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(pio)). 3 | :- use_module(library(format)). 4 | :- use_module(library(lists)). 5 | 6 | star(1, X) :- 7 | phrase_from_file(code(Code), "input"), 8 | code_cycle(Code, CycleCode), 9 | execute(CycleCode, 1, 1, 0, SignalStrength), 10 | X = SignalStrength. 11 | 12 | star(2, CRT) :- 13 | phrase_from_file(code(Code), "input"), 14 | code_cycle(Code, CycleCode), 15 | executeCRT(CycleCode, 0, 1, [], CRT), 16 | show_crt(CRT). 17 | 18 | % PART 2 19 | 20 | show_crt([]). 21 | show_crt([X|Xs]) :- 22 | format("~a", [X]), 23 | length(Xs, N), 24 | Z is N mod 40, 25 | ( 26 | Z = 0 -> 27 | format("~n", []) 28 | ; true 29 | ), 30 | show_crt(Xs). 31 | 32 | executeCRT([], _, _, CRT, CRT). 33 | executeCRT([Ins|Xs], N, X, CRT0, CRT) :- 34 | ( 35 | ( Ins = noop, X1 = X) 36 | ; ( Ins = addx1(_), X1 = X) 37 | ; ( Ins = addx2(I), X1 is X + I) 38 | ), 39 | N1 is N + 1, 40 | crt(N, X, CRT0, CRT1), 41 | executeCRT(Xs, N1, X1, CRT1, CRT). 42 | 43 | crt(N, X, CRT0, CRT) :- 44 | Column is N mod 40, 45 | Z is abs(X - Column), 46 | ( 47 | (Z = 0; Z = 1) -> 48 | append(CRT0, ['#'], CRT) 49 | ; append(CRT0, ['.'], CRT) 50 | ). 51 | 52 | % PART 1 53 | 54 | execute([], _, _, S, S). 55 | execute([Ins|Xs], N, X, SignalStrength0, SignalStrength) :- 56 | ( 57 | ( Ins = noop, X1 = X) 58 | ; ( Ins = addx1(_), X1 = X) 59 | ; ( Ins = addx2(I), X1 is X + I) 60 | ), 61 | N1 is N + 1, 62 | signal_strength(N1, X1, SignalStrength0, SignalStrength1), 63 | execute(Xs, N1, X1, SignalStrength1, SignalStrength). 64 | 65 | signal_strength(N1, X1, S0, S) :- 66 | (N1 = 20; N1 = 60; N1 = 100; N1 = 140; N1 = 180; N1 = 220), 67 | S is S0 + (N1*X1). 68 | 69 | signal_strength(_, _, S, S). 70 | 71 | 72 | code_cycle([], []). 73 | code_cycle([noop|Xs], [noop|Ys]) :- 74 | code_cycle(Xs, Ys). 75 | code_cycle([addx(I)|Xs], [addx1(I),addx2(I)|Ys]) :- 76 | code_cycle(Xs, Ys). 77 | 78 | code([]) --> []. 79 | code([noop|Cs]) --> 80 | "noop\n", 81 | code(Cs). 82 | code([addx(I)|Cs]) --> 83 | "addx ", 84 | seq(N), 85 | "\n", 86 | { number_chars(I, N) }, 87 | code(Cs). 88 | -------------------------------------------------------------------------------- /day9/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(pio)). 3 | :- use_module(library(format)). 4 | :- use_module(library(lists)). 5 | 6 | star(1, X) :- 7 | phrase_from_file(steps(Steps), "input"),!, 8 | steps_singlestep(Steps, FlattenSteps),!, 9 | execute(FlattenSteps, 0-0, [0-0], Visited), 10 | sort(Visited, Unique), 11 | length(Unique, X). 12 | 13 | star(2, X) :- 14 | phrase_from_file(steps(Steps), "input"),!, 15 | steps_singlestep(Steps, FlattenSteps),!, 16 | execute2(FlattenSteps, rope(0-0, 0-0, 0-0, 0-0, 0-0, 0-0, 0-0, 0-0, 0-0), [0-0], Visited), 17 | sort(Visited, Unique), 18 | length(Unique, X). 19 | 20 | % PART 2 21 | execute2([], _, Visited, Visited). 22 | execute2([Step|Rest], Rope, [TX-TY|Ts], Visited) :- 23 | Step = step(Dir, _), 24 | Rope = rope(HX-HY, AX-AY, BX-BY, CX-CY, DX-DY, EX-EY, FX-FY, GX-GY, IX-IY), 25 | ( 26 | ( Dir = 'R', HX1 is HX + 1, HY1 = HY ) 27 | ; ( Dir = 'L', HX1 is HX - 1, HY1 = HY ) 28 | ; ( Dir = 'U', HX1 = HX, HY1 is HY + 1 ) 29 | ; ( Dir = 'D', HX1 = HX, HY1 is HY - 1 ) 30 | ), 31 | tail_position(HX1-HY1, AX-AY, AX1-AY1), 32 | tail_position(AX1-AY1, BX-BY, BX1-BY1), 33 | tail_position(BX1-BY1, CX-CY, CX1-CY1), 34 | tail_position(CX1-CY1, DX-DY, DX1-DY1), 35 | tail_position(DX1-DY1, EX-EY, EX1-EY1), 36 | tail_position(EX1-EY1, FX-FY, FX1-FY1), 37 | tail_position(FX1-FY1, GX-GY, GX1-GY1), 38 | tail_position(GX1-GY1, IX-IY, IX1-IY1), 39 | tail_position(IX1-IY1, TX-TY, TX1-TY1), 40 | Rope1 = rope(HX1-HY1, AX1-AY1, BX1-BY1, CX1-CY1, DX1-DY1, EX1-EY1, FX1-FY1, GX1-GY1, IX1-IY1), 41 | execute2(Rest, Rope1, [TX1-TY1,TX-TY|Ts], Visited). 42 | 43 | % PART 1 44 | 45 | execute([], _, Visited, Visited). 46 | execute([Step|Rest], HX-HY, [TX-TY|Ts], Visited) :- 47 | Step = step(Dir, _), 48 | ( 49 | ( Dir = 'R', HX1 is HX + 1, HY1 = HY ) 50 | ; ( Dir = 'L', HX1 is HX - 1, HY1 = HY ) 51 | ; ( Dir = 'U', HX1 = HX, HY1 is HY + 1 ) 52 | ; ( Dir = 'D', HX1 = HX, HY1 is HY - 1 ) 53 | ), 54 | tail_position(HX1-HY1, TX-TY, TX1-TY1), 55 | execute(Rest, HX1-HY1, [TX1-TY1,TX-TY|Ts], Visited). 56 | 57 | tail_position(HX-HY, TX-TY, TX-TY) :- 58 | 1 >= abs(TX - HX), 59 | 1 >= abs(TY - HY),!. 60 | 61 | tail_position(HX-HY, TX-TY, TX1-TY1) :- 62 | ( 63 | (TX > HX, TX1 is TX - 1) 64 | ; (TX < HX, TX1 is TX + 1) 65 | ; (TX1 = TX) 66 | ), 67 | ( 68 | (TY > HY, TY1 is TY - 1) 69 | ; (TY < HY, TY1 is TY + 1) 70 | ; (TY1 = TY) 71 | ). 72 | 73 | steps_singlestep([], []). 74 | steps_singlestep([X|Xs], Ys) :- 75 | X = step(Direction, N), 76 | length(NewSteps, N), 77 | maplist(single_step(Direction), NewSteps), 78 | steps_singlestep(Xs, Ys0), 79 | append(NewSteps, Ys0, Ys). 80 | 81 | single_step(Direction, step(Direction, 1)). 82 | 83 | steps([]) --> []. 84 | steps([step(Direction, N)|Xs]) --> 85 | [Direction], 86 | " ", 87 | seq(X), 88 | "\n", 89 | { 90 | number_chars(N, X) 91 | }, 92 | steps(Xs). 93 | -------------------------------------------------------------------------------- /day5/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(format)). 3 | :- use_module(library(lists)). 4 | :- use_module(library(pio)). 5 | 6 | star(1, X) :- 7 | phrase_from_file(data(StartState, Code), "input"), 8 | execute(Code, StartState, EndState), 9 | top_stack(EndState, X). 10 | 11 | star(2, X) :- 12 | phrase_from_file(data(StartState, Code), "input"), 13 | execute9001(Code, StartState, EndState), 14 | top_stack(EndState, X). 15 | 16 | % PART 2 17 | 18 | execute9001([], State, State). 19 | execute9001([Instruction|Is], StartState, EndState) :- 20 | Instruction = move(N, From, To), 21 | move9001(N, From, To, StartState, State), 22 | execute9001(Is, State, EndState). 23 | 24 | move9001(N, From, To, S0, S2) :- 25 | remove_n_elements(N, Elements, From, S0, S1), 26 | add_elements(Elements, To, S1, S2). 27 | 28 | remove_n_elements(N, Elements, From, S0, S) :- 29 | Ls1Length is From - 1, 30 | length(Ls1, Ls1Length), 31 | append(Ls1, [L|Ls2], S0), 32 | length(Elements, N), 33 | append(Elements, Ls, L), 34 | append(Ls1, [Ls|Ls2], S). 35 | 36 | add_elements(Elements, To, S0, S) :- 37 | Ls1Length is To - 1, 38 | length(Ls1, Ls1Length), 39 | append(Ls1, [L|Ls2], S0), 40 | append(Elements, L, NewL), 41 | append(Ls1, [NewL|Ls2], S). 42 | 43 | % PART 1 44 | 45 | top_stack(S, Top) :- 46 | maplist(head, S, Top). 47 | 48 | head([X|_], X). 49 | 50 | execute([], State, State). 51 | execute([Instruction|Is], StartState, EndState) :- 52 | Instruction = move(N, From, To), 53 | move(N, From, To, StartState, State), 54 | execute(Is, State, EndState). 55 | 56 | move(0, _, _, S, S). 57 | move(N0, From, To, S0, S) :- 58 | N0 > 0, 59 | N is N0 - 1, 60 | remove_element(Element, From, S0, S1), 61 | add_element(Element, To, S1, S2), 62 | move(N, From, To, S2, S). 63 | 64 | nth(N0, L, E) :- 65 | N is N0 + 1, 66 | nth0(N, L, E). 67 | 68 | remove_element(Element, N, S0, S1) :- 69 | Ls1Length is N - 1, 70 | length(Ls1, Ls1Length), 71 | append(Ls1, [L|Ls2], S0), 72 | L = [Element|Ls], 73 | append(Ls1, [Ls|Ls2], S1). 74 | 75 | add_element(Element, N, S0, S1) :- 76 | Ls1Length is N - 1, 77 | length(Ls1, Ls1Length), 78 | append(Ls1, [L|Ls2], S0), 79 | NewL = [Element|L], 80 | append(Ls1, [NewL|Ls2], S1). 81 | 82 | data(StartState, Code) --> 83 | state(StartState), 84 | ... , 85 | "\n\n", 86 | code(Code). 87 | 88 | state(["WRTG", "WVSMNPHCG", "MGSTLC", "FRWMDHJ", "JFWSHLQP", "SMFNDJP", "JSCGFDBZ", "BTR", "CLWNH"]) --> ... . 89 | % state(["NZ", "DCM", "P"]) --> ... . 90 | 91 | code([]) --> []. 92 | code([move(N, From, To)|Ms]) --> 93 | "move ", 94 | seq(NStr), 95 | " from ", 96 | seq(FromStr), 97 | " to ", 98 | seq(ToStr), 99 | "\n", 100 | { 101 | number_chars(N, NStr), 102 | number_chars(From, FromStr), 103 | number_chars(To, ToStr) 104 | }, 105 | code(Ms). 106 | -------------------------------------------------------------------------------- /day12/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(lists)). 2 | :- use_module(library(dcgs)). 3 | :- use_module(library(pio)). 4 | :- use_module(library(format)). 5 | :- use_module(library(between)). 6 | 7 | star(1, X) :- 8 | phrase_from_file(lines(Lines, Width), "input"),!, 9 | length(Lines, Height), 10 | append(Lines, MapData), 11 | Map = map(MapData, Width, Height), 12 | start_pos(Map, StartPos), 13 | end_pos(Map, EndPos), 14 | solve([0-StartPos], [], Map, EndPos, Steps), 15 | X = Steps. 16 | 17 | % PART 2 18 | 19 | star(2, Steps) :- 20 | phrase_from_file(lines(Lines, Width), "input"), !, 21 | length(Lines, Height), 22 | append(Lines, MapData), 23 | Map = map(MapData, Width, Height), 24 | findall(0-Pos, start_pos_2(Map, Pos), StartPos), 25 | end_pos(Map, EndPos), 26 | solve(StartPos, [], Map, EndPos, Steps). 27 | 28 | start_pos_2(map(MapData, Width, Height), Pos) :- 29 | Max is Width*Height - 1, 30 | between(0, Max, N), 31 | ( nth0(N, MapData, 'a') ; nth0(N, MapData, 'S')), 32 | X is N mod Width, 33 | Y is N // Width, 34 | Pos = X-Y. 35 | 36 | % PART 1 37 | 38 | solve([Steps-(X-Y)|_], _, _, X-Y, Steps). 39 | solve([Steps-Pos0|RestMoves], Visited, Map, End, FinalSteps) :- 40 | findall(NewSteps-NewPos, ( 41 | NewSteps is Steps + 1, 42 | move(_Move, Pos0, Map, NewPos), 43 | \+ member(NewPos, Visited), 44 | \+ member(_-NewPos, RestMoves) 45 | ), NewMoves0), 46 | append(NewMoves0, RestMoves, NewMoves), 47 | keysort(NewMoves, Moves0), 48 | solve(Moves0, [Pos0|Visited], Map, End, FinalSteps). 49 | 50 | elevation(A0, B0) :- 51 | ( 52 | A0 = 'S' -> 53 | A1 = 'a' 54 | ; A1 = A0 55 | ), 56 | ( 57 | B0 = 'E' -> 58 | B1 = 'z' 59 | ; B1 = B0 60 | ), 61 | X = "abcdefghijklmnopqrstuvwxyz", 62 | nth0(X0, X, A1), 63 | nth0(X1, X, B1), 64 | X0 + 1 >= X1. 65 | 66 | move(up, X0-Y0, Map, X1-Y1) :- 67 | X0 = X1, 68 | Y1 is Y0 + 1, 69 | pos(Map, X0-Y0, N0), 70 | pos(Map, X1-Y1, N1), 71 | elevation(N0, N1). 72 | 73 | move(down, X0-Y0, Map, X1-Y1) :- 74 | X0 = X1, 75 | Y1 is Y0 - 1, 76 | pos(Map, X0-Y0, N0), 77 | pos(Map, X1-Y1, N1), 78 | elevation(N0, N1). 79 | 80 | move(left, X0-Y0, Map, X1-Y1) :- 81 | X1 is X0 - 1, 82 | Y1 = Y0, 83 | pos(Map, X0-Y0, N0), 84 | pos(Map, X1-Y1, N1), 85 | elevation(N0, N1). 86 | 87 | move(right, X0-Y0, Map, X1-Y1) :- 88 | X1 is X0 + 1, 89 | Y1 = Y0, 90 | pos(Map, X0-Y0, N0), 91 | pos(Map, X1-Y1, N1), 92 | elevation(N0, N1). 93 | 94 | pos(map(Map, Width, Height), X-Y, Value) :- 95 | X >= 0, 96 | Y >= 0, 97 | X < Width, 98 | Y < Height, 99 | N is X + Y*Width, 100 | nth0(N, Map, Value). 101 | 102 | start_pos(map(Map, Width, _), X-Y) :- 103 | nth0(N, Map, 'S'), 104 | X is N mod Width, 105 | Y is N // Width. 106 | 107 | end_pos(map(Map, Width, _), X-Y) :- 108 | nth0(N, Map, 'E'), 109 | X is N mod Width, 110 | Y is N // Width. 111 | 112 | lines([], _) --> []. 113 | lines([X|Xs], Width) --> 114 | seq(X), 115 | "\n", 116 | { length(X, Width) }, 117 | lines(Xs, Width). 118 | -------------------------------------------------------------------------------- /day8/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(between)). 2 | :- use_module(library(dcgs)). 3 | :- use_module(library(format)). 4 | :- use_module(library(pio)). 5 | :- use_module(library(lists)). 6 | :- use_module(library(iso_ext)). 7 | 8 | star(1, X) :- 9 | phrase_from_file(tree_map(Map, Width), "input"),!, 10 | same_length(Map, Visible), 11 | map_visible(Map, Visible, 0, Width), 12 | sum_list(Visible, X). 13 | 14 | star(2, X) :- 15 | phrase_from_file(tree_map(Map, Width), "input"),!, 16 | same_length(Map, Score), 17 | map_score(Map, Score, 0, Width), 18 | list_max(Score, X). 19 | 20 | % PART 2 21 | map_score(_, _, N, Width) :- 22 | N is Width*Width. 23 | 24 | map_score(Map, Score, N, Width) :- 25 | nth0(N, Map, Tree), 26 | left_trees(Map, N, Width, LeftTrees), 27 | right_trees(Map, N, Width, RightTrees), 28 | up_trees(Map, N, Width, UpTrees), 29 | down_trees(Map, N, Width, DownTrees), 30 | reverse(LeftTrees, LeftTreesR), 31 | reverse(UpTrees, UpTreesR), 32 | maplist(count_trees(Tree), [LeftTreesR, RightTrees, UpTreesR, DownTrees], [S0, S1, S2, S3]), 33 | S is S0*S1*S2*S3, 34 | nth0(N, Score, S), 35 | N1 is N + 1, 36 | map_score(Map, Score, N1, Width). 37 | 38 | count_trees(_, [], 0). 39 | count_trees(T, [X|Xs], N) :- 40 | T > X, 41 | count_trees(T, Xs, N0), 42 | N is N0 + 1. 43 | count_trees(T, [X|_], 1) :- 44 | X >= T. 45 | 46 | % PART 1 47 | 48 | map_visible(_, _, N, Width) :- 49 | N is Width*Width. 50 | 51 | map_visible(Map, Visible, N, Width) :- 52 | nth0(N, Map, Tree), 53 | nth0(N, Visible, 1), 54 | ( 55 | ( 56 | left_trees(Map, N, Width, LeftTrees), 57 | forall(member(T, LeftTrees), T < Tree) 58 | ) ; 59 | ( 60 | right_trees(Map, N, Width, RightTrees), 61 | forall(member(T, RightTrees), T < Tree) 62 | ) ; 63 | ( 64 | up_trees(Map, N, Width, UpTrees), 65 | forall(member(T, UpTrees), T < Tree) 66 | ) ; 67 | ( 68 | down_trees(Map, N, Width, DownTrees), 69 | forall(member(T, DownTrees), T < Tree) 70 | ) 71 | ),!, 72 | N1 is N + 1, 73 | map_visible(Map, Visible, N1, Width). 74 | 75 | map_visible(Map, Visible, N, Width) :- 76 | nth0(N, Visible, 0),!, 77 | N1 is N + 1, 78 | map_visible(Map, Visible, N1, Width). 79 | 80 | left_trees(Map, N, Width, LeftTrees) :- 81 | findall(T, ( 82 | Left is (N // Width) * Width, 83 | between(Left, N, NT), 84 | NT \= N, 85 | nth0(NT, Map, T)), 86 | LeftTrees). 87 | 88 | right_trees(Map, N, Width, Trees) :- 89 | findall(T, ( 90 | Right is (((N // Width) + 1) * Width) - 1, 91 | between(N, Right, NT), 92 | NT \= N, 93 | nth0(NT, Map, T)), 94 | Trees). 95 | 96 | up_trees(Map, N, Width, Trees) :- 97 | findall(T, ( 98 | between(0, N, NT), 99 | NT mod Width =:= N mod Width, 100 | NT \= N, 101 | nth0(NT, Map, T)), 102 | Trees). 103 | 104 | down_trees(Map, N, Width, Trees) :- 105 | findall(T, ( 106 | Max is Width * Width, 107 | between(N, Max, NT), 108 | NT mod Width =:= N mod Width, 109 | NT \= N, 110 | nth0(NT, Map, T)), 111 | Trees). 112 | 113 | tree_map([], _) --> []. 114 | tree_map(Xs, Width) --> 115 | tree_line(X), 116 | tree_map(Xs0, _), { length(X, Width), append(X, Xs0, Xs) }. 117 | 118 | tree_line([]) --> "\n". 119 | tree_line([X|Xs]) --> 120 | [N], { number_chars(X, [N]) }, 121 | tree_line(Xs). 122 | -------------------------------------------------------------------------------- /day7/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(dcgs)). 2 | :- use_module(library(format)). 3 | :- use_module(library(pio)). 4 | :- use_module(library(lists)). 5 | 6 | star(1, X) :- 7 | phrase_from_file(lines(Lines), "input"), 8 | phrase(cli(Commands), Lines), 9 | commands_tree(Commands, Tree),!, 10 | tree_size(Tree, _TreeSize), 11 | dirs_at_most_100000(Tree, Dirs), 12 | sum_list(Dirs, X). 13 | 14 | star(2, X) :- 15 | phrase_from_file(lines(Lines), "input"), 16 | phrase(cli(Commands), Lines), 17 | commands_tree(Commands, Tree),!, 18 | tree_size(Tree, TreeSize), 19 | LiberateSpace is 30000000 - (70000000 - TreeSize), 20 | dirs_more_than_liberate(LiberateSpace, Tree, Dirs), 21 | list_min(Dirs, X). 22 | 23 | dirs_more_than_liberate(_, [], []). 24 | dirs_more_than_liberate(Space, [file(_, _)|Fs], Ls) :- 25 | dirs_more_than_liberate(Space, Fs, Ls). 26 | dirs_more_than_liberate(Space, [dir(Name, Sub, Size)|Fs], Ls) :- 27 | Size > Space, 28 | dirs_more_than_liberate(Space, Sub, Ls0), 29 | dirs_more_than_liberate(Space, Fs, Ls1), 30 | append(Ls0, [Size|Ls1], Ls). 31 | 32 | dirs_more_than_liberate(Space, [dir(Name, Sub, Size)|Fs], Ls) :- 33 | Size =< Space, 34 | dirs_more_than_liberate(Space, Sub, Ls0), 35 | dirs_more_than_liberate(Space, Fs, Ls1), 36 | append(Ls0, Ls1, Ls). 37 | 38 | dirs_at_most_100000([], []). 39 | dirs_at_most_100000([file(_, _)|Fs], Ls) :- 40 | dirs_at_most_100000(Fs, Ls). 41 | dirs_at_most_100000([dir(Name, Sub, Size)|Fs], Ls) :- 42 | Size =< 100000, 43 | dirs_at_most_100000(Sub, Ls0), 44 | dirs_at_most_100000(Fs, Ls1), 45 | append(Ls0, [Size|Ls1], Ls). 46 | 47 | dirs_at_most_100000([dir(Name, Sub, Size)|Fs], Ls) :- 48 | Size > 100000, 49 | dirs_at_most_100000(Sub, Ls0), 50 | dirs_at_most_100000(Fs, Ls1), 51 | append(Ls0, Ls1, Ls). 52 | 53 | 54 | tree_size([], 0). 55 | tree_size([file(_, Size0)|Fs], Size) :- 56 | tree_size(Fs, Size1), 57 | Size is Size0 + Size1. 58 | tree_size([dir(Name, Sub, SubSize)|Fs], Size) :- 59 | tree_size(Sub, SubSize), 60 | tree_size(Fs, Size1), 61 | Size is SubSize + Size1. 62 | 63 | commands_tree(Commands, Tree) :- 64 | commands_tree_(Commands, _CurrentFolder, Tree). 65 | 66 | commands_tree_([], _, _). 67 | commands_tree_([cd("/"), ls(Tree)|Cs], _, Tree) :- 68 | commands_tree_(Cs, [], Tree). 69 | 70 | commands_tree_([cd("..")|Cs], CurrentFolder, Tree) :- 71 | append(UpFolder, [_], CurrentFolder), 72 | commands_tree_(Cs, UpFolder, Tree). 73 | 74 | commands_tree_([cd(Folder)|Cs], CurrentFolder, Tree) :- 75 | append(CurrentFolder, [Folder], NewFolder), 76 | commands_tree_(Cs, NewFolder, Tree). 77 | 78 | commands_tree_([ls(Output)|Cs], CurrentFolder, Tree) :- 79 | folder(CurrentFolder, Tree, Output), 80 | commands_tree_(Cs, CurrentFolder, Tree). 81 | 82 | folder([N], Tree, X) :- 83 | memberchk(dir(N, X, _S), Tree). 84 | folder([N|Ns], Tree, X) :- 85 | memberchk(dir(N, Sub, _S), Tree), 86 | folder(Ns, Sub, X). 87 | 88 | lines([]) --> []. 89 | lines([X|Xs]) --> 90 | seq(X), 91 | "\n", 92 | lines(Xs). 93 | 94 | cli([]) --> []. 95 | cli([cd(Folder)|Cs]) --> 96 | [Line], 97 | { 98 | phrase(("$ cd ", seq(Folder)), Line) 99 | }, 100 | cli(Cs). 101 | cli([ls(Output)|Cs]) --> 102 | [Line], 103 | { 104 | Line = "$ ls" 105 | }, 106 | ls_output(Output), 107 | cli(Cs). 108 | 109 | ls_output([]) --> []. 110 | ls_output([file(Name, Size)|Xs]) --> 111 | [Line], 112 | { 113 | phrase((seq(SizeStr), " ", seq(Name)), Line), 114 | SizeStr \= "dir", 115 | number_chars(Size, SizeStr) 116 | }, 117 | ls_output(Xs). 118 | ls_output([dir(Name, _Contents, _Size)|Xs]) --> 119 | [Line], 120 | { 121 | phrase(("dir ", seq(Name)), Line) 122 | }, 123 | ls_output(Xs). 124 | 125 | -------------------------------------------------------------------------------- /day6/input: -------------------------------------------------------------------------------- 1 | pqffvllhrhthvhshhpnhpnpqpvpvrpvpwvwjjdssmcsmccjvjmjjwnjwjwhjwwwzswwhvhwwlvvlbvbtbzbfbzbtbqbgbpbggwzggvjjdpdffbmffntncchtccbcffcjfjnjfnntssvtstzssmnnhrhlhbbwfwjfwjfwwbhhfhmmpsssbnssssfzzfpffdrdpdqqvnncjjgrjjmhhpqqcjqcjjzdzzpvvprrlglrrcmcqqtltdltddswsrrzzwgzzgssczcmzzmgmwgmggwwzttpccmcsmmvfvnvppzlzvzllgclggpfggfnfrfvrvwwvhwwvgwwrbbgfglflblzblzbznzhzffplffnrrcqqsgsvshvhlldhhvnhhmdddnssdvdwdwccggmddsmswwtctdtqqjsshhjzzdpdmpdmppjtjwjswjsjjjsdjjtrtbrbjjwwvnvppqphqhwhcwhwbbpgbbnhbnhhswwdswwlcczdztzbbbnwwtmmpvvgjjqgqdqzzdjdpjjnnffhccscvvchhbmbcbffpdpggvdvttpvpqqhggdtdhtdhhmghmgggzwgwrgwggwlggvpggcfcttzmtmgmvgmmpqmqlmqllsqqjbjwjsszczlzrzgrzzhshlhjjwttwnntbtjtjpplccqrqhrhssbmbttrddfvfwwjcwcvwcwwvpvggqwgwjgwgccvqqcmqqtqnqpnqnffdqfqhhqnhnmhmvhmhwwfrwrggnmmmcnmmgsszmzlmzmddcwwthtssgjsgjjgpgnppdqqcgqggzjgjngnrnggvffgddvtvctcftcftfnnnnhssbgsgwwthtqtltftqtnqttsrtrggwcgwcwmwgmgvmmzrmzrzjzmmcclmmtjmjhmmlhlwlppnpccbbrlrqrcrjrdrlrnngmnmvmcmzczztbblglccvzvppzspsddrzzlsllfzfsspnpdnpnvvvgmmpccmpcpgcpcwcddtmddgwgngqqcpqqlhqqczqqbvqqgdqgqmgmlmmvrrgfgzffbccldcdmmcmcgcngnghngngdngdndcncbbpqbbphbphpccpcwwjswwfttbqbsszccrbbdndsdrdqrqjrjjbmbtbdbbgbvgvcggwdwcccttqccnffjpjqqzpzlzvlljhhschhzlhhfhcfhchvcvtvtgvgzvzrvrdrgrwrjwjljhljlssszsqzsswhhmlhlrhlhzzgghjhzjjcllwrwtrrbdbrbnrnprnrffjvvphhvbbqbbscstsmslmlvmvrmmvvngnlnzzwqzzjqqsqbqrrtmrtmmfgmgrgjjtmjmrrddmrrqmrrjmjqmqnqmmcmlmfmffcgcclplffzvzwvzzjtztftqftqffjjpwjjbpjjggzdgzgwzzfrfvvhfvvwcvvbccfcvffpcpgpbbqhbbhmmzfmfvvnjvnjjhzhqqmffndndmmzhmmqnnlglvvjhjddvggqwgwdgwdggqbqgqrqlrrtptsswlssqwssbdsdrsddjsszjszjjpnjnvnjvnnmznmnddccpwwhshzzcfcqcwcddsjjmnjmjljwwgmglllqlhhctcvvqrvrrhfrrbcrrfbrfbrfrqffbwbqwbbjggsjjjnqqrqsqhhwnhnshnhhdjjqfqpqmmqgqgqggzmmnncrrpgglgqlqclqlsqqwnnfntnzttrnnmtmvvfppbrprzpzzdzvvtctnncpclpccsbbswwcscjssvhvhhqggzmgmqgmgwwgcwgccrllzhzzlzlbljbllmqqpjqqhrhqhjhbbjmjmhmddmwmcmvvmbbmvbmmznnwvwlwtllhwlwgwpgplgpgmgngjgglbglgmllvvlttgrrrlsrllghlggjdjwwfjwfjfvhjmgqnwhwpbdtzrphsqbmmvscslhbdzffsfshgsdjbqbwlgmrtschcnfhdlnndsvpwmwttfglpghhznmgfcjsdlwhnmfqvmpvhgpnnwtjfztbmtprqhsqtjwzhwcqjtjbtqwlcldnvggrwddmpllwnrqwdljwzfzqwcdwgqwvnthnrpcsfwrmqvbzjvzqnmdnfgtbzgtnrvblfwmhdsddgbffnjzvjzfpwglctpqhnqdvtblcchrlmndzhlsczgnsmnbwgnjngnjtlrdpfhqjrwcrqvcpspbtwcvgvvmpnwqjjpdpnslmcrcjnjmhqmrmfbcmrcmpbcbhpcvwqwflljfpgdvqhgdwgcphjqfnqzjjpsqnbtfzhftjtfcbhhcmmlwcfznsflfpphprrgvqwfgjcwfgjfsghzcbqrldwrjlzlbjhpgrbmgdpgzmfsqsphqbbslwwpzspccrhcfrgcjlfwhlcmzdcltbbpcrzglqgqntpwtmgstqlmcsqqbsqgmsmfznwcrfdgvsmnfqmwtsvqvlhwwjlrlhnsvcnrtwwmrjcgfncvlrcqrllndlvmrjpfjpgrrjcwhsqvlbtnlqgwjjqzwcvtvlnfnmqqshbcnqtcbvnwtwbfdgqmvnpmjhlsfdntfwwntvsrrsmspzqmglfnprjtdbmbgnplzzclsjpnzwdhcbhpfnqrgmgqtpfhgnfbqhrpmznbrshjhntzctslwhtgtjvpqhntmchhtncfjmbzcgnpcbpmldrtnpvrzqfftbjjcjlpwwgvmnstjghftcczjzfsftgzpfhbspqmrbfhcdfmqbrgrbsmjvgpbrnvbblwwvqzzpmqrspzvzppjfbgfftdvsdvmrjzhfslptzmgndnqqgmrrfnbbpvbmvpngwjhzvfbwfnzlrgwffvjsfdldfgchfjmnzfnzhwrwttrzlrhmnwvjjdqfmbpfllhrgmddjgnwjnbqwjnslcrdjrmnldcpsgzjpdhrpdfwhbvwhwnhcsmwcwstvqrcrqsnvjrzljfgbljfszchbsqnldgntvcscwqqmpnlwtlfmswtmvrlpzgbrjhtgjgpnhggnprpvwfqpjffqhtfvpnrptgrtwzzlvplgnfjmqphgmnssccrdndqgpljtwtntshrpgsjcdrpmccjnjdgmpmzbfhqjzphcswtwvvqcrwsjhtdqgrhqjmjjcrblpswcblnpzvfztqtbpgjcgngqmwrjtlmhvlsbmrdzwlgqlfqcqnsnjcnddssqbftjvnlgcwwfcgdpdmqrdsjmcnzrfrpnvjmbsltpzwjhjzqqvbgrltczbgvcpwdzqsvhddsbjgjgcmnldrfhnhddlvjcvsnghprjwlghhtghldcqsdcdgnmbcjglvjjvvlbhzczlmjsdqtdpzdtvfztgsdfjsdtfchvzcgvhjnnncmsrfvvmcsjjdftmlpczgvtwngssqmzlmsrrsrbhhhrnwqhmpcdvqmdsvvtsgsqfdcpgsdgzvmbzpbpgtcbshnvdzlmpnwmqrvnmrjprmvppjwfbjhlhzsfhqqzmpbclqvsvfrcqwprrcvqcbbwvnqfwnrgjhlwmgzpfspqrvqrhmqnwvzjrhvvgdgswlvzjjhjtdctlthlpzqhjvwwbpsclpgflcnsdshrqbhmczcwljqlndfnfrcdgmptpsltrcjccnpdchgnswdcpsslcslcjznzpgfhznhbgqhdqvddmqzdnmpshhdcjrsmfjllhfvjvmzzhzrvlbpzqngwmlwcmqnppqzncvjshfrpjlptvnqfrfcrfnbhwhpdqqvjhsqvsmprtgfrddwzjzlwhhqvjpfrwgwvwpszzsfzwjtwngdjfllhjrmqjtmvwsvggnswpqpjbtcrnhhhlzbrvhjdstnpctjlgsffrrbfdvjzhwsgthgfsqnvqdcjffsttlrjnhtqqdpfqpjtdgfwcdwzmwfvqgglsrmmqwbszclpzwldwcswpwfwldrfmmdndcptjbmnvgcpntqcdrcffvgnlpjmcqjpfmbmwjfpqzbzhqtqbzsghbnfvhphfzzhfznttpfrqwpmzjchpzzrdclhdltlqbjmjdfdjqlqbwptsghcnvtdscwgpqnlhhvsvglplhlrwpnzmdbsbrlhmpczzfz -------------------------------------------------------------------------------- /day11/main.pl: -------------------------------------------------------------------------------- 1 | :- use_module(library(lists)). 2 | :- use_module(library(dcgs)). 3 | :- use_module(library(format)). 4 | 5 | star(1, X) :- 6 | monkey_data(Data0), 7 | round(20, Data0, Data), 8 | maplist(monkey_ins, Data, Ins), 9 | keysort(Ins, InsSort), 10 | append(_, [A-a, B-a], InsSort), 11 | X is A * B. 12 | 13 | star(2, X) :- 14 | monkey_data(Data0), 15 | round2(10000, Data0, Data), 16 | maplist(monkey_ins, Data, Ins), 17 | keysort(Ins, InsSort), 18 | append(_, [A-a, B-a], InsSort), 19 | X is A * B. 20 | 21 | % PART 2 22 | 23 | round2(0) --> []. 24 | round2(N) --> 25 | monkey2(0), 26 | monkey2(1), 27 | monkey2(2), 28 | monkey2(3), 29 | monkey2(4), 30 | monkey2(5), 31 | monkey2(6), 32 | monkey2(7), 33 | { N1 is N - 1 }, 34 | round2(N1). 35 | 36 | monkey2(N, D, D) :- 37 | member(monkey(N, [], _, _, _, _), D). 38 | monkey2(N, D0, D) :- 39 | select(monkey(N, Items, Test, True, False, Ins0), D0, D1), 40 | Ins is Ins0 + 1, 41 | Items = [FirstItem|Is], 42 | monkey_op(N, FirstItem, New0), 43 | Z is New0 mod Test, 44 | ( 45 | Z = 0 -> 46 | ( NewMonkey = True ) 47 | ; ( NewMonkey = False ) 48 | ), 49 | New is New0 mod (2*3*5*7*11*13*17*19*23), 50 | select(monkey(NewMonkey, ItemsNewMonkey, TestNewMonkey, TrueNewMonkey, FalseNewMonkey, InsNewMonkey), D1, D2), 51 | append(ItemsNewMonkey, [New], ItemsNewMonkey1), 52 | select(monkey(NewMonkey, ItemsNewMonkey1, TestNewMonkey, TrueNewMonkey, FalseNewMonkey, InsNewMonkey), D3, D2), 53 | select(monkey(N, Is, Test, True, False, Ins), D4, D3), 54 | monkey2(N, D4, D). 55 | 56 | % PART 1 57 | 58 | monkey_ins(monkey(_, _, _, _, _, Ins), Ins-a). 59 | 60 | round(0) --> []. 61 | round(N) --> 62 | monkey(0), 63 | monkey(1), 64 | monkey(2), 65 | monkey(3), 66 | monkey(4), 67 | monkey(5), 68 | monkey(6), 69 | monkey(7), 70 | { N1 is N - 1 }, 71 | round(N1). 72 | 73 | monkey(N, D, D) :- 74 | member(monkey(N, [], _, _, _, _), D). 75 | monkey(N, D0, D) :- 76 | select(monkey(N, Items, Test, True, False, Ins0), D0, D1), 77 | Ins is Ins0 + 1, 78 | Items = [FirstItem|Is], 79 | monkey_op(N, FirstItem, NewItem), 80 | NewItem1 is NewItem // 3, 81 | Z is NewItem1 mod Test, 82 | ( 83 | Z = 0 -> 84 | NewMonkey = True 85 | ; NewMonkey = False 86 | ), 87 | select(monkey(NewMonkey, ItemsNewMonkey, TestNewMonkey, TrueNewMonkey, FalseNewMonkey, InsNewMonkey), D1, D2), 88 | append(ItemsNewMonkey, [NewItem1], ItemsNewMonkey1), 89 | select(monkey(NewMonkey, ItemsNewMonkey1, TestNewMonkey, TrueNewMonkey, FalseNewMonkey, InsNewMonkey), D3, D2), 90 | select(monkey(N, Is, Test, True, False, Ins), D4, D3), 91 | monkey(N, D4, D). 92 | 93 | % monkey(MonkeyID, Items, Test divisible by, Throw if true, Throw if false, Inspections) 94 | %% monkey_data([ 95 | %% monkey(0, [79, 98], 23, 2, 3, 0), 96 | %% monkey(1, [54, 65, 75, 74], 19, 2, 0, 0), 97 | %% monkey(2, [79, 60, 97], 13, 1, 3, 0), 98 | %% monkey(3, [74], 17, 0, 1, 0) 99 | %% ]). 100 | 101 | %% monkey_op(0, Old, New) :- New is Old * 19. 102 | %% monkey_op(1, Old, New) :- New is Old + 6. 103 | %% monkey_op(2, Old, New) :- New is Old * Old. 104 | %% monkey_op(3, Old, New) :- New is Old + 3. 105 | 106 | 107 | monkey_data([ 108 | monkey(0, [89, 74], 17, 4, 7, 0), 109 | monkey(1, [75, 69, 87, 57, 84, 90, 66, 50], 7, 3, 2, 0), 110 | monkey(2, [55], 13, 0, 7, 0), 111 | monkey(3, [69, 82, 69, 56, 68], 2, 0, 2, 0), 112 | monkey(4, [72, 97, 50], 19, 6, 5, 0), 113 | monkey(5, [90, 84, 56, 92, 91, 91], 3, 6, 1, 0), 114 | monkey(6, [63, 93, 55, 53], 5, 3, 1, 0), 115 | monkey(7, [50, 61, 52, 58, 86, 68, 97], 11, 5, 4, 0) 116 | ]). 117 | monkey_op(0, Old, New) :- New is Old * 5. 118 | monkey_op(1, Old, New) :- New is Old + 3. 119 | monkey_op(2, Old, New) :- New is Old + 7. 120 | monkey_op(3, Old, New) :- New is Old + 5. 121 | monkey_op(4, Old, New) :- New is Old + 2. 122 | monkey_op(5, Old, New) :- New is Old * 19. 123 | monkey_op(6, Old, New) :- New is Old * Old. 124 | monkey_op(7, Old, New) :- New is Old + 4. 125 | -------------------------------------------------------------------------------- /day12/input: -------------------------------------------------------------------------------- 1 | abaaaaaaaaccccccccccccccccccaaaaaccccaaaaaaccccccccccccccccccccccaaaaaaaaaacccccccccccccccccccccccccccccccaaaaaccccccccccccccccccccccccccccccccccccccccccaaaaaa 2 | abaaaaaaaacccccccccccccccccccaaaaaccccaaaacccccaaaacccccccccccccccaaaaaaaaaacccccccccccccccccccccccccccccaaaaaaccccccccccccccccccccccccccccccccccccccccccccaaaa 3 | abccaaaaaaccccccccccccccccccaaaaaaccccaaaaccccaaaaaccccccccccaaaaaaaaaaaaaaacccccccccccccccccccccccccccccaaaacccccccccccccccccccccccccccccaaaccccccccccccccaaaa 4 | abcaaaaaaaccccccccccccccccccaaaaccccccaccaccccaaaaaacccccccccaaaaaaaaaaaaaaacccccccccccccccccccccacccccccccaacccccccccccccccccccccccccccccaaaccccccccccccccaaaa 5 | abccaacccaccccccccccccccccccccaaacccccccccccccaaaaaaccccccccccaaaaaaaaacaaacccccccccccccccccccaaaacccccccccccccccccccccccccaacccccccaaccccaaacccccccccccccaaaaa 6 | abcaaaaaacccccccccccccccccccccccccccccccccccccaaaaaccccccccccaaaaaaaaaaccccaacaaccccccccccccccaaaaaacccccccccccccccccccccccaacccccccaaaacaaaaccccccccccccccaccc 7 | abccaaaaacccccccccccccccccccccccccccccccccccaaccaaacccccccccaaaaaaaaaaaacccaaaaccccccccccccccccaaaaacccccccccccccccaacaaaaaaacccccccaaaaaaaaacccccccccccccccccc 8 | abccaaaaaacccccccccccccccccccccccccccccaaacaaaccccccccccccccaaaaaaaaaaacccaaaaacccccccccccccccaaaaacccccccccccccaaaaaccaaaaaaaaccccccaaaaaalllllllcccaacccccccc 9 | abccaaaaaaccccccaaaaacccccccccaaaccccccaaaaaaaccccccccccccccaaacaaacaaacccaaaaaaccccccccccccccaccaaccccccccccccccaaaaacaaaaaaaaajkkkkkkkkkklllllllccccaaaaacccc 10 | abccaaaaacccccccaaaaacccccccccaaaaccccccaaaaaaccccccccaacaacccccaaacccccccacaaaaccccccccaaaccccccccccccccccccccccaaaaaccaaaaaaajjkkkkkkkkkkllssllllcccaaaaacccc 11 | abcccaaaaccccccaaaaaacccccccccaaaaccccccaaaaaaaaccccccaaaaacccccaaccccccccccaacccccccccaaaacccccccccccccccaaccccaaaaaccaaaaaacjjjjkkkkkkkkssssssslllccaaaaccccc 12 | abcccccccccccccaaaaaacccccccccaaaccccccaaaaaaaaacaaccccaaaaacccccccccccccccaaccccccccccaaaaccccccccccccccaaacccccccaaccaaaaaajjjjrrrrrrsssssssssslllcccaaaccccc 13 | abcccccccccccccaaaaaacccccccccccccccccaaaaaaaaaaaaaaacaaaaaacccccccccccaaacaacccccccccccaaaccccaaacccccaaaaaaaaccccccccaacaaajjjrrrrrrrsssssuusssslmcccaaaacccc 14 | abcccccccccccccccaacccccccccccccccaacaaaacaaaccaaaaaacaaaaccccccccccccccaaaaaccccccccccccccccccaaaaacccaaaaaaaaccccccccccccaajjjrrrruuurssuuuuvsqqmmcddaaaacccc 15 | abccccccccccccccccccccccccccccccccaaaaacccaaacccaaaaccccaaccccccccccccccaaaaaaacccccccccccccccaaaaaaccccaaaaaacccccccccccccccjjrrruuuuuuuuuuuuvvqqmmmdddccccccc 16 | abcccccccccccccccccccccccacccccccccaaaaaccaaacccaaaaccccccccccccccccccccaaaaaaacccccccccccccccaaaaaaccccaaaaaacccccccccaaccccjjjrrtuuuuuuuuyyvvvqqmmmddddcccccc 17 | abccccccccccccccccccccaaaaccccccccaaaaaacccccaacaccacccccccccccccccccccaaaaaaccccccccccccccccccaaaaaccccaaaaaaccccccccaaaccccjjjrrttuxxxuuxyyyvvqqmmmmdddcccccc 18 | abcccccccccaacccccccccaaaaaaccccccaaaaccccccaaaccccccccccccccccccccccccaacaaaccccccccccccccccccaacaaccccaaccaaccccaaaaaaaccccjjjrrtttxxxxxyyyyvvqqqmmmddddccccc 19 | abccccccccaaaacccccccccaaaacccccccccaaccccccaaacaaaccccccccccccccccccaaccccaacccccccccccccccccccccccccccccccccccccaaaaaaaaaacijjqrtttxxxxxyyyvvvqqqqmmmdddccccc 20 | abcccccacaaaaaccccccccaaaaaccccccccccccccaaaaaaaaaacccccccccccccccccaaaccccccccccccccccccccccccccccccccccccccccccccaaaaaaaaaciiiqqqttxxxxxyyyvvvvqqqqmmmdddcccc 21 | SbcccccaaaaaaaaaacccccaacaaccccccccccccccaaaaaaaaaccccccccccccccaaacaaacccccccccccccccccccccccccccccccccccccccccccccaaaaaaaciiiqqqtttxxxEzzyyyyvvvqqqmmmdddcccc 22 | abcccccaaaaaaaaaaccccccccccccaaccccccccccccaaaaaccccccccccccccccaaaaaaaaaacccccccaacccccccccccccaacccccccccccccccccaaaaaaccciiiqqqttxxxxyyyyyyyyvvvqqqmmmeddccc 23 | abcccccccaaaaaacccccccccccaaaaccccccccccaaaaaaaaacccccccaaaacccccaaaaaaaaacccccaaaaccccccccccaacaaaccccccccccccccccaaaaaaaciiiqqqtttxxyyyyyyyyyvvvvqqqnnneeeccc 24 | abcccccccaaaaaacccccccccccaaaaaaccccccccaaaaaaaaaaccccccaaaaccccccaaaaaaaccccccaaaaaaccccccccaaaaacccccccccccccccccaaccaaaciiiqqtttxxxxwwyyywwvvvvrrrnnnneeeccc 25 | abcccccccaaaaaaccccccccccccaaaaacccccccaaaaaaacaaaccccccaaaacccccaaaaaacccccccccaaaaccccccccccaaaaaaccccaaccccccccccccccaaciiqqqtttxxxwwwyywwwwvvrrrrnnneeecccc 26 | abccccccaaaaaaaaccccccccccaaaaaccccccccaaaaaaccccccccccccaaacccccaaaaaaacccccccaaaaaccccccccaaaaaaaaacccaaccccccccccccccccciiqqqtttttwwswwyywwrrrrrrnnnneeecccc 27 | abccccccccccccacccccccccccaccaaccccaaccaaaaaacccccccccccaccccccccaaacaaacccccccaacaaccccccccaaaaacaaaaaaaacccccccccaacccccciiqqqqttssssswwwwwrrrrnnnnnneeeecccc 28 | abcccccccccccccccccccccccccccccaaaaaaccccaacccccccaaacaaacccccccccccccaacaaacccccccccccccccccccaaaccaaaaaaaaccccaacaacccccciiiqqpppsssssswwwwrrrnnnnneeeeeccccc 29 | abcccccccccccccccccccccccccccccaaaaaaaccccccccccccaaaaaaaccccccccccccccccaaacccccccccccccccccccaaaccaaaaaaaaacccaaaaacccccchhhhppppppppssswwwrroonnfeeeeacccccc 30 | abccccccccccccccccccccaaaaaccccaaaaaaaaccccccccccccaaaaaaccccccccccccccaaaaaaaacccccccccccccccccccccaaaaaaaaaccccaaaaaaccccchhhhhpppppppsssssrroonfffeeaaaacccc 31 | abccccccccccccccccccccaaaaacccccaaaaaaaccccccccccccaaaaaaaaccccccccccccaaaaaaaacccccccccccccccccccccaaaaaacccccaaaaaaaacccccchhhhhhhppppsssssrooofffffaaaaacccc 32 | abcccccaacaaacccccccccaaaaaacccaaaaaacccccccccccccaaaaaaaaacccccccccccccaaaaacccccccccccccccccccccccaaaaaaaccccaaaaaccaccccccchhhhhhhhpppssssrooofffcaaaaaccccc 33 | abcccccaaaaaacccccccccaaaaaacccaaaaaaccccccccccccaaaaaaaaaacccccccccccccaaaaaaccccccccccccccccccccccaccaaaccccccacaaaccaacccccccchhhhhgppooooooofffcaaaaacccccc 34 | abcccccaaaaaacccccccccaaaaaaccccccaaacaacccccccccaaacaaaccccccccccaaacccaaaaaaccccccccccccccccccccccccccaaacccccccaaacaaaccccccccccchgggoooooooffffcaaaaaaccccc 35 | abaccccaaaaaaaccccccccccaaccccccccaaaaaacccccccccccccaaaccccccccccaaaaccaaaccacaacaacccccccccccccccccccccccccccccccaaaaaaaaccccccccccggggoooooffffccaccaaaccccc 36 | abacccaaaaaaaaccccccccccccccccccccaaaaaccccccccccccccaacccccccaaacaaaacccaaccccaaaaacccccccccccccccccccaacaacccccccaaaaaaaacccccccccccggggggggfffcccccccccccccc 37 | abacccaaaaaaaaccccccccaaacccccccccaaaaaaccccccccccccccccccccccaaacaaaacaaaaccccaaaaaaccccccccaaccccccccaaaaaccccccccaaaaaaacccccccccccaaggggggffcccccccccccccca 38 | abcccccccaaacccccccccaaaaaaccccccaaaaaaaacccccccccccccccccccaaaaaaaaaaaaaaaccccaaaaaaccccccacaaaacccccccaaaaacccccccaaaaaccccccccccccaaacgggggaccccccccccccccaa 39 | abcccccccaaccccccccccaaaaaaccccccaaaaaaaacccccccaaacccccccccaaaaaaaaaaaaaaaacccaaaaaaccccccaaaaaaccccccaaaaaaccccccaaaaaaacccccccccccaaaccccaaaccccccccccaaacaa 40 | abcccccccccccccccccccaaaaaccccccccccaaccccccccaaaaaccccccccccaaaaaaaaaaaaaaaaccccaaaccccccccaaaacccccccaaaaccccccccccccaaccccccccccccccccccccccccccccccccaaaaaa 41 | abccccccccccccccccccccaaaaacccccccccaaccccccccaaaaaacccccccccaaaaaaaaaaaaaaaacccccccccccccccaaaacccccccccaacccccccccccccccccccccccccccccccccccccccccccccccaaaaa 42 | -------------------------------------------------------------------------------- /day8/input: -------------------------------------------------------------------------------- 1 | 200120010031113332213034140102430141241124321111512323442304040044220141342121012210022220211111200 2 | 111021120230012003124233312003010303204555454332453445353125225214221214442214301113012111020220220 3 | 010000112330232223210123331341111021455213441355415452453433542411022110033014112420103200010200112 4 | 210220131023203033023421012411405531115123145115445215311422135252541100222231431331003220231121021 5 | 020112210133112114444340100410411231114131452544155151415233415312511222041221113442132231003203100 6 | 121210122332301142321211440441113455552434332511455325315545354524142541534411112013143013120333022 7 | 002022223332143323320030004111431434153352153321414154453442552321332341355132444030442110103203212 8 | 212130023213100232130230411132244242133251435525323326611211534441513532233340420321144212221332012 9 | 112201210213131241203033341411115513233426453426433653356253533133113511115222441140433214102332200 10 | 212012000101044144022321521321444445566546646625625665232323663631331412343532242340023204432003233 11 | 101233132121222100241254211542133266356326564552445466322626353633223221135151311240430411433022011 12 | 200132020222314334333551152431232424524623645555522366665322366466545513112135535223102441334310202 13 | 023113000020114221524122422222662645435544455234636242322656464245462233555511334411233402112203303 14 | 323212301014434412315252233452332225554646452654545433445553336343544664455435323243510303023142200 15 | 310022200424121333144123222262332322343322244646667564465544426245466232342143412141451122001041322 16 | 212301111322001335441132334525635254352425553354565445643472236236266635446421522132452121404230333 17 | 222212444300345211222512256444456624535343536756355746664436374344346652444335121144422222340114403 18 | 133103420101433344253425324366444265345745457464444766674564476573243345254266312555221132304022243 19 | 104024111323421413115464433455553477333456354575666765646757774776752425462423244113225443242031103 20 | 102001244212344453145353232652647556546465453563544776667356374453675332254663444121345213131024201 21 | 224444241243433331136646422564367344447534333336573546336576477746463642222264422255444411444213332 22 | 111102440221143134255523244546456346745346547453543465664363545634575433436342252431313443241200434 23 | 134231321331555233423635635366465473563535535586445888474374535544636375425246452265522242444124430 24 | 234112414314111344422243544643454775656784865866884848444877466476364476356322553554245224411411221 25 | 034400114351525345222546546744637535635657575787587675474664764764736443646462322222525151425423322 26 | 200214241324215322354446653764777674587466544685754678446567884767437556756324542252661541311422130 27 | 343144113253113264625454456777333344687566876677476786864558645875776364454562645333232242321313142 28 | 343024121143435322432236376444777668467756646886688564457885758774655565674476525265433235351133020 29 | 403402124545255442342535445764457654765745674556784877787445455686478773563733543423236235255444144 30 | 103322531152132266562676355566367676848756788886766967585484486646776553753344443262466623351341241 31 | 310355244513624552353465735465555764667556575665597778969594858667646774744555337236256442514154340 32 | 023311451112523462333545544537465688645559988688956997665697964748587858337347363225646321434554144 33 | 320135522136342345436443367666564847488558589757575579796688785767645678467555334323622425311134113 34 | 302355525243323546577736555686874886486985688686888898966978978668487864787645754566534465541511251 35 | 334125312126266532347576536548547584696886997768569758698995755875465674754333433642553345425533431 36 | 341111335132225635365534457665748575977867585959997886979957965558787465664637533766462255534332423 37 | 332515314534343636736373478687676678865555895657977886779567677978977887466835476754353523355412552 38 | 223554423243256435734467677444784886576856669787898778968956989875566754875777467667635224535114135 39 | 155522522343322534364735656868875656687568869667769697877887796866975856457447636733764232364431215 40 | 242345244424435673345476658556448689589759768689899966877768987857579874745884637474453634352133231 41 | 415255446645436567674735664645455855996887768879976678686967768687868985856885736776326622253351232 42 | 345511155426334655353457846578475998667966669787979667866969678557875668566464436456435236255355314 43 | 142554534636264637437346664558867877978687978689679869967766679569789677485678377367342526223134543 44 | 445152112563265336347774464854776998568899676687677797996796877777879786686845577654534235322155423 45 | 333311452256452445537757558677965658888896678979799998788899698785896978877575444547572432544335251 46 | 153342523322435374455644657476596955598987666997999878876686677879688676464687476363732553363413554 47 | 144335145664565566437454557675966795686769969779977988878679878778787789465465637576634655354532332 48 | 152415343652336664567566647557776598677998979889877998977867798897785759685544636646555455665423232 49 | 233452324356364643433768554555595977968766779897887998898666688775789556775758843355374525244243434 50 | 415514136342636535455644448567857957878867697988999887897878896698589669784466744746433345345355353 51 | 232342145445335734443368474877857768999979889789879797978786868766697957448687837436437246435352325 52 | 423142134652644455355368647749855698998886897798977997799867788779868756865564445675347463653623132 53 | 221215125542657466763755887857659858677696867997877899797779899996787779754784846775376254442211254 54 | 154531463524644747547747455647685566769977767978799879788898879798999996758665537564563322242224125 55 | 114543323332546776763457675777969696978788779877889799879998997975759878686666834757774555334611241 56 | 353441154256436766664748544445957885788777978878979877989798876799786999466647747557553324526153313 57 | 433233236244364537664567776764977668967888876787887977898978679686668778764647857553662664333221513 58 | 112335142543334473565677774456986769698869989679787999966877889796668798648474667745633463364123315 59 | 113555236654542657737447854474695576987788777767987976776779677896568655666568777374452626625515123 60 | 335535115334436455537766485588496998559679678997888767666867796988758985466776445675326242423551222 61 | 113534446446435634464566878474597579966586699697988866966997787776788976778774466655756463456235323 62 | 432234422656545375357656547448457656589888789768979867898878979959955468888683644466555336562315155 63 | 313344415452422533675445775845665999956589788887986877769867786689888565577764433373633363624515141 64 | 222432351346446453465663784584875977688789959977876966969658866777886544775874577535665532224311252 65 | 225114233145352533344653757488874695566977756698769768695668575699668757584555454357642544414312222 66 | 033415322244643242337557674678486867575857998965787859688788778777887745544746656765646262354135222 67 | 244444135424622245536477356767676647596876888859989597677576756885858547856577434533266366252341111 68 | 043422441154553466473376764757644888596669857975585975898957778585855575867574554436566563342243533 69 | 331142132342425642446677456357664865566895568659588999997598897847485545576757377726563624233332331 70 | 023252542543632422666654576368776445864568889675685656595757555564576478356355573264462564525315531 71 | 401013153355343645357335364463874854866687865999886679877556446867474565563474773455256232432344241 72 | 021145311524153334266573666344586785645787666877957988698886547444446737764473344255436645355133043 73 | 343022114235145422524664767447348848745548778464684486768568675765556575337775543626443412212441440 74 | 111402455441135334663624565477563468586767564584754776865658486876757446535673333342623334312243002 75 | 300312451335434322222245676775746358685854756547745674447587647487533473336654232544332431554454412 76 | 433111155454541556355524273356653577688858857767884847858548544877576457444762553325524214215402141 77 | 131233333423335563265232427676636343767667757678865557657665545337553674363435662333422331253432142 78 | 424110224332255444554444426563344537343587775787775766858448446366677553432226234426335534235001312 79 | 333412002215124441543424366273747763767633456777658554454464446357566564765333524264253113145112300 80 | 101110030515255434456252656567734365435643756543777575374763565634563366532624443621453215143234300 81 | 303322412424455315323623364345353365376676743654344676735433644466637676342646445331232331222232310 82 | 323112211415542144152522545435246756534467755554567676637543357465766366552324534423444455001240332 83 | 104010010231221552145233456226456635564775656444567465773637433733444632663325561451234351230241312 84 | 121411232340543435321316435636242655564355535365574763633547465475523553325562122152444444042300041 85 | 131012210332331125512334254246234345354543573744464635755354544666345534262435114123351541032131413 86 | 320204021134412321515435566234224352423426577577364457356445435455454244243342521425351312003010221 87 | 323114214132034241313542544555435465334424654666346364554655422236635456436354122354410044244241323 88 | 013302120424301452153353441245652435266525344656664634425626224355262362255351231351513443132401213 89 | 320030122021334215313244242334523262333453263233364243362363226452453421344311524253311414201210001 90 | 232000301112410134252124412414346224626463252363536262245565624425334453135542241232142142113023001 91 | 023101113421202000305251552134255163452646652324334242436543224522235515444445314014323100240020120 92 | 320223110031202012323335553432231212252653563665545464422324656333443431535442453303001103202231020 93 | 102033222010100142203435155413125314311166645446465322244546532441244154143433143443342400201012012 94 | 103310002120123402241302221241151441435355114335344522434421453552354154135223134443030043002000021 95 | 112323110033212002113322411233332355223342424233213123445224135331545115152043042400020200022133330 96 | 022111301200101044211214231433231311322554214331413543414521424255241531111410022413003020200231110 97 | 012022111212202121003233141343155411314255551134343533133453252153433344441013011221420230021203220 98 | 221101122202110034040022441212441254112211113355531534335143125434435312222200311411322330203331100 99 | 210122210200133032213341213111433213432513121525124133544144433541201142230241123430213303001122221 100 | -------------------------------------------------------------------------------- /day3/input: -------------------------------------------------------------------------------- 1 | MVWpzTTrTFNNLtssjV 2 | hRJncnJCnhPCnBSbCQRhhQRPFHmsbHLzbLNHsjNNFmGGGsGF 3 | lSBQJBBBBcnccnQvBnPQznfrgwlrTZfDwTfWqrrpgMpw 4 | sRPgrzSgrSbfTrgspBPsDWWTmdnvdZWZwTmwvdmd 5 | tVGpCGqCGjlHcNGVNHZDmnZMWdWMWCdZDvnZ 6 | HqpQptLlclLGtlpcjHNhQqfRhrSBrrbfbrSRrsPfBSgg 7 | JpjLbQbFPBjDBBJLWltglfBfhhlcctht 8 | vNFmsdFsnmzGtWvgzhzc 9 | rqwRCCqmCTqHCnqRNTNFsJVMQSjLRbbVVbjQVLbLSV 10 | mLNNCNDwBwDnmCwnJwLRvdlqZclRccsgvcZndc 11 | QWMtVWbpVlgHHcgMHs 12 | VsTVWhThsVQWzjtQPpVWjWbpwJNCJDCzSNNCCCSfmfBCSGLL 13 | NbSfHnwDvwwfHwwQsHbWPgrsZsZjRPLRgLWhWP 14 | lmMlTGFzVmzqjGLLZWWGhrCh 15 | qFclMprqmrvbcnwDQtNQ 16 | tWQZFvvtWQWbqQQggZZLvpLrpzDrmGDmmDHPzPzHrfnHTG 17 | NMlhlTMccTCVBlRNHzJnzDDmnJmnGGBf 18 | NMMSSSSSlNVMdjdNSNNhFwTbvbLqjbtLwWQwZqgg 19 | jPwcJwRmmhJpbhNJVgDbrHzzzQzzBQHg 20 | tdZqlCnnnlvZCqlnlCSqZdFCHGDBgzsDzssBtHGLQtrHsssL 21 | TZZFSdrdlZMFZRMwMPmNcwNmwm 22 | nsdhzmDBGQWQPvJPjbbW 23 | gCgBqCNpMHTwgwqMPRJJTtWjbFRJFJvP 24 | ZlCwBrwgmzhGzDrd 25 | sTBHfcnBTnqHRvqPgFFbLtrQTPLjjm 26 | GWzpwSJSpbwbNNGJPQrrtrrrrgzLtjzm 27 | NNSlCCdplWwplCwSndnssdZfqVbHvfqc 28 | rrfHgqnlllRrDgrCbQfszMPtmzPQzFsFMQ 29 | JJLGVGjcwVcPQNNNtRPmLM 30 | WThVJJWJBdGwBpBTqDrSRCCggShqbSCb 31 | TbCqzqzmbCffzDbHRddLbdRFRS 32 | ZmvZJPjPwwWNZJGtWSDRRDFWSLhhhMVVWL 33 | ZwplGwmptNjZnjvnGGPjJlZppTrTsCczfggBgfgfggCsBrqr 34 | gMBBbfBbBMfnMsvRvWJhDsQW 35 | ZZqHLzczjjsLzlpjqTprNJvhQpRvtRJJQrtQtJ 36 | llZlzZZzPZZqsTZscHczfnSwSPSwwgSBwwSnPwnf 37 | chMtcPPgQtthqgvczhMTcCSBLBlGpsFnBnnsGvLplSFG 38 | bhRmJWDRmHSmFGBnGBps 39 | jdDZWbrDdDbbdbDrRRWwRjZRVqztCzqtcThcTQtgqVMMVzjq 40 | flNmNHgcZwTzRLzMLRPlzz 41 | nntqBJtFbbCbBVCnBtFjJjhVhLzLvRLvgRRvPvpMpvpp 42 | CgJWjJQDjgBtnGNGfcssNfcwNW 43 | MrMpMrGBznjPMGCmCrrjdwndfJLQNfdLQNdNggdL 44 | sJVcZqvhZtVqhDFFsDJslcdwgwvwQwwQNbbTbwfLLTgL 45 | RDDRcsSsstJstVDDqctszzmRmGjpjBRHPmmGHGrj 46 | tdplZtlrBGwTlLQQ 47 | sfsPPvNhWLQBhGQG 48 | zPVfzVbbMcscvVfzzNgcJHnJZgtrrndJqjJqndrL 49 | nglLjRCCHLLCnNCLHQnFNQmmVMbVmwMwlMwMMMWwBTsT 50 | cqtfcqZpzhSvvBfWwbvrbT 51 | PPqpDSqcSJPdPhtPtqZcpPtGjFRFFFNLJFGRgjFbGRNbHn 52 | gjtRSLMqLdSgLMCltTSDQcQQqhDcfcfrWDhWrr 53 | GwFZCwNzFJsPmFFmZmPPNhvDDfDWWmpvQWWfVDQppW 54 | swNGZbPBGwnCgBBlBljl 55 | BsrDsnQGwFFQQtfNTBNSffBgBt 56 | VJlhWVLlRppLQZTCbtZTttgJ 57 | ppLqqRhQdRPhqPVhdPjhljqHFnGnzFrjFFDznHFHrmwwnH 58 | CJMmmJLmlshCCdmzjHjPWztgdnjttt 59 | GwZvGwrgTcFpzHWjnT 60 | GbqrvrRwbrbGbwwZBbgfhmJMmsDJhNRfLChhCh 61 | CfgfjCLCgfgFgBhBsccswQwtsQHvBBtc 62 | SbSMGbnmDMGJWmRmDmvzwtcscWtQzsrPsvHc 63 | DbJdNpJSnMSJmpSSNVqgqgTTFVQTFqdZLq 64 | MBMCmlllPSSlmmPPjCMpPgggJcnZgntJsDvHsDZt 65 | hrNzhrRNbrhbGRbfpVLRGNqqngvnttngJctgDZJGcZvHvZnc 66 | LTTzVqppSmwdTmQW 67 | mmlBQmLbsbmRnFnwlqqprF 68 | dZScZSZSdHcNMDcJwLqRfppzpzfTpHfF 69 | JLWJLJJJdMmGtgCWjQjt 70 | PPMzpVDblwGVMMzDLLjrcrjdzjdTzLjd 71 | RRcCJRcNQRBqtCFBRJJsZWBWrjLWLHZZWndBLWjh 72 | qQQtttNqsqqtJRgqQfcpcgDcbggplGbfMp 73 | QmmSTQPmLSmjpczMJtwPzg 74 | BHHHdwdvDpllvctjZv 75 | HdrDHNfrrBDGGBhBNfHNsLFqmbRQSwqmGTLnTbSF 76 | gcMmgRQPqqPPsgjFSvctCHvHllSSHcvd 77 | JTWfZwhTwzbWwTFTrZnTrDDlDSVtVHLVShtvSHvlHL 78 | bWbWBfzTfwrWJNbTrnzfTwJFpmMQgqsFRsQGqRMggPmPBG 79 | GqCWpGGLpmpWjbSDGjGGmwCzZlvMBTrCvsrlwwswCl 80 | FPFHFVdJgQHJZnslrgvsTrwMlNgw 81 | hQVchcdcZZpZqcDG 82 | JbBRgBsRffgPPFQttQvQQMvG 83 | dmNZgmZVtGTNtNGC 84 | ZqqndLZnccqRbsrgpggsBc 85 | DDvMVmTjwFWPBBTzBF 86 | cqnggcbNNCqbQQqbZbpfQpqgRWlFhLRBhRzRPLFJhlJBfPLh 87 | dpscpcncbbqcpMVSvSrPDMsrjr 88 | hGCGZmVRRcMVsGMtmZWssmFLzbFblnnzfmqbfnzNNb 89 | wjrSPBJdSjjDrggpSJpdrSnlFNlzLTnqNLqqpbqqfMln 90 | dMwPBHPPJHDdvrBBhshWCGcsQRcHRZGV 91 | vdHwhqdtLdVnHBZbFBFzbBPS 92 | TmNCLNDpWfCNmpCgTWNTDMMZlzSggBMzlZlMBlBbZZ 93 | NQfWcscDNQrhqvGLrdhVjh 94 | lZLqzzqvgrCRcQcCLD 95 | HSVVwNTJzwVNTDQrRrrdrBwdhd 96 | TpNTzsfSTVsSpHVppzFpgvvlqZWZPMvMjPPGGsgP 97 | BCMLshLdLDDCgwFRwHHqqRqRWd 98 | QnSqQlGSfpQzTQJNTPNwNPFRFcccHc 99 | mfJJmztnQpGpvnSzGrsqgrhrBBhqjBrthL 100 | BSlmzmlvdNnlQlQQJnJHRVFVFVVqMtqRMfSfCw 101 | WBPsDPBBjfssFHMRRq 102 | DLWpGhbPjbhZrhZDnBQgdNZmQNgmvdzg 103 | WWvgBFgHWChBzgBFbjbtPtnPrsHlsRMrwRrMRR 104 | SGfNpfdGfVpVSGGppSDdwRwclMlfPMwccsntPqPw 105 | TVdpQDSpQZJpVpDQQFBbthvmWzmgvhbjzJ 106 | VVCCbzqdbzhFHvbdhZFPmhCPSNRNGSrPJfTNRSGJfGwPST 107 | LngtBnlcnDvLcTTRfTTwRtGNTG 108 | DpnBjMpLlLDQWDgvpLvbqzmbjzVjVHqbFFqbFq 109 | SbzMbNQQSDdmvqqzdSlWFpwZnvpFWWllpFww 110 | CjLPTPjjLCPtBCLJjBLPLBTFsFFgfwwpZgplpgFnWWRl 111 | nPncrBHGnmrbdmdmNN 112 | FnlblGlTTbNVLVtRvQQvgqRQBCvgNr 113 | DPMDMpMHmnzjPqDhQWvvQvhghq 114 | zMMcddznsjFTldVGlFGT 115 | cLSNGLhmRRVmlVCq 116 | HvzbQBzBMQMpQDpCSlSVZRSCqV 117 | QwWznWnTbQSMMJQHnvwbWjrhNhLFgsGNNrFLNnFNhd 118 | dBrWNQWWcTNqqnNN 119 | bPlmgRgRghlCVlbhwZccCZjZqvmqvmTTvGqmJTvqnGTGvLLJ 120 | DCDZhjllcpDMrSQS 121 | ddtNNTFTwRzGRGCwqnBMjlqMHMfqnB 122 | hDpPsQLLSprhnHVhqhVfHM 123 | QWLWDQZpgpWbQgfspGGRdcGcCcCcztTGZC 124 | GGHFdGwFlswcFtnvTfjMjBFfNBjNBZ 125 | JWmSJLPSRprWWPWVMMVQpZfBvvfQtj 126 | RzPSPDbDDhbhPDLRhCgGHHccsqGCqqtHzG 127 | dbSdptWddDMNtdFvttFclqMTZJlJTlMZqJTJTqjC 128 | BzfwRzrwPzfzLNGmZZCZBTGBqqlH 129 | hVNVQPNQQQVLPwhRrQwgWWvFdDsFWSbdWgdFSFDb 130 | hhSnmhtZSFSqZBJSSqqmJJRHPPLgHtPcGGGcWGtvvHwgvG 131 | fCMpfTQjTrzrzCQMsQdHGHvPGPwLppPRvWPLLc 132 | MdTzCsCMzNzDCTjlmNhRmRnZBllRVh 133 | RrFglccgBVVvFNvCvWlgmDbbDfQDtCdjjDbDwmZD 134 | STnMqSLHJhHHnqLqtnBndbBdfQQZDtZD 135 | GHJPTBsTSsMMSpSBHJFNlWzcvFlzsVzvzgsv 136 | lplNdrVrVrWMMVcJfcDDzbqCCpDL 137 | SSSgvBRSjggPgzvTTRHTvFnfJLbcLsCDLnCLDCcJBsJq 138 | GmHjjRwvHSjHTRjrlZrNMzVMhVrmVW 139 | gdtFtgStSbHCbHMPZrFLPLrVlrVZrP 140 | hQnjMGfDqTvzvpBjVVjPRLRRjJ 141 | QmsQmhvvMtssHtWw 142 | RNjTGSCLJCGdRqMRFvMrfzMvzz 143 | ZpcWcVDpWBmWQMZZpZDpwBcznrshtntvfvhfFtzmvnzvhf 144 | WHHHcVWgQVCbCllbgMLN 145 | ZjjdJHSdSzvcZFMhhhDqDHtthw 146 | rNTlNqVWTmRPlshsDPDlph 147 | WbTNGNmQBRQbRNQgNGmCLdvvjzcCSBqLcLnScL 148 | bZwpSpBvSHCBqNzpdFffqQft 149 | nWRnGRnVnljmlDnzdPfQfdcQPWWfNq 150 | dmRDGMMlDmnVjgMlhBSwCbCgwHbBHhvv 151 | NwqLgLBLgnwNNBGpgsQsddhhpQQg 152 | JcztcZnzVtZvnVcJMTvTJtWtppsQHGdQhhHHQsPhWdPS 153 | fJTJnMmvZvMvRDqFblNBNNjlBf 154 | drZVzZzzNWWzwwTWTZrjWcLCqnRqNnLNLqCqnsPPRL 155 | JhlBgvHBBLnwMBqDwC 156 | GmGFSHmhJSGJwgFJmwJhJhgQVWVdbSWZQzZTrWtZzjzjTz 157 | wPGRPpnzgwwGgLddFBFrnrnJdc 158 | jCsVclQWmCTrJJddrdFs 159 | lWjlCqfmlWccpGPPSgcf 160 | hCThCzTdPcPhzqTzMfVfHrhMMmhVHgVM 161 | lJSJNqwJsZBSsSBFsMprDmFmFDfDDHgHDf 162 | JNGQsSSNGsbZZZSBwZLPtdLjttnqPCbtPbjC 163 | vnlWNpbrNrpShhQDLRLB 164 | MzCjPgffVTVgCJSRQhBdRdJS 165 | VPHcfcBfTzVMTttMzMfgzMfHvrllWvlnvNvlmGwWNwwNmw 166 | BwwsqPJqwBssLlFqLRCDzWwzDGRGGWfSRG 167 | vTtmmthvpphpnNgNvvpvRrDCddDQrCQCzCDrCfnf 168 | pppccNpTVVlqssHHVzBH 169 | HWHphZWVWvMZNvpMtfJZgssffsjJgBlslJ 170 | RLmrFFnGFrFFrrFCRwCrLNPwqfjSJjqJSJBbsqjbbsblfq 171 | LnFLPPGLrGNRQPmndLzPmPmpcDcMHhcMhVHvczcpHHchcV 172 | zwqqvNDVggwqVfNQRlszFBsCCJFtFlFPsz 173 | MSrrGTZPGSSMSjPbTmtlHBBFrFHFsHlsJsct 174 | MnmMPMSZZGSZWmSjnWgfqdgVQDvnqvRDggDV 175 | SQCSBShsQnSsSJswsNpVppPPMVpGpnDVgg 176 | WWjHvmtWZrwvtzzjTTRPrRRrMVNVVGgVGpGR 177 | lTvWjWLfWwbJCQqBSlbB 178 | cjPChhswrNVtMZJjVM 179 | pfvTFvTzLBFndGTlJmVJZmNlCMGtCJ 180 | nfvFTfpbBFdSFpTLswsWDbchwHCWHrbw 181 | lNdNPLJJLHHHlpPJcvtVcsBBrrBvBqrVrC 182 | wDTbwTQRZTMWsVWtmWhhTr 183 | nzRMbSZtMQDnpzzJHLHNflHP 184 | HrwwmwcRbmwcbrrTbwwcrTJWLlPshllhLccqLhnnlljhZhjZ 185 | GMFMSNSpCBSFSdGpNFpBznLlzzhzshlGhhqPhGGL 186 | nFFSCCSSfttBdddDQNDBQpSSrbrmWJwrHfJHWJrbVwWHrgVr 187 | SdddNNCmpNNDhMswhsmbhvHM 188 | frtzqqqFjgrWfgfqtthsnvRHZRRvFlhnvRZb 189 | rtrgqzzrbWtqLGLLtBWzfGcTNCCVGpSNDppTJJVddNpPSG 190 | WWJvJvBgpHSHScQRQSVQLzqL 191 | ddZTlZGZVfQhZRLLMqsR 192 | rPfwrGGrFjjNTGNCCVBggDJHmNDvbmmpmNJJ 193 | bbGrJPRVPtfsVfFlMjBV 194 | WQzhQQQNZQCWNnQDhzWdNjFZggmlHjjmMmMFjFHpMs 195 | CzQCSWDTWhNhzWhTGJwtRRqTblwcclvP 196 | HLDvZgZldDTnLLsswMpVLn 197 | FNVQzQSPznCMmpBwCF 198 | SqfJPfttqffjJPVlhvhZZtvdVDRZ 199 | jVsLvHvvdrSjpJFsGzmnmltnml 200 | nTNTRCTBTmmmFPMJ 201 | CQnCggWQDgBrrSqHjDDfSS 202 | ZpNlrZNcmctZbcZlmcmZhhpPvPHvwBMHJPMTMHBTFJvJ 203 | zmdCnGzGRnLDjQnzPvMFVHMVMLTVwMJv 204 | GGjqssqgzCnCzQsshcffmrbNrrNZtW 205 | DNpTwhpLlWMDWNMhbJjGttJFHgDcjtjG 206 | wqQrdCdqbFtCtJtJ 207 | vffdrwfPrsmqVBBWRVlRRlTSTWSTlR 208 | ZqTCTQQTFvsDSsBDvWBd 209 | hfBLzRLtHHLDDWRRWWDNbd 210 | pHhhnPzLfJcJhzHLzZjcmwCTqTQgwBqqwg 211 | WJHgqgFqrVrqgqCHwsJHHVFZzppZFGGfTtpcfbdpzzpd 212 | RvNMQlMBhwMdMfcpbM 213 | LLRQNBDSSNSwmDDBQRBRBCHsgrgHLVnJVqLsJsnCPJ 214 | BFhGsDsDsBtsPGtQDrrMdbdrffrffbJbRt 215 | cVVqScVSWWvVWgVZjnrHJgLfdrLrnrLLLQ 216 | WmvqNZzzzZSvVzqvcccSzSmqFGCDTGBPQGDhwCDhNDCwPBQp 217 | RqTlHHTTrQqHlTqsrVDqHbrZFZwhpBhphZBFhZpDpLLLfB 218 | nSzGCGdvzdGNPBQQBfhLZfFwFN 219 | WPPPCJMtJSQMJQCCWMJslRrrRgrMRbRqVqqTRR 220 | BMtfLsLZfTPmCtGWZrZqJNJqvpZdWr 221 | bRwgHhhRhbbSRbjSglcgwHHJWPcJdPrnNWrnqnWVVqpdnq 222 | bgjlSgDljHhjgwMPCLPFDMFPGGBC 223 | zJWjczcWjSWghZgzgSSSZflTqwlfqTTbnQwhdTnMdl 224 | NrGVCmNpHFPsrJFbFQMJbJdQTn 225 | JvrtpHHmrCGJCJmNvNpVCsHVgzWgWDDcjjgjDRStWWDLSgzz 226 | HzdFsBBVsfnTfsPmPtDcZqtMhDDz 227 | wrjjRQLlwwwrJQLQbCrbwlJDSlcSDtPZmPSDclWDtcDqWh 228 | RwgprLbNLrLbCCpRCrJLRLFfsGTNNZHBZnnBvvfffnvd 229 | MlqqlWZclnPtZtDSSvwQQjgQpNQSRM 230 | rLJTsBrsJBhshTNNwSQBWNvNgNSg 231 | JbbbChCHsJzHzbWdGHThlFnnPqlPlGPPGncPtFlD 232 | WcMVvwNNvjRcwTQwVcpNRcspPCFtbPztbCTFmtPtCJtbCzmz 233 | grrgDhrnDLnLrdfdLZlLZhmCqzlCbtJlSSStFmttqsJJ 234 | GHHDdgnLDDhrrrgZrZgLNVVVVcRNvcwjWvpWGcRs 235 | qhGhPSJtGhGtJtvNjnJjnvmNQQmj 236 | sRBFlbZsrdBRRGbVGBDwDMDQwQwMNDjjjVNV 237 | CzCflffbBszdBCbdbrtLcfhhgHLGgPccLSPh 238 | zShhHFzgJWFVFFHFHhRPNjwqPLPtLbtrbwVjjr 239 | ssnvTmvCDfpCZTnsfCqwNLNPwbJqNJPwrjZw 240 | vDvpmcnmnBDnsnJTJmQWMHMWzScFggRFRFSW 241 | nnVHHPLrnpssLnrpLRnHtHrjJcCdzCjcDzMzdqwRdjdDcJ 242 | WWTGQQzSGWlTmBbDJJjwMJjcvvlDjw 243 | TGTWBTWmTbgzghZhgzBgpVNrZPPfntfNrVLNNnZP 244 | TqhQnqqLnnqddttNqQWdtqQmppSSFFClRmzmFZFLSmSlFF 245 | BcHjGclVPPBrVrcjrGGDrMgcmmRJbRCFzpZmSDRpRZJJmRzz 246 | ccGjMgvPvsHMgvBHWlhQdqwtllwNdThs 247 | WjddwRGgHRRdMbrwHRwWjHDtDZplslnJnZrsDvCprJPJ 248 | QSLLFqQBffCFststlFnn 249 | CSSmSqzmVVjWMdMjVWgT 250 | lTfQRhVpRzjThpRQTTTlvHrvBvHnPMHgHqHJvn 251 | cGDctCwCdDCGSFcJsFJsFBvgnMBrHvvrqngHgmgssg 252 | SCbSDSFScNpfbRVVJf 253 | RrwmdwMVjMjMTghDWNTJDpWfWG 254 | SbPvNbvbSsPbSvZsPJtJWhHpGGGgJWgJ 255 | lSFvsLNcqzqLrwnFQMnVdmnn 256 | FgCJFTWntWTFtPLmJmmQJmCMMpljWZBwlGMljjjlwvwBvZ 257 | SDSbVbdScSDzbLZMBrjlZpVrZp 258 | ccsSDhSDffzbLNscfcfDcgqhPgTntqmnQmCgtgQCTJ 259 | VnCnrHnPPrCwHmVWtqfMQQqzCqffCZ 260 | DDbDcJJJbpJDGppFpqGZRWfGfddzMWtfWM 261 | tTTglDcgFjwNPHPPwHlH 262 | bMGbqqgPqqVVMGnbVqSMmRfPcJmCTPDDLJDTCmDm 263 | FFjjZvFRsFCctmtvtJWD 264 | wwFhHjQjwQhZrFjQbngglGbRMnSzgbRH 265 | GPTTJSgTPrPPmcTPpdJsGGGjqbRvqlztqlRqMzGjRv 266 | LwnfWLNwwHHQwHnjbbMMjWttqtMmMj 267 | mhwfBDhnQTpJBcBJps 268 | HQQHwMfwlltzMlVljQhVjjHPPPFGPFcCGprPTPPfDrDcGf 269 | pRLdvRvJgqLRBSJCcvFnCDTPTcTGnT 270 | LBLSJbRSLSqbSdBdgJRRqRbwjHHblQttlwtwhzpjMlwhpw 271 | NWLNSNSDtgSgghgdcwccmwGntwclnT 272 | FRCQzJRsvfVVjvzFJfQnffwCcmdwmHmmHmTwmCmdGBcq 273 | sjfJvjfzPRPzvPPVFMssvSLhSSWrMZnSDNrDDhSLZZ 274 | FvLpSLtCfPCWhRSZZMZJSW 275 | jbbjwbHjQmHjHsQrQFMnwTnJznwRzhJRnNTM 276 | gVrjqGqjgrgsFGLDtDBLLfLB 277 | cgTvRWWLVScRWflNJJDfVJmVlG 278 | nPPnnmqjmZHCHBHFdfwNsDhzzfJznhsfhw 279 | bddmQqQjpdFCQWtLQMMSvMMQRS 280 | wjnmPwCgjPnRlwnmvmvvPnTwbSSLLvsLDWdbbWzvsLzWbzbz 281 | NqrGqFHqJlfhhJGbszdWQzzLNtQDzz 282 | FfHFpphrJqJrpGBffcTnBjCnVTMjMRCnVljT 283 | SrfSJGJpSgMprMHdhBGhsdsshdGsmm 284 | nRTRPvQllQlblwvCjTwLTnvBqdhmHDPVsmDmdqshDVhNsP 285 | lbRFHvRwlnlLbnbjLbLjLCzggSpWfMFzSZpzZFJJWpJr 286 | vNLlFldlvPtHFPHQRt 287 | jcpRsScDgshzjqzfVStntBTPMTnmWttntMpp 288 | fSssgVjDsbqSVbCJClLRJLCZRZZb 289 | wnHmCJccDDcrNnrNMRDtTzpTlMpTzpBp 290 | PjSPPGjWjLzTjjMtzzMj 291 | hWvLLFWvHvczVcVn 292 | jgtngnnhMthcnLjMgCZvChDsmdNCvNNZDN 293 | bWqFPbFbLzRFfZBNDNNPZsNd 294 | RbJzGpzVLLLWHHQgTMwcTptQ 295 | sJBhsMWQnhhrFBsFhlQQMfrDCDpLlVCddjTdDDpqDLTLdj 296 | tZHHSRmNHcgmNzpDPJtttqjLqdpL 297 | HbNbZmcHQJbsFWvs 298 | VgPNWGbgSjGjfhRRFfzThtmtzF 299 | qLCQJBqqcPPmLHhHFz 300 | CcJvplQswNgZlNPSbS 301 | -------------------------------------------------------------------------------- /day5/input: -------------------------------------------------------------------------------- 1 | [W] [J] [J] 2 | [V] [F] [F] [S] [S] 3 | [S] [M] [R] [W] [M] [C] 4 | [M] [G] [W] [S] [F] [G] [C] 5 | [W] [P] [S] [M] [H] [N] [F] [L] 6 | [R] [H] [T] [D] [L] [D] [D] [B] [W] 7 | [T] [C] [L] [H] [Q] [J] [B] [T] [N] 8 | [G] [G] [C] [J] [P] [P] [Z] [R] [H] 9 | 1 2 3 4 5 6 7 8 9 10 | 11 | move 3 from 4 to 3 12 | move 3 from 8 to 6 13 | move 2 from 3 to 8 14 | move 3 from 7 to 2 15 | move 1 from 1 to 3 16 | move 6 from 2 to 7 17 | move 5 from 3 to 6 18 | move 1 from 8 to 6 19 | move 4 from 4 to 3 20 | move 2 from 1 to 2 21 | move 10 from 7 to 3 22 | move 1 from 7 to 2 23 | move 6 from 5 to 8 24 | move 1 from 1 to 4 25 | move 7 from 6 to 3 26 | move 22 from 3 to 4 27 | move 3 from 2 to 8 28 | move 4 from 6 to 8 29 | move 5 from 2 to 1 30 | move 3 from 9 to 4 31 | move 2 from 4 to 3 32 | move 1 from 9 to 2 33 | move 1 from 5 to 3 34 | move 1 from 2 to 6 35 | move 1 from 5 to 2 36 | move 1 from 2 to 7 37 | move 4 from 4 to 5 38 | move 2 from 1 to 9 39 | move 1 from 1 to 3 40 | move 2 from 5 to 9 41 | move 5 from 9 to 8 42 | move 1 from 5 to 9 43 | move 1 from 7 to 2 44 | move 1 from 9 to 4 45 | move 5 from 6 to 7 46 | move 1 from 5 to 2 47 | move 2 from 2 to 4 48 | move 2 from 7 to 4 49 | move 2 from 7 to 8 50 | move 21 from 8 to 6 51 | move 6 from 3 to 1 52 | move 1 from 7 to 9 53 | move 1 from 1 to 7 54 | move 7 from 6 to 8 55 | move 3 from 1 to 9 56 | move 24 from 4 to 8 57 | move 3 from 1 to 3 58 | move 10 from 6 to 8 59 | move 1 from 4 to 5 60 | move 1 from 3 to 9 61 | move 5 from 9 to 8 62 | move 11 from 8 to 3 63 | move 1 from 5 to 7 64 | move 1 from 1 to 8 65 | move 1 from 6 to 1 66 | move 19 from 8 to 1 67 | move 1 from 7 to 9 68 | move 10 from 3 to 1 69 | move 3 from 3 to 8 70 | move 1 from 7 to 3 71 | move 1 from 9 to 2 72 | move 23 from 1 to 7 73 | move 1 from 1 to 9 74 | move 1 from 3 to 6 75 | move 2 from 6 to 9 76 | move 7 from 8 to 1 77 | move 8 from 8 to 1 78 | move 11 from 7 to 2 79 | move 2 from 6 to 8 80 | move 1 from 6 to 8 81 | move 7 from 8 to 6 82 | move 1 from 9 to 4 83 | move 1 from 8 to 1 84 | move 10 from 7 to 1 85 | move 6 from 2 to 5 86 | move 5 from 2 to 9 87 | move 4 from 5 to 8 88 | move 1 from 5 to 8 89 | move 13 from 1 to 6 90 | move 1 from 2 to 4 91 | move 1 from 4 to 5 92 | move 2 from 9 to 4 93 | move 3 from 9 to 4 94 | move 2 from 5 to 3 95 | move 1 from 3 to 9 96 | move 2 from 8 to 5 97 | move 2 from 5 to 7 98 | move 2 from 8 to 6 99 | move 2 from 7 to 3 100 | move 2 from 7 to 8 101 | move 4 from 1 to 3 102 | move 3 from 8 to 4 103 | move 8 from 4 to 9 104 | move 1 from 9 to 8 105 | move 3 from 3 to 6 106 | move 4 from 3 to 9 107 | move 1 from 8 to 2 108 | move 12 from 1 to 5 109 | move 9 from 6 to 8 110 | move 1 from 4 to 8 111 | move 3 from 1 to 3 112 | move 12 from 5 to 8 113 | move 1 from 2 to 6 114 | move 1 from 3 to 1 115 | move 1 from 3 to 2 116 | move 1 from 1 to 2 117 | move 16 from 6 to 1 118 | move 1 from 6 to 3 119 | move 2 from 3 to 8 120 | move 7 from 8 to 5 121 | move 1 from 2 to 6 122 | move 1 from 2 to 1 123 | move 2 from 9 to 4 124 | move 1 from 6 to 7 125 | move 8 from 9 to 8 126 | move 5 from 5 to 6 127 | move 9 from 8 to 7 128 | move 12 from 1 to 3 129 | move 2 from 6 to 3 130 | move 6 from 8 to 9 131 | move 5 from 1 to 4 132 | move 2 from 5 to 7 133 | move 11 from 7 to 3 134 | move 1 from 7 to 4 135 | move 2 from 6 to 8 136 | move 7 from 4 to 6 137 | move 3 from 8 to 7 138 | move 3 from 8 to 2 139 | move 19 from 3 to 2 140 | move 4 from 8 to 7 141 | move 2 from 9 to 8 142 | move 1 from 4 to 5 143 | move 1 from 6 to 8 144 | move 1 from 5 to 7 145 | move 8 from 9 to 4 146 | move 1 from 8 to 5 147 | move 1 from 5 to 6 148 | move 4 from 2 to 7 149 | move 8 from 6 to 9 150 | move 6 from 7 to 3 151 | move 4 from 3 to 8 152 | move 5 from 8 to 7 153 | move 15 from 2 to 8 154 | move 8 from 3 to 4 155 | move 7 from 9 to 7 156 | move 3 from 2 to 4 157 | move 2 from 7 to 4 158 | move 2 from 4 to 3 159 | move 1 from 9 to 4 160 | move 9 from 7 to 5 161 | move 4 from 5 to 9 162 | move 2 from 5 to 3 163 | move 2 from 9 to 1 164 | move 3 from 5 to 2 165 | move 4 from 3 to 1 166 | move 7 from 7 to 4 167 | move 3 from 2 to 6 168 | move 4 from 4 to 5 169 | move 2 from 1 to 6 170 | move 8 from 4 to 1 171 | move 1 from 8 to 2 172 | move 1 from 2 to 8 173 | move 11 from 8 to 7 174 | move 3 from 5 to 9 175 | move 1 from 5 to 9 176 | move 11 from 7 to 1 177 | move 7 from 8 to 9 178 | move 11 from 1 to 3 179 | move 6 from 4 to 5 180 | move 8 from 1 to 7 181 | move 4 from 6 to 5 182 | move 3 from 5 to 8 183 | move 8 from 7 to 3 184 | move 7 from 4 to 7 185 | move 7 from 5 to 6 186 | move 3 from 3 to 8 187 | move 2 from 4 to 9 188 | move 16 from 3 to 1 189 | move 7 from 7 to 1 190 | move 2 from 8 to 7 191 | move 2 from 8 to 1 192 | move 1 from 8 to 4 193 | move 1 from 7 to 4 194 | move 2 from 4 to 2 195 | move 1 from 8 to 7 196 | move 1 from 2 to 3 197 | move 1 from 2 to 4 198 | move 1 from 7 to 8 199 | move 8 from 6 to 7 200 | move 1 from 3 to 5 201 | move 15 from 1 to 2 202 | move 4 from 9 to 1 203 | move 1 from 8 to 1 204 | move 11 from 9 to 2 205 | move 21 from 2 to 6 206 | move 1 from 4 to 2 207 | move 4 from 2 to 7 208 | move 1 from 5 to 9 209 | move 1 from 9 to 4 210 | move 19 from 1 to 2 211 | move 5 from 2 to 4 212 | move 8 from 7 to 6 213 | move 10 from 6 to 2 214 | move 5 from 7 to 5 215 | move 2 from 4 to 1 216 | move 3 from 6 to 9 217 | move 3 from 9 to 2 218 | move 1 from 5 to 2 219 | move 13 from 6 to 3 220 | move 2 from 6 to 9 221 | move 17 from 2 to 3 222 | move 1 from 6 to 2 223 | move 2 from 2 to 1 224 | move 2 from 1 to 5 225 | move 5 from 5 to 3 226 | move 2 from 2 to 8 227 | move 10 from 2 to 1 228 | move 18 from 3 to 8 229 | move 13 from 8 to 1 230 | move 7 from 8 to 2 231 | move 2 from 2 to 1 232 | move 4 from 3 to 8 233 | move 1 from 2 to 7 234 | move 1 from 2 to 8 235 | move 2 from 4 to 1 236 | move 1 from 5 to 4 237 | move 1 from 9 to 6 238 | move 1 from 1 to 7 239 | move 11 from 3 to 4 240 | move 1 from 6 to 2 241 | move 7 from 1 to 2 242 | move 5 from 8 to 5 243 | move 1 from 7 to 5 244 | move 3 from 5 to 1 245 | move 7 from 1 to 6 246 | move 6 from 1 to 6 247 | move 6 from 1 to 8 248 | move 2 from 1 to 3 249 | move 5 from 2 to 5 250 | move 1 from 7 to 6 251 | move 1 from 4 to 2 252 | move 4 from 2 to 4 253 | move 1 from 1 to 9 254 | move 1 from 3 to 8 255 | move 7 from 8 to 5 256 | move 1 from 9 to 7 257 | move 1 from 9 to 4 258 | move 8 from 5 to 7 259 | move 5 from 4 to 1 260 | move 4 from 1 to 6 261 | move 3 from 1 to 6 262 | move 3 from 3 to 6 263 | move 1 from 5 to 6 264 | move 3 from 7 to 5 265 | move 15 from 6 to 7 266 | move 12 from 7 to 4 267 | move 8 from 5 to 2 268 | move 3 from 4 to 9 269 | move 3 from 9 to 7 270 | move 1 from 6 to 2 271 | move 9 from 4 to 9 272 | move 4 from 9 to 1 273 | move 2 from 1 to 7 274 | move 3 from 6 to 4 275 | move 3 from 6 to 4 276 | move 2 from 1 to 2 277 | move 1 from 5 to 6 278 | move 2 from 9 to 4 279 | move 13 from 4 to 2 280 | move 22 from 2 to 3 281 | move 3 from 7 to 8 282 | move 1 from 9 to 6 283 | move 1 from 9 to 3 284 | move 2 from 8 to 9 285 | move 3 from 9 to 8 286 | move 5 from 6 to 4 287 | move 2 from 8 to 6 288 | move 4 from 7 to 8 289 | move 2 from 2 to 5 290 | move 4 from 8 to 7 291 | move 2 from 5 to 7 292 | move 7 from 7 to 2 293 | move 9 from 4 to 7 294 | move 4 from 2 to 1 295 | move 3 from 7 to 6 296 | move 12 from 3 to 5 297 | move 5 from 2 to 5 298 | move 1 from 8 to 2 299 | move 1 from 3 to 5 300 | move 4 from 3 to 1 301 | move 2 from 6 to 1 302 | move 11 from 5 to 3 303 | move 3 from 6 to 1 304 | move 8 from 1 to 9 305 | move 5 from 9 to 8 306 | move 2 from 9 to 7 307 | move 1 from 1 to 8 308 | move 4 from 7 to 6 309 | move 6 from 3 to 1 310 | move 1 from 9 to 7 311 | move 5 from 7 to 4 312 | move 3 from 8 to 3 313 | move 1 from 6 to 5 314 | move 2 from 2 to 1 315 | move 4 from 7 to 9 316 | move 3 from 8 to 6 317 | move 6 from 3 to 8 318 | move 6 from 8 to 7 319 | move 4 from 6 to 5 320 | move 6 from 5 to 8 321 | move 2 from 9 to 5 322 | move 2 from 9 to 8 323 | move 4 from 7 to 4 324 | move 1 from 6 to 3 325 | move 5 from 8 to 4 326 | move 1 from 6 to 9 327 | move 1 from 7 to 3 328 | move 7 from 3 to 8 329 | move 6 from 1 to 4 330 | move 6 from 1 to 2 331 | move 17 from 4 to 6 332 | move 4 from 8 to 5 333 | move 3 from 3 to 1 334 | move 5 from 4 to 1 335 | move 5 from 2 to 7 336 | move 7 from 8 to 1 337 | move 7 from 7 to 2 338 | move 4 from 6 to 3 339 | move 6 from 1 to 8 340 | move 2 from 4 to 9 341 | move 2 from 5 to 4 342 | move 1 from 4 to 3 343 | move 1 from 4 to 7 344 | move 2 from 7 to 5 345 | move 4 from 5 to 3 346 | move 1 from 9 to 1 347 | move 5 from 5 to 3 348 | move 1 from 8 to 5 349 | move 7 from 6 to 1 350 | move 6 from 6 to 8 351 | move 11 from 3 to 7 352 | move 2 from 9 to 1 353 | move 8 from 8 to 2 354 | move 5 from 7 to 5 355 | move 5 from 7 to 4 356 | move 1 from 2 to 6 357 | move 2 from 4 to 6 358 | move 1 from 7 to 5 359 | move 2 from 6 to 4 360 | move 10 from 2 to 6 361 | move 3 from 4 to 5 362 | move 1 from 6 to 4 363 | move 4 from 6 to 4 364 | move 6 from 6 to 9 365 | move 3 from 3 to 8 366 | move 19 from 1 to 8 367 | move 23 from 8 to 9 368 | move 1 from 8 to 1 369 | move 1 from 1 to 7 370 | move 1 from 7 to 1 371 | move 1 from 1 to 6 372 | move 5 from 9 to 5 373 | move 1 from 8 to 5 374 | move 5 from 4 to 5 375 | move 4 from 5 to 4 376 | move 1 from 9 to 1 377 | move 6 from 9 to 3 378 | move 2 from 2 to 8 379 | move 1 from 1 to 3 380 | move 1 from 6 to 7 381 | move 1 from 7 to 3 382 | move 1 from 2 to 5 383 | move 6 from 9 to 8 384 | move 5 from 4 to 5 385 | move 10 from 5 to 2 386 | move 10 from 5 to 2 387 | move 11 from 9 to 1 388 | move 4 from 2 to 6 389 | move 18 from 2 to 9 390 | move 2 from 6 to 9 391 | move 3 from 3 to 9 392 | move 1 from 4 to 3 393 | move 1 from 6 to 8 394 | move 6 from 8 to 4 395 | move 6 from 5 to 7 396 | move 19 from 9 to 4 397 | move 7 from 1 to 3 398 | move 1 from 6 to 8 399 | move 4 from 8 to 7 400 | move 2 from 3 to 6 401 | move 3 from 1 to 8 402 | move 1 from 1 to 5 403 | move 7 from 7 to 3 404 | move 8 from 3 to 1 405 | move 1 from 5 to 7 406 | move 2 from 6 to 2 407 | move 3 from 1 to 8 408 | move 1 from 2 to 6 409 | move 3 from 1 to 7 410 | move 4 from 8 to 9 411 | move 4 from 7 to 6 412 | move 3 from 9 to 7 413 | move 3 from 9 to 3 414 | move 6 from 7 to 3 415 | move 13 from 3 to 1 416 | move 5 from 3 to 4 417 | move 1 from 8 to 7 418 | move 1 from 7 to 9 419 | move 1 from 8 to 5 420 | move 1 from 9 to 4 421 | move 1 from 5 to 2 422 | move 2 from 9 to 2 423 | move 3 from 6 to 2 424 | move 1 from 3 to 7 425 | move 13 from 4 to 8 426 | move 14 from 1 to 5 427 | move 6 from 2 to 7 428 | move 4 from 8 to 7 429 | move 1 from 1 to 3 430 | move 1 from 2 to 6 431 | move 5 from 4 to 2 432 | move 4 from 8 to 4 433 | move 12 from 5 to 4 434 | move 1 from 3 to 8 435 | move 9 from 4 to 2 436 | move 9 from 4 to 5 437 | move 1 from 4 to 5 438 | move 6 from 4 to 3 439 | move 5 from 8 to 4 440 | move 9 from 4 to 7 441 | move 4 from 2 to 3 442 | move 8 from 7 to 1 443 | move 2 from 7 to 1 444 | move 2 from 2 to 9 445 | move 1 from 6 to 7 446 | move 2 from 6 to 3 447 | move 1 from 2 to 3 448 | move 2 from 7 to 3 449 | move 3 from 3 to 7 450 | move 8 from 1 to 2 451 | move 9 from 5 to 3 452 | move 15 from 2 to 7 453 | move 20 from 7 to 5 454 | move 23 from 5 to 6 455 | move 20 from 6 to 8 456 | move 1 from 6 to 4 457 | move 2 from 9 to 7 458 | move 1 from 4 to 6 459 | move 3 from 7 to 6 460 | move 2 from 7 to 5 461 | move 13 from 3 to 5 462 | move 3 from 7 to 1 463 | move 13 from 5 to 4 464 | move 3 from 1 to 4 465 | move 5 from 6 to 1 466 | move 6 from 4 to 3 467 | move 1 from 7 to 4 468 | move 11 from 8 to 6 469 | move 1 from 8 to 6 470 | move 2 from 1 to 5 471 | move 2 from 5 to 3 472 | move 11 from 6 to 5 473 | move 3 from 8 to 3 474 | move 4 from 3 to 5 475 | move 15 from 5 to 1 476 | move 1 from 3 to 5 477 | move 3 from 8 to 5 478 | move 1 from 5 to 9 479 | move 1 from 5 to 3 480 | move 9 from 4 to 6 481 | move 7 from 6 to 8 482 | move 2 from 4 to 6 483 | move 2 from 5 to 1 484 | move 8 from 8 to 7 485 | move 6 from 6 to 2 486 | move 1 from 5 to 2 487 | move 4 from 3 to 4 488 | move 6 from 1 to 5 489 | move 7 from 3 to 4 490 | move 2 from 3 to 2 491 | move 2 from 8 to 9 492 | move 9 from 2 to 5 493 | move 9 from 5 to 4 494 | move 2 from 3 to 6 495 | move 14 from 1 to 7 496 | move 15 from 7 to 2 497 | move 1 from 1 to 7 498 | move 7 from 5 to 1 499 | move 2 from 9 to 2 500 | move 2 from 1 to 7 501 | move 1 from 1 to 4 502 | move 2 from 6 to 8 503 | move 7 from 2 to 8 504 | move 1 from 9 to 6 505 | move 7 from 8 to 3 506 | move 1 from 6 to 4 507 | move 1 from 8 to 2 508 | move 6 from 4 to 6 509 | move 9 from 2 to 1 510 | move 1 from 3 to 9 511 | move 3 from 7 to 5 512 | -------------------------------------------------------------------------------- /day7/input: -------------------------------------------------------------------------------- 1 | $ cd / 2 | $ ls 3 | dir csjncqmr 4 | dir fnfjhvsp 5 | dir mhfrct 6 | dir pgmgbfcl 7 | dir qcf 8 | dir wrsjr 9 | $ cd csjncqmr 10 | $ ls 11 | 8827 vdrdm.pfj 12 | $ cd .. 13 | $ cd fnfjhvsp 14 | $ ls 15 | dir csjncqmr 16 | dir czpmg 17 | 162385 dcgph 18 | 7135 hff.cdt 19 | $ cd csjncqmr 20 | $ ls 21 | 121543 gzjdsn.wlc 22 | dir ljq 23 | $ cd ljq 24 | $ ls 25 | dir cwlrlvf 26 | dir jpqjhhpg 27 | $ cd cwlrlvf 28 | $ ls 29 | 151219 dcgph 30 | $ cd .. 31 | $ cd jpqjhhpg 32 | $ ls 33 | 188355 dcgph 34 | 38458 gfgl.hlg 35 | $ cd .. 36 | $ cd .. 37 | $ cd .. 38 | $ cd czpmg 39 | $ ls 40 | 168232 dcgph 41 | 143031 gzjdsn.wlc 42 | $ cd .. 43 | $ cd .. 44 | $ cd mhfrct 45 | $ ls 46 | dir clm 47 | 66710 dcgph 48 | 232576 mtfhpcnj 49 | $ cd clm 50 | $ ls 51 | dir pgmgbfcl 52 | $ cd pgmgbfcl 53 | $ ls 54 | 110296 qbfhj.tmn 55 | $ cd .. 56 | $ cd .. 57 | $ cd .. 58 | $ cd pgmgbfcl 59 | $ ls 60 | 163613 cgchl 61 | dir nnlr 62 | 123977 rrwbnmlh.jtt 63 | dir tjhzggs 64 | dir wfl 65 | 252837 wpgrl 66 | $ cd nnlr 67 | $ ls 68 | 103051 flp 69 | dir qrhlzd 70 | dir rcgmhz 71 | dir snwrlr 72 | dir vgj 73 | dir znbzt 74 | $ cd qrhlzd 75 | $ ls 76 | dir crg 77 | 246915 dcgph 78 | 264791 fcphzfb.fmb 79 | 299291 flp 80 | dir mjqsg 81 | 297202 pgmgbfcl 82 | dir sbbzgbz 83 | dir wnsnssbg 84 | $ cd crg 85 | $ ls 86 | 55556 flp 87 | 185529 jswdvn 88 | $ cd .. 89 | $ cd mjqsg 90 | $ ls 91 | dir fnfjhvsp 92 | dir jfbzjz 93 | dir rwg 94 | $ cd fnfjhvsp 95 | $ ls 96 | 24945 cctwbs 97 | 170960 csjncqmr 98 | 316168 ljffgvvz.zld 99 | 187325 pgmgbfcl.fzv 100 | 74133 qbfhj.tmn 101 | dir tjhzggs 102 | dir vjmgmdz 103 | $ cd tjhzggs 104 | $ ls 105 | 287777 csjncqmr.nbd 106 | $ cd .. 107 | $ cd vjmgmdz 108 | $ ls 109 | dir vgpb 110 | $ cd vgpb 111 | $ ls 112 | 202578 bbbg.hlr 113 | $ cd .. 114 | $ cd .. 115 | $ cd .. 116 | $ cd jfbzjz 117 | $ ls 118 | 207736 tjhzggs.cql 119 | $ cd .. 120 | $ cd rwg 121 | $ ls 122 | 184997 csjncqmr 123 | 4378 dcgph 124 | 55767 qnc.wvv 125 | $ cd .. 126 | $ cd .. 127 | $ cd sbbzgbz 128 | $ ls 129 | 321376 csjncqmr 130 | 317438 flp 131 | 9263 hrs 132 | $ cd .. 133 | $ cd wnsnssbg 134 | $ ls 135 | dir jdjv 136 | $ cd jdjv 137 | $ ls 138 | 153354 gzjdsn.wlc 139 | $ cd .. 140 | $ cd .. 141 | $ cd .. 142 | $ cd rcgmhz 143 | $ ls 144 | dir tjhzggs 145 | $ cd tjhzggs 146 | $ ls 147 | 299192 jfbzjz.ttg 148 | $ cd .. 149 | $ cd .. 150 | $ cd snwrlr 151 | $ ls 152 | 30314 csjncqmr.jvn 153 | dir hcf 154 | $ cd hcf 155 | $ ls 156 | 81979 jfbzjz.pfz 157 | 179459 ngh 158 | $ cd .. 159 | $ cd .. 160 | $ cd vgj 161 | $ ls 162 | 278579 jbn.rgz 163 | dir jzj 164 | dir lnbhh 165 | dir pgmgbfcl 166 | dir qgvspcpm 167 | $ cd jzj 168 | $ ls 169 | 295808 hrs 170 | 220437 vqbcl 171 | $ cd .. 172 | $ cd lnbhh 173 | $ ls 174 | 212203 nfmhd.hbq 175 | 233853 qgz.mcd 176 | $ cd .. 177 | $ cd pgmgbfcl 178 | $ ls 179 | dir mmbdpj 180 | 138462 mwcdrpm.spr 181 | 288430 pgmgbfcl.pwd 182 | 132880 rdmwtn.qjj 183 | 41775 rfqb.djh 184 | dir rnd 185 | 69597 thnbf 186 | $ cd mmbdpj 187 | $ ls 188 | 158542 hrs 189 | 306559 tjhzggs 190 | $ cd .. 191 | $ cd rnd 192 | $ ls 193 | 223745 fnfjhvsp.hgt 194 | 138236 gdmtnffs.cdm 195 | dir gmzb 196 | dir hvl 197 | 266178 mzwmjl.rqq 198 | dir njpq 199 | 33906 qbfhj.tmn 200 | dir tjhzggs 201 | $ cd gmzb 202 | $ ls 203 | 186579 nsbfn.lsd 204 | $ cd .. 205 | $ cd hvl 206 | $ ls 207 | 312925 csjncqmr.sbc 208 | 75264 gqp 209 | 81003 gzjdsn.wlc 210 | $ cd .. 211 | $ cd njpq 212 | $ ls 213 | 188139 lbnrr.pwd 214 | 213545 qgqddvwf.hfl 215 | $ cd .. 216 | $ cd tjhzggs 217 | $ ls 218 | dir dlwvc 219 | 191782 jfbzjz 220 | dir tbldpln 221 | $ cd dlwvc 222 | $ ls 223 | 75927 jvhjtnft 224 | 260563 qbfhj.tmn 225 | dir vlg 226 | $ cd vlg 227 | $ ls 228 | 187660 hgm 229 | dir rhr 230 | 273019 tdgr.crr 231 | $ cd rhr 232 | $ ls 233 | 286129 wnn.jgn 234 | $ cd .. 235 | $ cd .. 236 | $ cd .. 237 | $ cd tbldpln 238 | $ ls 239 | 173546 pdfrsq.pnb 240 | $ cd .. 241 | $ cd .. 242 | $ cd .. 243 | $ cd .. 244 | $ cd qgvspcpm 245 | $ ls 246 | dir dhrbsl 247 | 286566 fldhvbq 248 | 209725 gzjdsn.wlc 249 | 148148 nspz.gwc 250 | 111003 tjhzggs 251 | $ cd dhrbsl 252 | $ ls 253 | 58390 gzjdsn.wlc 254 | 150545 hrs 255 | $ cd .. 256 | $ cd .. 257 | $ cd .. 258 | $ cd znbzt 259 | $ ls 260 | 211651 gwhb.mfz 261 | $ cd .. 262 | $ cd .. 263 | $ cd tjhzggs 264 | $ ls 265 | dir hgr 266 | 229076 jfbzjz.dfh 267 | dir ptfcbwwv 268 | 51893 qbfhj.tmn 269 | 97712 qgtvfh.hvs 270 | $ cd hgr 271 | $ ls 272 | dir hwvgjdq 273 | dir vwvbt 274 | $ cd hwvgjdq 275 | $ ls 276 | dir pgmgbfcl 277 | $ cd pgmgbfcl 278 | $ ls 279 | dir qgs 280 | $ cd qgs 281 | $ ls 282 | 188108 hrs 283 | $ cd .. 284 | $ cd .. 285 | $ cd .. 286 | $ cd vwvbt 287 | $ ls 288 | 169212 tfrm.gjb 289 | $ cd .. 290 | $ cd .. 291 | $ cd ptfcbwwv 292 | $ ls 293 | 67829 lpszzl 294 | $ cd .. 295 | $ cd .. 296 | $ cd wfl 297 | $ ls 298 | dir hfcm 299 | $ cd hfcm 300 | $ ls 301 | 73872 flp 302 | $ cd .. 303 | $ cd .. 304 | $ cd .. 305 | $ cd qcf 306 | $ ls 307 | dir ctjw 308 | 177175 dwzmnpr 309 | dir fqldn 310 | dir hmjnnjjj 311 | 301788 hrs 312 | dir lgmld 313 | dir pgmgbfcl 314 | 76771 qzsbm.zdb 315 | dir scbgn 316 | 234764 vhrlgcf 317 | $ cd ctjw 318 | $ ls 319 | 139505 mflt.hnr 320 | $ cd .. 321 | $ cd fqldn 322 | $ ls 323 | dir bgq 324 | 7260 flgrh.tmt 325 | dir fnfjhvsp 326 | dir fnr 327 | dir gsnqjmw 328 | 10529 gzjdsn.wlc 329 | 22877 hrs 330 | dir hzbrgrfq 331 | dir snmbwrzn 332 | dir tjhzggs 333 | 6773 tzhsjsc 334 | $ cd bgq 335 | $ ls 336 | 40780 gzjdsn.wlc 337 | 233301 mnzdbpc 338 | dir mpdjgbgf 339 | 303076 qbfhj.tmn 340 | dir qjs 341 | 189723 sbzn.dtj 342 | dir vhnqcrd 343 | $ cd mpdjgbgf 344 | $ ls 345 | 227105 dcgph 346 | 298219 dprcwts.vdt 347 | $ cd .. 348 | $ cd qjs 349 | $ ls 350 | 214072 pgmgbfcl 351 | 264897 qbfhj.tmn 352 | $ cd .. 353 | $ cd vhnqcrd 354 | $ ls 355 | 178950 fnfjhvsp 356 | 180561 pgmgbfcl.mst 357 | 312980 pgmgbfcl.twp 358 | $ cd .. 359 | $ cd .. 360 | $ cd fnfjhvsp 361 | $ ls 362 | 141191 fnfjhvsp.bng 363 | 81709 pgmgbfcl.sfw 364 | $ cd .. 365 | $ cd fnr 366 | $ ls 367 | 316638 flp 368 | dir fnfjhvsp 369 | dir fqdnn 370 | 267054 gdnln 371 | dir hfcrzwvm 372 | dir rdljd 373 | 319112 wpcmfbr.zgp 374 | $ cd fnfjhvsp 375 | $ ls 376 | 115581 hrs 377 | dir jfbzjz 378 | $ cd jfbzjz 379 | $ ls 380 | 170398 qbfhj.tmn 381 | $ cd .. 382 | $ cd .. 383 | $ cd fqdnn 384 | $ ls 385 | dir cfg 386 | dir jbjltw 387 | $ cd cfg 388 | $ ls 389 | dir qljztr 390 | dir tnsw 391 | dir zhnqp 392 | $ cd qljztr 393 | $ ls 394 | 64638 bnlsrfb 395 | 63440 csjncqmr 396 | 206111 gzjdsn.wlc 397 | 207890 hrs 398 | 265995 pgmgbfcl.zcw 399 | $ cd .. 400 | $ cd tnsw 401 | $ ls 402 | 85166 lsflqzmc 403 | $ cd .. 404 | $ cd zhnqp 405 | $ ls 406 | 217666 csjncqmr.cch 407 | $ cd .. 408 | $ cd .. 409 | $ cd jbjltw 410 | $ ls 411 | 88043 dcgph 412 | 238483 hrs 413 | 189734 jnvwjs 414 | 243936 pgmgbfcl.wsr 415 | $ cd .. 416 | $ cd .. 417 | $ cd hfcrzwvm 418 | $ ls 419 | dir vwc 420 | $ cd vwc 421 | $ ls 422 | 82566 shc.qhj 423 | $ cd .. 424 | $ cd .. 425 | $ cd rdljd 426 | $ ls 427 | 68011 ptw.bgd 428 | $ cd .. 429 | $ cd .. 430 | $ cd gsnqjmw 431 | $ ls 432 | 236818 gzjdsn.wlc 433 | $ cd .. 434 | $ cd hzbrgrfq 435 | $ ls 436 | 240924 dcgph 437 | dir dcjsv 438 | dir dsrzdjfm 439 | dir fnfjhvsp 440 | dir hnzm 441 | dir mqb 442 | 94014 smpnth.bbm 443 | $ cd dcjsv 444 | $ ls 445 | 316708 cmddvb 446 | dir fnfjhvsp 447 | $ cd fnfjhvsp 448 | $ ls 449 | dir fnfjhvsp 450 | $ cd fnfjhvsp 451 | $ ls 452 | dir jqlcvds 453 | $ cd jqlcvds 454 | $ ls 455 | 51018 dqfbq.ggm 456 | $ cd .. 457 | $ cd .. 458 | $ cd .. 459 | $ cd .. 460 | $ cd dsrzdjfm 461 | $ ls 462 | 262938 csjncqmr.dmm 463 | 125129 mwcnlvhv.szp 464 | 150590 qbfhj.tmn 465 | dir rrrzpsn 466 | 196430 vbdgb 467 | dir vsfbwfdl 468 | $ cd rrrzpsn 469 | $ ls 470 | dir tjhzggs 471 | 281655 tjhzggs.btg 472 | dir tsjzf 473 | $ cd tjhzggs 474 | $ ls 475 | 291402 gbl 476 | dir hctmr 477 | dir hqdmpwl 478 | 225075 hrs 479 | dir jfbzjz 480 | 51032 tjhzggs.qzr 481 | $ cd hctmr 482 | $ ls 483 | 113430 qbfhj.tmn 484 | $ cd .. 485 | $ cd hqdmpwl 486 | $ ls 487 | 67634 tjhzggs 488 | $ cd .. 489 | $ cd jfbzjz 490 | $ ls 491 | 193552 nmvl.tzj 492 | 197076 pgmgbfcl 493 | 11047 tjhzggs 494 | $ cd .. 495 | $ cd .. 496 | $ cd tsjzf 497 | $ ls 498 | 36205 jwmdtdjv 499 | $ cd .. 500 | $ cd .. 501 | $ cd vsfbwfdl 502 | $ ls 503 | 288660 flp 504 | 185921 jfbzjz 505 | dir mqmvtddt 506 | 124423 nfbfq.dln 507 | dir wzbc 508 | $ cd mqmvtddt 509 | $ ls 510 | 85529 bhjp.vvj 511 | $ cd .. 512 | $ cd wzbc 513 | $ ls 514 | 77316 flp 515 | 271730 pgmgbfcl.lcd 516 | $ cd .. 517 | $ cd .. 518 | $ cd .. 519 | $ cd fnfjhvsp 520 | $ ls 521 | 47666 mpwtvwd.fwr 522 | $ cd .. 523 | $ cd hnzm 524 | $ ls 525 | 157672 flp 526 | 294957 gzjdsn.wlc 527 | 297187 lbssg 528 | 24223 qbfhj.tmn 529 | dir rdnqrgt 530 | 177449 tld.tsd 531 | $ cd rdnqrgt 532 | $ ls 533 | dir nltjzrrr 534 | 217347 vrb.gcd 535 | $ cd nltjzrrr 536 | $ ls 537 | dir zzd 538 | $ cd zzd 539 | $ ls 540 | 47464 flp 541 | dir fnfjhvsp 542 | $ cd fnfjhvsp 543 | $ ls 544 | 89424 qtzfddz.btd 545 | $ cd .. 546 | $ cd .. 547 | $ cd .. 548 | $ cd .. 549 | $ cd .. 550 | $ cd mqb 551 | $ ls 552 | 105537 tjhzggs.wns 553 | $ cd .. 554 | $ cd .. 555 | $ cd snmbwrzn 556 | $ ls 557 | dir mqt 558 | dir nsdrn 559 | dir rjn 560 | $ cd mqt 561 | $ ls 562 | 233842 pgmgbfcl 563 | $ cd .. 564 | $ cd nsdrn 565 | $ ls 566 | 67018 dcgph 567 | 17296 flp 568 | 274166 gzjdsn.wlc 569 | 186308 jfbzjz 570 | 280195 lvbsrvwm.zlq 571 | dir pjv 572 | dir thlp 573 | $ cd pjv 574 | $ ls 575 | 123190 rfbj.gmq 576 | $ cd .. 577 | $ cd thlp 578 | $ ls 579 | 141308 flp 580 | 188164 jfbzjz 581 | 299013 pgmgbfcl 582 | 171259 qbfhj.tmn 583 | dir qsljb 584 | $ cd qsljb 585 | $ ls 586 | 291980 glcnlj.swh 587 | $ cd .. 588 | $ cd .. 589 | $ cd .. 590 | $ cd rjn 591 | $ ls 592 | 181047 fqmhpg.hpl 593 | $ cd .. 594 | $ cd .. 595 | $ cd tjhzggs 596 | $ ls 597 | dir csjncqmr 598 | 274202 fhfjvdjc.swt 599 | dir fnfjhvsp 600 | 97050 frbpp.wch 601 | dir gnbtgdr 602 | dir jfbzjz 603 | dir lpg 604 | dir pgmgbfcl 605 | dir twcdfdcv 606 | dir wzd 607 | dir zllcflrn 608 | $ cd csjncqmr 609 | $ ls 610 | dir chpmwsfj 611 | dir csjncqmr 612 | 57088 fnfjhvsp.jqg 613 | 52097 vgcm.dpv 614 | $ cd chpmwsfj 615 | $ ls 616 | 279480 tjhzggs.srw 617 | $ cd .. 618 | $ cd csjncqmr 619 | $ ls 620 | 13716 dcgph 621 | dir fqb 622 | dir jfbzjz 623 | dir msvlnt 624 | 88312 pgmgbfcl.qcf 625 | $ cd fqb 626 | $ ls 627 | dir mmjfbvq 628 | $ cd mmjfbvq 629 | $ ls 630 | 79822 flp 631 | $ cd .. 632 | $ cd .. 633 | $ cd jfbzjz 634 | $ ls 635 | 302531 csjncqmr 636 | 164326 dcgph 637 | 8277 fnfjhvsp.rbv 638 | dir jgsrgrtc 639 | dir zwdgcd 640 | $ cd jgsrgrtc 641 | $ ls 642 | 60317 gzjdsn.wlc 643 | $ cd .. 644 | $ cd zwdgcd 645 | $ ls 646 | 171967 fpls.fvd 647 | $ cd .. 648 | $ cd .. 649 | $ cd msvlnt 650 | $ ls 651 | 83178 cnhzh 652 | 11226 tjhzggs 653 | $ cd .. 654 | $ cd .. 655 | $ cd .. 656 | $ cd fnfjhvsp 657 | $ ls 658 | 89882 dcgph 659 | 212817 qbfhj.tmn 660 | 257899 tjhzggs 661 | $ cd .. 662 | $ cd gnbtgdr 663 | $ ls 664 | dir flltghn 665 | dir fnfjhvsp 666 | dir jfbzjz 667 | 300698 ngcsnwb 668 | 292809 qtcqhdq 669 | dir vbwjgf 670 | 280270 wbzcr.sgn 671 | $ cd flltghn 672 | $ ls 673 | 111452 rhgfv 674 | $ cd .. 675 | $ cd fnfjhvsp 676 | $ ls 677 | dir lbznfb 678 | 31273 nrtrqqc.cth 679 | $ cd lbznfb 680 | $ ls 681 | 175736 ljpr.cwm 682 | $ cd .. 683 | $ cd .. 684 | $ cd jfbzjz 685 | $ ls 686 | 237625 tjhzggs 687 | $ cd .. 688 | $ cd vbwjgf 689 | $ ls 690 | 269242 jrrw.ljb 691 | 106705 pqnbrbt 692 | $ cd .. 693 | $ cd .. 694 | $ cd jfbzjz 695 | $ ls 696 | dir dnn 697 | $ cd dnn 698 | $ ls 699 | 19045 dcgph 700 | 187257 tjhzggs.qzg 701 | $ cd .. 702 | $ cd .. 703 | $ cd lpg 704 | $ ls 705 | 101509 fnfjhvsp.nnt 706 | 221211 ldgjngjq 707 | $ cd .. 708 | $ cd pgmgbfcl 709 | $ ls 710 | dir bzbdphz 711 | 37920 flp 712 | dir wpsm 713 | $ cd bzbdphz 714 | $ ls 715 | 252099 ffsfqfdw 716 | 312106 htft 717 | 298880 jfbvz.znw 718 | 135204 lrwccthr 719 | dir zhbqf 720 | 108144 zsbbfhz.drr 721 | $ cd zhbqf 722 | $ ls 723 | dir gtw 724 | 298022 svpgsrgj.ljz 725 | $ cd gtw 726 | $ ls 727 | dir csjncqmr 728 | dir rpzjg 729 | $ cd csjncqmr 730 | $ ls 731 | 278962 flp 732 | 272127 tjhzggs 733 | $ cd .. 734 | $ cd rpzjg 735 | $ ls 736 | 92241 flp 737 | $ cd .. 738 | $ cd .. 739 | $ cd .. 740 | $ cd .. 741 | $ cd wpsm 742 | $ ls 743 | 15936 flp 744 | 241514 qbfhj.tmn 745 | 245049 rjgwzlq.qrw 746 | $ cd .. 747 | $ cd .. 748 | $ cd twcdfdcv 749 | $ ls 750 | 140758 bjm 751 | 78772 dcgph 752 | 114059 mqsgrc.qcb 753 | $ cd .. 754 | $ cd wzd 755 | $ ls 756 | dir fnfjhvsp 757 | dir mcbnp 758 | $ cd fnfjhvsp 759 | $ ls 760 | 72702 csjncqmr.jfn 761 | 120586 dcgph 762 | $ cd .. 763 | $ cd mcbnp 764 | $ ls 765 | 12494 fnfjhvsp.frc 766 | 182092 gsv 767 | 17859 pdbvmblc.vng 768 | 116984 pfbdf 769 | 113843 prshrmg.srm 770 | $ cd .. 771 | $ cd .. 772 | $ cd zllcflrn 773 | $ ls 774 | 30966 flp 775 | 245820 jfbzjz.rnd 776 | $ cd .. 777 | $ cd .. 778 | $ cd .. 779 | $ cd hmjnnjjj 780 | $ ls 781 | 134366 dcgph 782 | 212399 dtsb 783 | 255795 zhbcjtr 784 | $ cd .. 785 | $ cd lgmld 786 | $ ls 787 | 55248 pgmgbfcl 788 | 62265 pgmgbfcl.nbg 789 | 240733 zhmff 790 | $ cd .. 791 | $ cd pgmgbfcl 792 | $ ls 793 | 232717 fnfjhvsp 794 | 219581 gtcjbwpz.lmz 795 | 47399 gzjdsn.wlc 796 | 22814 hjqf 797 | 296672 hrs 798 | dir nrzf 799 | dir wqgcmnpp 800 | dir wwvmdjz 801 | dir zlhv 802 | $ cd nrzf 803 | $ ls 804 | 18406 dcgph 805 | dir mhm 806 | $ cd mhm 807 | $ ls 808 | 95168 pgmgbfcl.hqv 809 | $ cd .. 810 | $ cd .. 811 | $ cd wqgcmnpp 812 | $ ls 813 | dir csjncqmr 814 | 189963 dvcd.tnh 815 | dir gzqrt 816 | dir njffft 817 | dir qvqp 818 | 6981 tjhzggs 819 | dir wgfnlfsd 820 | $ cd csjncqmr 821 | $ ls 822 | 307371 cdptrw.rfm 823 | $ cd .. 824 | $ cd gzqrt 825 | $ ls 826 | dir pwsqss 827 | $ cd pwsqss 828 | $ ls 829 | 173397 flp 830 | $ cd .. 831 | $ cd .. 832 | $ cd njffft 833 | $ ls 834 | dir bzhzg 835 | dir tjhzggs 836 | $ cd bzhzg 837 | $ ls 838 | 213821 pgmgbfcl 839 | $ cd .. 840 | $ cd tjhzggs 841 | $ ls 842 | dir szvfzgj 843 | $ cd szvfzgj 844 | $ ls 845 | 196306 tjhzggs.hjh 846 | $ cd .. 847 | $ cd .. 848 | $ cd .. 849 | $ cd qvqp 850 | $ ls 851 | dir pgmgbfcl 852 | $ cd pgmgbfcl 853 | $ ls 854 | 114456 flp 855 | 252954 pgmgbfcl 856 | $ cd .. 857 | $ cd .. 858 | $ cd wgfnlfsd 859 | $ ls 860 | 212011 gzjdsn.wlc 861 | $ cd .. 862 | $ cd .. 863 | $ cd wwvmdjz 864 | $ ls 865 | 70022 dcgph 866 | dir hjgvstp 867 | dir jhgb 868 | 276853 qbfhj.tmn 869 | 242756 qdqswjjd.wnn 870 | dir tjhzggs 871 | 292963 wcgmgmz.shb 872 | $ cd hjgvstp 873 | $ ls 874 | 24056 tdjwdw 875 | $ cd .. 876 | $ cd jhgb 877 | $ ls 878 | 90571 gzjdsn.wlc 879 | 132326 rrvfml.dms 880 | $ cd .. 881 | $ cd tjhzggs 882 | $ ls 883 | 29139 dmrsz.qhc 884 | $ cd .. 885 | $ cd .. 886 | $ cd zlhv 887 | $ ls 888 | 315120 dcgph 889 | 290175 pgvlcvpb 890 | $ cd .. 891 | $ cd .. 892 | $ cd scbgn 893 | $ ls 894 | 258300 bcchv.qsn 895 | $ cd .. 896 | $ cd .. 897 | $ cd wrsjr 898 | $ ls 899 | dir csjncqmr 900 | dir jfbzjz 901 | dir nmfmqb 902 | dir svgtrz 903 | dir zjvhmd 904 | $ cd csjncqmr 905 | $ ls 906 | 148619 qbfhj.tmn 907 | $ cd .. 908 | $ cd jfbzjz 909 | $ ls 910 | dir csjncqmr 911 | dir flrhpzt 912 | dir fnfjhvsp 913 | dir gpwv 914 | dir lwrtc 915 | $ cd csjncqmr 916 | $ ls 917 | dir czmlfmf 918 | 137365 flp 919 | dir hggbs 920 | 107369 mpgm.lbl 921 | $ cd czmlfmf 922 | $ ls 923 | dir hnpjvq 924 | $ cd hnpjvq 925 | $ ls 926 | 41339 fnfjhvsp.wnv 927 | $ cd .. 928 | $ cd .. 929 | $ cd hggbs 930 | $ ls 931 | 273367 qbfhj.tmn 932 | $ cd .. 933 | $ cd .. 934 | $ cd flrhpzt 935 | $ ls 936 | 200923 fwb 937 | 62059 hrs 938 | $ cd .. 939 | $ cd fnfjhvsp 940 | $ ls 941 | dir gdnmpgn 942 | 256037 hrs 943 | $ cd gdnmpgn 944 | $ ls 945 | 64024 jmww.gbb 946 | $ cd .. 947 | $ cd .. 948 | $ cd gpwv 949 | $ ls 950 | 159155 hrs 951 | $ cd .. 952 | $ cd lwrtc 953 | $ ls 954 | 150299 nzvqj.dsv 955 | 129702 pgmgbfcl.lrt 956 | dir zvgb 957 | $ cd zvgb 958 | $ ls 959 | 304137 hrs 960 | $ cd .. 961 | $ cd .. 962 | $ cd .. 963 | $ cd nmfmqb 964 | $ ls 965 | 139823 jfbzjz 966 | 299946 nqqscdn.wsw 967 | $ cd .. 968 | $ cd svgtrz 969 | $ ls 970 | dir jdlvtm 971 | 123801 phhrgrbs 972 | $ cd jdlvtm 973 | $ ls 974 | 267972 tbgcnf.pqz 975 | $ cd .. 976 | $ cd .. 977 | $ cd zjvhmd 978 | $ ls 979 | 287427 csjncqmr.tfj 980 | 297578 hhhp.jvt 981 | -------------------------------------------------------------------------------- /day4/input: -------------------------------------------------------------------------------- 1 | 71-71,42-72 2 | 27-28,27-99 3 | 15-79,14-78 4 | 3-36,4-36 5 | 5-67,32-57 6 | 7-85,5-86 7 | 2-97,97-97 8 | 10-73,41-55 9 | 34-99,34-55 10 | 80-80,25-80 11 | 50-76,50-79 12 | 42-70,43-70 13 | 95-96,81-96 14 | 6-7,6-94 15 | 37-39,17-38 16 | 39-95,26-96 17 | 52-77,53-76 18 | 2-99,9-95 19 | 23-94,79-91 20 | 19-78,44-77 21 | 47-47,1-48 22 | 4-88,3-52 23 | 51-60,50-52 24 | 49-90,21-89 25 | 76-95,97-99 26 | 78-96,79-95 27 | 90-90,77-90 28 | 8-73,9-72 29 | 54-54,54-74 30 | 20-40,19-40 31 | 7-96,7-7 32 | 16-73,54-77 33 | 8-30,33-59 34 | 71-99,71-72 35 | 22-74,21-74 36 | 58-94,93-95 37 | 92-96,34-94 38 | 5-60,6-61 39 | 2-78,41-79 40 | 63-63,54-64 41 | 21-55,78-88 42 | 1-97,6-95 43 | 14-52,14-73 44 | 5-30,6-30 45 | 4-82,3-91 46 | 9-98,8-97 47 | 1-99,9-95 48 | 35-46,34-79 49 | 2-3,2-45 50 | 2-78,2-78 51 | 11-57,56-57 52 | 78-79,54-78 53 | 17-81,18-43 54 | 76-79,77-88 55 | 4-90,11-91 56 | 1-94,94-95 57 | 57-93,56-92 58 | 13-13,14-99 59 | 42-50,10-50 60 | 34-86,33-85 61 | 2-25,1-95 62 | 6-95,3-95 63 | 5-31,8-30 64 | 3-13,4-19 65 | 10-97,9-60 66 | 13-94,12-14 67 | 9-93,8-93 68 | 18-96,18-97 69 | 53-94,53-74 70 | 33-33,11-74 71 | 58-76,76-77 72 | 7-66,8-82 73 | 38-76,37-77 74 | 1-2,1-96 75 | 24-98,23-99 76 | 2-67,2-66 77 | 30-84,1-30 78 | 8-99,7-99 79 | 89-94,78-89 80 | 11-13,12-66 81 | 75-83,12-75 82 | 2-34,1-92 83 | 36-38,36-93 84 | 4-94,2-93 85 | 6-95,6-99 86 | 19-52,20-52 87 | 49-95,48-94 88 | 5-45,45-46 89 | 3-96,4-84 90 | 21-37,30-83 91 | 33-67,67-67 92 | 30-87,86-87 93 | 73-73,7-73 94 | 4-89,1-88 95 | 5-60,60-61 96 | 51-69,52-68 97 | 3-92,2-3 98 | 3-95,2-95 99 | 13-73,70-71 100 | 7-83,8-60 101 | 62-94,94-94 102 | 23-36,32-39 103 | 17-52,45-53 104 | 53-72,67-68 105 | 48-95,49-49 106 | 14-17,11-16 107 | 70-97,70-96 108 | 13-14,13-30 109 | 9-9,8-97 110 | 2-12,3-43 111 | 79-79,37-79 112 | 3-97,1-96 113 | 56-77,55-77 114 | 34-34,33-91 115 | 2-80,81-81 116 | 17-94,49-95 117 | 25-84,13-85 118 | 23-88,24-24 119 | 1-35,2-23 120 | 30-92,29-92 121 | 37-37,37-38 122 | 63-80,78-80 123 | 4-83,1-83 124 | 9-97,8-79 125 | 2-98,3-88 126 | 17-87,17-89 127 | 37-38,38-60 128 | 79-84,77-89 129 | 5-96,96-97 130 | 3-57,4-56 131 | 50-91,46-50 132 | 7-21,7-76 133 | 79-96,25-79 134 | 1-65,55-65 135 | 16-93,15-97 136 | 12-13,15-99 137 | 68-97,18-61 138 | 7-91,7-91 139 | 16-89,15-90 140 | 8-8,8-99 141 | 28-28,10-29 142 | 17-82,83-83 143 | 17-74,19-73 144 | 17-88,87-89 145 | 11-31,10-32 146 | 85-89,47-76 147 | 34-61,34-35 148 | 82-99,92-99 149 | 14-41,13-42 150 | 46-97,97-99 151 | 3-51,4-51 152 | 40-88,41-68 153 | 58-64,55-63 154 | 87-90,14-87 155 | 7-39,8-9 156 | 15-67,14-68 157 | 21-95,20-92 158 | 27-99,28-60 159 | 50-87,50-88 160 | 39-95,38-39 161 | 67-67,66-67 162 | 30-75,30-75 163 | 54-89,53-90 164 | 10-46,2-45 165 | 30-90,12-94 166 | 29-58,30-57 167 | 22-22,21-73 168 | 31-57,11-54 169 | 10-65,10-89 170 | 17-45,29-35 171 | 43-58,44-73 172 | 8-94,8-93 173 | 26-43,8-26 174 | 22-37,37-37 175 | 26-57,13-56 176 | 47-86,86-87 177 | 89-89,58-89 178 | 5-76,4-5 179 | 96-96,30-97 180 | 8-44,43-44 181 | 22-78,22-77 182 | 35-69,35-70 183 | 7-93,6-59 184 | 3-3,3-99 185 | 23-99,23-98 186 | 75-89,90-90 187 | 13-97,97-97 188 | 93-97,22-94 189 | 36-46,45-46 190 | 16-28,17-28 191 | 26-78,78-91 192 | 6-99,5-6 193 | 55-94,40-94 194 | 2-80,3-71 195 | 13-13,12-94 196 | 77-79,6-78 197 | 1-80,5-74 198 | 54-95,67-96 199 | 23-89,80-89 200 | 6-36,2-50 201 | 2-3,3-65 202 | 39-98,27-98 203 | 59-66,35-78 204 | 9-83,1-8 205 | 41-66,58-67 206 | 4-67,4-68 207 | 9-77,77-78 208 | 65-85,32-99 209 | 43-94,31-44 210 | 1-33,1-33 211 | 5-50,5-19 212 | 39-71,14-70 213 | 1-99,53-99 214 | 6-71,5-70 215 | 17-88,18-88 216 | 41-63,13-63 217 | 4-4,3-89 218 | 3-95,2-2 219 | 15-21,6-21 220 | 22-99,27-96 221 | 1-87,56-71 222 | 73-73,74-89 223 | 65-95,66-94 224 | 5-69,25-69 225 | 21-86,21-55 226 | 14-88,15-87 227 | 20-33,19-34 228 | 14-50,63-85 229 | 7-23,22-55 230 | 56-90,55-89 231 | 60-85,60-61 232 | 82-85,79-84 233 | 66-66,99-99 234 | 1-1,2-63 235 | 6-61,1-6 236 | 26-97,26-26 237 | 36-81,76-82 238 | 49-78,49-79 239 | 17-99,12-98 240 | 1-92,91-91 241 | 11-97,99-99 242 | 33-96,42-44 243 | 8-71,3-76 244 | 67-71,67-68 245 | 49-72,49-71 246 | 28-28,13-29 247 | 38-68,67-67 248 | 15-48,14-88 249 | 16-37,16-36 250 | 76-84,76-76 251 | 5-96,26-97 252 | 35-36,4-35 253 | 1-96,2-97 254 | 71-71,3-70 255 | 37-87,37-86 256 | 29-52,52-53 257 | 12-79,16-80 258 | 46-88,8-87 259 | 8-91,8-84 260 | 21-96,21-95 261 | 17-97,7-96 262 | 51-77,36-77 263 | 13-21,6-13 264 | 64-77,63-64 265 | 4-8,2-44 266 | 63-80,64-66 267 | 51-90,52-89 268 | 34-34,34-73 269 | 3-81,1-81 270 | 19-19,19-53 271 | 68-73,14-51 272 | 4-58,59-59 273 | 8-30,12-30 274 | 4-82,5-81 275 | 26-99,27-99 276 | 27-89,26-88 277 | 38-62,55-85 278 | 6-95,7-94 279 | 18-56,17-55 280 | 44-81,44-74 281 | 16-20,14-19 282 | 37-68,14-78 283 | 6-11,7-10 284 | 24-86,25-99 285 | 10-97,1-97 286 | 52-80,53-81 287 | 28-64,28-63 288 | 67-69,68-69 289 | 3-5,3-5 290 | 12-64,64-64 291 | 3-4,4-71 292 | 34-34,5-34 293 | 29-36,28-74 294 | 3-60,2-97 295 | 36-93,35-92 296 | 51-81,52-80 297 | 13-80,10-96 298 | 17-97,96-98 299 | 90-92,19-91 300 | 76-77,77-98 301 | 42-42,48-73 302 | 88-97,16-85 303 | 70-75,37-74 304 | 55-89,55-65 305 | 38-73,41-72 306 | 74-75,27-74 307 | 32-43,41-43 308 | 39-98,21-97 309 | 43-71,42-43 310 | 93-93,72-94 311 | 19-45,19-44 312 | 45-46,46-70 313 | 2-70,2-69 314 | 16-97,15-97 315 | 26-63,25-62 316 | 19-21,19-20 317 | 7-98,10-98 318 | 21-22,22-88 319 | 51-93,49-92 320 | 14-87,86-86 321 | 37-50,36-72 322 | 14-71,14-91 323 | 27-29,28-73 324 | 98-98,44-97 325 | 20-41,19-24 326 | 42-81,81-81 327 | 54-55,10-55 328 | 56-66,67-67 329 | 46-77,46-78 330 | 6-7,7-72 331 | 74-95,69-76 332 | 10-88,2-87 333 | 45-84,44-84 334 | 43-89,18-93 335 | 19-77,19-76 336 | 12-93,11-93 337 | 60-61,18-60 338 | 1-29,4-29 339 | 39-52,25-51 340 | 5-86,5-88 341 | 3-95,5-90 342 | 78-80,9-79 343 | 29-56,29-55 344 | 24-96,23-96 345 | 19-93,92-94 346 | 91-91,8-92 347 | 53-58,22-67 348 | 46-48,25-49 349 | 22-28,29-29 350 | 7-87,7-90 351 | 14-94,13-14 352 | 2-98,3-99 353 | 14-80,13-81 354 | 6-99,7-35 355 | 3-86,2-87 356 | 41-98,42-88 357 | 15-15,11-15 358 | 32-75,31-32 359 | 11-45,16-26 360 | 4-79,80-98 361 | 90-92,91-93 362 | 2-2,1-98 363 | 24-65,23-23 364 | 7-69,7-70 365 | 76-84,77-83 366 | 38-63,63-79 367 | 11-11,10-46 368 | 10-89,10-99 369 | 16-73,16-72 370 | 22-77,17-78 371 | 99-99,25-99 372 | 6-96,95-96 373 | 52-90,52-62 374 | 76-76,76-77 375 | 14-88,14-88 376 | 26-81,25-96 377 | 53-81,81-81 378 | 38-97,37-73 379 | 16-81,15-15 380 | 30-58,30-58 381 | 61-89,5-89 382 | 14-60,13-15 383 | 22-93,23-94 384 | 19-43,18-31 385 | 6-87,1-87 386 | 1-99,2-98 387 | 3-84,75-84 388 | 70-76,71-72 389 | 15-15,15-39 390 | 6-92,5-93 391 | 3-32,2-31 392 | 30-83,56-83 393 | 78-78,79-98 394 | 7-98,6-42 395 | 18-57,18-57 396 | 8-76,3-91 397 | 12-97,13-98 398 | 36-51,37-83 399 | 3-95,1-97 400 | 25-67,25-25 401 | 14-79,14-33 402 | 91-92,91-91 403 | 3-80,2-81 404 | 38-92,91-92 405 | 93-98,93-97 406 | 21-22,22-36 407 | 31-89,27-30 408 | 14-95,13-13 409 | 25-36,24-36 410 | 43-71,30-79 411 | 37-37,36-83 412 | 2-94,3-98 413 | 2-89,60-88 414 | 7-98,6-8 415 | 66-70,65-70 416 | 11-71,97-99 417 | 9-95,8-94 418 | 4-77,5-76 419 | 38-85,37-86 420 | 18-51,17-19 421 | 13-13,6-13 422 | 71-81,70-80 423 | 46-81,47-47 424 | 69-69,68-76 425 | 37-56,37-56 426 | 96-97,6-96 427 | 53-59,54-58 428 | 45-50,2-49 429 | 5-33,6-6 430 | 16-61,16-61 431 | 13-51,3-51 432 | 5-82,4-53 433 | 5-81,54-81 434 | 2-18,18-19 435 | 29-29,5-29 436 | 12-81,13-81 437 | 2-71,16-71 438 | 48-92,32-42 439 | 8-12,8-75 440 | 47-86,86-86 441 | 5-97,4-96 442 | 75-75,16-74 443 | 13-95,8-97 444 | 10-90,9-91 445 | 48-62,47-63 446 | 3-18,2-2 447 | 1-18,17-81 448 | 45-83,25-84 449 | 36-91,37-92 450 | 85-99,15-85 451 | 39-85,2-96 452 | 24-96,11-94 453 | 12-89,11-58 454 | 47-72,59-73 455 | 31-91,30-81 456 | 33-43,34-41 457 | 16-83,15-83 458 | 22-55,21-54 459 | 39-82,26-97 460 | 10-95,11-96 461 | 2-98,4-79 462 | 17-37,16-41 463 | 76-76,25-77 464 | 65-73,74-77 465 | 9-82,82-83 466 | 30-57,31-76 467 | 4-74,5-34 468 | 31-87,86-87 469 | 65-74,15-73 470 | 36-36,35-36 471 | 1-99,1-2 472 | 31-79,78-79 473 | 6-88,7-96 474 | 73-86,74-93 475 | 31-49,49-85 476 | 2-98,1-3 477 | 14-57,15-58 478 | 83-96,96-97 479 | 6-92,6-93 480 | 6-95,3-94 481 | 16-96,26-92 482 | 6-85,2-85 483 | 38-39,38-92 484 | 96-97,33-93 485 | 12-13,13-51 486 | 5-5,4-4 487 | 1-95,1-95 488 | 69-71,69-73 489 | 27-98,26-99 490 | 5-25,4-26 491 | 43-68,68-69 492 | 8-56,15-56 493 | 3-99,4-98 494 | 5-5,5-96 495 | 17-71,18-32 496 | 53-53,53-99 497 | 12-18,14-19 498 | 20-94,20-93 499 | 15-62,14-63 500 | 59-59,59-73 501 | 99-99,11-96 502 | 47-98,46-47 503 | 4-86,86-86 504 | 1-1,3-64 505 | 19-45,18-84 506 | 1-86,9-87 507 | 45-45,32-46 508 | 41-63,63-64 509 | 3-5,5-38 510 | 34-70,33-70 511 | 34-91,3-92 512 | 12-45,11-45 513 | 29-30,34-86 514 | 24-55,55-56 515 | 6-41,7-99 516 | 87-88,5-87 517 | 5-63,6-6 518 | 63-63,63-68 519 | 2-95,96-98 520 | 17-25,33-98 521 | 40-99,41-82 522 | 21-41,42-46 523 | 50-86,12-91 524 | 11-64,10-63 525 | 21-21,21-39 526 | 10-96,10-95 527 | 18-95,18-94 528 | 73-79,80-93 529 | 14-69,15-70 530 | 25-83,26-26 531 | 83-94,61-82 532 | 16-90,64-96 533 | 2-3,3-21 534 | 7-45,7-57 535 | 6-85,5-84 536 | 22-94,21-21 537 | 5-64,5-63 538 | 96-99,70-96 539 | 18-87,17-18 540 | 6-99,6-11 541 | 49-49,2-48 542 | 7-64,65-69 543 | 41-46,14-47 544 | 92-92,8-92 545 | 6-96,5-24 546 | 57-85,57-84 547 | 39-99,40-99 548 | 80-86,86-86 549 | 52-91,94-98 550 | 67-88,15-66 551 | 15-39,40-40 552 | 22-92,23-23 553 | 31-84,74-84 554 | 43-43,25-43 555 | 16-90,15-85 556 | 5-36,7-36 557 | 53-58,52-59 558 | 14-96,99-99 559 | 3-94,2-95 560 | 97-99,49-97 561 | 7-67,54-67 562 | 12-72,72-73 563 | 69-76,75-75 564 | 59-79,60-64 565 | 72-99,78-92 566 | 80-80,80-86 567 | 25-26,25-88 568 | 27-43,27-44 569 | 27-76,18-75 570 | 22-23,5-23 571 | 52-69,53-70 572 | 16-64,16-98 573 | 3-51,5-96 574 | 3-72,2-20 575 | 26-26,27-37 576 | 58-91,90-91 577 | 14-20,11-44 578 | 5-99,5-6 579 | 31-32,31-99 580 | 9-93,93-93 581 | 21-81,20-80 582 | 47-99,49-50 583 | 28-89,27-28 584 | 30-77,30-30 585 | 91-93,59-92 586 | 4-78,40-89 587 | 38-95,39-78 588 | 27-58,26-58 589 | 32-92,24-32 590 | 69-91,35-69 591 | 31-95,13-94 592 | 8-8,7-99 593 | 14-93,8-93 594 | 36-78,16-79 595 | 7-53,10-52 596 | 98-99,5-98 597 | 9-15,10-14 598 | 1-98,2-98 599 | 2-60,3-60 600 | 33-70,32-32 601 | 83-97,82-89 602 | 92-92,32-91 603 | 1-97,1-96 604 | 85-95,48-77 605 | 3-26,4-4 606 | 14-14,13-88 607 | 13-90,14-91 608 | 28-67,27-66 609 | 69-75,76-76 610 | 31-97,16-96 611 | 21-47,46-47 612 | 50-51,40-51 613 | 17-97,8-97 614 | 3-98,4-97 615 | 58-97,59-92 616 | 8-15,7-15 617 | 94-95,4-94 618 | 45-56,44-50 619 | 21-44,22-43 620 | 16-72,15-71 621 | 65-84,65-84 622 | 18-46,63-72 623 | 61-71,41-54 624 | 10-36,9-66 625 | 3-68,3-69 626 | 19-19,18-20 627 | 69-70,4-69 628 | 72-72,71-73 629 | 30-95,30-31 630 | 76-77,76-86 631 | 21-71,21-66 632 | 36-36,37-47 633 | 17-98,98-98 634 | 38-74,39-39 635 | 1-95,3-94 636 | 9-17,11-18 637 | 1-93,1-94 638 | 49-75,67-76 639 | 83-91,90-91 640 | 8-71,37-62 641 | 31-51,22-50 642 | 45-99,46-98 643 | 8-32,6-32 644 | 50-50,50-78 645 | 75-80,75-81 646 | 1-68,14-83 647 | 13-90,6-95 648 | 3-47,3-85 649 | 25-47,25-25 650 | 15-77,5-57 651 | 7-69,48-69 652 | 21-74,22-73 653 | 48-84,83-84 654 | 14-14,13-65 655 | 41-96,20-98 656 | 73-93,24-92 657 | 14-45,15-15 658 | 98-98,6-99 659 | 34-63,33-34 660 | 10-93,92-94 661 | 2-97,31-97 662 | 30-99,30-86 663 | 6-89,89-90 664 | 65-94,42-64 665 | 38-40,39-74 666 | 1-1,1-40 667 | 9-26,25-25 668 | 2-95,95-96 669 | 14-93,10-92 670 | 84-86,4-84 671 | 21-21,20-92 672 | 56-98,31-97 673 | 4-31,3-31 674 | 2-20,21-21 675 | 12-91,13-91 676 | 1-90,2-79 677 | 3-4,4-80 678 | 12-89,13-88 679 | 6-88,88-88 680 | 22-90,22-22 681 | 18-87,19-35 682 | 28-71,29-49 683 | 39-52,52-53 684 | 73-82,72-74 685 | 70-98,30-99 686 | 31-40,37-40 687 | 10-28,15-86 688 | 48-92,65-91 689 | 10-96,9-11 690 | 22-98,21-23 691 | 2-98,3-21 692 | 34-34,33-72 693 | 23-42,2-58 694 | 26-98,49-97 695 | 65-95,29-94 696 | 48-48,47-49 697 | 23-66,22-65 698 | 97-98,83-98 699 | 32-47,31-53 700 | 24-26,15-25 701 | 82-88,89-89 702 | 85-96,85-98 703 | 22-76,24-77 704 | 84-85,84-86 705 | 26-27,26-98 706 | 10-88,14-71 707 | 73-81,1-72 708 | 79-88,15-88 709 | 74-86,64-87 710 | 27-56,28-55 711 | 37-38,36-89 712 | 1-47,17-48 713 | 50-94,45-76 714 | 35-90,34-90 715 | 7-98,6-6 716 | 2-95,5-96 717 | 60-95,60-98 718 | 94-96,5-93 719 | 25-97,28-98 720 | 9-9,9-98 721 | 6-15,15-83 722 | 11-32,12-75 723 | 7-97,7-99 724 | 17-17,17-58 725 | 46-95,45-94 726 | 10-86,11-11 727 | 41-43,40-43 728 | 7-74,34-75 729 | 8-97,9-97 730 | 72-82,82-98 731 | 19-20,19-38 732 | 7-94,6-95 733 | 9-48,10-97 734 | 47-73,48-48 735 | 32-93,8-99 736 | 12-65,11-13 737 | 43-51,27-50 738 | 35-67,34-66 739 | 9-28,9-28 740 | 25-86,18-85 741 | 92-92,11-93 742 | 66-66,36-66 743 | 59-60,12-59 744 | 5-21,4-4 745 | 40-93,40-93 746 | 56-86,57-87 747 | 2-97,1-2 748 | 61-94,60-93 749 | 36-64,35-65 750 | 62-94,62-95 751 | 27-99,27-27 752 | 36-52,35-36 753 | 31-91,30-31 754 | 35-93,92-94 755 | 2-98,1-3 756 | 74-74,6-74 757 | 46-79,80-80 758 | 19-95,17-94 759 | 15-16,16-83 760 | 1-94,3-93 761 | 79-79,10-79 762 | 10-75,9-74 763 | 2-84,1-83 764 | 19-83,19-82 765 | 13-14,14-34 766 | 33-57,33-58 767 | 3-7,4-91 768 | 25-25,24-48 769 | 46-47,44-46 770 | 85-86,19-85 771 | 40-42,37-42 772 | 72-88,64-84 773 | 25-68,25-25 774 | 88-88,89-89 775 | 3-14,4-15 776 | 12-98,12-92 777 | 5-90,38-91 778 | 41-58,42-59 779 | 24-63,64-84 780 | 47-48,29-47 781 | 30-62,62-77 782 | 43-80,44-97 783 | 90-99,5-90 784 | 12-58,58-58 785 | 18-66,6-87 786 | 30-89,65-83 787 | 23-93,93-93 788 | 7-19,6-18 789 | 12-99,13-57 790 | 5-27,27-30 791 | 3-4,4-75 792 | 14-26,14-23 793 | 91-95,34-94 794 | 52-83,53-53 795 | 16-24,13-23 796 | 56-70,70-71 797 | 10-80,80-81 798 | 58-97,91-99 799 | 16-82,46-83 800 | 15-16,15-83 801 | 26-81,27-80 802 | 65-65,46-65 803 | 23-93,24-92 804 | 42-92,6-91 805 | 25-65,25-25 806 | 9-72,8-77 807 | 36-94,35-37 808 | 44-86,43-45 809 | 51-89,50-90 810 | 69-71,68-77 811 | 10-36,28-37 812 | 22-75,74-74 813 | 38-38,37-94 814 | 42-70,41-70 815 | 3-92,2-72 816 | 18-89,89-95 817 | 82-89,6-89 818 | 75-76,11-75 819 | 12-26,19-27 820 | 21-83,21-84 821 | 2-97,3-99 822 | 13-97,13-97 823 | 89-92,89-89 824 | 29-73,2-5 825 | 41-60,50-59 826 | 12-68,11-67 827 | 26-59,26-58 828 | 22-64,22-72 829 | 31-74,30-75 830 | 41-49,41-49 831 | 26-92,19-92 832 | 53-65,52-52 833 | 47-54,53-55 834 | 81-99,80-81 835 | 22-81,23-81 836 | 15-40,14-40 837 | 5-96,4-96 838 | 21-98,2-97 839 | 13-57,6-56 840 | 13-47,12-31 841 | 66-66,58-65 842 | 2-39,10-39 843 | 11-82,10-81 844 | 94-96,11-66 845 | 5-61,4-60 846 | 35-88,89-98 847 | 58-80,58-81 848 | 15-98,14-16 849 | 33-99,32-34 850 | 4-97,77-98 851 | 14-15,40-47 852 | 31-51,30-52 853 | 28-97,29-97 854 | 79-84,79-85 855 | 19-64,19-63 856 | 3-3,3-75 857 | 36-72,37-92 858 | 6-26,4-75 859 | 4-4,3-13 860 | 44-44,44-69 861 | 3-93,4-93 862 | 47-96,47-96 863 | 15-54,16-41 864 | 78-98,77-97 865 | 53-55,32-55 866 | 88-89,76-88 867 | 16-84,15-95 868 | 82-82,3-83 869 | 43-44,28-43 870 | 66-66,65-81 871 | 6-96,5-95 872 | 83-90,30-84 873 | 61-72,39-61 874 | 2-51,1-52 875 | 11-18,10-24 876 | 65-66,63-65 877 | 7-97,1-96 878 | 6-33,6-6 879 | 50-89,51-51 880 | 22-53,14-52 881 | 49-97,48-98 882 | 5-98,6-44 883 | 15-85,14-84 884 | 29-95,30-96 885 | 75-76,42-75 886 | 37-53,37-52 887 | 3-84,3-3 888 | 33-97,33-69 889 | 49-98,63-99 890 | 77-84,75-83 891 | 3-77,1-76 892 | 60-94,59-85 893 | 79-80,3-79 894 | 32-35,32-36 895 | 30-31,31-89 896 | 15-16,16-86 897 | 8-98,8-97 898 | 42-87,43-88 899 | 34-64,20-63 900 | 7-97,46-98 901 | 4-19,19-67 902 | 39-90,41-90 903 | 40-78,78-79 904 | 50-73,14-92 905 | 58-87,59-60 906 | 4-82,3-4 907 | 61-63,60-68 908 | 1-6,6-61 909 | 17-19,17-18 910 | 5-62,10-36 911 | 15-40,14-39 912 | 59-70,60-69 913 | 93-95,37-92 914 | 14-97,7-99 915 | 91-92,55-91 916 | 38-88,26-42 917 | 6-72,5-7 918 | 77-96,77-97 919 | 5-84,84-84 920 | 29-47,22-32 921 | 53-54,52-53 922 | 11-95,95-96 923 | 7-40,21-95 924 | 99-99,47-99 925 | 18-76,18-82 926 | 1-93,26-93 927 | 37-37,2-41 928 | 71-71,4-71 929 | 26-97,26-26 930 | 68-69,3-68 931 | 96-96,24-97 932 | 41-80,40-65 933 | 54-99,67-95 934 | 80-90,81-93 935 | 35-59,35-59 936 | 16-44,16-44 937 | 2-78,19-79 938 | 16-16,16-97 939 | 2-38,2-2 940 | 8-16,2-16 941 | 47-72,48-73 942 | 15-28,14-29 943 | 4-90,5-5 944 | 46-99,19-95 945 | 66-86,66-77 946 | 61-97,61-96 947 | 30-93,47-93 948 | 59-81,60-80 949 | 21-22,21-22 950 | 36-78,35-77 951 | 35-93,35-35 952 | 34-34,33-49 953 | 24-69,1-68 954 | 9-84,15-84 955 | 11-11,10-94 956 | 3-59,3-4 957 | 25-69,68-68 958 | 93-94,3-93 959 | 72-98,85-98 960 | 36-95,36-94 961 | 36-85,36-86 962 | 9-39,9-40 963 | 97-98,34-97 964 | 24-84,77-85 965 | 37-85,38-38 966 | 92-93,34-91 967 | 44-69,43-78 968 | 2-83,82-84 969 | 19-37,40-62 970 | 56-79,54-78 971 | 60-60,60-97 972 | 46-66,46-67 973 | 18-76,19-86 974 | 40-67,20-67 975 | 13-98,14-97 976 | 63-65,62-64 977 | 22-88,21-89 978 | 45-77,46-78 979 | 14-52,14-53 980 | 38-59,38-60 981 | 1-21,21-21 982 | 62-70,61-62 983 | 50-56,23-99 984 | 4-96,53-97 985 | 68-69,19-68 986 | 35-76,34-76 987 | 29-76,30-77 988 | 12-91,13-90 989 | 7-94,96-99 990 | 5-85,5-81 991 | 56-57,57-58 992 | 26-26,27-98 993 | 12-28,11-58 994 | 11-32,10-32 995 | 10-42,10-56 996 | 46-63,38-62 997 | 31-95,3-94 998 | 76-82,41-75 999 | 87-88,4-88 1000 | 21-33,20-32 1001 | -------------------------------------------------------------------------------- /day9/input: -------------------------------------------------------------------------------- 1 | U 1 2 | R 1 3 | L 1 4 | D 1 5 | R 1 6 | L 1 7 | D 1 8 | L 2 9 | D 1 10 | R 1 11 | D 2 12 | L 1 13 | R 1 14 | D 2 15 | U 2 16 | L 1 17 | R 1 18 | U 1 19 | D 1 20 | R 1 21 | L 2 22 | R 2 23 | L 1 24 | R 2 25 | D 1 26 | U 1 27 | R 1 28 | L 2 29 | R 2 30 | D 2 31 | U 1 32 | L 2 33 | D 2 34 | U 2 35 | L 2 36 | U 1 37 | R 1 38 | L 1 39 | D 2 40 | L 1 41 | U 2 42 | L 1 43 | D 1 44 | U 2 45 | R 2 46 | U 1 47 | D 2 48 | U 2 49 | D 1 50 | L 2 51 | R 1 52 | D 1 53 | R 1 54 | D 2 55 | L 1 56 | U 2 57 | D 1 58 | L 2 59 | U 1 60 | D 1 61 | L 2 62 | R 2 63 | D 2 64 | L 2 65 | U 1 66 | D 1 67 | L 2 68 | U 2 69 | L 2 70 | U 2 71 | R 1 72 | L 1 73 | R 2 74 | D 2 75 | R 1 76 | L 2 77 | R 1 78 | D 1 79 | R 1 80 | U 2 81 | D 2 82 | L 1 83 | U 2 84 | D 2 85 | L 2 86 | U 1 87 | R 1 88 | D 1 89 | U 1 90 | R 1 91 | L 2 92 | U 2 93 | L 1 94 | R 2 95 | L 2 96 | D 2 97 | U 1 98 | D 2 99 | U 1 100 | L 1 101 | U 2 102 | D 2 103 | R 1 104 | D 1 105 | L 2 106 | R 2 107 | D 1 108 | L 1 109 | R 1 110 | U 1 111 | L 2 112 | R 2 113 | U 1 114 | R 3 115 | D 2 116 | U 2 117 | L 3 118 | R 3 119 | D 3 120 | U 3 121 | R 1 122 | D 2 123 | R 1 124 | D 1 125 | L 2 126 | R 3 127 | D 3 128 | U 3 129 | D 3 130 | R 1 131 | U 2 132 | D 3 133 | L 3 134 | R 2 135 | L 2 136 | D 3 137 | U 2 138 | D 1 139 | R 3 140 | D 1 141 | U 1 142 | L 2 143 | D 1 144 | U 1 145 | L 1 146 | D 1 147 | R 3 148 | D 2 149 | L 1 150 | R 1 151 | L 2 152 | U 3 153 | L 1 154 | U 1 155 | L 3 156 | R 3 157 | L 3 158 | R 2 159 | D 2 160 | R 1 161 | U 2 162 | R 1 163 | D 3 164 | U 3 165 | L 1 166 | U 2 167 | D 3 168 | R 2 169 | D 1 170 | U 1 171 | D 1 172 | R 3 173 | U 1 174 | R 2 175 | L 1 176 | D 1 177 | U 1 178 | R 2 179 | L 1 180 | U 3 181 | L 1 182 | R 1 183 | U 3 184 | L 3 185 | D 2 186 | R 2 187 | D 1 188 | L 3 189 | R 3 190 | D 1 191 | L 2 192 | U 3 193 | D 1 194 | U 1 195 | R 1 196 | L 1 197 | U 2 198 | D 2 199 | R 3 200 | U 3 201 | R 1 202 | U 2 203 | D 2 204 | R 2 205 | D 2 206 | R 1 207 | L 2 208 | D 1 209 | U 2 210 | L 3 211 | U 2 212 | D 3 213 | L 2 214 | R 1 215 | D 1 216 | L 1 217 | U 2 218 | D 1 219 | L 3 220 | R 2 221 | D 2 222 | R 3 223 | L 3 224 | D 3 225 | U 1 226 | R 1 227 | L 3 228 | R 2 229 | L 1 230 | U 2 231 | L 4 232 | D 1 233 | L 4 234 | D 3 235 | L 3 236 | D 2 237 | U 3 238 | L 3 239 | D 4 240 | U 4 241 | D 4 242 | L 3 243 | D 1 244 | R 4 245 | D 4 246 | R 2 247 | L 3 248 | D 4 249 | R 3 250 | D 3 251 | R 3 252 | L 4 253 | U 3 254 | R 1 255 | D 4 256 | U 2 257 | R 3 258 | U 2 259 | L 4 260 | R 3 261 | L 2 262 | R 4 263 | L 2 264 | R 4 265 | U 2 266 | R 4 267 | U 3 268 | L 3 269 | D 4 270 | R 3 271 | U 4 272 | R 3 273 | D 4 274 | U 2 275 | D 4 276 | U 1 277 | R 1 278 | U 3 279 | D 4 280 | U 2 281 | D 3 282 | L 2 283 | U 4 284 | L 1 285 | U 1 286 | L 1 287 | U 3 288 | R 2 289 | U 1 290 | R 3 291 | D 1 292 | U 2 293 | R 1 294 | U 4 295 | D 3 296 | L 4 297 | U 4 298 | R 1 299 | D 2 300 | L 4 301 | R 3 302 | U 2 303 | L 1 304 | U 1 305 | L 2 306 | U 4 307 | D 1 308 | L 3 309 | R 3 310 | L 3 311 | R 4 312 | L 2 313 | R 4 314 | U 2 315 | D 3 316 | R 4 317 | L 3 318 | R 1 319 | L 3 320 | D 4 321 | L 1 322 | R 4 323 | U 3 324 | R 3 325 | L 4 326 | D 3 327 | R 4 328 | L 4 329 | R 2 330 | L 4 331 | D 4 332 | R 4 333 | D 4 334 | R 4 335 | L 3 336 | D 1 337 | U 4 338 | R 5 339 | L 3 340 | R 3 341 | L 1 342 | R 3 343 | D 3 344 | U 5 345 | R 2 346 | U 4 347 | D 1 348 | R 3 349 | D 1 350 | R 3 351 | U 5 352 | D 5 353 | U 5 354 | L 2 355 | D 1 356 | U 3 357 | L 5 358 | R 1 359 | D 5 360 | L 3 361 | U 5 362 | L 3 363 | R 5 364 | L 1 365 | U 3 366 | D 1 367 | L 5 368 | R 2 369 | U 5 370 | L 1 371 | D 1 372 | U 1 373 | D 5 374 | L 2 375 | U 4 376 | R 2 377 | D 1 378 | U 3 379 | L 3 380 | D 1 381 | R 4 382 | D 3 383 | U 2 384 | D 3 385 | R 5 386 | U 5 387 | D 1 388 | L 3 389 | U 2 390 | R 2 391 | D 3 392 | U 5 393 | R 1 394 | L 4 395 | D 3 396 | R 3 397 | D 4 398 | L 3 399 | D 5 400 | R 5 401 | D 3 402 | R 1 403 | U 3 404 | R 1 405 | L 3 406 | D 3 407 | L 3 408 | D 1 409 | R 1 410 | U 4 411 | D 4 412 | R 2 413 | D 4 414 | L 4 415 | U 5 416 | L 2 417 | R 5 418 | D 5 419 | R 1 420 | D 1 421 | R 1 422 | L 1 423 | R 4 424 | U 4 425 | L 2 426 | R 2 427 | L 5 428 | D 3 429 | R 5 430 | L 5 431 | D 2 432 | R 1 433 | D 2 434 | R 2 435 | L 1 436 | U 1 437 | R 5 438 | U 4 439 | D 2 440 | U 3 441 | D 3 442 | R 4 443 | L 2 444 | D 5 445 | U 5 446 | L 5 447 | R 4 448 | D 1 449 | U 3 450 | R 3 451 | L 6 452 | U 6 453 | R 6 454 | L 2 455 | D 2 456 | U 3 457 | R 4 458 | D 2 459 | L 1 460 | R 1 461 | L 1 462 | R 1 463 | L 4 464 | U 2 465 | D 2 466 | U 4 467 | R 1 468 | L 3 469 | U 1 470 | L 3 471 | U 1 472 | L 3 473 | D 6 474 | U 5 475 | D 2 476 | L 3 477 | D 4 478 | L 3 479 | U 5 480 | D 4 481 | R 3 482 | L 2 483 | U 6 484 | L 3 485 | D 5 486 | L 3 487 | R 2 488 | D 3 489 | R 1 490 | U 4 491 | D 2 492 | U 3 493 | R 5 494 | D 1 495 | R 1 496 | U 5 497 | L 3 498 | U 6 499 | R 1 500 | U 1 501 | R 2 502 | L 3 503 | D 5 504 | R 1 505 | U 5 506 | L 4 507 | D 4 508 | R 5 509 | L 6 510 | R 4 511 | U 3 512 | R 5 513 | U 2 514 | D 4 515 | R 1 516 | U 1 517 | L 6 518 | D 3 519 | L 5 520 | U 4 521 | R 1 522 | D 5 523 | U 3 524 | D 3 525 | R 6 526 | L 3 527 | D 4 528 | U 6 529 | L 3 530 | D 3 531 | L 2 532 | U 1 533 | R 3 534 | D 1 535 | L 3 536 | U 3 537 | R 2 538 | D 2 539 | L 1 540 | R 4 541 | D 6 542 | U 6 543 | R 4 544 | D 6 545 | R 5 546 | D 2 547 | U 1 548 | L 5 549 | D 6 550 | L 2 551 | U 3 552 | D 2 553 | R 4 554 | L 6 555 | U 6 556 | L 3 557 | D 4 558 | L 2 559 | U 3 560 | R 6 561 | D 5 562 | R 7 563 | L 3 564 | D 4 565 | R 5 566 | U 5 567 | L 2 568 | D 6 569 | R 1 570 | D 1 571 | L 6 572 | D 4 573 | U 2 574 | D 4 575 | R 7 576 | L 1 577 | U 4 578 | R 4 579 | D 4 580 | U 5 581 | D 2 582 | L 2 583 | R 6 584 | U 6 585 | R 4 586 | L 6 587 | U 1 588 | R 7 589 | U 3 590 | L 1 591 | R 2 592 | L 4 593 | D 2 594 | U 6 595 | R 1 596 | U 2 597 | L 6 598 | U 6 599 | L 6 600 | U 7 601 | L 3 602 | D 7 603 | L 7 604 | D 6 605 | U 2 606 | R 6 607 | L 7 608 | R 4 609 | D 4 610 | R 2 611 | U 1 612 | D 7 613 | U 6 614 | L 2 615 | D 7 616 | U 2 617 | R 7 618 | U 6 619 | D 3 620 | L 5 621 | U 2 622 | D 4 623 | R 4 624 | U 1 625 | D 2 626 | L 1 627 | R 2 628 | U 6 629 | R 2 630 | U 2 631 | D 2 632 | L 1 633 | U 7 634 | R 6 635 | L 1 636 | R 2 637 | D 1 638 | R 2 639 | L 5 640 | U 7 641 | R 7 642 | U 3 643 | D 1 644 | R 6 645 | L 6 646 | U 1 647 | D 4 648 | R 4 649 | L 1 650 | R 4 651 | U 6 652 | D 7 653 | L 2 654 | R 6 655 | L 1 656 | D 2 657 | R 2 658 | L 4 659 | D 3 660 | U 4 661 | L 5 662 | R 1 663 | L 3 664 | U 2 665 | D 1 666 | U 3 667 | R 7 668 | D 2 669 | U 2 670 | L 7 671 | R 7 672 | D 2 673 | R 4 674 | L 8 675 | R 2 676 | L 5 677 | D 6 678 | L 8 679 | R 3 680 | D 3 681 | R 1 682 | D 6 683 | U 5 684 | R 5 685 | U 8 686 | R 7 687 | U 2 688 | L 2 689 | R 5 690 | L 1 691 | U 6 692 | D 7 693 | R 7 694 | U 5 695 | R 7 696 | L 4 697 | R 4 698 | U 8 699 | L 3 700 | U 2 701 | D 2 702 | U 1 703 | R 1 704 | U 7 705 | D 3 706 | R 2 707 | D 5 708 | U 7 709 | L 8 710 | R 4 711 | L 5 712 | D 1 713 | U 7 714 | D 3 715 | R 7 716 | U 1 717 | R 6 718 | U 4 719 | L 8 720 | R 8 721 | U 5 722 | L 5 723 | U 3 724 | L 7 725 | D 5 726 | U 5 727 | R 8 728 | U 1 729 | D 1 730 | U 1 731 | R 7 732 | D 2 733 | U 2 734 | D 5 735 | L 4 736 | D 4 737 | U 5 738 | L 2 739 | R 5 740 | U 7 741 | R 6 742 | U 5 743 | L 1 744 | D 2 745 | U 8 746 | L 7 747 | D 2 748 | R 2 749 | D 6 750 | U 1 751 | D 3 752 | L 2 753 | D 7 754 | R 3 755 | D 2 756 | U 6 757 | D 6 758 | U 7 759 | L 2 760 | R 8 761 | U 2 762 | D 4 763 | L 3 764 | R 3 765 | D 7 766 | L 5 767 | U 7 768 | R 2 769 | L 8 770 | R 8 771 | L 1 772 | D 6 773 | L 2 774 | U 6 775 | L 8 776 | D 5 777 | R 8 778 | U 1 779 | R 4 780 | D 1 781 | L 7 782 | U 2 783 | D 9 784 | L 5 785 | U 2 786 | D 8 787 | L 6 788 | D 9 789 | U 9 790 | R 1 791 | D 8 792 | L 8 793 | D 9 794 | U 3 795 | R 4 796 | U 6 797 | D 9 798 | L 3 799 | R 1 800 | U 5 801 | L 5 802 | D 5 803 | L 8 804 | D 1 805 | U 9 806 | L 4 807 | D 3 808 | L 9 809 | R 5 810 | L 9 811 | D 5 812 | L 2 813 | U 7 814 | R 6 815 | D 4 816 | U 8 817 | L 7 818 | D 7 819 | U 5 820 | L 9 821 | R 3 822 | L 9 823 | U 4 824 | L 4 825 | R 7 826 | L 5 827 | R 2 828 | D 1 829 | U 2 830 | R 3 831 | L 5 832 | R 9 833 | L 3 834 | D 9 835 | L 9 836 | U 5 837 | D 3 838 | U 6 839 | D 3 840 | L 3 841 | U 5 842 | D 1 843 | R 1 844 | L 8 845 | R 1 846 | D 6 847 | R 2 848 | U 6 849 | L 6 850 | R 3 851 | D 2 852 | R 4 853 | U 6 854 | R 8 855 | U 4 856 | D 8 857 | R 1 858 | U 8 859 | D 4 860 | L 9 861 | U 8 862 | L 2 863 | U 1 864 | R 2 865 | D 7 866 | R 1 867 | D 9 868 | R 3 869 | L 6 870 | U 6 871 | L 2 872 | R 7 873 | U 5 874 | R 8 875 | L 3 876 | D 5 877 | R 3 878 | U 9 879 | D 5 880 | R 5 881 | U 1 882 | L 6 883 | D 2 884 | R 2 885 | D 3 886 | L 2 887 | U 2 888 | L 5 889 | U 9 890 | L 8 891 | D 2 892 | U 7 893 | R 6 894 | U 3 895 | L 8 896 | U 5 897 | D 4 898 | U 4 899 | R 2 900 | D 1 901 | L 7 902 | U 4 903 | R 1 904 | L 3 905 | D 7 906 | R 5 907 | D 8 908 | R 4 909 | U 3 910 | L 3 911 | D 3 912 | U 5 913 | L 3 914 | D 1 915 | R 10 916 | D 4 917 | U 6 918 | D 4 919 | R 7 920 | U 5 921 | L 2 922 | R 5 923 | D 8 924 | R 3 925 | U 6 926 | R 5 927 | L 9 928 | R 7 929 | D 6 930 | U 10 931 | R 10 932 | D 5 933 | R 9 934 | U 4 935 | R 6 936 | L 8 937 | U 5 938 | L 9 939 | R 8 940 | D 2 941 | U 5 942 | D 4 943 | R 3 944 | D 10 945 | U 9 946 | L 5 947 | U 5 948 | L 10 949 | D 7 950 | U 4 951 | D 10 952 | U 1 953 | D 8 954 | L 6 955 | D 9 956 | R 5 957 | U 2 958 | R 3 959 | U 1 960 | D 8 961 | R 3 962 | U 4 963 | D 6 964 | U 10 965 | D 4 966 | U 3 967 | D 5 968 | R 1 969 | L 8 970 | R 9 971 | D 2 972 | U 8 973 | L 1 974 | R 8 975 | U 5 976 | R 9 977 | U 9 978 | R 7 979 | D 5 980 | L 5 981 | D 8 982 | L 7 983 | U 1 984 | L 4 985 | D 2 986 | R 3 987 | D 1 988 | U 2 989 | L 1 990 | D 1 991 | U 6 992 | R 5 993 | U 5 994 | R 6 995 | L 1 996 | U 5 997 | R 5 998 | U 8 999 | L 9 1000 | D 2 1001 | R 10 1002 | U 2 1003 | R 6 1004 | U 8 1005 | R 2 1006 | L 11 1007 | U 3 1008 | D 4 1009 | R 6 1010 | L 8 1011 | R 10 1012 | U 10 1013 | R 6 1014 | L 4 1015 | R 11 1016 | U 11 1017 | R 3 1018 | U 11 1019 | L 7 1020 | R 4 1021 | L 7 1022 | U 5 1023 | D 2 1024 | U 8 1025 | R 9 1026 | D 9 1027 | R 1 1028 | U 9 1029 | D 6 1030 | U 3 1031 | D 10 1032 | L 7 1033 | D 8 1034 | R 9 1035 | U 9 1036 | D 7 1037 | L 11 1038 | D 8 1039 | R 8 1040 | U 11 1041 | L 11 1042 | U 4 1043 | D 6 1044 | R 1 1045 | D 8 1046 | R 2 1047 | U 1 1048 | L 11 1049 | R 10 1050 | L 6 1051 | U 8 1052 | L 10 1053 | U 5 1054 | L 11 1055 | U 6 1056 | L 5 1057 | U 10 1058 | R 5 1059 | U 11 1060 | R 6 1061 | D 4 1062 | U 7 1063 | L 11 1064 | D 3 1065 | U 8 1066 | R 8 1067 | L 2 1068 | D 10 1069 | L 5 1070 | D 10 1071 | R 4 1072 | U 3 1073 | L 7 1074 | U 10 1075 | D 4 1076 | U 10 1077 | R 2 1078 | U 1 1079 | D 6 1080 | L 6 1081 | U 7 1082 | D 4 1083 | R 6 1084 | D 11 1085 | L 1 1086 | U 5 1087 | L 1 1088 | D 9 1089 | R 11 1090 | L 8 1091 | D 3 1092 | U 7 1093 | R 9 1094 | D 1 1095 | U 3 1096 | R 1 1097 | L 8 1098 | D 6 1099 | U 9 1100 | D 9 1101 | L 10 1102 | U 8 1103 | D 5 1104 | L 1 1105 | U 2 1106 | D 3 1107 | L 11 1108 | R 3 1109 | L 7 1110 | D 1 1111 | U 8 1112 | D 5 1113 | L 8 1114 | R 7 1115 | L 8 1116 | D 4 1117 | R 7 1118 | D 11 1119 | R 3 1120 | L 1 1121 | R 6 1122 | U 3 1123 | R 11 1124 | L 5 1125 | R 4 1126 | L 1 1127 | D 6 1128 | R 7 1129 | U 2 1130 | L 2 1131 | R 11 1132 | L 1 1133 | D 4 1134 | L 5 1135 | U 3 1136 | R 9 1137 | U 4 1138 | D 10 1139 | U 3 1140 | R 10 1141 | L 4 1142 | R 7 1143 | D 9 1144 | U 11 1145 | D 10 1146 | R 5 1147 | U 6 1148 | L 3 1149 | R 5 1150 | D 1 1151 | R 3 1152 | L 10 1153 | D 4 1154 | U 8 1155 | R 9 1156 | U 5 1157 | R 6 1158 | U 3 1159 | D 2 1160 | R 6 1161 | U 3 1162 | L 3 1163 | R 8 1164 | L 9 1165 | D 6 1166 | U 7 1167 | D 11 1168 | U 12 1169 | R 7 1170 | D 7 1171 | U 12 1172 | L 6 1173 | U 6 1174 | D 3 1175 | L 11 1176 | R 8 1177 | U 10 1178 | L 7 1179 | R 2 1180 | U 8 1181 | L 3 1182 | R 12 1183 | D 4 1184 | L 4 1185 | U 10 1186 | L 9 1187 | R 8 1188 | L 12 1189 | D 3 1190 | R 4 1191 | L 9 1192 | U 4 1193 | L 6 1194 | D 11 1195 | U 3 1196 | R 7 1197 | U 3 1198 | D 3 1199 | U 4 1200 | L 12 1201 | R 11 1202 | U 5 1203 | D 3 1204 | R 7 1205 | U 1 1206 | D 11 1207 | R 7 1208 | L 3 1209 | R 6 1210 | U 10 1211 | L 11 1212 | U 2 1213 | L 11 1214 | U 11 1215 | R 8 1216 | D 12 1217 | U 4 1218 | L 1 1219 | D 3 1220 | R 6 1221 | L 2 1222 | U 4 1223 | D 3 1224 | R 8 1225 | L 2 1226 | D 9 1227 | L 9 1228 | U 8 1229 | R 12 1230 | D 7 1231 | U 13 1232 | R 7 1233 | L 10 1234 | U 6 1235 | L 11 1236 | D 6 1237 | U 13 1238 | R 4 1239 | U 8 1240 | D 7 1241 | U 7 1242 | R 5 1243 | U 2 1244 | R 2 1245 | D 2 1246 | L 6 1247 | D 12 1248 | U 2 1249 | R 4 1250 | U 7 1251 | D 7 1252 | L 13 1253 | R 7 1254 | U 12 1255 | L 11 1256 | U 1 1257 | L 1 1258 | D 7 1259 | U 1 1260 | D 4 1261 | U 10 1262 | D 10 1263 | R 4 1264 | L 13 1265 | R 2 1266 | U 7 1267 | D 5 1268 | R 2 1269 | D 5 1270 | L 13 1271 | R 2 1272 | U 3 1273 | R 9 1274 | U 12 1275 | L 9 1276 | U 9 1277 | R 1 1278 | L 9 1279 | D 9 1280 | R 8 1281 | U 8 1282 | D 8 1283 | U 8 1284 | R 5 1285 | D 7 1286 | R 12 1287 | L 11 1288 | U 1 1289 | D 7 1290 | L 8 1291 | D 3 1292 | R 4 1293 | L 1 1294 | U 2 1295 | R 10 1296 | U 6 1297 | R 8 1298 | U 13 1299 | L 3 1300 | D 1 1301 | R 9 1302 | L 5 1303 | U 5 1304 | L 11 1305 | R 1 1306 | D 8 1307 | U 6 1308 | R 13 1309 | U 4 1310 | L 3 1311 | U 6 1312 | D 12 1313 | R 5 1314 | D 7 1315 | L 4 1316 | D 8 1317 | L 13 1318 | R 13 1319 | U 4 1320 | D 12 1321 | L 1 1322 | U 9 1323 | L 8 1324 | U 11 1325 | R 7 1326 | D 2 1327 | L 11 1328 | U 11 1329 | L 13 1330 | D 6 1331 | R 10 1332 | D 9 1333 | U 8 1334 | R 3 1335 | U 10 1336 | L 8 1337 | U 13 1338 | D 10 1339 | R 2 1340 | D 7 1341 | R 11 1342 | L 10 1343 | D 3 1344 | U 1 1345 | D 13 1346 | L 4 1347 | D 14 1348 | L 14 1349 | U 6 1350 | L 10 1351 | D 7 1352 | L 13 1353 | U 7 1354 | R 14 1355 | D 2 1356 | U 1 1357 | L 12 1358 | R 11 1359 | D 7 1360 | L 9 1361 | D 5 1362 | L 6 1363 | U 11 1364 | D 7 1365 | L 10 1366 | U 11 1367 | L 2 1368 | R 8 1369 | L 2 1370 | U 10 1371 | D 3 1372 | R 14 1373 | D 2 1374 | R 1 1375 | D 2 1376 | U 13 1377 | D 2 1378 | L 5 1379 | D 3 1380 | U 11 1381 | D 8 1382 | R 11 1383 | L 5 1384 | R 10 1385 | U 4 1386 | R 3 1387 | L 9 1388 | U 2 1389 | R 3 1390 | L 5 1391 | U 10 1392 | L 6 1393 | D 8 1394 | R 13 1395 | U 10 1396 | L 13 1397 | U 5 1398 | L 9 1399 | R 14 1400 | U 2 1401 | D 8 1402 | L 3 1403 | R 13 1404 | U 3 1405 | D 12 1406 | R 7 1407 | U 13 1408 | L 2 1409 | U 4 1410 | D 2 1411 | L 13 1412 | U 2 1413 | L 8 1414 | D 10 1415 | U 13 1416 | L 4 1417 | U 1 1418 | D 3 1419 | U 1 1420 | R 8 1421 | L 4 1422 | U 10 1423 | R 2 1424 | U 8 1425 | D 9 1426 | R 10 1427 | D 8 1428 | U 12 1429 | R 11 1430 | L 11 1431 | R 14 1432 | U 5 1433 | R 10 1434 | D 1 1435 | U 6 1436 | D 4 1437 | R 5 1438 | U 11 1439 | D 14 1440 | U 6 1441 | R 7 1442 | D 6 1443 | R 13 1444 | D 7 1445 | R 14 1446 | D 15 1447 | R 6 1448 | D 13 1449 | L 7 1450 | U 9 1451 | L 1 1452 | R 12 1453 | U 8 1454 | L 14 1455 | D 4 1456 | R 8 1457 | L 13 1458 | D 3 1459 | U 9 1460 | D 13 1461 | L 5 1462 | R 9 1463 | U 12 1464 | D 8 1465 | U 11 1466 | L 8 1467 | R 13 1468 | D 6 1469 | R 8 1470 | D 13 1471 | R 4 1472 | D 6 1473 | L 4 1474 | D 13 1475 | U 2 1476 | D 3 1477 | R 1 1478 | L 15 1479 | D 11 1480 | L 8 1481 | D 8 1482 | L 7 1483 | R 1 1484 | D 12 1485 | R 7 1486 | D 2 1487 | U 3 1488 | L 9 1489 | D 1 1490 | R 8 1491 | L 2 1492 | D 9 1493 | L 2 1494 | U 2 1495 | R 4 1496 | L 11 1497 | U 6 1498 | D 11 1499 | L 2 1500 | U 7 1501 | D 7 1502 | U 11 1503 | R 9 1504 | U 4 1505 | R 14 1506 | L 9 1507 | D 5 1508 | R 5 1509 | D 4 1510 | R 1 1511 | D 15 1512 | U 5 1513 | R 8 1514 | U 10 1515 | R 1 1516 | L 1 1517 | U 11 1518 | L 11 1519 | U 15 1520 | R 5 1521 | D 5 1522 | U 3 1523 | L 5 1524 | U 5 1525 | L 5 1526 | D 15 1527 | U 7 1528 | D 13 1529 | R 3 1530 | L 9 1531 | U 12 1532 | L 3 1533 | U 13 1534 | R 1 1535 | U 2 1536 | R 4 1537 | D 9 1538 | L 6 1539 | R 8 1540 | D 13 1541 | L 14 1542 | R 9 1543 | D 10 1544 | L 15 1545 | U 14 1546 | R 14 1547 | U 4 1548 | R 13 1549 | D 12 1550 | L 5 1551 | D 5 1552 | L 13 1553 | U 15 1554 | D 13 1555 | L 12 1556 | U 6 1557 | D 10 1558 | U 10 1559 | L 2 1560 | R 9 1561 | D 5 1562 | U 5 1563 | D 16 1564 | R 12 1565 | D 2 1566 | R 15 1567 | L 1 1568 | D 9 1569 | L 14 1570 | R 9 1571 | L 10 1572 | R 6 1573 | D 16 1574 | L 9 1575 | U 4 1576 | D 1 1577 | U 7 1578 | R 12 1579 | D 2 1580 | R 1 1581 | D 5 1582 | R 15 1583 | L 16 1584 | U 14 1585 | D 16 1586 | L 6 1587 | U 11 1588 | L 16 1589 | R 8 1590 | L 2 1591 | U 16 1592 | R 1 1593 | U 8 1594 | R 16 1595 | D 10 1596 | L 2 1597 | D 14 1598 | U 4 1599 | L 12 1600 | D 9 1601 | R 4 1602 | D 13 1603 | R 1 1604 | U 3 1605 | R 7 1606 | L 3 1607 | U 12 1608 | R 15 1609 | D 16 1610 | R 13 1611 | L 1 1612 | D 16 1613 | U 14 1614 | R 5 1615 | L 7 1616 | R 12 1617 | U 3 1618 | L 14 1619 | R 6 1620 | U 11 1621 | R 14 1622 | L 12 1623 | U 11 1624 | R 6 1625 | L 1 1626 | D 1 1627 | U 5 1628 | D 14 1629 | L 10 1630 | R 1 1631 | U 4 1632 | R 11 1633 | U 16 1634 | D 12 1635 | R 7 1636 | U 2 1637 | R 1 1638 | D 15 1639 | U 16 1640 | D 7 1641 | L 2 1642 | D 3 1643 | R 1 1644 | D 6 1645 | U 16 1646 | D 12 1647 | U 14 1648 | R 13 1649 | U 13 1650 | L 14 1651 | D 5 1652 | U 1 1653 | L 8 1654 | R 7 1655 | L 9 1656 | D 11 1657 | R 10 1658 | D 16 1659 | R 16 1660 | U 10 1661 | R 14 1662 | L 1 1663 | D 7 1664 | U 2 1665 | R 7 1666 | D 15 1667 | R 16 1668 | U 8 1669 | D 12 1670 | U 17 1671 | R 12 1672 | U 7 1673 | R 6 1674 | L 7 1675 | D 8 1676 | R 4 1677 | U 4 1678 | D 14 1679 | U 17 1680 | D 11 1681 | U 3 1682 | R 1 1683 | D 15 1684 | R 11 1685 | D 13 1686 | L 13 1687 | R 9 1688 | L 1 1689 | U 3 1690 | R 12 1691 | L 9 1692 | U 3 1693 | L 17 1694 | D 15 1695 | R 6 1696 | U 9 1697 | R 16 1698 | L 11 1699 | U 3 1700 | L 5 1701 | D 9 1702 | R 6 1703 | U 12 1704 | R 2 1705 | U 4 1706 | L 11 1707 | U 2 1708 | R 11 1709 | D 4 1710 | L 16 1711 | U 2 1712 | R 10 1713 | U 16 1714 | L 12 1715 | D 9 1716 | U 6 1717 | D 16 1718 | L 6 1719 | R 9 1720 | U 14 1721 | D 14 1722 | U 4 1723 | D 14 1724 | R 16 1725 | L 9 1726 | D 14 1727 | R 4 1728 | U 9 1729 | D 11 1730 | R 8 1731 | D 9 1732 | U 1 1733 | D 3 1734 | R 15 1735 | D 10 1736 | R 13 1737 | D 6 1738 | U 2 1739 | R 8 1740 | U 7 1741 | L 2 1742 | R 10 1743 | D 7 1744 | U 10 1745 | R 3 1746 | L 9 1747 | R 1 1748 | D 2 1749 | U 6 1750 | L 17 1751 | U 16 1752 | L 6 1753 | U 16 1754 | L 1 1755 | R 11 1756 | D 16 1757 | R 2 1758 | L 4 1759 | R 6 1760 | L 9 1761 | R 2 1762 | D 11 1763 | U 8 1764 | D 3 1765 | L 15 1766 | D 17 1767 | U 5 1768 | L 3 1769 | D 15 1770 | L 3 1771 | U 12 1772 | R 15 1773 | U 9 1774 | L 11 1775 | D 3 1776 | R 3 1777 | U 12 1778 | R 11 1779 | D 13 1780 | R 7 1781 | U 11 1782 | L 15 1783 | D 5 1784 | L 15 1785 | D 13 1786 | U 10 1787 | R 17 1788 | D 7 1789 | L 16 1790 | R 2 1791 | L 9 1792 | R 13 1793 | L 4 1794 | R 6 1795 | D 9 1796 | L 17 1797 | D 12 1798 | R 14 1799 | U 3 1800 | D 2 1801 | R 6 1802 | U 14 1803 | D 15 1804 | U 7 1805 | L 17 1806 | U 14 1807 | L 8 1808 | U 15 1809 | R 13 1810 | U 3 1811 | R 10 1812 | D 11 1813 | L 14 1814 | U 18 1815 | R 13 1816 | U 13 1817 | R 2 1818 | D 3 1819 | R 5 1820 | U 16 1821 | R 16 1822 | D 13 1823 | U 3 1824 | R 14 1825 | D 17 1826 | U 4 1827 | L 18 1828 | U 8 1829 | R 6 1830 | U 12 1831 | R 17 1832 | L 18 1833 | U 17 1834 | R 18 1835 | D 10 1836 | U 17 1837 | D 2 1838 | R 2 1839 | D 9 1840 | U 13 1841 | R 15 1842 | L 13 1843 | R 8 1844 | D 6 1845 | U 4 1846 | R 12 1847 | U 15 1848 | D 8 1849 | L 16 1850 | D 6 1851 | L 15 1852 | U 8 1853 | L 10 1854 | D 18 1855 | R 8 1856 | U 2 1857 | D 17 1858 | U 8 1859 | R 18 1860 | D 6 1861 | U 7 1862 | L 15 1863 | U 16 1864 | R 16 1865 | D 11 1866 | U 7 1867 | D 12 1868 | R 7 1869 | U 5 1870 | L 16 1871 | D 7 1872 | L 14 1873 | U 1 1874 | L 11 1875 | D 1 1876 | U 17 1877 | R 1 1878 | U 18 1879 | R 1 1880 | U 11 1881 | D 18 1882 | U 16 1883 | R 14 1884 | U 12 1885 | L 5 1886 | D 5 1887 | L 7 1888 | U 10 1889 | R 2 1890 | D 4 1891 | L 10 1892 | R 9 1893 | D 2 1894 | L 17 1895 | R 15 1896 | L 6 1897 | R 2 1898 | D 6 1899 | L 9 1900 | R 10 1901 | L 4 1902 | D 2 1903 | R 12 1904 | D 1 1905 | R 16 1906 | U 15 1907 | D 15 1908 | L 10 1909 | D 16 1910 | L 16 1911 | U 18 1912 | L 5 1913 | R 8 1914 | L 16 1915 | R 10 1916 | D 7 1917 | U 2 1918 | D 8 1919 | U 11 1920 | R 1 1921 | U 1 1922 | L 14 1923 | D 11 1924 | R 8 1925 | U 18 1926 | L 4 1927 | R 14 1928 | L 7 1929 | U 6 1930 | L 17 1931 | U 10 1932 | L 4 1933 | U 6 1934 | L 6 1935 | R 8 1936 | L 15 1937 | D 2 1938 | R 5 1939 | L 13 1940 | D 1 1941 | R 6 1942 | L 11 1943 | U 15 1944 | L 16 1945 | D 13 1946 | R 11 1947 | U 4 1948 | R 1 1949 | L 10 1950 | U 16 1951 | L 2 1952 | R 11 1953 | L 5 1954 | D 19 1955 | R 15 1956 | L 5 1957 | U 17 1958 | R 19 1959 | D 2 1960 | R 9 1961 | U 11 1962 | L 19 1963 | U 16 1964 | D 16 1965 | R 5 1966 | D 13 1967 | U 18 1968 | D 3 1969 | R 15 1970 | U 12 1971 | L 1 1972 | D 11 1973 | U 2 1974 | R 13 1975 | D 1 1976 | R 2 1977 | D 7 1978 | R 2 1979 | U 17 1980 | R 8 1981 | L 2 1982 | U 2 1983 | R 12 1984 | L 2 1985 | R 1 1986 | D 5 1987 | U 7 1988 | L 5 1989 | U 10 1990 | L 14 1991 | R 15 1992 | D 19 1993 | L 13 1994 | U 4 1995 | L 8 1996 | U 8 1997 | L 7 1998 | D 5 1999 | R 17 2000 | U 8 2001 | -------------------------------------------------------------------------------- /day1/input: -------------------------------------------------------------------------------- 1 | 7844 2 | 1892 3 | 10928 4 | 4800 5 | 9730 6 | 3485 7 | 7293 8 | 9 | 11956 10 | 2767 11 | 12893 12 | 2757 13 | 3026 14 | 9979 15 | 16 | 4507 17 | 4199 18 | 2855 19 | 1792 20 | 2041 21 | 4162 22 | 3855 23 | 2650 24 | 2165 25 | 5464 26 | 2125 27 | 4979 28 | 4878 29 | 6301 30 | 31 | 2546 32 | 3750 33 | 1192 34 | 4692 35 | 6809 36 | 2808 37 | 6505 38 | 2811 39 | 6448 40 | 4270 41 | 2919 42 | 1297 43 | 1678 44 | 45 | 2006 46 | 6163 47 | 5949 48 | 2074 49 | 5917 50 | 5796 51 | 3456 52 | 1161 53 | 6843 54 | 3988 55 | 4064 56 | 5591 57 | 58 | 17062 59 | 14531 60 | 5297 61 | 62 | 16033 63 | 18054 64 | 25935 65 | 66 | 3621 67 | 3121 68 | 5884 69 | 5199 70 | 4584 71 | 4796 72 | 1325 73 | 3374 74 | 5789 75 | 2545 76 | 5842 77 | 1760 78 | 5766 79 | 1882 80 | 3084 81 | 82 | 10364 83 | 1136 84 | 2256 85 | 5654 86 | 7065 87 | 5990 88 | 3621 89 | 8063 90 | 91 | 4334 92 | 1865 93 | 4485 94 | 4741 95 | 2591 96 | 2594 97 | 2991 98 | 3928 99 | 5849 100 | 6864 101 | 4932 102 | 103 | 6627 104 | 8318 105 | 11410 106 | 18778 107 | 108 | 14870 109 | 13264 110 | 8777 111 | 2567 112 | 15388 113 | 114 | 11837 115 | 11042 116 | 12115 117 | 11169 118 | 8021 119 | 4206 120 | 8637 121 | 122 | 2955 123 | 2115 124 | 2292 125 | 2759 126 | 6464 127 | 2843 128 | 3817 129 | 1628 130 | 6486 131 | 2499 132 | 3935 133 | 4944 134 | 1427 135 | 4870 136 | 137 | 14800 138 | 13942 139 | 2563 140 | 18543 141 | 142 | 8415 143 | 5943 144 | 6117 145 | 3863 146 | 7123 147 | 8666 148 | 9834 149 | 7437 150 | 151 | 12318 152 | 5577 153 | 8108 154 | 11695 155 | 2720 156 | 3413 157 | 158 | 4765 159 | 2805 160 | 2850 161 | 5241 162 | 3910 163 | 4837 164 | 5770 165 | 4998 166 | 3358 167 | 5141 168 | 1052 169 | 2281 170 | 4405 171 | 1714 172 | 173 | 7984 174 | 4685 175 | 12922 176 | 11579 177 | 4278 178 | 179 | 14877 180 | 4676 181 | 4571 182 | 9279 183 | 11337 184 | 185 | 1782 186 | 3009 187 | 14712 188 | 189 | 5936 190 | 5243 191 | 3849 192 | 1001 193 | 10728 194 | 3847 195 | 9986 196 | 197 | 1531 198 | 3707 199 | 3599 200 | 5533 201 | 4025 202 | 4651 203 | 3934 204 | 4205 205 | 2481 206 | 3462 207 | 1672 208 | 1806 209 | 3833 210 | 4072 211 | 1497 212 | 213 | 16920 214 | 25420 215 | 17042 216 | 217 | 43927 218 | 219 | 8193 220 | 3107 221 | 2831 222 | 4122 223 | 16336 224 | 225 | 7507 226 | 1665 227 | 8553 228 | 3231 229 | 2528 230 | 1046 231 | 3491 232 | 4631 233 | 3574 234 | 235 | 35988 236 | 29345 237 | 238 | 3520 239 | 4006 240 | 6327 241 | 1658 242 | 4714 243 | 1123 244 | 1938 245 | 3667 246 | 3807 247 | 1824 248 | 4808 249 | 4586 250 | 3275 251 | 4548 252 | 253 | 9989 254 | 32096 255 | 256 | 52470 257 | 258 | 1188 259 | 7694 260 | 7875 261 | 6114 262 | 6189 263 | 4343 264 | 6974 265 | 4812 266 | 1776 267 | 4794 268 | 8065 269 | 270 | 2364 271 | 4111 272 | 3663 273 | 4182 274 | 3667 275 | 5440 276 | 5482 277 | 2657 278 | 3931 279 | 5871 280 | 5403 281 | 5956 282 | 2659 283 | 2320 284 | 285 | 10249 286 | 13770 287 | 288 | 6331 289 | 7262 290 | 1498 291 | 1329 292 | 8943 293 | 1563 294 | 8197 295 | 6898 296 | 2300 297 | 298 | 5116 299 | 5930 300 | 8363 301 | 8908 302 | 6063 303 | 8325 304 | 1070 305 | 306 | 7829 307 | 8877 308 | 5631 309 | 6100 310 | 1007 311 | 4754 312 | 7353 313 | 8363 314 | 315 | 13160 316 | 16304 317 | 6155 318 | 15418 319 | 320 | 18068 321 | 24378 322 | 16529 323 | 324 | 8216 325 | 1918 326 | 3305 327 | 7698 328 | 5936 329 | 2012 330 | 2053 331 | 3575 332 | 5705 333 | 334 | 5372 335 | 3627 336 | 2860 337 | 3742 338 | 4117 339 | 5514 340 | 2590 341 | 4503 342 | 2494 343 | 4418 344 | 1908 345 | 4109 346 | 5255 347 | 5749 348 | 5061 349 | 350 | 14547 351 | 31905 352 | 353 | 4691 354 | 4268 355 | 3887 356 | 4136 357 | 5724 358 | 4507 359 | 2298 360 | 6660 361 | 5243 362 | 4719 363 | 5145 364 | 2949 365 | 1460 366 | 367 | 6324 368 | 1211 369 | 2329 370 | 4872 371 | 5530 372 | 1645 373 | 2989 374 | 3687 375 | 3925 376 | 2578 377 | 1153 378 | 4364 379 | 380 | 1864 381 | 8160 382 | 9219 383 | 6479 384 | 1098 385 | 9364 386 | 7442 387 | 9665 388 | 1522 389 | 390 | 3185 391 | 3657 392 | 5730 393 | 7979 394 | 8956 395 | 2138 396 | 8288 397 | 3524 398 | 7910 399 | 400 | 20487 401 | 402 | 4948 403 | 4419 404 | 3363 405 | 6742 406 | 1536 407 | 3809 408 | 4289 409 | 1861 410 | 2490 411 | 4842 412 | 1005 413 | 2083 414 | 3115 415 | 416 | 5872 417 | 2895 418 | 2163 419 | 6140 420 | 4962 421 | 1566 422 | 1502 423 | 6407 424 | 6241 425 | 7154 426 | 427 | 8910 428 | 5483 429 | 10358 430 | 10448 431 | 5912 432 | 9133 433 | 1919 434 | 5768 435 | 436 | 7887 437 | 1592 438 | 3503 439 | 6182 440 | 10088 441 | 12143 442 | 443 | 3897 444 | 4813 445 | 2087 446 | 2953 447 | 5308 448 | 1587 449 | 7320 450 | 4947 451 | 1366 452 | 6723 453 | 2720 454 | 455 | 16484 456 | 15947 457 | 2582 458 | 11421 459 | 460 | 2457 461 | 1498 462 | 4113 463 | 5639 464 | 3930 465 | 4950 466 | 4130 467 | 5475 468 | 6156 469 | 4966 470 | 1322 471 | 5749 472 | 5892 473 | 2257 474 | 475 | 24070 476 | 477 | 2634 478 | 2784 479 | 5289 480 | 1472 481 | 5770 482 | 4442 483 | 1733 484 | 2003 485 | 2281 486 | 4283 487 | 4183 488 | 3183 489 | 5405 490 | 5055 491 | 4089 492 | 493 | 6167 494 | 5650 495 | 6531 496 | 8255 497 | 11103 498 | 12421 499 | 500 | 8499 501 | 15327 502 | 4714 503 | 504 | 52582 505 | 506 | 8000 507 | 4408 508 | 4744 509 | 7665 510 | 3565 511 | 6676 512 | 4983 513 | 3282 514 | 1095 515 | 8269 516 | 517 | 6893 518 | 4008 519 | 2512 520 | 5249 521 | 6578 522 | 2231 523 | 7044 524 | 7903 525 | 3901 526 | 2480 527 | 1832 528 | 529 | 2278 530 | 5805 531 | 7783 532 | 1497 533 | 4503 534 | 5569 535 | 4260 536 | 7618 537 | 3310 538 | 8083 539 | 540 | 8025 541 | 17429 542 | 14782 543 | 12645 544 | 545 | 5914 546 | 1865 547 | 9622 548 | 4014 549 | 9577 550 | 1812 551 | 8287 552 | 10720 553 | 554 | 3848 555 | 12978 556 | 12735 557 | 3860 558 | 559 | 5562 560 | 11339 561 | 9051 562 | 6703 563 | 13290 564 | 10611 565 | 566 | 1232 567 | 1116 568 | 2620 569 | 2495 570 | 4198 571 | 4751 572 | 6099 573 | 3727 574 | 3111 575 | 2493 576 | 3780 577 | 2379 578 | 3042 579 | 4395 580 | 6100 581 | 582 | 62606 583 | 584 | 13357 585 | 13984 586 | 11428 587 | 18201 588 | 589 | 33875 590 | 5610 591 | 592 | 2504 593 | 19711 594 | 17021 595 | 5985 596 | 597 | 3759 598 | 5522 599 | 8815 600 | 2113 601 | 2333 602 | 9169 603 | 4805 604 | 2870 605 | 6419 606 | 607 | 6210 608 | 4186 609 | 3763 610 | 5633 611 | 5159 612 | 5116 613 | 4448 614 | 4570 615 | 5894 616 | 4045 617 | 1994 618 | 3044 619 | 620 | 10366 621 | 6706 622 | 11448 623 | 1927 624 | 10647 625 | 11786 626 | 11927 627 | 628 | 1350 629 | 10908 630 | 9325 631 | 2455 632 | 633 | 10527 634 | 8300 635 | 1312 636 | 1403 637 | 8155 638 | 8803 639 | 9663 640 | 7780 641 | 642 | 2118 643 | 5436 644 | 5909 645 | 4083 646 | 3714 647 | 3001 648 | 2226 649 | 2915 650 | 5627 651 | 6476 652 | 3578 653 | 6112 654 | 655 | 36649 656 | 6648 657 | 658 | 17271 659 | 23884 660 | 15032 661 | 662 | 16967 663 | 17931 664 | 2443 665 | 666 | 2520 667 | 1468 668 | 2779 669 | 6020 670 | 4477 671 | 4798 672 | 1894 673 | 2429 674 | 4645 675 | 5053 676 | 6478 677 | 5899 678 | 5824 679 | 2554 680 | 681 | 12614 682 | 11252 683 | 25055 684 | 685 | 3435 686 | 1317 687 | 5073 688 | 3082 689 | 4576 690 | 5006 691 | 2238 692 | 3055 693 | 4867 694 | 5079 695 | 4385 696 | 5723 697 | 2084 698 | 4307 699 | 700 | 6609 701 | 1556 702 | 2351 703 | 2301 704 | 4913 705 | 1820 706 | 1122 707 | 5398 708 | 4738 709 | 2377 710 | 2843 711 | 4704 712 | 713 | 1201 714 | 1092 715 | 1622 716 | 6094 717 | 1793 718 | 6521 719 | 8237 720 | 2848 721 | 5617 722 | 6585 723 | 724 | 3561 725 | 8072 726 | 3941 727 | 4432 728 | 4740 729 | 9292 730 | 8115 731 | 3586 732 | 5464 733 | 734 | 2926 735 | 6812 736 | 5551 737 | 3104 738 | 4369 739 | 7421 740 | 3774 741 | 1272 742 | 1492 743 | 1842 744 | 6058 745 | 1815 746 | 747 | 5555 748 | 2688 749 | 8859 750 | 8517 751 | 3338 752 | 1500 753 | 7276 754 | 8130 755 | 5984 756 | 757 | 6597 758 | 5544 759 | 4944 760 | 6402 761 | 1336 762 | 4243 763 | 4333 764 | 6374 765 | 6770 766 | 5346 767 | 768 | 7225 769 | 33323 770 | 771 | 17863 772 | 9174 773 | 21966 774 | 775 | 4835 776 | 4359 777 | 6074 778 | 4069 779 | 5984 780 | 11934 781 | 2577 782 | 783 | 1738 784 | 2317 785 | 6844 786 | 1672 787 | 4213 788 | 3930 789 | 4658 790 | 5785 791 | 8074 792 | 5695 793 | 794 | 3063 795 | 6287 796 | 7248 797 | 5656 798 | 1571 799 | 5468 800 | 1512 801 | 5555 802 | 3192 803 | 7892 804 | 5664 805 | 806 | 5819 807 | 28895 808 | 809 | 4407 810 | 5072 811 | 4733 812 | 2964 813 | 4073 814 | 5739 815 | 2423 816 | 6131 817 | 3999 818 | 1454 819 | 1221 820 | 1243 821 | 822 | 26391 823 | 824 | 35896 825 | 26888 826 | 827 | 1171 828 | 4136 829 | 1050 830 | 5788 831 | 1049 832 | 5686 833 | 5297 834 | 6035 835 | 2968 836 | 2274 837 | 2771 838 | 5596 839 | 4478 840 | 3401 841 | 5860 842 | 843 | 6699 844 | 15009 845 | 4368 846 | 13135 847 | 13609 848 | 849 | 6033 850 | 3972 851 | 1214 852 | 1549 853 | 3996 854 | 2251 855 | 3213 856 | 5217 857 | 5525 858 | 3656 859 | 2585 860 | 2710 861 | 6035 862 | 1903 863 | 1586 864 | 865 | 8651 866 | 867 | 4494 868 | 7096 869 | 7913 870 | 1024 871 | 1334 872 | 1353 873 | 2705 874 | 5405 875 | 1601 876 | 7386 877 | 878 | 18756 879 | 19801 880 | 24646 881 | 882 | 8490 883 | 5254 884 | 1932 885 | 3706 886 | 1980 887 | 6058 888 | 1961 889 | 3150 890 | 5200 891 | 1337 892 | 893 | 2846 894 | 6123 895 | 3274 896 | 4632 897 | 3068 898 | 5384 899 | 5842 900 | 2688 901 | 1307 902 | 3279 903 | 2424 904 | 4783 905 | 3932 906 | 907 | 2720 908 | 7808 909 | 5871 910 | 1416 911 | 7979 912 | 6594 913 | 7325 914 | 4214 915 | 5444 916 | 2132 917 | 918 | 2626 919 | 6949 920 | 6034 921 | 4887 922 | 6773 923 | 1111 924 | 3317 925 | 3388 926 | 4209 927 | 2809 928 | 2730 929 | 6578 930 | 2700 931 | 932 | 8995 933 | 10064 934 | 935 | 2134 936 | 5564 937 | 5889 938 | 3719 939 | 6357 940 | 3523 941 | 4600 942 | 2138 943 | 5976 944 | 6025 945 | 5689 946 | 5950 947 | 3745 948 | 1542 949 | 950 | 5545 951 | 5789 952 | 4295 953 | 6717 954 | 8612 955 | 3847 956 | 7911 957 | 3367 958 | 6867 959 | 5975 960 | 961 | 23119 962 | 18834 963 | 3134 964 | 965 | 7080 966 | 2729 967 | 4118 968 | 1407 969 | 7022 970 | 4796 971 | 8459 972 | 8530 973 | 7721 974 | 7333 975 | 976 | 5245 977 | 3739 978 | 1338 979 | 1245 980 | 2926 981 | 2695 982 | 4571 983 | 1492 984 | 4794 985 | 4380 986 | 3726 987 | 2225 988 | 2098 989 | 5942 990 | 6081 991 | 992 | 2192 993 | 2866 994 | 4690 995 | 4240 996 | 6512 997 | 1881 998 | 5789 999 | 1641 1000 | 6017 1001 | 4327 1002 | 3688 1003 | 6622 1004 | 3555 1005 | 1006 | 12879 1007 | 2468 1008 | 13146 1009 | 8534 1010 | 10525 1011 | 4590 1012 | 1013 | 8451 1014 | 8697 1015 | 11858 1016 | 5657 1017 | 4893 1018 | 1019 | 14019 1020 | 13301 1021 | 7206 1022 | 13988 1023 | 1024 | 17234 1025 | 22191 1026 | 13894 1027 | 1028 | 6383 1029 | 3682 1030 | 5281 1031 | 6335 1032 | 5412 1033 | 5474 1034 | 8723 1035 | 9536 1036 | 8864 1037 | 1038 | 14888 1039 | 9953 1040 | 1041 | 2464 1042 | 5875 1043 | 2484 1044 | 1693 1045 | 3441 1046 | 5883 1047 | 7835 1048 | 1049 | 34085 1050 | 1051 | 1997 1052 | 9058 1053 | 7144 1054 | 6222 1055 | 2930 1056 | 3661 1057 | 4107 1058 | 8058 1059 | 4938 1060 | 1061 | 3033 1062 | 2420 1063 | 5196 1064 | 5152 1065 | 1364 1066 | 2192 1067 | 3442 1068 | 1149 1069 | 3575 1070 | 6916 1071 | 6856 1072 | 1995 1073 | 6259 1074 | 1075 | 1331 1076 | 1731 1077 | 10757 1078 | 3486 1079 | 8823 1080 | 2450 1081 | 8018 1082 | 9197 1083 | 1084 | 64329 1085 | 1086 | 25450 1087 | 1088 | 6652 1089 | 4972 1090 | 5085 1091 | 1881 1092 | 5555 1093 | 1521 1094 | 3723 1095 | 1158 1096 | 3260 1097 | 1532 1098 | 3131 1099 | 2904 1100 | 1101 | 1088 1102 | 14166 1103 | 4490 1104 | 15880 1105 | 6439 1106 | 1107 | 19789 1108 | 5274 1109 | 7770 1110 | 11329 1111 | 1112 | 64877 1113 | 1114 | 4256 1115 | 5811 1116 | 3538 1117 | 8943 1118 | 1119 | 6164 1120 | 7843 1121 | 5400 1122 | 14856 1123 | 2882 1124 | 1125 | 2781 1126 | 3829 1127 | 8689 1128 | 6347 1129 | 8239 1130 | 4232 1131 | 8606 1132 | 5770 1133 | 1134 | 10061 1135 | 6576 1136 | 19346 1137 | 15720 1138 | 1139 | 9071 1140 | 6842 1141 | 5147 1142 | 8570 1143 | 4175 1144 | 3801 1145 | 6512 1146 | 1147 | 21045 1148 | 29371 1149 | 1150 | 5646 1151 | 1786 1152 | 11347 1153 | 11957 1154 | 4226 1155 | 12836 1156 | 1157 | 1786 1158 | 1117 1159 | 2905 1160 | 5545 1161 | 2759 1162 | 3168 1163 | 5993 1164 | 1050 1165 | 4096 1166 | 1812 1167 | 1036 1168 | 3048 1169 | 1602 1170 | 1171 | 5694 1172 | 4123 1173 | 4940 1174 | 8115 1175 | 8877 1176 | 2063 1177 | 7222 1178 | 1179 | 5281 1180 | 5676 1181 | 5429 1182 | 5198 1183 | 1480 1184 | 7224 1185 | 6453 1186 | 2535 1187 | 1894 1188 | 2730 1189 | 5489 1190 | 6674 1191 | 1192 | 6091 1193 | 3148 1194 | 4124 1195 | 5837 1196 | 1575 1197 | 4028 1198 | 5943 1199 | 2374 1200 | 3307 1201 | 4535 1202 | 2008 1203 | 2981 1204 | 1251 1205 | 1902 1206 | 1689 1207 | 1208 | 1154 1209 | 4931 1210 | 1030 1211 | 6793 1212 | 9190 1213 | 6920 1214 | 6588 1215 | 4759 1216 | 5502 1217 | 1218 | 23727 1219 | 1220 | 1716 1221 | 2529 1222 | 6082 1223 | 5333 1224 | 2555 1225 | 3710 1226 | 4174 1227 | 1747 1228 | 1506 1229 | 2434 1230 | 2343 1231 | 4019 1232 | 5704 1233 | 1253 1234 | 3978 1235 | 1236 | 13129 1237 | 11913 1238 | 9504 1239 | 11759 1240 | 5353 1241 | 9152 1242 | 1243 | 7685 1244 | 7469 1245 | 2376 1246 | 2221 1247 | 3446 1248 | 2576 1249 | 7992 1250 | 2538 1251 | 3572 1252 | 1715 1253 | 7268 1254 | 1255 | 15241 1256 | 4735 1257 | 10421 1258 | 9976 1259 | 1717 1260 | 1261 | 3460 1262 | 5386 1263 | 1806 1264 | 3764 1265 | 3019 1266 | 4349 1267 | 6319 1268 | 6635 1269 | 6608 1270 | 7641 1271 | 1272 | 3249 1273 | 2254 1274 | 4624 1275 | 2495 1276 | 3325 1277 | 1502 1278 | 2347 1279 | 1544 1280 | 2806 1281 | 2844 1282 | 5702 1283 | 3594 1284 | 3448 1285 | 4378 1286 | 5474 1287 | 1288 | 4447 1289 | 1251 1290 | 1088 1291 | 2070 1292 | 4109 1293 | 1029 1294 | 5779 1295 | 3795 1296 | 1080 1297 | 3589 1298 | 3016 1299 | 2793 1300 | 2636 1301 | 5946 1302 | 4953 1303 | 1304 | 52518 1305 | 1306 | 5836 1307 | 6177 1308 | 4873 1309 | 2860 1310 | 4545 1311 | 2793 1312 | 3492 1313 | 6810 1314 | 2330 1315 | 2067 1316 | 3626 1317 | 1318 | 14370 1319 | 14242 1320 | 8644 1321 | 16054 1322 | 7313 1323 | 1324 | 8547 1325 | 6827 1326 | 1264 1327 | 8991 1328 | 1306 1329 | 3829 1330 | 6188 1331 | 1332 | 1566 1333 | 6239 1334 | 4931 1335 | 5359 1336 | 7314 1337 | 7493 1338 | 2898 1339 | 4429 1340 | 5609 1341 | 3329 1342 | 1343 | 6747 1344 | 3945 1345 | 9283 1346 | 10312 1347 | 2925 1348 | 11240 1349 | 1350 | 9133 1351 | 14062 1352 | 15257 1353 | 12353 1354 | 1355 | 12534 1356 | 17806 1357 | 5580 1358 | 7262 1359 | 1360 | 4311 1361 | 3933 1362 | 3798 1363 | 4932 1364 | 3040 1365 | 1819 1366 | 4434 1367 | 5705 1368 | 1293 1369 | 4348 1370 | 4241 1371 | 3050 1372 | 4471 1373 | 4445 1374 | 1375 | 21451 1376 | 9368 1377 | 1378 | 5252 1379 | 6300 1380 | 3548 1381 | 7323 1382 | 2328 1383 | 2721 1384 | 5001 1385 | 1261 1386 | 7357 1387 | 1350 1388 | 7024 1389 | 5193 1390 | 1391 | 15832 1392 | 15934 1393 | 17497 1394 | 7846 1395 | 1396 | 1647 1397 | 6717 1398 | 1323 1399 | 5420 1400 | 5063 1401 | 2488 1402 | 3298 1403 | 1163 1404 | 1205 1405 | 3104 1406 | 3644 1407 | 4177 1408 | 2730 1409 | 1410 | 6851 1411 | 4735 1412 | 2851 1413 | 7015 1414 | 2836 1415 | 4052 1416 | 6511 1417 | 2413 1418 | 4049 1419 | 6620 1420 | 1205 1421 | 3131 1422 | 1423 | 8028 1424 | 6431 1425 | 8863 1426 | 1427 | 3411 1428 | 3434 1429 | 1509 1430 | 4907 1431 | 5244 1432 | 2022 1433 | 5347 1434 | 2648 1435 | 5479 1436 | 1668 1437 | 3461 1438 | 1380 1439 | 2991 1440 | 4789 1441 | 1003 1442 | 1443 | 3584 1444 | 3947 1445 | 2670 1446 | 2718 1447 | 7380 1448 | 1243 1449 | 2124 1450 | 2825 1451 | 5907 1452 | 7608 1453 | 4592 1454 | 1455 | 7236 1456 | 3836 1457 | 2137 1458 | 1824 1459 | 3283 1460 | 4702 1461 | 6791 1462 | 6370 1463 | 4781 1464 | 1647 1465 | 5176 1466 | 6373 1467 | 1468 | 2526 1469 | 5660 1470 | 5065 1471 | 1103 1472 | 5031 1473 | 1394 1474 | 1948 1475 | 2812 1476 | 1240 1477 | 4727 1478 | 5359 1479 | 3119 1480 | 2511 1481 | 2913 1482 | 2763 1483 | 1484 | 25820 1485 | 24769 1486 | 1487 | 2645 1488 | 1917 1489 | 5280 1490 | 1864 1491 | 5772 1492 | 2984 1493 | 1410 1494 | 3052 1495 | 3599 1496 | 2034 1497 | 4122 1498 | 3678 1499 | 1502 1500 | 1107 1501 | 1502 | 3385 1503 | 2149 1504 | 2758 1505 | 1895 1506 | 6232 1507 | 3858 1508 | 6266 1509 | 2861 1510 | 6624 1511 | 1078 1512 | 6721 1513 | 5652 1514 | 1515 | 6842 1516 | 4520 1517 | 4919 1518 | 6678 1519 | 3890 1520 | 1823 1521 | 6488 1522 | 2575 1523 | 5245 1524 | 3696 1525 | 4294 1526 | 6071 1527 | 5158 1528 | 1529 | 38153 1530 | 1531 | 4245 1532 | 4359 1533 | 6283 1534 | 3510 1535 | 2610 1536 | 2592 1537 | 4843 1538 | 2179 1539 | 1218 1540 | 1541 | 1895 1542 | 3676 1543 | 4307 1544 | 1886 1545 | 2495 1546 | 2143 1547 | 6751 1548 | 6498 1549 | 1546 1550 | 4454 1551 | 2203 1552 | 6640 1553 | 3713 1554 | 1555 | 6943 1556 | 2324 1557 | 3284 1558 | 2277 1559 | 1234 1560 | 2005 1561 | 1168 1562 | 3585 1563 | 1931 1564 | 4371 1565 | 5547 1566 | 1237 1567 | 6250 1568 | 1569 | 2722 1570 | 6827 1571 | 7366 1572 | 7001 1573 | 8320 1574 | 8560 1575 | 10331 1576 | 1577 | 7759 1578 | 11634 1579 | 4006 1580 | 9406 1581 | 12116 1582 | 1403 1583 | 10477 1584 | 1585 | 6213 1586 | 6458 1587 | 5178 1588 | 9407 1589 | 5651 1590 | 5743 1591 | 4120 1592 | 1593 | 9958 1594 | 18260 1595 | 9126 1596 | 1597 | 6239 1598 | 3466 1599 | 2939 1600 | 4775 1601 | 1326 1602 | 6307 1603 | 4255 1604 | 2843 1605 | 7634 1606 | 5993 1607 | 4585 1608 | 1609 | 6607 1610 | 8754 1611 | 9714 1612 | 9844 1613 | 12936 1614 | 1615 | 20048 1616 | 24368 1617 | 16320 1618 | 1619 | 6152 1620 | 1868 1621 | 2057 1622 | 6981 1623 | 6244 1624 | 6557 1625 | 2858 1626 | 4943 1627 | 2261 1628 | 7241 1629 | 6353 1630 | 1631 | 3362 1632 | 1989 1633 | 4154 1634 | 6154 1635 | 4409 1636 | 5546 1637 | 1202 1638 | 6484 1639 | 2812 1640 | 4690 1641 | 6080 1642 | 2564 1643 | 6001 1644 | 1379 1645 | 1646 | 4859 1647 | 7852 1648 | 4538 1649 | 1495 1650 | 6904 1651 | 7849 1652 | 4937 1653 | 2986 1654 | 8593 1655 | 4164 1656 | 1657 | 2338 1658 | 1139 1659 | 4118 1660 | 2916 1661 | 2087 1662 | 2180 1663 | 1476 1664 | 1669 1665 | 6375 1666 | 2689 1667 | 3890 1668 | 6928 1669 | 1670 | 2032 1671 | 2582 1672 | 3926 1673 | 2966 1674 | 4326 1675 | 1334 1676 | 4264 1677 | 1151 1678 | 1513 1679 | 3098 1680 | 2618 1681 | 4087 1682 | 5318 1683 | 5287 1684 | 4176 1685 | 1686 | 2012 1687 | 3358 1688 | 12673 1689 | 15745 1690 | 13638 1691 | 1692 | 18797 1693 | 6045 1694 | 12915 1695 | 1696 | 10036 1697 | 10932 1698 | 11869 1699 | 6686 1700 | 2505 1701 | 4998 1702 | 2545 1703 | 1704 | 9353 1705 | 24442 1706 | 15660 1707 | 1708 | 1563 1709 | 6832 1710 | 6212 1711 | 7249 1712 | 5815 1713 | 3135 1714 | 4260 1715 | 1632 1716 | 1105 1717 | 2628 1718 | 1693 1719 | 4728 1720 | 1721 | 5564 1722 | 3863 1723 | 2269 1724 | 1623 1725 | 3527 1726 | 2445 1727 | 4823 1728 | 2271 1729 | 1102 1730 | 2110 1731 | 3765 1732 | 1731 1733 | 4149 1734 | 2924 1735 | 3807 1736 | 1737 | 3049 1738 | 8544 1739 | 2753 1740 | 1454 1741 | 6543 1742 | 2379 1743 | 6571 1744 | 3467 1745 | 5347 1746 | 1747 | 4430 1748 | 6186 1749 | 8128 1750 | 6013 1751 | 8050 1752 | 6688 1753 | 5697 1754 | 5250 1755 | 3077 1756 | 4775 1757 | 1758 | 5639 1759 | 1567 1760 | 4651 1761 | 2362 1762 | 1676 1763 | 2033 1764 | 2843 1765 | 1577 1766 | 5838 1767 | 5545 1768 | 5803 1769 | 2561 1770 | 1774 1771 | 5371 1772 | 4177 1773 | 1774 | 2934 1775 | 4347 1776 | 5400 1777 | 1017 1778 | 1907 1779 | 5367 1780 | 3233 1781 | 3201 1782 | 6389 1783 | 3857 1784 | 1884 1785 | 2082 1786 | 5091 1787 | 1362 1788 | 1789 | 3574 1790 | 1873 1791 | 5995 1792 | 3908 1793 | 6154 1794 | 5350 1795 | 1856 1796 | 5219 1797 | 5865 1798 | 4628 1799 | 4904 1800 | 1988 1801 | 3336 1802 | 3602 1803 | 1804 | 17499 1805 | 8319 1806 | 8975 1807 | 1808 | 4570 1809 | 8463 1810 | 8389 1811 | 5896 1812 | 6657 1813 | 5300 1814 | 2953 1815 | 5541 1816 | 3791 1817 | 8065 1818 | 1819 | 2177 1820 | 7674 1821 | 10338 1822 | 6861 1823 | 7176 1824 | 12012 1825 | 5930 1826 | 1827 | 11051 1828 | 4024 1829 | 11264 1830 | 7017 1831 | 7432 1832 | 3699 1833 | 6920 1834 | 1835 | 5220 1836 | 3483 1837 | 7075 1838 | 5240 1839 | 2156 1840 | 2838 1841 | 7600 1842 | 7522 1843 | 3647 1844 | 3466 1845 | 1903 1846 | 1847 | 2400 1848 | 6060 1849 | 3414 1850 | 1852 1851 | 6822 1852 | 5793 1853 | 4895 1854 | 2960 1855 | 6642 1856 | 1477 1857 | 1240 1858 | 3047 1859 | 6426 1860 | 1861 | 11128 1862 | 22839 1863 | 20660 1864 | 1865 | 5889 1866 | 3600 1867 | 7076 1868 | 4431 1869 | 3604 1870 | 4256 1871 | 2548 1872 | 5482 1873 | 3501 1874 | 5278 1875 | 1876 | 3410 1877 | 3519 1878 | 9965 1879 | 12953 1880 | 9463 1881 | 6493 1882 | 1883 | 3949 1884 | 5992 1885 | 2986 1886 | 2886 1887 | 1598 1888 | 3393 1889 | 5766 1890 | 3427 1891 | 3750 1892 | 2125 1893 | 2819 1894 | 2818 1895 | 3033 1896 | 5536 1897 | 4458 1898 | 1899 | 9958 1900 | 8583 1901 | 3283 1902 | 6782 1903 | 10683 1904 | 3178 1905 | 4486 1906 | 1907 | 7674 1908 | 1680 1909 | 2315 1910 | 7486 1911 | 3096 1912 | 4386 1913 | 1553 1914 | 3675 1915 | 4100 1916 | 7705 1917 | 3479 1918 | 1919 | 6402 1920 | 3133 1921 | 3192 1922 | 3227 1923 | 2933 1924 | 6881 1925 | 3088 1926 | 8628 1927 | 2271 1928 | 1929 | 3697 1930 | 4072 1931 | 4962 1932 | 6101 1933 | 4711 1934 | 2184 1935 | 5168 1936 | 3172 1937 | 1076 1938 | 4206 1939 | 4876 1940 | 6040 1941 | 1844 1942 | 2792 1943 | 2138 1944 | 1945 | 5141 1946 | 6671 1947 | 7291 1948 | 8327 1949 | 9200 1950 | 1479 1951 | 2338 1952 | 9402 1953 | 4860 1954 | 1955 | 12944 1956 | 3176 1957 | 1343 1958 | 1959 | 8561 1960 | 4339 1961 | 4569 1962 | 5435 1963 | 4568 1964 | 10420 1965 | 6843 1966 | 1967 | 2642 1968 | 11252 1969 | 3981 1970 | 7926 1971 | 9800 1972 | 1973 | 6046 1974 | 3747 1975 | 3534 1976 | 5597 1977 | 1487 1978 | 2726 1979 | 3469 1980 | 4202 1981 | 5847 1982 | 3297 1983 | 6666 1984 | 3832 1985 | 1986 | 10609 1987 | 2492 1988 | 1269 1989 | 2012 1990 | 5583 1991 | 7277 1992 | 4471 1993 | 9874 1994 | 1995 | 4697 1996 | 3030 1997 | 3002 1998 | 6541 1999 | 1895 2000 | 1254 2001 | 2032 2002 | 6218 2003 | 2624 2004 | 4494 2005 | 3822 2006 | 2007 | 1077 2008 | 5664 2009 | 2566 2010 | 2028 2011 | 6227 2012 | 5342 2013 | 6013 2014 | 5994 2015 | 6331 2016 | 5290 2017 | 4154 2018 | 1985 2019 | 3748 2020 | 3666 2021 | 2022 | 5745 2023 | 1780 2024 | 6074 2025 | 5641 2026 | 2102 2027 | 5400 2028 | 2585 2029 | 6776 2030 | 1732 2031 | 6493 2032 | 4095 2033 | 2228 2034 | 4647 2035 | 2036 | 5283 2037 | 6675 2038 | 6784 2039 | 1759 2040 | 6256 2041 | 5952 2042 | 2476 2043 | 4176 2044 | 3949 2045 | 3097 2046 | 5127 2047 | 6465 2048 | 2571 2049 | 2050 | 4670 2051 | 5896 2052 | 3916 2053 | 8881 2054 | 6058 2055 | 10440 2056 | 9862 2057 | 10596 2058 | 2059 | 10471 2060 | 7667 2061 | 2665 2062 | 10829 2063 | 6934 2064 | 2179 2065 | 5155 2066 | 2067 | 3258 2068 | 4634 2069 | 6263 2070 | 2398 2071 | 6452 2072 | 1536 2073 | 3066 2074 | 2195 2075 | 3431 2076 | 1245 2077 | 2672 2078 | 2692 2079 | 1056 2080 | 3313 2081 | 2082 | 7418 2083 | 1070 2084 | 2436 2085 | 5831 2086 | 4648 2087 | 3358 2088 | 2808 2089 | 4966 2090 | 5358 2091 | 3868 2092 | 2124 2093 | 2094 | 4779 2095 | 5703 2096 | 3827 2097 | 4386 2098 | 6424 2099 | 4582 2100 | 4501 2101 | 2325 2102 | 1586 2103 | 1450 2104 | 5306 2105 | 6237 2106 | 1210 2107 | 2108 | 4882 2109 | 4275 2110 | 1094 2111 | 3855 2112 | 5611 2113 | 5650 2114 | 2271 2115 | 1769 2116 | 5764 2117 | 5895 2118 | 2891 2119 | 2344 2120 | 5228 2121 | 6017 2122 | 4763 2123 | 2124 | 20686 2125 | 14164 2126 | 24547 2127 | 2128 | 26116 2129 | 2047 2130 | 2131 | 64931 2132 | 2133 | 11106 2134 | 11298 2135 | 3236 2136 | 2998 2137 | 3995 2138 | 10523 2139 | 2140 | 1230 2141 | 3999 2142 | 2775 2143 | 2882 2144 | 4474 2145 | 2490 2146 | 5185 2147 | 3853 2148 | 6045 2149 | 1786 2150 | 3372 2151 | 3548 2152 | 2217 2153 | 1424 2154 | 2155 | 4424 2156 | 2982 2157 | 3616 2158 | 1397 2159 | 4217 2160 | 3084 2161 | 2641 2162 | 2703 2163 | 1247 2164 | 1131 2165 | 3372 2166 | 1664 2167 | 1351 2168 | 2609 2169 | 4200 2170 | 2171 | 10258 2172 | 1295 2173 | 10597 2174 | 5712 2175 | 8643 2176 | 7976 2177 | 5578 2178 | 2924 2179 | 2180 | 1514 2181 | 8050 2182 | 4828 2183 | 8746 2184 | 5551 2185 | 8739 2186 | 1382 2187 | 8218 2188 | 6875 2189 | 6039 2190 | 2191 | 45328 2192 | 2193 | 18784 2194 | 21739 2195 | 2196 | 2884 2197 | 7165 2198 | 8039 2199 | 3978 2200 | 6701 2201 | 2646 2202 | 6171 2203 | 3899 2204 | 2700 2205 | 2206 | 6461 2207 | 4227 2208 | 7052 2209 | 1458 2210 | 6367 2211 | 4403 2212 | 2232 2213 | 7085 2214 | 2215 | 3490 2216 | 4126 2217 | 6334 2218 | 2320 2219 | 4354 2220 | 5981 2221 | 4319 2222 | 2031 2223 | 1629 2224 | 2225 | 5536 2226 | 3182 2227 | 6285 2228 | 1561 2229 | 1215 2230 | 2367 2231 | 5133 2232 | 2720 2233 | 3062 2234 | 6456 2235 | 6160 2236 | 3248 2237 | 5430 2238 | 3354 2239 | 2240 | 2124 2241 | 7143 2242 | 6779 2243 | 2022 2244 | 2034 2245 | 9093 2246 | 4122 2247 | 1303 2248 | 5054 2249 | -------------------------------------------------------------------------------- /day2/input: -------------------------------------------------------------------------------- 1 | A Z 2 | A Z 3 | C Y 4 | A X 5 | A X 6 | A Z 7 | C X 8 | A X 9 | C Y 10 | A Z 11 | B Y 12 | B Y 13 | C X 14 | C Y 15 | C X 16 | B Y 17 | A Y 18 | C Y 19 | B Y 20 | B Z 21 | B Y 22 | C X 23 | A Z 24 | C Y 25 | B Y 26 | B Y 27 | A Z 28 | B Y 29 | B Y 30 | B Y 31 | B Z 32 | B Y 33 | A Z 34 | B Y 35 | C Y 36 | B Y 37 | B Z 38 | C X 39 | B Z 40 | A X 41 | B Y 42 | B Z 43 | C Y 44 | A Z 45 | C Y 46 | A Z 47 | B Y 48 | C Y 49 | A Z 50 | A Z 51 | B Y 52 | C Y 53 | C X 54 | A Z 55 | B Z 56 | A Z 57 | B Y 58 | C X 59 | B Y 60 | B Y 61 | B Y 62 | A Y 63 | B Z 64 | C Y 65 | C X 66 | A Z 67 | B Y 68 | B Y 69 | B X 70 | A Z 71 | C X 72 | B Y 73 | B Y 74 | A Z 75 | A Z 76 | A X 77 | A X 78 | B Y 79 | C X 80 | A X 81 | A Z 82 | A Z 83 | B Y 84 | C Y 85 | B Z 86 | A X 87 | B Z 88 | A Z 89 | B Y 90 | A Z 91 | C Y 92 | A Z 93 | A X 94 | B Y 95 | C Y 96 | B Y 97 | A X 98 | B Z 99 | C Y 100 | B Y 101 | B Y 102 | A Z 103 | A X 104 | A X 105 | B Y 106 | C Y 107 | B X 108 | B Z 109 | C X 110 | B Y 111 | A Y 112 | B Y 113 | B Y 114 | B Y 115 | A X 116 | C Y 117 | A Z 118 | C Y 119 | C Y 120 | B Z 121 | B Y 122 | A Z 123 | A Z 124 | A Z 125 | B Y 126 | C Y 127 | B Z 128 | C X 129 | C Y 130 | B Z 131 | A X 132 | A Z 133 | C Y 134 | B Y 135 | C Y 136 | C Y 137 | C Y 138 | B Y 139 | B X 140 | B Y 141 | B Y 142 | C Y 143 | A X 144 | B Z 145 | B X 146 | C X 147 | B X 148 | C Y 149 | B Z 150 | B Y 151 | A X 152 | C Y 153 | C Y 154 | C X 155 | B Z 156 | B Y 157 | A Y 158 | B Z 159 | A Z 160 | B Y 161 | B Y 162 | B Z 163 | B Z 164 | C Y 165 | A Z 166 | A X 167 | A X 168 | C Y 169 | B Y 170 | A Z 171 | B Z 172 | A X 173 | A Z 174 | B Z 175 | C Y 176 | C Z 177 | A X 178 | A Y 179 | B Y 180 | C Y 181 | B Y 182 | C Y 183 | B Z 184 | B Y 185 | A Z 186 | C Y 187 | B Z 188 | B Y 189 | A Z 190 | A Y 191 | B Y 192 | B Y 193 | C Y 194 | A Z 195 | C Y 196 | B Y 197 | B Y 198 | A X 199 | A Z 200 | A Z 201 | B Y 202 | B Y 203 | B Z 204 | C Y 205 | C X 206 | B Z 207 | A Y 208 | B Z 209 | A X 210 | C X 211 | A Y 212 | B Z 213 | B Z 214 | A X 215 | C X 216 | C X 217 | A Z 218 | C Y 219 | A X 220 | A X 221 | C X 222 | A X 223 | B Z 224 | C Z 225 | B Z 226 | B Y 227 | B Y 228 | A Z 229 | A Z 230 | B Y 231 | A Z 232 | C Y 233 | C X 234 | B Y 235 | A X 236 | A X 237 | B Z 238 | C Y 239 | C Y 240 | A X 241 | B Z 242 | A X 243 | C X 244 | C X 245 | B Z 246 | C X 247 | B Z 248 | A X 249 | A Y 250 | A X 251 | A Z 252 | A X 253 | B Y 254 | C Y 255 | A X 256 | C Y 257 | A Z 258 | B Z 259 | A Z 260 | C Y 261 | A X 262 | A Z 263 | B Y 264 | A Z 265 | B Z 266 | B Z 267 | A Z 268 | B Z 269 | A X 270 | B Y 271 | B Z 272 | C X 273 | B Y 274 | B Y 275 | B Y 276 | B Y 277 | A X 278 | B Z 279 | B Z 280 | A Z 281 | A Z 282 | C Y 283 | B Y 284 | C X 285 | A X 286 | B Y 287 | B Y 288 | C X 289 | B Y 290 | A X 291 | C Y 292 | A Z 293 | B Y 294 | A Y 295 | B Z 296 | B Y 297 | A Z 298 | A X 299 | B Z 300 | C Y 301 | A Z 302 | C Y 303 | C X 304 | B Y 305 | B Z 306 | C X 307 | A Y 308 | B Z 309 | A Y 310 | B Z 311 | B Z 312 | B Y 313 | B Z 314 | C X 315 | B Y 316 | A X 317 | B Z 318 | A Z 319 | B Y 320 | A Z 321 | C Y 322 | C Y 323 | C X 324 | C X 325 | A X 326 | C X 327 | A X 328 | A X 329 | B Z 330 | B Y 331 | B Y 332 | B Y 333 | B Y 334 | C X 335 | C X 336 | A Z 337 | A Z 338 | C X 339 | C X 340 | C Y 341 | C Y 342 | C Y 343 | B Y 344 | A Z 345 | C Y 346 | B Z 347 | B Z 348 | B Y 349 | C X 350 | C X 351 | C Y 352 | C Y 353 | C X 354 | B Z 355 | B Z 356 | B Y 357 | C Y 358 | B Y 359 | A Z 360 | C Y 361 | A X 362 | B Y 363 | C Y 364 | C Y 365 | C Y 366 | B Y 367 | A Z 368 | B Y 369 | A X 370 | B Z 371 | C X 372 | A Z 373 | C X 374 | A Z 375 | B Z 376 | C Y 377 | C Y 378 | C Y 379 | C X 380 | B Z 381 | C X 382 | B Y 383 | B Z 384 | C X 385 | B X 386 | A Z 387 | B Z 388 | B Y 389 | C Y 390 | B Z 391 | C Y 392 | A X 393 | B Z 394 | C Y 395 | C Y 396 | B Z 397 | B Y 398 | C Y 399 | B Z 400 | C Y 401 | A Z 402 | C X 403 | C X 404 | C Y 405 | A Z 406 | C Z 407 | C Y 408 | B Y 409 | C Y 410 | B Y 411 | B Y 412 | B Z 413 | C X 414 | C X 415 | B Z 416 | B Z 417 | B Z 418 | A Z 419 | B Y 420 | B Y 421 | A X 422 | B Y 423 | C Y 424 | B Y 425 | C X 426 | C X 427 | B Y 428 | B Y 429 | A Y 430 | B Z 431 | B Y 432 | B Y 433 | C Y 434 | A Z 435 | C X 436 | A Y 437 | B Y 438 | B Z 439 | B Y 440 | A Y 441 | C Y 442 | A Y 443 | A Z 444 | B Y 445 | A Z 446 | C Y 447 | C Y 448 | B Y 449 | A Z 450 | B Y 451 | B Y 452 | A Z 453 | B Z 454 | B Y 455 | C X 456 | C Y 457 | B Z 458 | B Y 459 | B Y 460 | A Z 461 | C Z 462 | A Z 463 | A X 464 | C X 465 | B Z 466 | B Z 467 | C X 468 | C Y 469 | B Y 470 | B X 471 | A X 472 | C Y 473 | B Z 474 | B Y 475 | C X 476 | B Y 477 | A Z 478 | A Z 479 | A X 480 | C Y 481 | B Z 482 | B Y 483 | C X 484 | C X 485 | B Y 486 | A Z 487 | C Z 488 | B Y 489 | A Z 490 | C Y 491 | B Y 492 | C X 493 | A Z 494 | A Z 495 | A X 496 | C X 497 | A X 498 | C X 499 | C X 500 | A Z 501 | C X 502 | B Y 503 | A Z 504 | B Y 505 | B Y 506 | C Y 507 | C X 508 | A Z 509 | B Z 510 | B Y 511 | B Y 512 | A Y 513 | A Z 514 | B Y 515 | A Z 516 | B Z 517 | B Y 518 | C Y 519 | A Z 520 | B Y 521 | B Y 522 | B Y 523 | C Y 524 | C X 525 | A X 526 | A Z 527 | B Z 528 | B Y 529 | C Y 530 | B Z 531 | C X 532 | B Y 533 | C X 534 | A Z 535 | B Y 536 | B X 537 | B Y 538 | A Y 539 | A X 540 | A X 541 | C X 542 | C X 543 | B Y 544 | B X 545 | C Y 546 | A Z 547 | B Z 548 | C Y 549 | C Y 550 | B Y 551 | A Z 552 | C X 553 | A Z 554 | C Y 555 | B Z 556 | B X 557 | C X 558 | B X 559 | C X 560 | B Y 561 | C Y 562 | C Y 563 | B Z 564 | B Y 565 | B Z 566 | B Z 567 | A Z 568 | B Y 569 | A Y 570 | B Z 571 | C X 572 | C Y 573 | C X 574 | A Z 575 | B Z 576 | C Y 577 | B Y 578 | B Z 579 | C X 580 | B Y 581 | A Y 582 | A X 583 | A X 584 | C Y 585 | B X 586 | C X 587 | B Z 588 | A Z 589 | A Y 590 | B Z 591 | C X 592 | C X 593 | B Y 594 | A X 595 | B Z 596 | C Y 597 | B X 598 | B Z 599 | C Y 600 | B Y 601 | C Y 602 | B Z 603 | B Y 604 | B Z 605 | B Y 606 | C X 607 | B Y 608 | C X 609 | B Z 610 | B Z 611 | C X 612 | B Z 613 | A X 614 | B X 615 | B Y 616 | A X 617 | B Z 618 | C X 619 | B Z 620 | B Y 621 | B Y 622 | C X 623 | A Y 624 | B Z 625 | B Z 626 | B Y 627 | B Y 628 | B Z 629 | C Y 630 | B Z 631 | C Y 632 | C X 633 | A Z 634 | C X 635 | A X 636 | C Y 637 | B Y 638 | C X 639 | A Z 640 | B Y 641 | A Z 642 | A Z 643 | B X 644 | C Y 645 | B Z 646 | C Y 647 | B Y 648 | B Z 649 | A X 650 | B Z 651 | A X 652 | C X 653 | B Z 654 | B Y 655 | C X 656 | C Y 657 | C Y 658 | B X 659 | C X 660 | C X 661 | B Z 662 | C Y 663 | B Z 664 | B Y 665 | B Z 666 | C Y 667 | B Y 668 | C Y 669 | C X 670 | B Y 671 | B Y 672 | B Z 673 | A Z 674 | C X 675 | A Z 676 | B Y 677 | B Z 678 | A Z 679 | C Y 680 | A Z 681 | B Y 682 | A Z 683 | A Z 684 | C Y 685 | A Y 686 | B Y 687 | A Y 688 | C X 689 | B Y 690 | C X 691 | B Z 692 | C Y 693 | A Z 694 | C X 695 | C X 696 | B Z 697 | C Z 698 | C Z 699 | B Y 700 | B Y 701 | C Y 702 | C Y 703 | A Z 704 | C Y 705 | C Y 706 | C Y 707 | A Z 708 | B Z 709 | C Y 710 | B Y 711 | C Y 712 | C X 713 | C X 714 | B X 715 | B Y 716 | C Y 717 | A Y 718 | B Y 719 | B Z 720 | B Y 721 | A Y 722 | B Y 723 | B X 724 | C X 725 | C Z 726 | C Y 727 | C Y 728 | C Y 729 | B Z 730 | B X 731 | C Y 732 | B Z 733 | C X 734 | C Y 735 | A Z 736 | A Y 737 | B Y 738 | C X 739 | A Z 740 | B Y 741 | C Y 742 | B Z 743 | A Z 744 | A Z 745 | B Y 746 | A Z 747 | C Y 748 | A X 749 | C Y 750 | B Z 751 | B Z 752 | B Z 753 | B Y 754 | B Y 755 | A Z 756 | A Z 757 | B Y 758 | C X 759 | A Z 760 | C Y 761 | B Y 762 | A Z 763 | C Y 764 | A Z 765 | B Z 766 | B Z 767 | A Y 768 | B Y 769 | B Y 770 | B Z 771 | C Z 772 | B Y 773 | B X 774 | B Y 775 | C X 776 | B Z 777 | C Y 778 | B Z 779 | A Y 780 | B Z 781 | A Z 782 | A X 783 | A Z 784 | C X 785 | C X 786 | B Y 787 | C X 788 | C Y 789 | A Z 790 | B Z 791 | B Y 792 | A Z 793 | B Z 794 | B Z 795 | B Z 796 | C Y 797 | B Y 798 | A X 799 | C Y 800 | C Y 801 | C X 802 | A X 803 | C Y 804 | B Y 805 | C X 806 | B Z 807 | A Y 808 | B X 809 | B Y 810 | A Z 811 | B Y 812 | B Y 813 | B Y 814 | B Z 815 | C X 816 | B Z 817 | B Z 818 | C X 819 | B Y 820 | A Y 821 | B Y 822 | C Y 823 | A Z 824 | C Z 825 | B Y 826 | B Z 827 | B Z 828 | C Y 829 | A Z 830 | C Y 831 | C X 832 | C Y 833 | B Y 834 | A X 835 | A X 836 | B Z 837 | C Y 838 | B Z 839 | B Y 840 | A Y 841 | C X 842 | A Z 843 | B Z 844 | C Y 845 | C Z 846 | C X 847 | B Y 848 | C X 849 | A Y 850 | A Y 851 | B Z 852 | C X 853 | B X 854 | C X 855 | B Y 856 | B Z 857 | B Z 858 | B Y 859 | C Y 860 | B Y 861 | B Y 862 | A Z 863 | B Z 864 | B Y 865 | C X 866 | B Z 867 | B Y 868 | B Y 869 | C Y 870 | C Z 871 | C X 872 | B Y 873 | A X 874 | C Y 875 | C X 876 | B Z 877 | C Y 878 | A X 879 | B Y 880 | A Y 881 | B Y 882 | C X 883 | C Y 884 | C X 885 | A X 886 | B Z 887 | C X 888 | B Y 889 | A Z 890 | C X 891 | B Y 892 | A Z 893 | B Y 894 | B Y 895 | B Y 896 | A Z 897 | A X 898 | C X 899 | C Y 900 | C Y 901 | B Y 902 | B Y 903 | B Z 904 | A Y 905 | C X 906 | C X 907 | B Y 908 | B Y 909 | B Z 910 | A X 911 | C X 912 | C X 913 | B X 914 | A X 915 | B Z 916 | B Y 917 | C X 918 | A X 919 | B Y 920 | C Y 921 | A X 922 | B Y 923 | C X 924 | B Z 925 | C Z 926 | B X 927 | C Y 928 | B Y 929 | C Y 930 | A Z 931 | C Y 932 | B Z 933 | C X 934 | B Z 935 | C X 936 | C Y 937 | C X 938 | C Y 939 | C Z 940 | C X 941 | C X 942 | B Y 943 | C Y 944 | C X 945 | C X 946 | B Z 947 | B Z 948 | A X 949 | C Y 950 | C Z 951 | B Y 952 | C Z 953 | C Y 954 | C X 955 | C X 956 | B Y 957 | C Y 958 | A Y 959 | B Y 960 | A Y 961 | B Y 962 | B Y 963 | B Y 964 | C Y 965 | C Z 966 | B Y 967 | C X 968 | C X 969 | B Z 970 | B Y 971 | B Z 972 | C Y 973 | B Z 974 | C X 975 | B Z 976 | B Y 977 | B Y 978 | A Z 979 | A X 980 | B X 981 | A X 982 | C X 983 | C Y 984 | B Y 985 | A X 986 | B Z 987 | B Y 988 | B Y 989 | A X 990 | C X 991 | C X 992 | B Y 993 | B Y 994 | C Y 995 | C Y 996 | B Z 997 | B Y 998 | B Y 999 | B Y 1000 | C Y 1001 | A X 1002 | B Y 1003 | C Y 1004 | B Z 1005 | B Y 1006 | B Y 1007 | B Z 1008 | B Y 1009 | B Y 1010 | B Z 1011 | B Y 1012 | B Y 1013 | C Y 1014 | A Z 1015 | B Z 1016 | A Y 1017 | B Y 1018 | C Y 1019 | B Z 1020 | B Y 1021 | B Y 1022 | C X 1023 | A X 1024 | C Z 1025 | C X 1026 | B Y 1027 | B Z 1028 | C Y 1029 | C X 1030 | B Z 1031 | A Z 1032 | A Z 1033 | C Y 1034 | A Z 1035 | B Y 1036 | B Y 1037 | B Z 1038 | B Y 1039 | C Y 1040 | B Z 1041 | C Y 1042 | B Z 1043 | B Z 1044 | B Y 1045 | C X 1046 | B Y 1047 | B Z 1048 | A X 1049 | C X 1050 | C X 1051 | B Z 1052 | B Z 1053 | C X 1054 | B Y 1055 | A Z 1056 | B Y 1057 | B Z 1058 | C Y 1059 | B Y 1060 | A Z 1061 | B Z 1062 | B Y 1063 | B Y 1064 | B Y 1065 | C X 1066 | C Y 1067 | A Z 1068 | B Y 1069 | B Y 1070 | A Z 1071 | A Z 1072 | A Z 1073 | A X 1074 | B X 1075 | A Z 1076 | C Y 1077 | C X 1078 | A X 1079 | B Z 1080 | A X 1081 | C X 1082 | B Z 1083 | B Y 1084 | B Y 1085 | C X 1086 | A Z 1087 | C Y 1088 | C X 1089 | A Y 1090 | C X 1091 | A Z 1092 | B Z 1093 | B Z 1094 | B Y 1095 | C Y 1096 | B Z 1097 | A Z 1098 | A Z 1099 | C Y 1100 | B Y 1101 | B Z 1102 | A Z 1103 | A Z 1104 | B Z 1105 | B Y 1106 | A Z 1107 | C Y 1108 | A Z 1109 | A Z 1110 | B Y 1111 | B Z 1112 | B Z 1113 | A X 1114 | A X 1115 | B Y 1116 | B Z 1117 | B Z 1118 | C X 1119 | B Z 1120 | C Z 1121 | B Y 1122 | B Y 1123 | B Y 1124 | B Z 1125 | A X 1126 | A Z 1127 | B Y 1128 | A X 1129 | B Y 1130 | B Y 1131 | C X 1132 | C X 1133 | C Y 1134 | C Y 1135 | A Z 1136 | A X 1137 | B Y 1138 | A Z 1139 | B Z 1140 | B Y 1141 | C X 1142 | B Y 1143 | B X 1144 | C X 1145 | A X 1146 | A Z 1147 | C Y 1148 | C X 1149 | C Y 1150 | B Y 1151 | B Y 1152 | A X 1153 | A Y 1154 | B Y 1155 | A Y 1156 | C Y 1157 | C X 1158 | B Y 1159 | B Y 1160 | B Z 1161 | C X 1162 | C X 1163 | B Y 1164 | C X 1165 | B Z 1166 | C Y 1167 | A X 1168 | A Z 1169 | A Z 1170 | B Y 1171 | A Y 1172 | C Y 1173 | C X 1174 | C Y 1175 | C Y 1176 | B Y 1177 | B Y 1178 | A Z 1179 | C X 1180 | A X 1181 | B Y 1182 | B Y 1183 | B Y 1184 | B Z 1185 | A Z 1186 | B Y 1187 | B Y 1188 | A Z 1189 | B Y 1190 | A Z 1191 | C X 1192 | B Z 1193 | C Y 1194 | B Y 1195 | B Y 1196 | A X 1197 | B Y 1198 | A X 1199 | B Y 1200 | B Z 1201 | C X 1202 | B Z 1203 | B Y 1204 | C X 1205 | C Y 1206 | C Y 1207 | A X 1208 | A X 1209 | B Z 1210 | B Z 1211 | B Y 1212 | C X 1213 | A Z 1214 | C Y 1215 | C Y 1216 | C Y 1217 | B Z 1218 | B Z 1219 | B Y 1220 | A Z 1221 | C Y 1222 | A X 1223 | A Z 1224 | C Y 1225 | B Z 1226 | B Y 1227 | B Y 1228 | A Z 1229 | B Y 1230 | A Z 1231 | C X 1232 | A X 1233 | B Z 1234 | B Y 1235 | B Y 1236 | B Z 1237 | A Z 1238 | C X 1239 | B Y 1240 | C X 1241 | B Z 1242 | C X 1243 | A Z 1244 | B Y 1245 | A Z 1246 | A Z 1247 | B Y 1248 | C Y 1249 | C X 1250 | C Y 1251 | A X 1252 | C Y 1253 | B Y 1254 | B Z 1255 | C X 1256 | C Y 1257 | A X 1258 | B Z 1259 | B Y 1260 | C Y 1261 | A X 1262 | B Z 1263 | A Y 1264 | B Z 1265 | B Y 1266 | B Z 1267 | A X 1268 | A Z 1269 | A X 1270 | B Z 1271 | C Y 1272 | B Y 1273 | A Y 1274 | B Z 1275 | A Z 1276 | C Y 1277 | C X 1278 | B Z 1279 | B Y 1280 | C Y 1281 | B Z 1282 | C X 1283 | C Y 1284 | A X 1285 | B Z 1286 | B Z 1287 | B Z 1288 | B Z 1289 | B Y 1290 | C X 1291 | B Y 1292 | C X 1293 | A Z 1294 | A Z 1295 | C Y 1296 | A Y 1297 | B Y 1298 | C X 1299 | A Z 1300 | B Z 1301 | C X 1302 | C X 1303 | A X 1304 | B Y 1305 | C X 1306 | A Z 1307 | B Y 1308 | B Y 1309 | B Y 1310 | B Y 1311 | C X 1312 | C Y 1313 | C Y 1314 | B Y 1315 | A Z 1316 | B Y 1317 | B Z 1318 | B Z 1319 | B Y 1320 | A X 1321 | B Z 1322 | B Z 1323 | C X 1324 | C X 1325 | C Y 1326 | B Y 1327 | C Y 1328 | B Y 1329 | B Y 1330 | B Z 1331 | B X 1332 | C X 1333 | C Y 1334 | A Z 1335 | B Z 1336 | B Y 1337 | A X 1338 | B Z 1339 | A Z 1340 | B Z 1341 | B Y 1342 | B Y 1343 | A Z 1344 | C Y 1345 | B Y 1346 | C Y 1347 | B Z 1348 | B Y 1349 | C X 1350 | B Z 1351 | B Z 1352 | C Y 1353 | C Y 1354 | B Y 1355 | C Y 1356 | C X 1357 | B X 1358 | B Y 1359 | C Y 1360 | B Y 1361 | B X 1362 | C X 1363 | B Y 1364 | A Y 1365 | A Z 1366 | A Y 1367 | B Z 1368 | A Z 1369 | A Z 1370 | A Z 1371 | B Y 1372 | A Z 1373 | A Z 1374 | C Y 1375 | B Z 1376 | A Z 1377 | A X 1378 | B Y 1379 | C Y 1380 | C X 1381 | C X 1382 | A Z 1383 | B Z 1384 | B X 1385 | B Z 1386 | C X 1387 | B Z 1388 | C Y 1389 | C X 1390 | C Z 1391 | C X 1392 | B Z 1393 | B Z 1394 | B Z 1395 | B Z 1396 | A Z 1397 | A Z 1398 | C Y 1399 | C Z 1400 | C Y 1401 | A X 1402 | B Y 1403 | B Y 1404 | B Y 1405 | A Z 1406 | A Z 1407 | B Z 1408 | C Y 1409 | C X 1410 | B Y 1411 | C X 1412 | B Z 1413 | B Y 1414 | B Y 1415 | B Y 1416 | B Y 1417 | B Y 1418 | B X 1419 | A Z 1420 | A X 1421 | A Y 1422 | C X 1423 | B Z 1424 | B Y 1425 | B Z 1426 | C Y 1427 | A Z 1428 | B Z 1429 | B Z 1430 | C Y 1431 | B Z 1432 | B Z 1433 | C X 1434 | B Y 1435 | C X 1436 | B Z 1437 | C X 1438 | C Y 1439 | C Y 1440 | C X 1441 | A Z 1442 | A Z 1443 | B Z 1444 | B Y 1445 | C X 1446 | C X 1447 | A Y 1448 | A Z 1449 | C X 1450 | A X 1451 | A X 1452 | A Z 1453 | C Y 1454 | B Z 1455 | B Y 1456 | A Z 1457 | B Y 1458 | B Y 1459 | B Z 1460 | B Y 1461 | C Y 1462 | B Z 1463 | A X 1464 | B Y 1465 | A X 1466 | B Z 1467 | A Z 1468 | C X 1469 | A X 1470 | C Z 1471 | A Z 1472 | C Y 1473 | A X 1474 | B Y 1475 | B Z 1476 | B Z 1477 | A X 1478 | C Y 1479 | A Z 1480 | C X 1481 | A Y 1482 | C X 1483 | B Y 1484 | B Z 1485 | A X 1486 | B Y 1487 | B Y 1488 | A Y 1489 | A X 1490 | B Y 1491 | C X 1492 | A Y 1493 | B Y 1494 | B Y 1495 | C Y 1496 | A Z 1497 | B Z 1498 | A Z 1499 | B Y 1500 | A Z 1501 | C Y 1502 | C X 1503 | B Z 1504 | B Y 1505 | B Z 1506 | A X 1507 | C Y 1508 | C Z 1509 | A X 1510 | A X 1511 | C Y 1512 | C Y 1513 | A Z 1514 | C Y 1515 | C X 1516 | A Y 1517 | C Y 1518 | B Y 1519 | B X 1520 | B Y 1521 | A Z 1522 | C X 1523 | C X 1524 | B Y 1525 | A Z 1526 | A X 1527 | B Z 1528 | C X 1529 | B Y 1530 | B Y 1531 | C Z 1532 | A X 1533 | A X 1534 | B Z 1535 | C X 1536 | C Y 1537 | B Z 1538 | C Z 1539 | B Y 1540 | A Y 1541 | A Z 1542 | A Y 1543 | C Y 1544 | C Y 1545 | C Y 1546 | B Z 1547 | B Z 1548 | B Y 1549 | B Y 1550 | B Y 1551 | B Z 1552 | B Z 1553 | C X 1554 | A X 1555 | C X 1556 | B Y 1557 | B Y 1558 | B Y 1559 | C Y 1560 | B Y 1561 | B Y 1562 | C X 1563 | A Y 1564 | B Z 1565 | C X 1566 | B Z 1567 | B Y 1568 | A X 1569 | C Y 1570 | B Y 1571 | C Y 1572 | B Z 1573 | B Y 1574 | C Y 1575 | C Z 1576 | C Y 1577 | A Y 1578 | B Z 1579 | A X 1580 | B Z 1581 | A Z 1582 | A Z 1583 | A Z 1584 | B Y 1585 | A X 1586 | C Y 1587 | B Y 1588 | B Y 1589 | B Y 1590 | C X 1591 | B Y 1592 | A X 1593 | C X 1594 | B Y 1595 | C X 1596 | A Z 1597 | B Z 1598 | B Z 1599 | B Y 1600 | C Y 1601 | B Y 1602 | A Z 1603 | B Y 1604 | C Y 1605 | B Z 1606 | C X 1607 | B Y 1608 | B Y 1609 | B Z 1610 | C X 1611 | C Y 1612 | B Z 1613 | B Z 1614 | C Y 1615 | C X 1616 | C X 1617 | B Y 1618 | B Z 1619 | A X 1620 | C X 1621 | A Z 1622 | A Y 1623 | B Z 1624 | B Y 1625 | B Y 1626 | C Y 1627 | C X 1628 | B Y 1629 | B Z 1630 | C Y 1631 | C Y 1632 | C X 1633 | C X 1634 | B Z 1635 | A Z 1636 | B Z 1637 | B Y 1638 | C X 1639 | A X 1640 | C X 1641 | A Z 1642 | C X 1643 | B Z 1644 | C Z 1645 | B Y 1646 | C Y 1647 | B Y 1648 | C Z 1649 | A Z 1650 | B Y 1651 | C Z 1652 | A X 1653 | B Z 1654 | B X 1655 | C Y 1656 | C X 1657 | B Z 1658 | A Z 1659 | B Y 1660 | A X 1661 | B X 1662 | A Z 1663 | C Y 1664 | A Y 1665 | A Z 1666 | A X 1667 | C X 1668 | A Y 1669 | C X 1670 | B X 1671 | B Y 1672 | C Z 1673 | A Z 1674 | C X 1675 | B Y 1676 | C X 1677 | C X 1678 | B X 1679 | B Y 1680 | A Y 1681 | B Y 1682 | B Y 1683 | A Z 1684 | B Y 1685 | C Y 1686 | C X 1687 | B Y 1688 | B Y 1689 | B Z 1690 | C Y 1691 | B Z 1692 | A Z 1693 | A Z 1694 | A X 1695 | B Y 1696 | C Y 1697 | B Y 1698 | C Y 1699 | C Y 1700 | B Z 1701 | A X 1702 | C Y 1703 | B Z 1704 | C Y 1705 | A Y 1706 | B Y 1707 | B Y 1708 | B Y 1709 | C Y 1710 | A Z 1711 | A Z 1712 | B Z 1713 | A Z 1714 | C Y 1715 | C Y 1716 | B Y 1717 | C X 1718 | B Y 1719 | A Z 1720 | B Z 1721 | A X 1722 | B Z 1723 | B Y 1724 | B Z 1725 | A X 1726 | A X 1727 | C Y 1728 | A Z 1729 | B Z 1730 | C Y 1731 | B Z 1732 | C X 1733 | B Z 1734 | A X 1735 | B Z 1736 | B Z 1737 | C Y 1738 | B Y 1739 | B Y 1740 | C Y 1741 | B Y 1742 | A X 1743 | B Y 1744 | C Y 1745 | A Z 1746 | B Y 1747 | C X 1748 | A Z 1749 | B Z 1750 | A Z 1751 | B Z 1752 | C Y 1753 | B Y 1754 | B Y 1755 | B Y 1756 | C Y 1757 | B Y 1758 | B Y 1759 | A Z 1760 | B Y 1761 | B Z 1762 | C X 1763 | B Z 1764 | C X 1765 | C X 1766 | A X 1767 | B Z 1768 | C Z 1769 | B Z 1770 | A Y 1771 | C X 1772 | C X 1773 | A Z 1774 | A X 1775 | A Y 1776 | A X 1777 | B Y 1778 | B Y 1779 | C X 1780 | C Z 1781 | A Y 1782 | C Y 1783 | B Y 1784 | B Y 1785 | C X 1786 | C X 1787 | B Z 1788 | B Z 1789 | B Y 1790 | C Y 1791 | A Z 1792 | B Y 1793 | C X 1794 | C X 1795 | A X 1796 | A X 1797 | A Y 1798 | B Y 1799 | C X 1800 | A Z 1801 | C Z 1802 | C Y 1803 | C Y 1804 | C Y 1805 | B Y 1806 | C Y 1807 | A Y 1808 | A X 1809 | B X 1810 | B Y 1811 | B Y 1812 | B Y 1813 | B Y 1814 | A Z 1815 | B Z 1816 | B Y 1817 | B Y 1818 | C Y 1819 | A X 1820 | A Z 1821 | A Z 1822 | A Z 1823 | B Y 1824 | A X 1825 | C Y 1826 | C Y 1827 | B Y 1828 | B Y 1829 | C Y 1830 | A Z 1831 | C Y 1832 | A X 1833 | C X 1834 | B Z 1835 | B Y 1836 | C X 1837 | B Y 1838 | A X 1839 | A Z 1840 | C X 1841 | C Y 1842 | C Y 1843 | C X 1844 | C X 1845 | B Z 1846 | B Y 1847 | A Z 1848 | B Y 1849 | B Z 1850 | B Z 1851 | B Y 1852 | B Y 1853 | A X 1854 | C X 1855 | C Y 1856 | C X 1857 | A Z 1858 | B Z 1859 | B Y 1860 | B Y 1861 | C Y 1862 | A X 1863 | A X 1864 | C Y 1865 | C X 1866 | B Z 1867 | A Y 1868 | B Y 1869 | B Z 1870 | B Y 1871 | A X 1872 | C Y 1873 | B Y 1874 | A X 1875 | C X 1876 | B Y 1877 | B Y 1878 | A Z 1879 | A Z 1880 | A Z 1881 | B Y 1882 | B Y 1883 | C X 1884 | B Z 1885 | A Z 1886 | B Z 1887 | A Z 1888 | C X 1889 | B Y 1890 | C X 1891 | B Y 1892 | C X 1893 | C X 1894 | B Y 1895 | B Y 1896 | A Y 1897 | C Y 1898 | C Y 1899 | B Z 1900 | C X 1901 | B Y 1902 | B Y 1903 | A X 1904 | A Z 1905 | B Y 1906 | C Y 1907 | B Y 1908 | C Y 1909 | A X 1910 | C Y 1911 | C Y 1912 | B Z 1913 | C Y 1914 | A X 1915 | C X 1916 | A Z 1917 | C Y 1918 | A Z 1919 | C X 1920 | B Z 1921 | B Y 1922 | B Z 1923 | C Y 1924 | B X 1925 | A Z 1926 | C Y 1927 | C X 1928 | B Y 1929 | C X 1930 | B Z 1931 | A X 1932 | A Z 1933 | C X 1934 | B Z 1935 | C X 1936 | B Y 1937 | A Z 1938 | B Y 1939 | C Y 1940 | B Y 1941 | C X 1942 | C Y 1943 | B X 1944 | B X 1945 | B Y 1946 | B Y 1947 | B Y 1948 | B Z 1949 | B Y 1950 | C X 1951 | A Z 1952 | A Z 1953 | C X 1954 | B Y 1955 | B Y 1956 | B Y 1957 | A Y 1958 | C Y 1959 | B Z 1960 | C X 1961 | C Y 1962 | A X 1963 | C Y 1964 | B Z 1965 | C Y 1966 | B Y 1967 | B Y 1968 | B Z 1969 | A Z 1970 | A Z 1971 | B Y 1972 | A Y 1973 | B Z 1974 | A X 1975 | C Y 1976 | B Y 1977 | A X 1978 | C X 1979 | B Y 1980 | C Y 1981 | B Z 1982 | B Y 1983 | C X 1984 | A Z 1985 | C Y 1986 | A Z 1987 | B Y 1988 | C Y 1989 | B Y 1990 | C X 1991 | A Z 1992 | C Y 1993 | C Y 1994 | A Y 1995 | B Z 1996 | C X 1997 | C X 1998 | A Z 1999 | C Z 2000 | C X 2001 | B Y 2002 | C X 2003 | A X 2004 | C Y 2005 | C X 2006 | C X 2007 | A X 2008 | A Y 2009 | A X 2010 | C X 2011 | A X 2012 | A X 2013 | B X 2014 | B Y 2015 | C Y 2016 | A X 2017 | B Z 2018 | C X 2019 | C Y 2020 | B Y 2021 | B Z 2022 | C Y 2023 | B Z 2024 | B Y 2025 | C X 2026 | A X 2027 | B Y 2028 | B Z 2029 | C Y 2030 | A Z 2031 | C X 2032 | C Z 2033 | A X 2034 | A Z 2035 | A Z 2036 | B Z 2037 | A Z 2038 | B Y 2039 | C Y 2040 | C Y 2041 | B Z 2042 | C Y 2043 | C Y 2044 | C Y 2045 | C X 2046 | A X 2047 | B Y 2048 | A X 2049 | C X 2050 | C Z 2051 | B Y 2052 | A Z 2053 | B Y 2054 | C Y 2055 | C Y 2056 | B Z 2057 | C Y 2058 | C X 2059 | B Z 2060 | C Y 2061 | B Y 2062 | B Z 2063 | A Z 2064 | B Z 2065 | B Z 2066 | B Y 2067 | A Z 2068 | A Y 2069 | C X 2070 | B Y 2071 | A Z 2072 | C Y 2073 | B Z 2074 | A Z 2075 | B Y 2076 | B Y 2077 | C Y 2078 | B Y 2079 | B Y 2080 | B Y 2081 | C Y 2082 | B X 2083 | B Y 2084 | A X 2085 | A X 2086 | B Z 2087 | A X 2088 | C Y 2089 | A Z 2090 | B Y 2091 | B Y 2092 | B Z 2093 | A Z 2094 | C Y 2095 | C X 2096 | B Y 2097 | A Z 2098 | A X 2099 | B Y 2100 | C X 2101 | B Z 2102 | A X 2103 | C X 2104 | B Z 2105 | B Z 2106 | B Z 2107 | B X 2108 | A X 2109 | C Z 2110 | C X 2111 | C Z 2112 | B X 2113 | A Z 2114 | C X 2115 | B Y 2116 | C X 2117 | C Y 2118 | C Y 2119 | B Y 2120 | B Z 2121 | B Y 2122 | C Y 2123 | C X 2124 | A Z 2125 | C Y 2126 | C Y 2127 | C Y 2128 | B Z 2129 | A Z 2130 | A Y 2131 | C X 2132 | C Y 2133 | B Y 2134 | C Y 2135 | C Y 2136 | B Z 2137 | C Y 2138 | B Y 2139 | B Y 2140 | C X 2141 | B Z 2142 | B Y 2143 | A X 2144 | B Y 2145 | A Z 2146 | B Y 2147 | C X 2148 | B Y 2149 | C X 2150 | B Y 2151 | A Z 2152 | C X 2153 | B Y 2154 | C X 2155 | B Z 2156 | C X 2157 | B Y 2158 | A X 2159 | C X 2160 | C X 2161 | A X 2162 | C Y 2163 | A Z 2164 | C Y 2165 | B Z 2166 | A Z 2167 | A X 2168 | C X 2169 | A X 2170 | C Y 2171 | A X 2172 | A X 2173 | B Z 2174 | C X 2175 | C Y 2176 | A Y 2177 | B Z 2178 | B Y 2179 | C Y 2180 | B Y 2181 | A Y 2182 | C Y 2183 | C Y 2184 | B Y 2185 | B Y 2186 | B Z 2187 | B Z 2188 | C X 2189 | B Y 2190 | C X 2191 | A X 2192 | A Z 2193 | C Y 2194 | B Z 2195 | C Y 2196 | B Y 2197 | C X 2198 | C X 2199 | A Z 2200 | B Z 2201 | A Z 2202 | C X 2203 | B Y 2204 | B Z 2205 | C Y 2206 | B Y 2207 | A X 2208 | A X 2209 | B Y 2210 | B Y 2211 | B Y 2212 | A X 2213 | B Y 2214 | B Z 2215 | A Z 2216 | A X 2217 | A X 2218 | B Z 2219 | B Y 2220 | A X 2221 | B Z 2222 | A Z 2223 | B Y 2224 | B Z 2225 | B Z 2226 | B Z 2227 | C Y 2228 | C Y 2229 | A Z 2230 | B Y 2231 | C Y 2232 | A Z 2233 | C X 2234 | B Z 2235 | A X 2236 | B X 2237 | B Y 2238 | B Y 2239 | C Y 2240 | C Y 2241 | B Z 2242 | B Y 2243 | A Z 2244 | B Y 2245 | A X 2246 | B Z 2247 | B Y 2248 | C Z 2249 | B Y 2250 | B Y 2251 | C Y 2252 | B Y 2253 | B Y 2254 | A Y 2255 | C Y 2256 | A Z 2257 | A Y 2258 | B Z 2259 | C X 2260 | B Z 2261 | A X 2262 | A Z 2263 | A X 2264 | C Y 2265 | A Z 2266 | B Y 2267 | B Z 2268 | B Z 2269 | C Y 2270 | C Y 2271 | C Y 2272 | B X 2273 | B Y 2274 | B Z 2275 | A X 2276 | B Y 2277 | C Y 2278 | A X 2279 | A X 2280 | B Y 2281 | C Y 2282 | A Y 2283 | B Z 2284 | B Z 2285 | B Z 2286 | A Z 2287 | B Y 2288 | C X 2289 | A Z 2290 | C Y 2291 | C Y 2292 | B Y 2293 | C Y 2294 | C Y 2295 | C Y 2296 | C Y 2297 | B Y 2298 | B Z 2299 | A Z 2300 | B X 2301 | C Y 2302 | C X 2303 | C X 2304 | C Y 2305 | A Z 2306 | C Y 2307 | C X 2308 | B Z 2309 | B Y 2310 | A Y 2311 | C Z 2312 | B Y 2313 | B Y 2314 | B Y 2315 | B Y 2316 | C Y 2317 | B Y 2318 | C Y 2319 | A Z 2320 | B Y 2321 | C X 2322 | C Y 2323 | B Z 2324 | A X 2325 | C Y 2326 | B Y 2327 | B Y 2328 | B Y 2329 | A Z 2330 | A X 2331 | A X 2332 | C X 2333 | C Z 2334 | B Z 2335 | A X 2336 | A Z 2337 | A X 2338 | A Y 2339 | C Y 2340 | C Y 2341 | A Z 2342 | C X 2343 | C X 2344 | B X 2345 | B Y 2346 | A X 2347 | A Z 2348 | A X 2349 | C Y 2350 | B X 2351 | A X 2352 | A X 2353 | C X 2354 | A Y 2355 | B Z 2356 | A Z 2357 | B Y 2358 | A X 2359 | A Z 2360 | B Y 2361 | A Z 2362 | C Y 2363 | B Z 2364 | A Z 2365 | C Y 2366 | C X 2367 | B Z 2368 | C Y 2369 | B Y 2370 | C X 2371 | A Z 2372 | B Z 2373 | A X 2374 | A X 2375 | C Z 2376 | A X 2377 | C X 2378 | B Y 2379 | B Z 2380 | A X 2381 | A X 2382 | C Y 2383 | A Z 2384 | C Y 2385 | C X 2386 | C Y 2387 | B Z 2388 | B Y 2389 | C X 2390 | C X 2391 | B Z 2392 | B Z 2393 | C Y 2394 | A X 2395 | B X 2396 | C X 2397 | C Y 2398 | A X 2399 | A Z 2400 | B Y 2401 | C X 2402 | A Y 2403 | C X 2404 | C Y 2405 | A Z 2406 | B Y 2407 | B Z 2408 | B Y 2409 | C X 2410 | C Y 2411 | C X 2412 | C X 2413 | B Y 2414 | C X 2415 | C X 2416 | B Y 2417 | C Z 2418 | C Y 2419 | C Y 2420 | B Z 2421 | B Z 2422 | B Y 2423 | A X 2424 | B Y 2425 | A Z 2426 | A Y 2427 | B Y 2428 | C Y 2429 | B Z 2430 | B Z 2431 | A X 2432 | B Y 2433 | A X 2434 | B Y 2435 | A Z 2436 | B Y 2437 | C X 2438 | A Z 2439 | B Z 2440 | C Y 2441 | B Y 2442 | A Y 2443 | A X 2444 | C X 2445 | A X 2446 | B Y 2447 | B Z 2448 | B Z 2449 | C Y 2450 | A X 2451 | B Y 2452 | B Z 2453 | B Y 2454 | B X 2455 | C Z 2456 | B Z 2457 | C X 2458 | C Y 2459 | C X 2460 | B Z 2461 | C Y 2462 | A X 2463 | A X 2464 | C X 2465 | B Y 2466 | B X 2467 | B Y 2468 | A X 2469 | C Y 2470 | A Z 2471 | B Y 2472 | B Y 2473 | B Y 2474 | B Z 2475 | B Y 2476 | C X 2477 | A Z 2478 | C Y 2479 | A Z 2480 | B Z 2481 | C X 2482 | C Y 2483 | C X 2484 | C Y 2485 | A Y 2486 | B Z 2487 | B Y 2488 | B Z 2489 | C Y 2490 | A X 2491 | B Y 2492 | A X 2493 | C X 2494 | B X 2495 | C X 2496 | A Z 2497 | B Z 2498 | B Z 2499 | C Y 2500 | B Z 2501 | --------------------------------------------------------------------------------