aoc

Advent of Code
git clone https://git.pngu.org/aoc
Log | Files | Refs | README

commit 664fab995228eaaa0789807419567c09a15fa2bb
parent 1670612032ab59f7fba57b272b1c4902314af2c8
Author: Jack Sangdahl <jack@pngu.org>
Date:   Wed, 10 Dec 2025 12:19:31 +0100

Day 10 2025

Diffstat:
A2025/10_2025.py | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adata/10_2025.txt | 189+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 249 insertions(+), 0 deletions(-)

diff --git a/2025/10_2025.py b/2025/10_2025.py @@ -0,0 +1,60 @@ +import z3 + +input = open("data/10_2025.txt") +data = input.read().splitlines() +p1, p2 = 0, 0 + +for i in data: + words = i.split() + goal = words[0] + goal = goal[1:-1] + goal_n = 0 + for j, k in enumerate(goal): + if k == "#": + goal_n += 2**j + + buttons = words[1:-1] + b, ns = [], [] + + for j in buttons: + n = [int(x) for x in j[1:-1].split(",")] + button_n = sum(2**x for x in n) + b.append(button_n) + ns.append(n) + + score = len(buttons) + for j in range(2 ** len(buttons)): + a_n, a_score = 0, 0 + for k in range(len(buttons)): + if ((j >> k) % 2) == 1: + a_n ^= b[k] + a_score += 1 + if a_n == goal_n: + score = min(score, a_score) + p1 += score + joltage = words[-1] + joltage_ns = [int(x) for x in joltage[1:-1].split(",")] + v = [] + for j in range(len(buttons)): + v.append(z3.Int(f"b{j}")) + eq = [] + for j in range(len(joltage_ns)): + terms = [] + for k in range(len(buttons)): + if j in ns[k]: + terms.append(v[k]) + eq_n = sum(terms) == joltage_ns[j] + eq.append(eq_n) + o = z3.Optimize() + o.minimize(sum(v)) + for j in eq: + o.add(j) + for j in v: + o.add(j >= 0) + assert o.check() + m = o.model() + for j in m.decls(): + p2 += m[j].as_long() + +print(p1) +print(p2) diff --git a/data/10_2025.txt b/data/10_2025.txt @@ -0,0 +1,189 @@ +[.#.###] (0,1,2) (0,2,4,5) (3,5) (2,4,5) (0,1,3,4) (0,2,4) (5) {21,18,30,14,34,40} +[.##.##.#] (0,4,5,6) (1,3,6) (0,1,2,3,4,5,6) (0,3,6,7) (1,2,3,4,6,7) (1,2,4,5) {206,71,52,235,56,42,239,196} +[..##] (2,3) (0,3) (1,2) (0,2) {37,13,45,31} +[##......] (3) (0,3,4,5,7) (2,3,7) (0,2,5) (1,2,4,5,7) (4,6,7) (0,1,2,4,5,6) (0,2,3,4,6) (3,4,6) {29,11,38,45,45,33,27,54} +[#.....##] (5,7) (3,6) (0,2,3,4,6,7) (2,4) (0,6,7) (1,3,6,7) (1,2,5,6,7) {17,27,16,43,6,30,64,64} +[##.#.#.#] (0,3,4,5,6) (3,5,6,7) (0,2,7) (0,1,6,7) (1,2,3,4,6,7) (0,3,4,7) (0,1,2,4,5,6,7) (0,1,3,5,7) (0,1,2,4,5) (0,3) {80,74,41,62,60,59,56,88} +[#.#.] (0,2) (2,3) (0,3) (1,3) (3) (1,2) {26,7,25,27} +[#..#####..] (4,5,7,8,9) (1,5,6,7,8,9) (1,7,9) (5) (0,2,3,6) (4,5,7) (0,3) (0,1,3,4,5,6) (2,6,8) (4,5) (6,8) (1,2,4,5,6,7,8,9) {17,30,9,17,49,84,47,62,63,47} +[.#..###...] (0,2,3,4,6,7,8) (0,3,5,6,7,8) (1,5,7) (0,1,3,5,6,7) (0,2,3,4,6,8) (1,2,3,4,5,6,8,9) (2,6,7) (0,1,3,4,8) (7) (0,1,2,4,7,8) {48,25,54,58,48,22,64,47,53,11} +[##..] (0,1) (2,3) (0) (3) (1,2,3) (0,2) {11,7,27,33} +[#.###.#..] (1,2,3,5,6,7,8) (0,2,4) (0,1,5,6,7,8) (0,1,2,3,4,6,7) (1,7) (0,3,5,7,8) (5,6,8) (2,3,4,5,6,7,8) (1,4,5,6,7) (0,1,3,4,6,7,8) {43,57,26,38,57,54,73,73,60} +[##........] (4,5,6,7,9) (0,1,2,3,4,5,6,8,9) (0,2,3,6,7,9) (6,8) (0,4,5,8) (0,4,5,7) (1,8,9) (1,2,3,6,9) {42,226,215,215,36,36,222,32,37,238} +[###..] (1,2,3) (4) (2,3) (0,1,3,4) (2,3,4) {14,14,5,19,24} +[....###] (0,2,3,4,5) (1,2) (1,2,4,5,6) (3,5) (0,2,4,6) (0,2,3) (0,2,3,6) (0,3) (1,3,4,6) {43,34,51,39,36,6,35} +[##.##.#.] (1,6) (0,1,2,3,5,6) (0,2,3,5,6,7) (0,1,2,3,4,5,6) (0,2,3,4,5,6) (0,3,4,5,6,7) (0,2) (0,1,2,4,5,6) (3) {29,16,24,27,17,27,32,15} +[.##..#] (1,3,4,5) (2) (0,3) (2,4) (0,1,3,4) (0,1,3,4,5) (0,3,4,5) (1,3,4) {42,29,4,49,51,23} +[.##...#] (6) (0,3,4,5,6) (4,5) (0,2,6) (2,4,6) (0,2,4,5,6) (1,2,5) (0,1,3,4,6) (0,2,3) {50,6,40,23,30,24,56} +[..#.###..#] (0,1,2,3,4,6,7) (0,6) (0,1,2) (0,3,4,9) (1,2,9) (0,1,2,6,7,8,9) (1,2,5,6,8) (5,6,8) (0,3,7,9) (0,1,3,5,6,7,8) (1,4) {63,88,62,23,29,38,70,29,51,35} +[..###] (1) (0,2,4) (2,3) (0,3,4) (3,4) (1,4) (0,2,3) {34,23,29,34,51} +[##.#.##] (2,4,5,6) (0,1,3,5,6) (0,1,2,4,5,6) (0,3) (0,1,2,3,4) {236,226,228,40,228,230,230} +[.#..##] (0,1,2,3,4) (0,1,3) (0,1,3,4) (0,2,3) (0,1,3,5) {206,188,26,206,20,154} +[.#..##] (0,2,3) (0,1,5) (4,5) (0,2,4,5) (1,5) (0,1,4) (0,1,3) (0,2,5) {51,17,43,12,36,63} +[.#.#...] (4,6) (1,4) (3,5,6) (0) (0,1,2,3,6) (3,4) (0,2,3,5) (1,2,3,5) {42,32,29,49,24,22,40} +[.#..#..##] (0,2,7,8) (0,1,2,3,4,6,7) (1,5) (0,1,2,4,5,6,7) (0,2,3,6,7,8) (0,1,5) (3,5) (2,4,6) (1,2,3,5,6,8) (1,7,8) {50,68,64,35,40,55,56,51,38} +[.#.#.####] (0,1,2,3,4,5,6) (0,2,3,5) (0,1,2,4,5,6,7,8) (1,5,6) (0,1,2,4,5,6,7) (0,1,2,3,5,7,8) (0,1,2,3,4,7,8) (1,3,5,6,7) {39,68,39,49,22,63,46,36,22} +[##..##] (0,4,5) (0,1,3,4,5) (2,4) (1,3,5) (2) (1,2,3,4) (1,2,4,5) (0,1,2,3) {33,61,226,48,55,43} +[#.#..#.] (0,1,4) (0,1,3) (1,4) (0,2,5) (1,2,3,5,6) (0,3,4,5) (2) (0,3,4,6) (0,3,5) {209,34,172,61,47,201,27} +[####.] (1,3,4) (1,2,3) (1,2) (0,3) (1,3) (4) (0,1,2,3) {23,83,45,75,29} +[#.##..] (0,2,3) (0,2,3,4) (1,2,3,5) (0,3,4,5) (1,4) (4,5) {46,22,34,53,44,28} +[#######..] (0,2,4) (0,1,3,4,5,7,8) (0,1,3,4,7,8) (0,1,2,3,6,7,8) (0,5) (1,2,3,4,5,7) (2,5,7,8) (0,2,3,5,6,7) (5,6) {200,166,63,169,170,189,30,186,176} +[#.##.] (3) (1,4) (0,1,4) (0,2,3) (3,4) (1,2,4) (4) {26,34,15,51,64} +[#.#.] (0,2) (0,1,3) (0,3) (2,3) (2) {200,8,17,204} +[...#.....] (1,2,4,5,8) (1,4,5,8) (1,3,4,5,7) (0,4,5,6) (2,3,6) (0,2,4,5,6,7,8) (3,6) {15,19,36,196,34,34,209,14,29} +[#...] (0,2,3) (0,1) (2,3) {25,7,36,36} +[.##.#] (1,2,3) (2,3,4) (0,1,4) (1,4) (0,3,4) {31,176,17,33,189} +[#..###.###] (0,2,4,7) (4,9) (1,2,5,6,7,9) (0,1,2,3,5,9) (0,1,3,6,7,9) (0,2,4,9) (0,1,2,3,4,6,7,9) (0,2,3,5,6,7,8,9) (2,3,7) (4,8,9) {93,48,84,63,59,31,52,68,16,90} +[.###.###..] (0,1,2,4,5,6,7,9) (1,5) (3,4,7,9) (1,2,3,5,6,7,8,9) (0,4,7,9) (0,1,3,5,6,7,8) (0,1,3,6) (3,5,6,7) (0,3,4,6,7,9) (1,3,4,5,7,8,9) (0,1,2,4,5,6) (3,9) (0,4,6,7,8) {236,242,189,97,241,245,241,114,52,97} +[..#..#.] (0,1,4,5,6) (1,3,4,6) (2,3) (0,1,2,5) (1,3) (0,1,2,4) (0,1,2,3,4,6) {58,87,70,66,52,25,37} +[##..#] (0,1,2,3) (0,1,4) (0,2,3) {24,7,20,20,4} +[#.###.#] (1,3,5,6) (0,1,3,4,5) (0,1,2,3,4) (0,2,3,4,6) (3,5) {19,18,13,32,19,19,11} +[###....#] (1,2,3,4,6,7) (0,2) (1,2,3,4,5,6) (0,2,4,5,7) (0,1,6) (0,1,3,6) (0,1,2,3,6,7) (0,1,2,3,4,5,7) {67,71,60,54,53,36,56,47} +[.#####.###] (0,2,3,5,6) (0,1,2,5,6) (0,2,5,8,9) (4,7) (2,9) (0,1,3,6,7,8) (1,3,5,6,8) (1,4,6,8,9) (2,6) (0,1,2,4,5,7,8,9) (5,8) {178,182,58,153,41,64,195,162,189,34} +[.#...] (0) (1,3) (3) (2,3) (1,4) (0,4) (0,1,2,4) {46,56,28,39,59} +[..#.#] (2,3,4) (1,4) (2,4) (0,1,3) (1,3,4) {19,29,21,25,31} +[#..##] (1,3) (1,2) (0,2,3) (0,1) (0,3,4) (1,4) {37,225,7,201,37} +[..####..#.] (0,1,7,8,9) (0,1,3,4,5,6,7,8) (3) (0,1,3,5,6,8) (0,4) (0,2,3,5,6,7,8) (0,8) (0,2,5,8,9) (0,1,2,3,7) (2,3) (1,4,5,7,8,9) (1,2,3,4,7,8) (0,3,4,5,6) {109,62,55,64,71,67,40,77,105,44} +[#.#.#..#.#] (1,2,4,5,6) (1,2,3,5,6,7,8,9) (3,4,5,7) (0,1,2,4,5,6,7,9) (1,3,4,7,8,9) (0,2,4,7,9) (4,5,6,8,9) (0,2,3,4,5,7,8,9) (1,2,5,6) (0,1,2,3,4,5,7,8,9) {40,56,54,40,68,70,41,60,40,60} +[#.#.] (0,3) (3) (0,1) (0,1,3) (0,2) {72,35,17,228} +[....#] (1,2) (3,4) (2,4) (0,1,4) (4) {17,31,20,20,43} +[#.#..#...] (1,4,5,6) (0,1,2,3,5,6) (3,6) (0,1,3,4,5,7,8) (5,6) (0,2,5) (0,1,2,6,7,8) (0,1,2,4,5,7,8) (0,2,3,4,5,7,8) (0,4) {70,33,46,33,63,69,33,46,46} +[.##.#.#] (3,4,5,6) (0,1,2,3,4) (2,4) (0,2,3,4,5) (0,4,5) (0,1,4,5,6) (1,2,3,5) (2,4,5,6) (0,1,3,6) {55,41,28,45,56,53,44} +[#...##.#] (1,2,4,5,7) (0,1,5,6) (3,4) (6) (0,3,4,7) (0,1,4,5,6,7) (0,1,2,4,5,7) (0,1,3,4,6,7) (0,1,7) (5) {19,21,4,7,11,138,13,12} +[#####] (0,2,3) (1,4) (0,1,2,3) {35,36,35,35,17} +[...####.#.] (1,2,5,6,7,8,9) (0,4,8) (1,3,8,9) (4,5,9) (1,3,4,5,6,8,9) (2,4,7,8) (0,2,3,5,6,7,8) (1,4,6) {16,28,28,14,46,21,34,28,40,15} +[#..#] (1,2) (0,2) (0,3) {122,3,107,18} +[###.#..#] (1,2,4) (0,4,5,7) (4,7) (3,5,6) (0,1,2,3,4,5) (1,3,5) (2,4,6) (1,2,5) {31,40,35,30,36,58,8,15} +[..#....#.] (4,6) (0,2,7) (0,2,3,8) (0,1,4,5,8) (0,3,4,5,7) (0,1,2,3,4,5) (0,1,2,6,8) (0,1,3,5,6,8) {67,37,40,43,47,40,32,19,35} +[###.......] (0,1,2) (0,3,4,5,6,8,9) (0,5) (0,1,4,5,6,7,8,9) (0,1,2,4,6,7,8,9) (3,4,6,8) (1,4) (0,3,4,6,7,8,9) (3,8) (1) (6,8) (0,1,4,5) (1,3,6,7,8) {74,234,30,60,77,28,63,44,74,33} +[.######.#.] (2,4,6,8) (1,3,8) (1,7,8,9) (1,2,4,7,8) (0,1,2,3,6,8,9) (0,1,2,3,7,9) (4,5,6,7,8) (0,3,4,6,7,9) (0,4,5,6,8) {33,44,26,44,31,20,38,30,57,25} +[#..###....] (3) (1,3,9) (0,1,2,3,6,7,8,9) (4,5,6) (1,4,5,8) (1,2,3,4,7,8) (3,4) (2,9) (0,5) {12,47,30,47,60,41,27,16,34,35} +[##...####] (2,3,4,5,6,7) (2,3,5,6,8) (3,4,5,6) (0,3,6) (2,3,8) (0,4,6,8) (0,1,7) (0,1,2,3,4,5,6) (0,1,2,3,4,7,8) {65,34,84,105,60,52,83,38,66} +[.####.##] (0,3,5,6) (0,1,2,3,6,7) (0,2,4,7) (0,2,3,5,6,7) (0,1,3,4,7) (3,4,5) (4,5) {157,145,24,176,150,31,26,155} +[.#.#] (0,1) (2,3) (0,2) (0) (3) (0,3) {193,17,8,36} +[#.##.#.] (0,2) (0,2,3,5,6) (1,3,4,5) (2,3,4,6) (1,4) (1,3,4,5,6) (0,4,5,6) {19,140,32,159,165,146,35} +[###..#] (1,2,4,5) (0,1,2,3) (1,2,3,4,5) (3,5) (1) (0,2,5) (0,1,2,5) {205,222,222,219,17,38} +[..##.#] (0,4) (0,1) (0,2,3,5) (2,3,4) (1,5) (3,4,5) (0,1,3) {138,22,16,25,123,33} +[#.##.#...] (0,1,2,4,5,7,8) (1,4,5,6,7,8) (6,7) (1,4,5,7,8) (0,1,2,6,7,8) (0,1,3,4,5,6,7) (0,1,4,5,8) (0,2,4,6,7,8) {42,238,12,17,235,233,35,233,223} +[.####.#..] (0,1,2,3,4,6,7) (0,2,3,4,5) (0,2,6) (1,4,5,6,7,8) (0,3,5,6,7,8) (1,2,4,5,7) (1,2,4,6,7,8) {60,51,72,42,61,49,73,69,41} +[.#.#] (0,1,2) (1,3) {0,5,0,5} +[...#.#...] (0,1,2,3,8) (3,4) (3,4,7,8) (5,7) (1,2,8) (0,7) (2,3,4,5,6,8) {15,20,38,44,34,22,18,9,38} +[#.###.] (0,1,4) (0,2,5) (3,4,5) (0,1,4,5) {30,24,6,15,39,25} +[####] (0,1,3) (0,1,2,3) {193,193,173,193} +[##..##] (0,1,3,4,5) (1,2,3) (3,4) (0,1,3,5) (1,2,3,4) {196,215,19,224,221,196} +[#.###.#.] (0,7) (0,2,3,5,6,7) (1,6) (1,3,5,7) (0,2,3,4,5,7) (0,1,2,3,5,6) (0,2,4,5,6,7) (0,1,2,3,4) (2,3,5,6,7) (0,1,2,5,6,7) {173,45,173,75,127,188,161,196} +[.#.####] (0,2,3) (6) (0,1,2,4,5) (3,5) (0,1) (0,3,4,5,6) (1,2,5,6) {41,39,33,13,19,30,22} +[#.####] (2,3,4) (0,1,5) (1,4,5) (0,1,2,5) (0,2,3,4,5) (0,1,3,4,5) {61,57,46,51,66,76} +[#####] (0,4) (0,1) (1) (2) (0,3,4) (0,1,3,4) {46,27,14,28,46} +[###..##..#] (1,3,4,5,6,9) (0,1,2,3,4,5,6,9) (1,2,3,8,9) (0,1) (8,9) (4,6,8) (0,1,3,5,6,7,9) (0,1,2,5,6) (0,1,5,6,7,8) (3,4,6,9) (0,3,6) (2,5,8) {43,39,17,56,44,44,82,23,59,58} +[##...#..] (1,2) (2,3,4,5,6,7) (0,2,4,6,7) (0,2,4,5,7) (0,1,5) (3,6) (0,1,2,3,4,6,7) {29,14,38,17,34,25,18,34} +[######] (1,4) (1,5) (4,5) (0,1,2,3) (0,5) (0,3) {33,42,14,23,29,37} +[#..#.#] (0,3,5) (2,3) (0,1,2,4,5) (1,3,5) {14,14,120,139,3,25} +[.##..##.##] (0,1,5,6,7,8) (0,1,2,7) (1,2,3,4,5,7,9) (0,1,2,3,4,5,7,8,9) (0,1,2,4,5,6,7,9) (0,2,3,5,8,9) (2,4,5,8) (2,4) (3,4,5,6) (1,2,3,4,6,7) (0,5,7) (1,3,8) (0,1,3,7,8,9) {81,62,70,65,67,92,39,77,53,51} +[#..#.#] (0,2,3,5) (1,2) (0,5) (2,3,4,5) (1,2,3,4,5) (1,2,3) {31,208,221,209,21,52} +[###.] (2,3) (0,1,3) (0,1) {152,152,11,160} +[#..##] (0,1,4) (0,2,3) (0,2) (0,3,4) (1,3) (0,3) (1,2,3) {54,27,36,56,19} +[.##..#] (0,1,2,4) (0,1,3,4) (0,2,4,5) (0,2,3,4,5) (1,2) {62,40,44,39,62,24} +[..###] (2,3) (0,2,3) (0,1,4) (2) (0,1) (1,2,3) {49,44,58,43,12} +[#.#.##..] (0,1,4,7) (0,3,5,7) (1,3,7) (0,1,2,3,4,5,7) (1,4) (1,3,4,7) (1,2,3,4,6,7) (1,2,3) (1,2,4,6) (0,1,3,6) {60,259,200,250,237,39,182,251} +[.#.#.#...#] (1,3,4,5,6,7,9) (1,2,3,4,5,6,7,8) (1,2,4,5,6,7,8,9) (0,1,2,3,4,5,8,9) (1,2,4,6,7,8,9) (3,4,6,7,8) (1,3,4,5,6,7,8,9) (5,6,7,8) (1,3,5,6,9) (6,8) (1,3) (0,2,4,5,6,7) (0,6,7,8,9) {47,111,67,96,102,122,143,110,109,99} +[.##.#..#..] (0,1,2,3,5,6,8,9) (1,3,5,6,8,9) (0,2,3,7,9) (1,2,3,5,7,8) (8,9) (1,3,4,5,8) (0,2,3,5,8,9) (2,6,8) (0,1,2,3,6,7,8) (0,2,3,5,6,8,9) (0,7) {26,35,51,45,3,32,31,34,60,32} +[...#...] (1,2,3,4) (0,1,2,3,5,6) (0,1,2,5,6) (0,1,2,3,4,5) (1,2,6) {28,31,31,28,11,28,20} +[.##.##.#] (0,1,4,6) (2,3,4) (2,6) (4,5) (0,1,2,4,5) (1,2,3,5,6,7) (0,3,5,7) (0,2,4,5,6,7) (4,7) (0,5,6) {48,21,44,35,70,73,35,44} +[...#.##] (0,1,5) (0,2,3) (1,2,4,6) (0,1,3,6) (3,5,6) (0,4,6) {31,15,1,18,15,20,32} +[#.#.] (1,3) (0,2) {16,8,16,8} +[#.#####.#] (2,3,4,5,6,7,8) (0,3,5,6,7) (1,3,4,5,6,7) (2,6) (0,1,2,4,5,7,8) (5,6,7) (0,2,3,8) (1,2,4,5) {29,31,49,39,39,60,55,53,29} +[####..] (1,2,3) (0,1) (4,5) (0,1,2,3) (0,1,2,4,5) {26,38,18,14,13,13} +[#...#.##.] (1,2,5) (0,1,5,6,7,8) (0,2,4,5,6,7,8) (0,1,2,3,4,8) (1,8) (0,1,3,4,5,8) (0,1,3,5,8) (1,2,4,5,6,7,8) (0,2,4,5,7) (0,1,2,4,5,6,7,8) {255,273,68,29,67,277,234,237,263} +[#.#..##] (2,4,6) (4) (2,3) (4,5,6) (0,2,5,6) (0) (0,3,4,5,6) (1,3) {17,13,34,24,37,27,44} +[#.##.] (1,2,3,4) (0,2,3,4) (0,1,2) (1,2,3) {5,7,11,10,7} +[#.#.] (1,2,3) (0,1,3) (0,1) (3) {8,9,1,22} +[.#..#.] (0,2,5) (0,1,2,4,5) (0,3,4,5) (1,3,5) {30,29,25,19,20,44} +[#.##.] (0,2,3) (0,1,2,3,4) (0,1,2) {34,33,34,18,17} +[##.##] (2,3) (0,1,2,3) (0,1,2,4) {22,22,42,25,17} +[..#.#] (2,4) (0,2,3) (4) (0,1) (0,3) {23,7,24,16,20} +[..##] (0,2,3) (1,3) (2,3) {10,16,15,31} +[..#..##] (1,2) (1,2,3) (1,2,4,6) (0,2,4) (2,3,4,5) (0,2,3,6) (0,2,3,5,6) (0,1,3,4,6) {27,16,42,33,26,21,22} +[###.#.###.] (7,9) (1,2,3,4,5,6,8) (1,6,8,9) (2,3,4,5,6,8) (4,6,9) (0,1,2,4,6,7,8) (3,5,6,7) (0,1,2,4,5,6,9) (1,3,8,9) (0,2,5) (7) (0,4) {152,157,143,24,163,31,174,138,150,38} +[..#.] (2,3) (2) (0,2,3) (0,1) (1,2,3) {35,20,48,28} +[#....] (2,3,4) (1,2,4) (0,3,4) (0,1,3) {6,14,32,24,38} +[.#####.#.#] (0,1,2,5,6,8) (3,6,8) (3,4,6,8) (0,1,7,8,9) (3,6,7,8) (0,4) (0,1,2,5,6,7,8,9) (0,2,3,4,5,8) (0,2,3,5,7,8,9) {73,31,52,59,41,52,47,43,90,43} +[#.#####..#] (0,1,2,3,5,6,7,8,9) (0,1,2,3,4,6,7,9) (1,2,3,6,8) (0,1,4,6,7,8,9) (0,1,2,4,5,7,9) (0,1,8) (2,3,4,5,7,8,9) (0,8) (8) (0,2,3,4,5,6,9) (2,3,6,7,9) {91,72,90,78,71,55,81,80,93,98} +[#.##..#.#] (1,4,5,6,7,8) (0,1,3,5,8) (1,3,6) (1,2,3) (2,3,4,5,7) (1,2,3,4,6,8) (1,7) (1,4,8) (2,3) (1,5,6,8) (0,1,3,7) {6,64,54,68,43,47,43,35,42} +[#.###.##] (0,1,3,4,6) (0,1,5,6) (0,2,3,4,5,7) (1,2,3,4,5,7) (0,1,2,3,4,7) (0,3,4,7) (1,2,5,6,7) (0,4,5,6,7) (0,7) {100,64,36,65,80,59,52,81} +[.####.#.] (1,3,4) (1,7) (1,2,3,5,6) (2,3,4,6,7) (0,2,4,6,7) (0,1,2,4,5) {24,184,193,170,39,167,181,42} +[....#] (2,3,4) (1,2,3,4) (1,2,4) (0,1,2) (0,1) (3) {12,40,59,47,47} +[.##.] (1,2) (0,2) (0,2,3) {23,6,29,10} +[.#.#] (1,3) (0,2) {9,17,9,17} +[#.##.] (0,1,4) (0,2) (1) (1,4) (0,1,2,4) (0,3) {51,72,27,5,56} +[.....##..] (4,8) (0,1,2,3,4,5,6,8) (0,1,2,4,5,8) (0,1,2,3,5,6,7,8) (5,6) (0,2,7) (0,2,4,7) (3,4,5,8) {173,38,173,47,64,72,41,149,72} +[##.#...] (2,5) (0,4,6) (0,4,5) (0,2,3,4,5) (0,1,2,5,6) (2,3,5,6) (4) (1) (0,1,2,3,6) {37,32,199,180,27,202,174} +[##.#..#...] (0,1,3,4,6,7,9) (1,2,3,4,5,7,8,9) (4,5,6,9) (3,4,6,7,8,9) (0,2,3,7,8,9) (0,3,5) (2,3,5,8) (0,1,2,3,5,6,7,8,9) {58,25,42,98,51,53,48,60,59,70} +[#.#.###.##] (0,1,2,6,7,8) (0,1,3,5,7,8,9) (0,1,3,5,7) (2,4,5,8) (1,6,7) (2,7,8) (1,2,4,8,9) (1,3,5,6,7,9) (1,2,4,5,9) (0,2,3,4,6,7,8) {41,98,56,47,48,58,46,72,50,60} +[##.#..#] (3,4) (0,2,3,4,5) (0,1,2,4,5) (1,2,3,5,6) (0,4,6) {13,5,13,155,158,13,4} +[#......##.] (0,1,3,5,6,8,9) (1,2,3,4,6,7) (0,2,3,4,5,6,9) (3,4,5) (1,2,3,4,5,6,7,8) (0,1,2,3,4,5,6,7,9) (0,1,4) (0,3,6,9) (0,1,2,3,4,5,6,7) {75,78,55,93,91,76,75,42,21,46} +[###..] (0,1,2,4) (0,1) (0,2,4) (2,3) (4) {17,13,24,17,8} +[##.....] (0,2,3,6) (0,1,2,3,4,6) (2,3) (1,4,5) (1,4,5,6) (0,2,3,4) {37,46,37,37,57,26,36} +[..#######] (0,1,2,3,5,7,8) (0,1,6) (0,1,2,4,5,7,8) (2,3,4,5,6,8) (4,6) (3) (2,3,4,5,6,7,8) (0,1,2,3,4,5,6) (0,1,2,3,6) {58,58,61,66,37,49,60,25,37} +[.##...#.#] (0,2,3,4,5,6,7,8) (0,1,7) (1,3) (8) (4,5,6,7) (0,2,3,4,5,6) (0,5) (3,4,5,7,8) (0,1,2,4,8) (0,1,2,3,6,7,8) {55,40,39,52,52,48,39,58,48} +[#.#.] (0,1,3) (2,3) (0,2) (0,2,3) (0) (3) {37,20,15,52} +[#.#..] (4) (1,3) (0,1) (1,2,3) (0,1,4) (0,2,4) (0,2) {37,41,21,20,24} +[.##.#] (1,3,4) (1,2,4) (0,1,2,3,4) {12,44,30,26,44} +[########] (1,4,5,7) (2,3,4,5,7) (0,3) (0,1,3,4,6,7) (0,1,2,5) (0,1,2,3,4,6,7) {29,41,28,33,45,41,15,45} +[#.#..#] (0,2,5) (0,1,2) (2,3,4) (1,3,5) (1,3,4) (1,2) {17,51,48,30,15,20} +[##.#.#.#.] (5,6) (1,4,5) (0,3,4,8) (1,4) (0,2,3,7) (0,3,6,7) (2,4,7) (2,5,6,7) (6,8) {41,19,28,41,55,11,25,40,24} +[.#.#.] (1,4) (0,3,4) (0,1,3) (0,2) (2,3) (4) (1,2) {26,22,14,18,29} +[.#....#..#] (0,1,5,6,7,8,9) (0,1,3,4,5,7,8,9) (5,8) (0,1,2,3,4,6,7,9) (4,6,7,8,9) (0,4) (0,3,4,5,6,7,8) (1,5,8) (1,2,3,4,6,7,8) {59,61,25,63,69,64,63,82,88,44} +[#.#.#] (2) (1) (3) (0,1,2,4) {19,122,24,13,19} +[#..#.##.] (1,5) (2,4) (0,3,4,6,7) (0,1,2,3,5,7) (3,4,5,6) (1,2,3,4,5,7) {20,16,13,204,207,194,196,26} +[##......] (1,2,4,5,6,7) (1,5,6,7) (0,1,3,4,5,6) (0,3,4,5,6,7) (2,4,5,7) (1,2,3,6) (0,2,3,4,5,6) {34,25,42,49,51,52,50,33} +[#.##..#] (2,4,6) (0,1) (0,3,4,5,6) (2,6) (2,3) (0,4) (0,1,4,5,6) (1,2) (0,3,5) {64,19,32,53,44,42,40} +[...#.#....] (1,2,4,5,6,7,8,9) (2,3,5,6) (2,5) (2,4,5,7,9) (0,1,3,4,5,7,8,9) (0,4,5,6,8,9) (0,1,2,3,4,6,8,9) (3,9) (1,6,8,9) (0,1,2,3,4,9) (3,5) (0,3,7) {202,190,79,223,218,237,52,183,188,223} +[##..] (0,3) (2,3) (0,1) (1,2) {23,20,25,28} +[##.###] (1,3,4) (0,1,4,5) (0,2) (2,3,5) (2,3,4) (0,3) (1) (1,2,4,5) {26,231,48,220,220,42} +[##..####..] (0,1,3,4,5,6,9) (0,2,4,6) (2,3) (0,1,2,4,8,9) (4) (1,2,3,4,7) (1,2,3,7,8) (1,4,6,9) (0,3,4,6,8,9) (1,6,7,8,9) (0,1,2,3,4,5,7,9) (0,1,2,4,5,6,8,9) {53,83,61,53,106,20,61,50,42,72} +[#######] (0,2,5) (3,4) (0,1,2,4,5) (0,1,5) (0,1,2,5,6) (0,2,5,6) (1,2,3,4,5) {40,35,29,28,30,48,16} +[..##.....] (2,3) (0,1,2,4) (0,1,3,4,5,6,7) (3,4,6,7,8) (0,1,3,7,8) (0,1,2,5,6,8) (0,2,3,6) (0,7) (0,5,8) (0,2,3,4,6,8) (0,1,2,4,5,8) {124,54,84,73,51,50,57,43,65} +[...#] (0,1,3) (0,1) (0,2,3) {22,6,16,18} +[.###...###] (2,5) (0,6,7,8) (1,2,3,4,8) (3) (0,1,5,6,8,9) (0,1,2,3,5,6,7,9) (2,3) (0,1,2,5,6,7,9) (5,8) (0,1,2,7,8) (0,1,2,3,4,5,7,8,9) {45,42,155,138,11,43,36,43,48,22} +[.#.#] (1,3) (0,1,2) {6,150,6,144} +[.#.#.#..] (3,4,5,6) (0,2,5,7) (1,2,3,5,6,7) (0,1,2,4,5,6,7) (2,4,5,6,7) (2,4,5) {17,1,32,7,23,39,11,20} +[#####.##] (0,3,4,5,6,7) (0,1,2,3,4,5,7) (1,3,6) (0,5) (1,3,5,7) (2,4,5,7) (0,1,4,5,7) (1,2,3,5) {58,26,15,32,48,66,20,50} +[.####] (3) (1) (0,4) (2,4) {20,9,8,4,28} +[..#.#] (0,1,2,3,4) (2,4) (0,2,3,4) (1,3) {19,10,24,26,24} +[#...] (2) (0,1,3) (1,3) {16,19,2,19} +[#...###] (0,1,2,4) (0,3,4) (0,4,5,6) (0,1,2,5) (1) (0,2,5) (0) (1,2,4) {58,222,34,15,32,31,7} +[..####.##] (1,3,7) (6,8) (3,4) (1,4,5,6,8) (0,1,2,6,7,8) (0,2,4,7) (0,5) (1,2,4,5,7,8) (2) (0,1,2,3,4,5,7) (0,2,6,7,8) {56,36,56,27,54,52,16,50,29} +[#.#.#..##.] (0,2,4,5,6,8,9) (0,1,3,5,6,7,8) (1,2,4,5,6,7,8,9) (3,4,6) (2,3,8) (1,3,5,8) (0,2,3,4,5,6,7,9) (0,1,2,3,5,6,8) (0,1,6) (0,5,6,7) {227,61,221,56,209,249,253,47,237,201} +[#####..] (2,4,5) (1,2,4,6) (0,1,6) (3,4) (5,6) (1,3,5,6) {14,51,25,22,30,36,65} +[##.##.] (0,1,5) (1,2) (0,2,3,4) (0,1,2,4,5) {32,26,28,14,20,18} +[#....#..] (4,5,6) (2,3) (0,1,2,5,6,7) (3,6) (0,1,3,4) (5) (1,2,3,5,6,7) (0,1,2,3,4,5) (1,4,5,7) (1,5,6) {25,70,50,61,43,84,44,32} +[###.#.##.] (0,1,3,4,5,6,8) (0,1,6,7,8) (1,5) (0,1,2,3,5,6) (1,2,3,5,6,7,8) (1,2,3,4,8) (0,2,3,4,5,7,8) {7,18,10,10,4,8,12,11,15} +[#...] (3) (1) (1,2) (0) (0,3) (0,2) {20,13,7,14} +[#.....###.] (0,1,3,4,5,7,8) (0,3,4,5,6,8,9) (1,5) (0,1,2,3,4,6,7,8) (0,3,4,6,8) (0,3) (4,5,8,9) (1,2,3,4,5,6,7,8,9) (0,1,2,3,4,5,6,7,9) {85,47,27,87,86,53,58,41,81,33} +[#..###..##] (0,2,3,5) (0,2,5,8,9) (0,1,2,3,4,6,7,8) (3,4,6,9) (0,1,2,7) (2,3,7) (0,3,6) (0,2,3,4,6,7,8,9) (2,4,6,9) (3,4,7) (0,1,2,6) (1,2,3,4,5,6,7,8,9) {42,18,67,82,61,17,66,55,24,50} +[.#.#] (0,1,2) (3) (0,2) (1) (1,3) {16,31,16,30} +[..#.###.] (0,2,6,7) (2,5,6) (0,1,2,3,5,7) (0,1,4,6,7) (0,1,3,4,7) (2,4,5) (0,2,3,4,6,7) (1,2,4,5,6) (1,4,6) (0,3,5,7) {78,59,88,57,72,85,71,78} +[..#.] (2) (1,2) (0,1,2) (1) (0,3) (1,3) {37,28,31,20} +[......#.] (1,3,5,7) (0,2,3,6) (1,3,4,5,6,7) (1,2,4) (0,1,2,4,5,6) (0,1,4,5,6,7) (1,2,5,6,7) (3,4) {32,64,44,32,54,55,51,44} +[..#.###] (1,6) (0,5) (0,1,2) (1,3,6) (0,3,4,5) {30,37,17,13,4,13,20} +[..##.#.] (1,3) (0,1,2,3,4,6) (1,2,4,5) (0,1,3,6) (1,2,4) (2,5) {18,32,133,21,24,118,18} +[.##.####] (0,5,6) (1,3,4,5,6,7) (1,4,7) (1,3,4,5,7) (0,1,2,3,4,5) (0,2,6) {38,32,21,30,32,47,38,20} +[##..##..] (3,4,5,6,7) (2,3,4,6) (1,3) (2,6,7) (1,5) (0,2,3,6) (0,1,2,3,4,5) (2,3,6) (0,7) {13,27,42,69,39,28,59,40} +[######..#] (6,7,8) (1,2,5,6,7,8) (2) (0,2,4,8) (2,3,4,5,8) (0,2,4,5,6,7,8) (1,3,8) (2,4) (0,2,5,6,7) (1,3,6,8) (0,1,2,3,4,5,6) {42,15,70,25,50,39,48,38,68} +[#.#....#..] (0,1,2,4,6,7,8) (2,4,5,7) (3,4,5,7,9) (0,2,7) (3,6,7) (3,4,6,7,9) (1,4,5,6,8,9) (3,4,6,9) (0,1,3,5,6,9) (0,8,9) (0,1,3,4,5,7,8,9) {52,42,18,47,49,39,65,41,38,74} +[.##..] (0,1,4) (2,3,4) (0,1,2,4) (0,2) (0,1) {42,35,21,8,27} +[##...#] (1,3,4,5) (3,4) (1,3,4) (1,4) (3) (0,2,4) (2,4) (0,3) {32,31,21,57,71,4} +[........#] (0,1,3) (0,1,2,4,6,7,8) (7,8) (3,4,5,6,7) (0,1,2,3,5) (1,6) (5,7) (0,1,4,5,6,7,8) (5,8) (0,1,2,3,5,6,7) {47,48,34,34,35,60,40,70,50} +[###..###..] (0,1,3,5,6,7,9) (1,4,5,7,8,9) (6) (2) (0,8,9) (0,1,3,4,5,6,7,9) (0,2,3,6,7,8,9) (0,1,2,5,6,7,8,9) {31,44,28,9,16,44,139,45,39,47} +[#..###] (2,3,5) (3) (0,1,3,5) (0,3,4,5) (0,4,5) {25,3,15,51,22,40} +[###.] (0,1,2) (0,1,3) {20,20,16,4} +[##.##.] (1,3,4,5) (2,3,5) (0,4) (3,4,5) (0,1,2,3,4) (2,3,4) (0,1,2,3) {201,26,27,50,230,24} +[.#......] (0,2,3,5,6,7) (4,6) (4,5,7) (1,3,4,5,6) (0,1,3,4,5) (0,1,3,5) (0,3,4,5) (0,2,5,6) {66,43,29,66,73,97,65,26} +[##..#.] (0,2,5) (0,1) (0,4) (0,2,3,5) (2,3,4,5) (0,1,2,5) {52,22,39,23,12,39} +[..##] (0,3) (0,2,3) (0,2) (1,2) {46,18,50,28} +[##.##..##] (0,1,2,4,6,7,8) (4,5,6) (4,6) (1,3,4,5,6,7,8) (2,3,6) (0,5,6,7) (0,1,2,4,6) {23,16,29,25,38,21,70,24,11} +[.#.##] (0,1,3,4) (3,4) (2,3) (2) (0,3) {35,20,31,57,23} +[.#.#...#.] (0,1,2,3,4,6,8) (0,3,5) (1,3,4,6,7) (0,4,5,7) (0,1,2,5,6,7,8) (2,3,5,6,7) (2) (1,5,7) (0,2,3,4,6) {66,56,63,66,52,61,70,64,34} +[.######] (2) (0,2,5,6) (0,4,6) (0,1,2,3,6) (1,2,3,4,5,6) {30,31,53,31,22,16,43} +[..####...] (1,2,5,6,8) (0,1,2,3,4,6,7) (2,7) (1,3,4,5,6,7,8) (5,6) (2,3,7) (0,3,6,8) (0,1,3,5,6,7) {31,134,43,153,108,141,156,152,123}