diff --git a/bob/day10/day10-p1.py b/bob/day10/day10-p1.py new file mode 100644 index 0000000..e01f424 --- /dev/null +++ b/bob/day10/day10-p1.py @@ -0,0 +1,57 @@ +import itertools +import re + +def press_buttons(buttons, lights): + + for button in buttons: + for light in button: + + if lights[int(light)] == ".": + lights[int(light)] = "#" + else: + lights[int(light)] = "." + + return "".join(lights) + + +def read_input(filename): + manuals = [] + for line in open(filename).read().splitlines(): + + lights = re.findall(r"\[(.*?)\]",line)[0] + buttons = re.findall(r"\((.*?)\)",line) + + buttons = [ b.split(",") for b in buttons ] + + manuals.append((lights,buttons)) + return manuals + + +# filename = "day10/example_input" # 7 +filename = "day10/input" # 419 + +manuals = read_input(filename) + +buttons_pressed = [] +for manual in manuals: + presses = 0 + + target_lights = manual[0] + continueSearch = True + while continueSearch: + presses += 1 + for buttons in itertools.combinations(manual[1],presses): + + lights = press_buttons(buttons, ["."] * len(target_lights)) + + if lights == target_lights: + buttons_pressed.append(len(buttons)) + continueSearch = False + break + +sum_buttons = 0 +for butt in buttons_pressed: + sum_buttons += butt + + +print(f"Sum of fewest buttons: {sum_buttons}") diff --git a/bob/day10/example_input b/bob/day10/example_input new file mode 100644 index 0000000..dd91d7b --- /dev/null +++ b/bob/day10/example_input @@ -0,0 +1,3 @@ +[.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7} +[...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2} +[.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5} diff --git a/bob/day10/input b/bob/day10/input new file mode 100644 index 0000000..4a7f123 --- /dev/null +++ b/bob/day10/input @@ -0,0 +1,160 @@ +[.##....#] (1,5,6) (1,3,4,7) (0,2) (2,5) (2,4,5,7) (1,2,3,6) (0,5,7) (0,4,7) (3,5,6) (0,2,5) {48,31,52,26,20,57,37,26} +[##.#] (0,2) (2) (1,3) (1,2) (0,3) {11,24,179,9} +[.###] (1,2,3) (0,1) (0,2,3) {200,19,207,207} +[#.#.] (0) (1,2,3) (0,2) (1,2) {20,15,29,1} +[.#.##.#.] (6,7) (0,2) (0,3,4,5,6,7) (0,1,2,3) (2) (1,2,4,5,7) (2,4,5,6,7) (0,1,3,5,7) {47,36,44,43,19,31,162,180} +[.##.#.#] (2,4) (0,1,4,5,6) (3,4) (0,1,2,4) (0,1,3) (1,2,3,4,5) {40,208,200,187,208,176,8} +[..#...#..] (4,5) (0,2,3,4,5) (1,2,4,5,6,8) (0,6,7) (0,1,6,7,8) (1,2,4) (0,1,2,3,4,5,6,8) (0,2,5,7,8) {52,32,43,16,27,43,31,36,48} +[....#...] (0,1,2,3,4,6) (1,2,4,5,6) (4,5) (0,2,3,4,5,6,7) (4,7) (1,4) (0,1,2,5,7) {52,59,69,35,71,58,52,37} +[...##] (4) (0,2,4) (0,1,3) (1,2,3) (0,1) (1,4) (0,1,2) {35,30,30,8,35} +[.....##] (2,3) (1,3) (5) (2,3,4,5,6) (0) (0,3,5) (5,6) (2,4) {24,8,29,53,14,52,31} +[..#.#] (1,2,4) (3) (0,1,4) (2,4) (0,2,3,4) (4) (0,2,4) {37,34,43,15,70} +[##....#..] (0,2,3) (0,1,6,7,8) (0,1,4,5) (1,4,5,7) (0,4) (0,2,3,4,5,6) (0,2,3,8) (1,4,5,6,7) (0,2,6,7) {51,29,29,10,24,17,50,48,19} +[.#.#.#.] (3,6) (1,3,4,6) (0,3) (1,2) (0,2) (1,2,5,6) (2,3,5) {17,168,26,180,146,7,165} +[...#..] (2,3,4) (0,4) (0,2) (0,1,5) {32,0,15,0,17,0} +[..#....###] (0,3,5,6,7,8,9) (0,1,2,4,6,7,8,9) (1,6,9) (0,1,3,4,6,7,9) (0,1,2,6,7) (0,3,4,5,7,8) (0,3,4,7,8) (1,3,4,5,6,7,8,9) {69,59,21,55,65,26,64,76,57,58} +[.#.##.#] (0,1,2,4,5) (0,3,4) (0,2,3,5,6) (0,1,2,4) (1,2,4,5,6) (0,5,6) {73,53,68,21,59,73,54} +[..##..] (2,4) (0,1,2,3,4) (2,4,5) (3,4) (0,1,2,3,4,5) {16,16,53,34,71,24} +[##.##.] (0,2,3,4) (0,1,3,4) (2,3,4) (0,2,5) (2,5) (1) (1,4,5) {204,38,212,32,37,200} +[.#..] (0,1,2,3) (0,2,3) (1) {206,211,206,206} +[..#.#..] (0,2,3,4,5) (0,4,5,6) (5) (2,3,5) (3,4,6) (0,1,2,3,5) (1,2,3,4) {32,16,26,30,20,47,20} +[####...#.] (0,1,2,4,5,6,8) (0,2,3,5,6,8) (0,1,2,4,5,7,8) (4,5) (1,3) (0,6) (0,2,4,6,7) (0,1,2,3,4,6,7) (3,4,5,6,7,8) {188,167,170,33,181,182,49,167,172} +[.######] (1,6) (0,2,4,5) (3,5,6) (0,3,4,5,6) (1,4,5) (2,3,6) (2,3,4,5,6) (0,1,5,6) {29,35,22,19,50,60,34} +[..#.##.] (0,1,2,6) (1,6) (1,2,4,5,6) (4,5,6) (0,6) (1,2,3,4,5,6) (1,2,4,5) (2,5) (3,6) {30,81,75,27,57,69,106} +[#####] (1) (1,2) (0,3,4) (0,1,4) {40,186,10,20,40} +[##..#..#.] (0,2,3,4,6,7) (4,5,7,8) (0,1,3,4,5,6,7,8) (3,4,5,6,8) (0,3,5,6,7,8) (0,1,2,7) (0,1,3,4,5,7,8) (3,6) (0,1,2,3,4,6,7) {74,55,31,71,62,55,54,76,55} +[.##.##..##] (1,2,4,5,7,8,9) (0,2,3,6,8,9) (0,2,5,9) (0,2,3,4) (0,1,2,4,5,6,7,8,9) (1,2,5,6) (7) (5,7,9) (1,4,5,6,8) (0,4,7,8) (2,3,4,9) (0,1,3,4,5,7,8,9) {63,48,62,31,52,81,57,60,65,82} +[#.##..#] (0,1,2,3,4,5) (1,2,6) (1,2) (1,4,5) (0,1,3,4,5,6) {121,160,139,121,133,133,26} +[.##.] (0,2,3) (0,1,2) (0) (1,3) {34,19,16,13} +[.#....] (1,3,4,5) (0,2,5) (2) (0,3) (4,5) (4) {134,19,142,25,35,153} +[#..#..###.] (3,6) (0,3,4) (0,1,3,5,6,7,9) (2,4) (0,7,8) (1,3,4,5,6,8) (3,7) (2,3,8) {39,29,146,72,167,29,33,37,49,9} +[.#.##.] (1,2,3,4) (0,1,3,4,5) (0) (2,4) (0,2,5) (1,2,3) {27,5,30,5,20,20} +[####.####.] (1,2,3,5,6,7,9) (7,8,9) (2,3,4,7,8) (0,2,4,5,7,8) (0,2,3,5,6,8) (0,1,4,5,8,9) (1,2,5,6,8) (4) {26,38,58,32,34,56,41,43,70,34} +[#.....###.] (1,2,3,4,5,8,9) (0,4,5,9) (6,8) (0,1,3,4,5,7,8,9) (1,4,5,7,8,9) (0,1,3,4,5,6,7) (0,3,4,5,8) (2,5,7,8,9) (0,1,2,3,4,5,6,8) (0,4,5,6,7,9) {83,53,32,63,89,95,55,40,81,57} +[#####] (0,2,4) (1,2) (2,3,4) (2) (0,2) (2,4) {30,11,85,17,43} +[..####....] (0,3,4,5,6,8) (4,6,7,8,9) (0,1,2,3,4,7,8,9) (0,1,3,7,8,9) (2,4,7,8,9) (1,2,9) (1,2,4,5,6,7,9) (3,4,7) (1,9) (1,3,5,7,9) (2,4,5,6,7) (1,2,6,7) {27,93,63,50,62,48,69,101,49,97} +[##...#...] (0,1,2,3,4,8) (0,1,2,3,4,5,8) (0,1,7,8) (1,5,7,8) (0,1,8) (1,3,4,5,6,7) (1,2,3,5,7) (2,3,4,5,6) (3,4,5,6,7) (0,2,5,6,7,8) (1,2) {165,181,174,179,178,185,33,34,171} +[..#....#..] (0,4,5,7,8) (7,8) (1,3,5,6,9) (0,2,3,4,7,8,9) (1,4,6,7) (0,1,4,6,7,8,9) (3,4,7,9) (0,2,3,4,5,6,8,9) (2,5,7,9) (1,6,7,8,9) (0,2,3,5,6,7,8,9) (0,1,3,5,6,8,9) (5,8,9) {248,48,228,265,250,83,75,269,260,287} +[.##...##] (0,3,5,6,7) (3,7) (0,3,4,5) (0,1,2,3,4,7) (1,2,5) (3,5,6) {42,38,38,80,36,64,26,42} +[#.#.] (1) (0,2) (0,2,3) (1,2) (1,2,3) (0,1) {34,48,58,37} +[...#.#.#] (0,3,5,6,7) (2,7) (0,1,2,3,4,7) (0,1,2,4) (1,2,3,6) (1,4,5,6) (0,1,2,4,5,6) (3,6) {23,37,52,42,27,11,41,31} +[#..####] (1,3) (0,1,2,4,5) (0,1,3,6) (1,4,6) (1,2,3,6) (2,3) {18,46,19,48,11,4,23} +[.###.] (2) (0,1,2,3) (0,4) (1,3) {27,30,34,30,12} +[##...#.#] (1,4,5,7) (0,3,4,5,6,7) (0,2,3,5,6,7) (0,1,2,4,5,6) (0,1,3,5,6,7) (0,4) {43,27,16,29,42,50,42,37} +[##...] (0,1,2,4) (0,2,3) (2,4) {31,20,44,11,33} +[....#...#] (3,5) (1,2,4,5,6,8) (3,4,5,7,8) (1,2,4,5,6,7,8) (0,1,2,5,6,7,8) (3,4) (1,2,6,7,8) {12,56,56,42,67,73,56,57,72} +[###....##.] (1,4,8) (2,4,8) (0,7,8,9) (1,2,5,6) (2,3,4,5,7,8) (0,1,2,3,4,6,7) (1,4,5,6,7,8,9) (0,1,2,3,5,6,7,9) (0,4) (0,1,7,8) (1,5) (0,2,3,4,7,8) (0,3,5,6,7,9) {56,67,65,39,88,65,57,64,68,34} +[####..#] (0,4,5,6) (1,3,6) (0,1,4,5) (0,2,3,4,5) (2,3,6) (0,2,3) (2,3,5) (0,1,3,4,6) {53,209,42,244,43,40,225} +[##.#.#] (0,1,4,5) (0,2,3,4) (0,1,3,5) (1,2,5) (1,3,4,5) (0,1,2,3,5) {49,57,31,42,31,57} +[.....##.] (0,1,2,4,7) (0,1,4) (1,3) (2,4,6,7) (0,7) (0,1,2,5,7) (0,4,6) (1,2,4,5,6,7) (1,2,3,4,6,7) {57,53,37,16,68,12,43,47} +[.#..] (3) (1,3) (0,1) (0,1,2) (0,1,3) {203,204,196,22} +[.###] (1,2,3) (0,1,2) {17,19,19,2} +[##.#] (1,2) (0,2,3) (1,3) {16,137,142,27} +[..####.#.] (0,3,4,5,6,7) (1,2,4,5,7) (0,1,4,5,6,7) (2,3,5,6) (0,3,4,5,7) (5,8) (0,1,6,7,8) (3,7,8) {43,49,38,50,54,77,61,81,32} +[####.#..#] (4,6,7,8) (2,4,7) (0,4,8) (2,3,6) (3,4,6) (0,1,2,3,6) (0,1,3,5,6,8) (0,1,4,5) {70,51,31,59,70,38,68,17,48} +[.##...###] (4,6,8) (1,2,4,5,6,7,8) (2,7) (0,3,4,5,6) (0,1,2,3,5,7) (0,1,2,3) (0,1,3,5,6,7,8) (2,3) (0,1,2,3,8) (4,8) (0,2,3,4,5,6,7) {71,44,81,86,53,57,39,47,39} +[..#.#] (2,4) (0,1,3,4) (0,1,2,4) {6,6,24,1,25} +[.#.#.#.] (1,2,4) (0,2,5,6) (1,3,4,6) (0,1,2,3,6) (0,2,5) {27,34,40,21,15,8,27} +[#...#...#] (1,2,5) (5,6,7) (1,3,6,8) (4,5,8) (0,2,3,6,7,8) (1,2,3,6,8) (0,2,3,4,7,8) (0,5,8) (0,2) (0,2,3,6,7) {49,28,52,38,21,55,38,36,61} +[..#.##] (0,1,2,3,5) (0,2,3) (0,1,4,5) (0,1,3,4) {201,38,180,200,21,18} +[.#.###] (0,1,5) (0,3,4) (0,3,4,5) (0,1,2,3,5) {35,27,11,19,8,28} +[#.....] (0,1,5) (3,4) (0,1,2,4) (1,3,4,5) (2,4) (1,3,5) {12,36,3,24,18,35} +[..##.....#] (9) (2,3,9) (2,3,4,6,7,8) (2,4) (5,9) (0,1,4,7) (0,1,3,9) (0,1,2,3,8,9) (3,4,5,8,9) (1,2,3,5,6,8) (0,2,3,4,8,9) {192,19,195,213,203,15,7,9,197,208} +[##.####.##] (5,6) (0,1,2,3,4,6,8,9) (0,2,4,7) (1,2,3,5,6,7,8,9) (2,7,8) (0,1,2,3) (0,8,9) (1,2,5,7) (0,1,2,7) {30,40,48,25,14,27,26,24,29,21} +[...#.] (0,3,4) (0,4) (2,3) (0,2,3) (2,4) (0,2) (0,1) {62,10,43,37,32} +[.#.##.###] (4,7) (0,2,4,5,6,7) (1,2,3,4,6) (1,2) (1,8) (0,1,2,7) (1,3,4,6,7,8) {28,43,36,7,22,14,21,31,21} +[#.##] (1) (1,2) (0,1,3) (0,3) (2) {20,26,29,20} +[...#] (0,1,2) (3) (0) (1,2) {18,134,134,14} +[#.#.##.##] (0,3,7) (0,2,4,6) (0,2,5,7,8) (1,4,6,7) (1,2,3,4,5,6,8) (0,1,3,4,5,7,8) (0,1,2,4,5,7,8) {35,49,36,39,58,38,47,44,38} +[.##.] (3) (2,3) (0) (1) (0,1) (1,2) {10,26,21,20} +[##.#] (0,2) (2) (0) (0,1) (1,3) (1,2) {23,42,34,18} +[#.###.#.] (1,2,4) (1,2,3,4,5,7) (0,7) (3,4,6) (1,3,4,5,6) (0,1,2,4,5,7) (0,1,2,3,4,6) {36,216,42,206,226,193,194,38} +[##.#..##] (0,1,5,7) (3,6) (0,3,4,5,6) (2,5,6) (5,6) (0,2,4) {17,3,14,10,14,10,17,3} +[#.#.#.##] (3,5,7) (0,2,5,7) (1,2,4) (6) (0,4,5,6) (0,2,4,6,7) (0,5,6,7) (0,2,3,4) (0,1,2,3,4,7) {71,18,55,33,44,57,53,80} +[.##.##] (0,1,2,3) (1,5) (3,4) (1,3,5) (2,3,5) (0,1,3,5) (0,1,2,3,5) {57,87,40,87,11,71} +[##.#] (1,2) (2) (0) (1,2,3) (0,1) {138,43,27,17} +[.#....] (0,3,4,5) (0,1,3,4,5) (2,3,4,5) (0,1,2,3,4,5) {36,35,31,48,48,48} +[.#.##] (2,3,4) (1) (1,2) (0,3) (2,4) (0,2,3) {10,37,34,20,14} +[#.#.##] (0,4,5) (0,2,3,4,5) (0,1,2,4) (0,3,4,5) (0,1,5) (4) (1,5) {60,40,28,30,56,67} +[.#..##.] (2,3) (0,2,4,6) (0,4,5) (0,1,2,5) (1,3,4,6) {20,6,25,8,18,5,17} +[###.###] (0,2,5) (1,2,3,4) (0,1,4,5,6) (4,6) (2,3,4) {29,22,53,33,56,29,23} +[###.###] (1,2,3,6) (0,2,4,6) (0,3,4,5,6) (0,2,4,5,6) (0,3,4,6) (0,2,5,6) (1,2,3) (1,4,6) (4) {56,35,53,59,73,28,73} +[..###.] (0,1,3,4,5) (1,2,5) (0,3,4,5) (0,1,2,5) {202,214,29,192,192,221} +[#..##.] (1,2,3) (0,2,3,4) (1,2) (3) (5) (0,5) (2,3) (0,2,4,5) {30,30,49,46,15,128} +[..#..##..] (2,3,4,5) (0,1,2,3,5,6,7) (0,1,4,5,6,7,8) (3,4,5) (5,6) (2,8) (3,7,8) (1,7) (6,7,8) (0,1,4,6) (2,6,8) {35,37,49,49,33,51,60,59,70} +[#.....#..#] (0,1,3,4,6,8,9) (6,8) (4,5,7,8) (1,5) (0,1,2,3,4,6,7,8,9) (0,1,3,4,7,8) (2,6,7,8,9) (4) (0,6,9) {60,43,35,40,58,15,59,67,71,55} +[.#...##.] (0,1,2,3,4,7) (2,4) (3,7) (0,1,4,7) (0,1,2,3,4,6,7) (0,2,4,5,6) (0,2,4,6,7) (3,6) (2,3,5) (2,3,4,6) {241,208,258,229,265,27,218,245} +[..##.] (0,2,4) (0) (1,3,4) (2,3,4) (0,4) (0,1) (2,3) {50,14,48,40,47} +[.##.] (1,2) (0,2) (0,1,3) {135,23,136,11} +[##..##] (1,2,3,4) (2,3) (1,5) (4,5) (0,2,3,5) {5,27,33,33,17,15} +[####.#] (0,3,4) (2,5) (0,1,2,5) (0,1,3,5) (2,4,5) (4) (1,3) (0) {50,41,31,54,57,46} +[##...#.] (5) (0,2,3,4,6) (1,2,3,5) (1,5) (0,1,4,5,6) (0,1,5) (2,3,4,5,6) {33,35,38,38,38,49,38} +[####.##.] (1,2) (0,1,2,3,5,6) (0,2,3,4,5,6,7) (3,5,6,7) (2,4) (4,5) (0,2,6) {27,5,37,33,32,42,42,33} +[###.] (1,3) (2,3) (1) (2) (0,1,2) (0,1) {10,32,133,7} +[###...#] (2,5,6) (2,4) (0,2,4,5) (1) (3,4,5,6) (0,2,6) (0,1,2,3,6) (0,5) (2,4,5,6) {31,10,64,20,46,39,44} +[..#.#] (1,2,3,4) (0,4) (2) (2,3,4) (4) {11,195,212,212,238} +[.##...#] (0,2,3,6) (0,1,2,3,4,5) (2,3,4,5) (0,1,3,5) (0,1,6) (0,1,2,3,4,6) {34,31,11,25,8,18,17} +[..#.#####.] (0,1,4,5,6,7) (2,3,4,6,7,8,9) (0,2,4,7,8,9) (1,4,6) (1,2) (0,2,4,5,6,8) (1,2,3,5,7,8,9) (0,1,2,6,7,9) (3,5,7,9) {48,61,59,38,50,49,48,84,43,70} +[#.###] (1,2,4) (1,2,3,4) (0,3,4) (0,2,3,4) {109,28,35,118,137} +[###.#..#] (2,4,7) (1,3,4,7) (1,3,4,5,6) (0,1,2,4,5,6) (0,1,3,4,6,7) (1,4) (0,1,7) (1,2,4,6) {10,39,8,17,44,9,20,14} +[...#.] (0,1,2,3) (1,3,4) (0,1,2) {11,19,11,14,8} +[..#.] (0,2,3) (2) (1,3) {16,12,34,28} +[....#.##.] (0,1,4,5,6,8) (4,6,7) (0,3,5) (3,4,8) (0,1,2,3,6,7) (0,1,4,5,7,8) (0,3,6,7) (6,7) {56,21,1,49,36,39,47,29,33} +[..#.##] (0,1,2) (0,1,2,4,5) (0,2,5) (1,2) (0,3,5) (1,2,5) (1,3,4) (0,1,3,5) {58,47,29,51,21,62} +[###.#.] (4) (0,1,2,3,4) (0,3,4) (0,1,3,4) (1,2,3) (0,1,4,5) (4,5) {48,39,11,44,178,131} +[#.###....#] (0,1,2,4,7,9) (3,7) (0,3,6) (1,5) (1,6) (0,1,2,3,4,5,7,9) (1,2,3,4,5,6,8) (0,1,3,9) (3,4,5,8,9) (1,2) (3,4,5) (1,2,3,6,8) (0,1,2,4,6,8,9) {63,106,71,82,75,55,54,48,45,69} +[..######..] (0,1,2,5,6) (2,3,4,6,7,8,9) (1,2,3,4,6,7,8) (1,2,3,4,5,6,7,9) (1,3,4,6,8,9) (0,1,2,3,7,9) (1,4,5,6,7) (0,1,2,4,5,8,9) (1,5,6) {28,73,61,36,52,53,58,36,43,38} +[.###...#] (1,2,3,7) (3,4,5,6,7) (1,5,6,7) (1,4) (3,4) (0,2,3,5,6,7) (3,6,7) (0,6) (0,4) (0,1,4,5,7) {236,50,16,43,242,37,51,65} +[..##..#..] (0,1,3,5,6,7) (3,4,6,7) (1,2,3,4,5) (0,1,3,5) (0,1,2,3) (0,1,2,4,6) (0,3,6,8) (1,8) (0,2,3,4,6,7,8) (0,2,3,4,5,6,7,8) {240,54,220,260,229,31,230,219,222} +[...#.#] (0,2,3,4) (1,3,4) (0,5) (1,4) (1,3,4,5) (0,1,3) (3,5) (0,2) {29,216,17,233,220,16} +[.#.#......] (4,9) (0,4,5,6,7,8,9) (1,3,4,5,6,7,8,9) (5,6,9) (2,4,7,8,9) (1,3) (6,7,8) (1,2,3,5,6,8) (3,9) (2,5) (1,4,5) {13,40,34,31,72,69,70,61,74,79} +[####..#.#] (0,1,4,5,6,7,8) (0,1,3,5) (0,2,3,5,6,7) (5,6) (0,1,4,7,8) (4) (7,8) (0,1,2,4,8) (1,2,5,7,8) (0,2,4,5,7) (0,2,5,8) {80,54,40,24,209,73,31,70,59} +[...#] (0,3) (3) (0,1,3) (0,2) {50,15,15,51} +[.#....#.#] (0,4,5,7) (1,2,3,4,5,6) (2,5,7) (2,4,5,6,7,8) (1,6,7,8) (0,2,3,4,5,7) (1,3,5,6,7,8) {24,146,34,43,41,57,147,158,131} +[##..#.] (0,1,2) (1,2) (2,3,4) (0,2,4,5) (2,4) (0,1,3,4,5) {37,25,42,23,47,31} +[##.#] (0,1,3) (0,2,3) {196,180,16,196} +[#.#.] (1,3) (0,2) {12,2,12,2} +[###.#.#] (3,4,5) (0,2,3,4,5) (2,5,6) (0,1,4,5,6) (0,3,6) (0,1,2,5,6) (0,1,4,6) {51,23,25,185,176,188,42} +[#.#.] (1,2,3) (0,2) {5,1,6,1} +[.###] (1,2,3) (2,3) (0,2) (0,1) (1,2) {15,14,46,31} +[.####] (0,1,2,3) (1,2,4) (1,2,3,4) (3) (0,2,3,4) (0,3) {37,20,24,44,8} +[##.....#..] (1,3,4,5,6,7,8,9) (1,2,4,5,9) (0,2,5,9) (0,1,7) (0,1,4,5,6,8) (1,8) (2,3,8) (0,1,2,3,4,5,8,9) (0,1,3,4,5,7,8) (3,4,5,6,7,8,9) {41,66,21,46,67,67,30,57,52,43} +[...##..#] (3,4) (2,6,7) (0,1,3,5,6,7) (1,2,4,6) (1,2,3,6,7) (1,2,5,6,7) (1,2,3,4,5,6,7) {5,197,209,170,26,38,214,204} +[.#.#.] (4) (0,1,3) (1,2) (1,3) (1,2,4) (3,4) (1,4) {9,149,102,31,26} +[..#.#.] (0,3,4) (0,3,5) (3,4,5) (1,2,3) (0,1,3) {20,2,1,34,16,29} +[##..#.....] (0,6,7,8,9) (2,5,6,8,9) (0,7) (3,4,9) (0,2,3,6,7,9) (0,1,4,5,7,8,9) (0,2,3,4,5,6,7,8,9) (0,5) (3,4,6,8) (0,1,4) (0,1,2,3,6,8,9) {87,40,205,57,62,214,227,45,237,237} +[##.####...] (4,6,9) (2,5,8) (3,9) (0,1,3,5,7) (0,1,2,4,6,7,9) (0,1,3,4,7,8,9) (1,4,9) (4,6,7,8,9) {34,40,22,35,42,24,36,43,15,59} +[#.#.#.] (1,4) (0,2,4) (0,3,4) (0,1,3,5) (0,3,5) {30,21,14,16,33,11} +[###.#####.] (4,8,9) (0,2,3,4,5,8) (2,4,6,7) (6,7,8) (2,6,7,8,9) (0,1,3,4,5,6,7,8) (1,2,3,4,5,6,7,8) (1,3,4,5,9) (2,3,4,5,6,7) (0,1,3,4,6,7,8,9) {43,59,70,81,110,61,83,83,90,62} +[#.#.#.###] (1,2,3,6,7,8) (5,7) (2,3,4,5,6,7,8) (2,6) (1,2,5,7,8) (0,2,4,5,6,7) (0,4,6) (1,2,3,4,6,7,8) (0,1,7,8) {47,27,36,11,37,29,46,50,30} +[.###.#.##] (0,1,2,5,6,8) (4,8) (1,2,5,6,7) (0,4,5,8) (1,2,3) (7,8) (0,1,3,7) (0,2,4,5,6,8) (3,7,8) (2,3,4,5,6,8) {44,52,57,55,48,59,41,207,221} +[######.] (4) (0,1,2,3,4,5) (0,1,2,5,6) (0,3,4,6) (3,5) (1,2,3,4,5,6) (4,5) (1) (1,4,5,6) {41,53,34,69,81,71,55} +[#..#] (0,3) (0,2) (1,2) {24,5,21,8} +[.#.#.....#] (0,2,3,5,6,7,8,9) (0,1,4,5,6,7,9) (2,3,4,5,7,8,9) (1,3,6,9) (2,9) (2,4,8) (0,1,3,5,7,8,9) (0,2,4,5,7) (3,5,7) (6,7,9) (0,2,3,4,5,6,7,8) (1,2,3,4,7) {60,36,212,50,56,76,43,82,36,215} +[..#......#] (2,6) (0,5,6,8,9) (1,3,7,9) (1,2,3,4,5,7,8,9) (0,2,3,4,6,7,8,9) (1,4,7) (0,1,2,3,5,6,7,8,9) (0,1,2,3,4,6,7,8) (0,1,3,4,6,7,8) (2,9) (0,1,3,4,5,6,7,8,9) (2,4) {49,72,58,70,53,48,54,77,63,82} +[#.##.#] (3,4) (2,3,4,5) (1,2,5) (0,1,2,5) (0,3,5) (0,5) (0,3) {221,191,209,39,19,229} +[..#####...] (5,6) (2,3,4,5) (0,1,3,4,5,6,7,9) (2,4,5,6,8) (3,5,9) (2,3,4,5,9) (1,7) (2,8,9) (0,1,3,7,9) (0,1,2,5,6,7,8,9) {41,55,46,70,49,73,37,55,25,81} +[#.#####.] (0,3) (0,1,2,4,5,6) (1,6,7) (0,2,6) (5,7) (1,2) (1,6) (3,4,5,7) (2,3) {50,53,46,37,30,34,63,30} +[####..#...] (1,5,6,7,8,9) (0,3,4) (0,1,2,3,4,5,6,7) (0,1,5,8,9) (7) (0,1,2,4,5,6,8) (0,1,2,3,5) (0,1,3,9) (0,6) (1,2,4,5,9) (3,4,9) (0,2,3,7) (1,2,3,4,6) {113,92,66,85,53,72,56,61,31,45} +[.##.###.#] (1,5,6,7,8) (1,2,4,5,6,8) (1,2,3,4,6,7,8) (0,1,3,4,7) (1,5,6) (0,3,4,6) (3,7) (0,1,3,4,6,7,8) {118,63,18,147,136,40,164,55,39} +[.#.##.#.] (2,5) (1,3,4,6,7) (0,1,6,7) (0,1,2,3) (0,1,4,7) (2,4,6,7) (4,6) (1,3,4,5,6,7) (0,1,2,3,6,7) {23,36,23,32,33,15,38,22} +[#.#.##.] (2,4,6) (0,2,5) (0) (0,2,4,6) (0,1,2,3,5) (1,2,3,5,6) (0,2,4,5,6) (1,2,3) (0,1,2,4,5) {73,28,72,26,37,39,37} +[#...####.#] (1,2,3,4,5,7,8,9) (5,8) (0,5,7) (0,1,2,6,8) (2,4,8) (0,4,8) (3,6,9) (2,4) (4,5,7,9) (1,2,4,5,6,7,8) (3,5,7,8) (7,9) {36,30,49,34,66,57,24,55,65,48} +[..##..] (3,4) (1,4) (4,5) (2,3,5) (2,3) (0,2) (0,1,2,5) {21,18,50,41,31,49} +[####.#...] (3,7) (0,5,6,7) (0,1,2,3,6,7) (0,1,2,3,5) (0,7,8) (0,1,4,5,6,7,8) (3,4,7) (0,2,3,5,6,7,8) {47,12,18,31,5,25,20,52,27} +[#.##.] (1,3) (0,1,2) (0,2) (1,2,3) (1,2,4) {24,43,44,17,6} +[#.#...#..] (1,2,3,6) (0,6,7) (0,1,2,3,6,7,8) (0,1,2,4,5,6,8) (0,2,3,4,5,6,7) (0,1,3,5,6,8) (0,1,2,4,5,6) (0,4,5,7,8) (0,1,2,3,5,6,7,8) (1,3,4) {83,73,65,69,58,80,84,44,57} +[...###..] (2,3,4) (0,3,4) (0,1,4,7) (3,4,5) (0,3,5,6) (2,3,4,6) {10,1,29,51,52,13,14,1} +[.....#..] (2,5) (2) (0,3,4,6,7) (3,4) (0,1,2,3,4,6,7) (0) (4,6) (7) (0,1,2,5,6) (1,2,3,5) {197,36,50,46,39,36,44,45} +[#....] (2,4) (0,2,3) (1,4) (1,2,4) (3) {6,2,11,22,5} +[.####] (2) (0,1,2,4) (0,3) {166,155,160,11,155} +[####.#....] (0,1,2,5,8,9) (0,2,3,4,5,6,7,8,9) (1,3,4,5,6,7,8,9) (0,3,7,8,9) (0,2,4,6,9) (1,2,8) (0,3,5,8) (3,4,5,6) (0,1,2,4,5,6,8,9) (1,2,3,4,6,7,8,9) (1,2,4,5,6,8,9) {223,223,224,65,47,214,47,45,259,232} +[.###.#.] (0,3,4) (0,1,3,4,5,6) (1,2,4,5,6) (1) (0,1,2,3,6) (1,3) (3,6) (1,3,4,5,6) {42,67,30,75,35,32,68} +[#.#..#..#.] (0,1,2,6,7) (0,1,2,3,5,8) (0,4,6) (0,3,4,5,8) (0,3,4,5,6,7,8) (0,2,4,6,7,8,9) (0,3,4,5,6,7,8,9) (7,8) (4,6,8) (2,7,9) (5,8) (0,2,3,4,6,8,9) (0,1,3,4,5,6,9) {118,48,64,72,90,74,95,64,92,62} +[.###.#...] (0,1,4,5,7) (0,1,4,6,8) (1,2,3,5) (0,1,2,4,5,7,8) (1,3,5,6) (0,1,3,4,6,7,8) (1,3,4,6,8) {32,226,163,200,51,185,61,16,49} +[.##..] (0,2,3,4) (3,4) (0,3,4) (1,3,4) (0,2,4) {45,2,30,57,67} +[#..#.] (0,3) (0,3,4) (1,2,3,4) (1,4) {26,15,8,34,28} +[...##] (1,3,4) (0,3,4) (1,4) (0,1) (0,2,3) (2,3) {35,19,27,58,35} +[####..##..] (1,2,3,5,6,8,9) (0,1,4,5) (0,1,3,5,6,7,9) (0,2,3,4,9) (0,2,3,4,5,6,7,8) (1,4,7) (2,5,6,7) (0,1,2,4,5,6,8) (0,1,4,5,7,8,9) (1,2,9) {57,49,55,39,52,49,30,51,30,62} +[##..#.#.] (1,6,7) (2,3,4,5,7) (0,1,4,6) (2,5) (1,2,3,5,6,7) (0,1,4,7) (0,2,3,4,5) (1,2,7) {47,53,71,40,67,56,26,54} +[..#..##.#.] (0,3,5,6,7,8,9) (0,6) (1,2,3,4,5,7,8,9) (1,2,3,5,6,7,9) (0,5,7,9) (0,3,4,5,8,9) (0,2,3,4,5,8) (0,1,4,9) {50,28,33,41,38,48,23,28,31,43}