day 10 (partial) master
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 19 Dec 2025 14:35:32 +0000 (15:35 +0100)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 19 Dec 2025 14:35:32 +0000 (15:35 +0100)
day-10.awk [new file with mode: 0644]
day-10.res [new file with mode: 0644]
day-10.txt [new file with mode: 0644]
day-10_test.txt [new file with mode: 0644]

diff --git a/day-10.awk b/day-10.awk
new file mode 100644 (file)
index 0000000..873bc86
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/awk -f
+
+BEGIN {
+       FS = " "
+       sum = 0
+}
+
+function adisp(n, x,   i) {
+       printf "%s:", n
+       for (i in x) printf " %s", x[i]
+       printf "\n"
+}
+
+function light(l, s,   i, j, la, n, r, sa) {
+       split(s, sa, ",")
+       split(l, la, ",")
+       for (i in sa) {
+               n = length(la)
+               for (j = 1; j <= n; j++) {
+                       if (la[j] == sa[i]) {
+                               delete la[j]
+                               break
+                       }
+               }
+               if (n == length(la)) la[length(la) + 1] = sa[i]
+               asort(la)
+       }
+       r = ""
+       for (i in la) r = (r != "") ? r "," la[i] : la[i]
+       return r
+}
+
+function push(x, v,   i) {
+       for (i in x) if (x[i] == v) break
+       x[length(x) + 1] = v
+
+}
+{
+       print
+       gsub(/[\[\]()]/, "")
+       l = ""
+       for (i = 0; i <= length($1); i++) {
+               if (substr($1, i + 1, 1) == "#") l = (l != "") ? l "," i : i
+       }
+       delete s
+       for (i = 2; i < NF; i++) s[i - 1] = $(i)
+
+       delete v
+       v[1] = ""
+       f = 0
+       p = 0
+       while (!f) {
+               p++
+               delete t
+               for (i in v) {
+                       for (j in s) {
+                               w = light(v[i], s[j])
+                               if (w == l) f = 1
+                               if (f) break
+                               push(t, w)
+                       }
+                       if (f) break
+               }
+               delete v
+               for (i in t) v[i] = t[i]
+       }
+       print p
+       sum += p
+}
+
+END {
+       print "sum:", sum
+}
diff --git a/day-10.res b/day-10.res
new file mode 100644 (file)
index 0000000..8b2abba
--- /dev/null
@@ -0,0 +1,397 @@
+[#...#] (1,3) (2,3,4) (0,2,3) (0,1,2) (2,3) {37,24,60,50,16}
+2
+[##...#..] (0,1,3,5,6) (0,1,5) (4) (5,6) (0,4,7) (1,2,5) (3) {23,18,2,26,14,36,25,7}
+1
+[.#..###] (0,1,4,5) (0,3,4,5,6) (3,5,6) (0,5) (0,1,4,5,6) (0,1,2,3,4) (0,1,5) (2,5) (0,1,2,4,5) {36,30,6,18,28,40,21}
+4
+[.###] (2) (0,1) (1,2) (1,2,3) {9,173,175,13}
+1
+[.###.] (1,2) (0,1,2,3) (2,3) (1,2,3,4) (1,2,3) (0,2,4) (1,4) {12,32,31,24,17}
+1
+[..#####.##] (1,3,4,6,7,8,9) (4) (0,2) (0,2,3,4,5,7,8,9) (3,6,7,9) (1,5,8) (0,1,2,3,4,6,8) (1,7,8) (0,1,2,3,4,8,9) (2,7,9) (0,1,2,5,6,8) (2,4,7,8) (6,8,9) {73,75,92,46,75,30,45,37,109,39}
+4
+[###..#..] (0,1,2,3,6,7) (3,6) (0,4,7) (0,6,7) (1,3,5,6,7) (0,1,2,4,5,6) (3,4,6) (2,3,6) (2,3,5,6,7) {39,23,31,81,38,28,100,61}
+3
+[##.#.##..] (1,4,5,6,8) (2,3,4,6,8) (1,3,5,7) (0,1,2,3,4,5,7,8) (0,3) (1,2,3,4,5,7,8) (0,3,6,7,8) (0,1,3,4,5,6,7,8) {44,47,31,59,56,47,39,40,58}
+4
+[####.##.] (2,3,5,6) (0,3,4,6,7) (1,6,7) (0,1,3,4,5,7) (0,2,3,6,7) (1,7) (0,1,2) (0,1,2,3,5,6) (1,4,5,6,7) (0,7) {57,60,27,40,31,42,75,72}
+1
+[.##.] (0,2) (2,3) (1,2) (1,3) (0) (0,2,3) {12,19,26,28}
+1
+[##.#] (0,2) (1,2) (0,1) (0,1,3) (0,3) {50,44,35,16}
+1
+[.##.#...] (0,4) (0,2,4,5,7) (0,1,3,4,5,7) (0,2,3,5,6,7) (1,2,6,7) (1,3) (0,6,7) (0,2,3,6,7) (0,7) (0,2,4,5,6) {265,33,227,40,229,215,224,76}
+3
+[.###] (0,1) (3) (2) (1) {7,7,16,13}
+3
+[..#...###.] (0,1,2,3,5,6,7,8,9) (0,2,3,4,5,6,8) (0,2,3,5,6,9) (0,1,2,3,4,5,6,8,9) (1,3,7,9) (0,3,5) (0,1,2,5,6,7,8,9) (1,3,4,7) {46,30,36,39,15,46,36,27,25,34}
+4
+[..##] (0,1,3) (0,1,2) (2) (1,2,3) {148,159,169,21}
+2
+[.#.#] (0,1,2) (1,3) {128,133,128,5}
+1
+[#...#..] (0,2) (4,6) (2,5) (0,1,5) (0,3,4,6) (1,2,3,4,5) {21,4,22,10,15,13,13}
+5
+[......#] (0,2,4,5) (4,5) (0,1,2,3,4) (0) (0,1) (4) (0,1,2,4) (0,1,5) (0,1,5,6) {74,58,51,19,67,41,8}
+2
+[#..##..#] (0,5,6) (0,1,2,3,6,7) (0,1,2,4,5) (4,7) (0,3,6) (4,6,7) (1,2,3,5,7) (1,5,6) (0,1,2,3,4,5) {55,53,44,38,62,51,53,44}
+2
+[###..#] (0,1,3,5) (3,4) (1,2,3,5) (0,2,4,5) (1,2) (0,5) (4) (1,4,5) {23,37,41,30,59,48}
+2
+[..#..##..] (0,2,4,5,7,8) (1,2,5,8) (1,4,5,7) (2,8) (0,1,3,8) (1,2,3,5,6,7,8) (3,4,5,8) {32,50,41,45,41,64,15,42,71}
+3
+[...##] (0,1,2,3) (1,4) (1,2) (3) (2) (0,1) {18,38,31,31,17}
+4
+[##.#..##] (0,1,4,6,7) (0,2,5,6) (3,6) (0,1,4,5,6,7) (0,1,3,6,7) (2,3,5,7) {30,27,7,24,23,20,46,31}
+1
+[####..] (1,2,4) (2,3,4) (0,1,2,3) (0,1) (0,1,3,5) (0,1,2,4) (3) (0,2,3,4,5) {56,48,39,27,34,20}
+1
+[.#..] (2,3) (0) (0,2) (1,2) (0,1,2) {25,14,194,175}
+2
+[.#.#..##] (1,3,7) (0,6) (1,2,5) (6) (0,1,2,4,5,6) (2,3,4,7) (0,2,7) (3,6) {18,26,14,31,9,8,28,24}
+2
+[.###...#] (0,1) (1) (3,4) (0,1,3,5) (0,1,2,3,7) (0,2,3,4,5) (0,1,2,3,4,5,6) (1,7) {31,34,9,14,9,12,0,4}
+3
+[##.#.##.##] (0,1,2,3,6,8) (0,2,3,4,5,6,8,9) (2,5,7,8,9) (0,1,2,3,4,5,7) (8) (2,6) (0,2,3,4,5,8) (1,4,5) (1,3,4,5,7,8,9) (4,5,7) (0,3,4,5,8) (0,1,2,4,5,6,7,8) {61,39,48,74,98,100,18,54,71,32}
+6
+[.###.#.] (4,6) (1,5) (2,3,6) (3,4) (0,5) (0,1,2,4) (1,2,6) (1,2,3,6) {34,49,56,171,181,28,52}
+3
+[.#...##.] (0,2,6,7) (1,2,3,6) (1,2,5) (4) (0,2,4,6) (1,3,5,6,7) (2,5,7) (0,1,2,3,4,6,7) {21,51,76,32,21,41,47,32}
+5
+[#.#...#.] (1,3,5,6) (2,5,6) (0,2,4,6,7) (2,6,7) (1,2,4,6,7) (0,2,6) {14,178,42,177,3,194,219,13}
+1
+[..#.##] (0,2) (0,1,2,3) (2,4) (1,2,3) (1,2,5) (1,3,5) (4,5) (3,5) {22,57,58,60,19,70}
+4
+[#....] (0,2,3) (0,4) (1,4) (0,2,4) (1) {29,22,15,4,34}
+3
+[#.#..##.] (0,1,2,3) (1,2,3,4,5,6) (1,5,7) (2,3,6,7) (1,4,7) (0,1,2,5,6,7) {18,36,44,41,15,21,29,17}
+5
+[......#] (0,2,4) (3,5) (1,3,6) (2,3,4,5) (0,1,4,5,6) (0,1,2,3,5) (1,6) {18,30,171,176,158,175,15}
+6
+[.##.#.#.] (0,6,7) (0,5,6) (1,3,4,5,7) (1,4,6) (5,6,7) (3,6) (2,5,7) {170,18,14,10,18,26,207,190}
+3
+[.#.#.] (0,1,2,4) (0,2,3,4) (2,4) {20,17,22,3,22}
+2
+[.###.#..##] (1,6) (0,9) (0,4,5,7,8,9) (4,6,9) (1,2,3,4,5,7,9) (3,6,7,9) (0,3,5,7,9) (0,1,2,4,5,6,8,9) (0,2,4,5,6,7) (0,3,4,5) (4,7) (1,6,8) (0) {71,26,22,19,63,41,53,53,26,61}
+4
+[.#.##.] (1,2,4,5) (1,4,5) (0,2,4,5) (1,3,4) {15,139,35,118,154,36}
+1
+[...###.] (1,2,4,5) (1,4,5,6) (0,5,6) (0,4,5) (3,4,5) (1,2,5,6) (3,4,5,6) (0,2,5,6) (0,1,3,4,5) {46,123,127,34,152,179,36}
+1
+[##..#.#...] (2,4,5,6,7,8,9) (0,2,3,5,6,7,9) (0,1,3,4,5,6,7,9) (1,2,3,4,5,6,7,8,9) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,5,6,7) (1,2,4,6,9) (0,1,2,4,5,7,8) (0,2,3,4,5,6,8,9) (2,8) (0,1,2,3,5,7,8,9) {64,67,73,68,77,93,96,99,51,81}
+4
+[...###..#.] (1,2,4,5,8) (3,4,6,7) (0,1,2,3,6,7) (2,8) (2,6,9) (0,1,2,6,7) (2,4,5,6,8,9) (1,2,5,6,7,9) (1,2,7,8) (0,2,3,5,6,7,8,9) (0,2,3,7) (3,7) {39,30,72,54,35,30,55,66,28,25}
+4
+[..##....#] (1,2,5) (1,2,6,8) (2,4) (0,2,3,5,6,7,8) (1,2,6,7,8) (4,7) (0,1,3,4,5,6,7) (2,3,8) (0,4,8) {22,46,95,37,27,36,47,40,67}
+1
+[....#...#.] (0,1,2,3,4,7,8,9) (1,2,5,7,8,9) (2,4,5,7,9) (0,1,2,3,5,6,7,8) (0,1,4,6,7,8) (0,2,3,4,6,8,9) (0,1,5,6,7,8) (5,6) (0,1,2,3,5,6,8,9) {69,71,61,45,38,50,58,61,85,54}
+6
+[.#.#] (2,3) (1,2) (0,1) (0,3) {31,14,6,23}
+2
+[####.] (1,3) (0,1,4) (2,4) (0,4) {197,207,4,13,201}
+3
+[##.###] (0,1,3,4,5) (1,4,5) (0,1,2) (1,3,4,5) {33,53,13,27,40,40}
+1
+[#####.####] (3,4,6,7,8,9) (1,4,6) (0,3,4,5,6,7,9) (1,6,9) (0,1,2,6,7) (1,2,7,9) (0,1,5,6,8,9) (0,2,4,5,6,7,8) (1,2,6) (0,2,4,5) (0,3,4,9) (2,4,5,8) {77,74,65,34,72,62,103,59,45,69}
+4
+[#.##.] (1,2) (0,2,3,4) (1,2,4) (2,3) (1,3,4) {1,39,31,28,37}
+3
+[##.#] (1,2) (1,3) (2) (0,2,3) (3) (0,3) {10,19,11,39}
+2
+[##.#] (1,2,3) (0,1,3) (0,1,2) (0) (1,2) (2) {33,40,36,23}
+1
+[#...####.#] (1,2,3,6) (1,2,6,7,8) (2,5) (0,2,3,4,5,6,7,8,9) (0,7,8) (0,1,2,3,4,5,7,9) (4) (1,2,3,4,5,6,9) (1,4,5,6,8,9) (2,3,4,5,6,7,8,9) (0,3,4,5,6,7,8) {63,72,78,73,89,91,89,85,85,62}
+2
+[#####.#.] (2,7) (0,6) (3,5,7) (0,1,4,7) (0,1,2,4,5,7) (0,1,2,3,4,6) (1,3,4,5,6) (6,7) (0,1,2,3,4,5) {58,53,40,44,53,48,54,33}
+1
+[##..#.] (1,2,3,4) (4) (2,3,4) (0,3,4,5) (0,2,3,4) (2,4) (0,2,4,5) (0,2,3) {55,3,83,63,91,22}
+2
+[.####.] (0,3,5) (0,1,2,4,5) (2,3) (1,2,3,4) (0,3,4) (0,2,5) {54,8,39,65,28,34}
+1
+[###.#...] (2,3,5,6) (0,1,3,4,5,7) (0,2,5,7) (0,1,3,7) (4) (0,4,5,7) (0,1,2,3,5,6) (4,5,6) (0,3,4,5,6,7) (0,1,3,4,6) {74,34,27,57,60,85,61,53}
+4
+[..##.###..] (0,2,5,6,7,8,9) (1,2,3,4,5,6,7,9) (1,2,3,4,6,7,8,9) (0,1,4,5,6,8) (1,3,4,5) (1,4,5) (1,2,4,7) (0,3,5,7,8) (0,2,5,8) (0,3,9) {52,77,66,62,77,63,54,65,60,50}
+7
+[###.##] (1,5) (0,1,2,5) (0,3,4,5) (0,1,3) (2,3,4,5) {172,166,34,166,30,60}
+2
+[.#.##] (4) (0,3) (1,2,4) (3) (2,4) (1,2,3,4) {14,23,142,50,145}
+3
+[.#.#..#] (2,5) (3,4) (1,2,3,5,6) (0,2,3,4,5) (0,4,5,6) {22,9,22,28,39,42,29}
+2
+[#.#.] (1,2) (0,1) (2,3) (0,1,3) (0,2) {135,33,140,1}
+1
+[#..#.] (0,3) (0,1,3,4) (0,2,4) {40,18,13,27,31}
+1
+[#..###.] (0,1,3,4,6) (3,6) (1,2,3,6) (0,4,5,6) (4,5) {15,25,19,36,15,9,45}
+2
+[###.##] (0,1,3) (0,1,2,4,5) (1,2,3,4) (0,1) (0,2,4) {12,10,15,3,15,7}
+1
+[..#.#] (3) (0,1,2,4) (2,4) (1,3,4) (0,1,3) (2,3) {16,21,44,215,36}
+1
+[#..###] (3,4,5) (0,1,5) (0,2,3,4) (0,3,4) (2,3,4,5) (1,2) (0,4) (0,1) {63,33,44,53,63,24}
+3
+[..#.##] (4,5) (2,4) (0,4) (2,4,5) (1,2,3,4) (3,4) {1,3,19,17,45,13}
+1
+[####..##..] (2,3,5,6,9) (4,8) (0,1,4) (0,3,4,8,9) (8,9) (1,4,9) (1,2,3,5,6,7,8,9) (2,3) (2,3,6,7) (1,2,3,4,5,6,7,8,9) (0,6) (0,3,4,5,7,8,9) (3,4,6) {24,37,44,60,50,32,57,50,44,51}
+4
+[.#.###] (3,4) (0,1,3,4) (0,1,2,5) (0,1,3,4,5) (3,5) (0,4) {20,13,7,23,21,19}
+4
+[......#.] (0,1,2,3,4,6) (6) (1,3,5,6) (0,1,5) (0,1,2,3,5,7) (1,2,4,6) (1,2,7) {10,225,206,17,22,19,45,184}
+1
+[.##.#] (0,1,2,3) (2,4) (1,2,4) {9,199,214,9,205}
+1
+[###.] (1,2) (0) (0,2,3) (1,3) (3) (0,1) {167,28,22,28}
+2
+[#....#.#] (3,4) (0,1,2,4,5,6,7) (1,2,5,6,7) (0,5,7) (3) (3,5) (2,4) {16,202,213,52,36,229,202,210}
+1
+[#...] (1,2,3) (2) (0,2) (0,1,3) (0) {34,22,38,22}
+1
+[.###] (1,2,3) (0,2,3) {0,123,123,123}
+1
+[#...#.] (1,4,5) (1,2,5) (2,3,4) (1,2,3) (0,4,5) {7,16,17,16,10,9}
+4
+[##.######] (0,5) (0,1,2,3,4,5,8) (1,6) (0,1,3,4,5,6,8) (4,6,7) (1,4,5,7) (3,4,5,6,8) (2,5,8) (3,5) {27,35,9,37,35,76,34,15,29}
+7
+[.#####.##] (2,8) (1,3,4,6,7,8) (1,5,7) (3,4,5,6,7) (0,2,3,4,5,6,7) (1,3,4,5,8) (1,3,4) {10,47,11,39,39,33,26,44,22}
+5
+[#####] (3) (1) (4) (1,4) (1,3,4) (2,3) (0,1,3) {12,33,12,36,13}
+4
+[..##.] (0,1,4) (2,3) (0,2,4) (1,3) {17,26,11,20,17}
+1
+[#..###...] (2,6,7,8) (0,2,3,4,6,8) (6,8) (0,3,4,5) (0,3,4,6,7,8) (0,1,2,3,4,5,8) (0,1,2,3,5,6,7,8) (1,6) (1,2) {37,41,57,37,21,26,49,24,53}
+1
+[#..##...#.] (0,3,4,8) (1,2,3,4,6,7,8) (0,1,3,5,6,7,9) (0,1,4,7,9) (7,8,9) (3,4,5,7,8,9) (1,2,3,4,7) (1,2,3,4,5,6,9) {25,214,202,225,223,16,195,221,208,31}
+1
+[.##.#] (1,4) (0,3,4) (2) {19,12,132,19,31}
+2
+[#...#.#] (0,3,4,5) (1,3,6) (2,5) (2,6) (0,1,2,3,4,5) (0,3,6) (1,4) {34,34,32,35,43,28,24}
+3
+[###..#.###] (0,1,2,4,8,9) (0,2,8,9) (2,9) (1,3,4,5,7,8,9) (0,5,6,7) (3,4,6,9) (0,1,2,3,4,6,8,9) (8) (1,2,4,5,6,7,8,9) (0,4,6,8,9) (0,1,3,4,7,8,9) (0,2,3,4,5,7,8,9) (0,1,2,5,7,8,9) {92,70,78,56,93,45,51,56,115,136}
+1
+[..#..#.#.] (0,2,3,7) (7) (0,1,2,5,6) (3,4,5) (0,1,3,5,6,7) (1,6) (3,5,6,8) (1,6,8) (3,5,6,7,8) (2,3,4,7) {33,38,34,79,27,61,65,54,28}
+2
+[..#.#...] (0,2,5,6,7) (2,4) (0,1,3) (1,2,3,4,6,7) (0,2,4,5,6,7) (2,5) (1,3,4,7) {42,40,72,40,54,48,53,66}
+1
+[...#..#..] (3,6) (5,8) (2,4,6) (1,2,4,5,6,7,8) (0,2,6,7,8) (2,7) (1,3,4,5,6,8) (1,5) (0,5) (1,4,5,6,7,8) {37,53,60,30,53,83,86,52,68}
+1
+[...##.#] (0,2,4,5,6) (2,5) (1,3) (0,1,4,5) (0,2) (1,6) (1,4,5,6) {27,34,31,3,35,47,31}
+6
+[######.#.] (0,3,4,5,6,7,8) (0,1,3,5,7) (1,6,7) (1,6) (0,1,2,4,5,7,8) (1,2,3,4,5,7) (1,2,4,6,8) (1,3,4,6) {39,192,137,145,165,144,68,157,42}
+4
+[#####.] (1,2,3,4,5) (4) (0,2) (0,1,5) (1,2) (2,4) (0,1,2,3) {29,34,34,10,14,25}
+2
+[#..#] (0) (1) (1,3) (1,2,3) (2,3) (3) {5,49,24,58}
+2
+[.###.....] (0,1,5) (0,2,3,4,6,8) (2,4,6) (1,2) (0,3,4,7) (5) (0,3,8) (2,3,5,6) (0,1,2,5,6) {33,17,15,20,12,38,14,8,9}
+5
+[#...###.] (0,2,6,7) (0,1,3,6) (1,3,4,5) (0,5,7) (3,4,5,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6) {70,51,32,65,55,50,55,54}
+2
+[..###.#.] (0,5) (2,7) (0,1,3,6,7) (1,4) (0,1,6) (0) (0,1,2) (0,1,2,5,6,7) (1,2,3,7) (5) {54,248,31,23,192,25,33,31}
+4
+[#.##] (0,2,3) (1,2) (0,1,3) (2) {154,152,33,154}
+1
+[###.] (1,3) (2) (2,3) (0,2,3) (0,1,3) (1,2) {23,54,44,51}
+2
+[#..##.#.] (1,4,5,6,7) (0,1,2) (3,4,5) (7) (0,2,5) (1,4) (1,2,3,4,6) (0,4) (0,1,2,4,5) {21,58,40,27,61,36,34,31}
+2
+[#.#..###.#] (0,1,2,3,5,6) (0,1,5,6,7,8,9) (0,2,3,6,7,9) (2,4,5,6,7,8,9) (0,1,3,4,5,6,7,8,9) (6,7) (0,8) (0,7) (0,3,9) (0,2,4,5,7,8) (2,4,7) (5,9) {80,22,34,39,50,48,37,66,61,59}
+5
+[#.#...] (0,1,5) (0,1) (1,2,3,4) (0,3) (0,1,2,5) (0,2) (0,3,4) {61,39,49,46,34,17}
+1
+[##.##.#..] (0,1,3,5,7) (1,2,3,4,5,6,8) (1,2,4,5,8) (0,2,7,8) (4,8) (1,2,3) (0,2,3,4,6,8) {47,63,80,69,45,43,34,33,63}
+6
+[..###.##] (0,1,2,3,4,5) (5,6) (0,2,3,4,5,7) (0,1,6) (0,1,3,4,5,6,7) (0,1,2,3,4,7) {58,52,24,40,40,32,36,32}
+2
+[.#.###] (0,2,3,4,5) (2,3,4) (1,3,4,5) (0,1) (0,1,4) (2,3) {126,131,34,52,162,31}
+1
+[...#...#.] (0,2,4,7,8) (0,1,2,3,4,8) (1,4,5,6) (0,2,3,4) (1,2,5,6) (0,3,5,7,8) (0,1,2,3,4,6,8) (0,3,4,6,7) (0,1,2,3,4,5,6,7) (3,4,5,6,8) (1,3) {90,84,60,121,101,74,94,55,58}
+5
+[#..###..#] (4,8) (0,2,3,4,5,7,8) (1,5) (0,2,3,4,6,7) (1,2,3,4,7) (0,2,3,4,6,7,8) (1,4) (1,2,3,4,5,6,7,8) (5,6) (0,1,2,5,6,7) {51,71,87,80,119,212,211,87,67}
+6
+[##.#.#] (0,2,4,5) (1,5) (2,3,5) (0,3) (0,1,3,5) {25,22,10,31,2,32}
+1
+[...#######] (2,5,7) (5) (0,2,3,5,6,7,8,9) (1,2,3,6,7) (1,2,4,7,8) (0,1,2,4,5,6,7,9) (3,5,6,8,9) (2,9) (0,4,5) (0,6,7,9) (1,2,3,5) {37,28,54,39,17,80,47,53,26,47}
+4
+[#.#..###.] (0,1,8) (2,3,6,8) (1,2,3,5,7) (0,1,2,3,4,5,7) (1,3,4,7) (2,3,4,5) (1,3,4,6) (0,1,2,4,5,7,8) {20,50,40,52,38,38,9,40,8}
+2
+[#.###] (0,1,2,4) (1,2,4) (0,2,3) (0,2,3,4) (0,1,3,4) {26,19,29,22,23}
+1
+[#..#.] (0,2,4) (0,2) (1,2,3) (0,2,3,4) (2,4) (0) {38,15,49,33,27}
+2
+[.##.###..#] (1,2,5,6,7,8) (3,7,8,9) (0,2,4,5) (0,1,6) (1,7) (1,2,3,5,6,7,8,9) (0,2,4,6,8,9) (3,9) (1,2,4,5,6,7,8,9) (0,4,9) {54,59,71,22,57,58,71,45,57,62}
+3
+[#...#] (0,4) (0,2) (0,1,2) (1,3) {40,25,31,6,9}
+1
+[##.##..] (2,4,6) (0,2,4,6) (0,4,5) (0,1,3,4,5) (1,3,4,6) (0,3,5,6) (0,3,5) {54,7,11,34,34,49,21}
+5
+[...#.] (0,1,4) (1,2,3) (1,2) (0,1) {145,172,27,8,143}
+2
+[#.......#.] (0,2,9) (4) (1,2,5,6,8) (1,2,7) (0,2,4,6) (0,5,6,7,8,9) (0,3,5,8,9) (3,6,7,8,9) (0,1,2,5,9) {238,49,63,23,20,238,207,206,223,239}
+4
+[..##.] (2,3) (1,2,3,4) (0,1,2,3,4) (0,1,2,4) {27,29,45,38,29}
+1
+[##.#.] (1,2) (1,2,4) (0,2,3) {4,15,19,4,7}
+2
+[..#.] (2,3) (1) (0) (0,3) {154,8,20,20}
+3
+[.#..###] (1,3,5,6) (2,5) (0,1,2,3,4,5) (0,1,2,4,5,6) (3,4) {193,195,211,184,201,213,21}
+2
+[#.#.] (0,2) (1) (0,2,3) {20,6,20,15}
+1
+[.###] (1,2,3) (0,2,3) {5,0,5,5}
+1
+[##..] (0,1,2) (1,3) (0,1) (1,2,3) (2,3) (0) {12,20,10,27}
+1
+[...#] (0,2,3) (0,1,3) (0,1) {46,29,17,36}
+2
+[...###] (1,2,4) (0,1) (0,1,2,4) (0,3,4,5) (0,1,2,5) (1,3,4,5) (2,3,4,5) {24,22,28,26,33,29}
+3
+[...##.#.#] (2,3,4,6,7,8) (1) (1,2,3,5,6,7,8) (0,1,2,5,6,7,8) (2,6,8) (0,3,4,5,6,8) (1,2,3,5,7) (4,5,6,8) (0,1,5,6,8) (1,4,5,6,8) (1,3,4,6,7,8) {35,48,52,49,48,60,89,36,89}
+3
+[#.####.##.] (1,9) (3,4,8) (0,2,3,4,5,7,8) (0,3,4,5,7,8,9) (2,6,8,9) (0,1,2,3,4,5,6,7) (0,4,6,7) (1,2,3,4,6,8) (0,5,6,9) (0,6,7,9) (3,4,5,8,9) {32,35,28,32,34,19,48,31,22,35}
+1
+[####...] (0,2,3,5) (0,1,3,4,6) (0,1,3,4,5,6) (4,5,6) (2,3) (0,1,2,3) {199,27,201,210,15,183,15}
+1
+[..##..] (0,2,3,4) (0,1,2) (0,1,3) (1,3) (1,2,3) (2,3,5) {136,35,140,152,118,2}
+2
+[#..###.] (2,3) (0,5,6) (1,4,5,6) (0,1,2,6) (1,2,5,6) {32,38,49,16,5,40,55}
+3
+[#...###..] (0,1,5,6,7,8) (1,3,5) (0,2,3,4,5,6) (0,2,3,4,5,7,8) (2,4,7) (2,4,5,7,8) (1,3,4) (0,1,2,4,5,6,7) (3,6,7,8) {44,54,43,75,57,76,49,61,54}
+6
+[##..#] (0,1,4) (2,3,4) (0,1,2,3) (0,1,3,4) {9,9,4,4,11}
+1
+[###.#] (0,2,3) (0,1,2,4) (2,3,4) {129,109,134,25,114}
+1
+[#..#.##] (0,1,2,3) (1,3,4,6) (1,3,5,6) (0,5,6) (0,2,3,5,6) (4,5) {29,16,11,20,20,45,31}
+4
+[#.#.#] (2) (0) (0,2,3) (0,1,3) (1,2) (0,3) (0,1,4) {45,33,35,34,10}
+2
+[.#..##..] (0,1,3) (3) (5,6,7) (0,4,5,7) (2) (0,4,6,7) (0,1,2,3,5,6,7) {46,10,8,17,36,44,42,61}
+4
+[.#..####.] (1,4,7,8) (2,5,7) (0,1,2,3,4,5,6,7) (0,1,2,5,6,7,8) (2,5,6) (0,2,3,4,5,6,8) (0,3,4,6) (1,6) (0,1,2,3,5,6,8) (0,3,4,5) {230,206,215,83,74,235,248,178,176}
+6
+[.###] (0,1,3) (0,1) (0,2) {152,29,123,16}
+2
+[#..#.] (0,1,4) (2,3) (0,3) {7,7,20,20,7}
+1
+[##.#.#...#] (0,2,4,5,6,7,8,9) (3,4) (0,1,2,4,6,8) (2,4,6,8) (0,2,3,4,5,6,7,8) (4,5) (2,3,6,7,8,9) (3,7,9) (0,1,3,4,5,7,9) (0,1,2,5,6,8,9) (0,5) (2,6) {53,19,47,37,50,50,47,49,44,49}
+3
+[.#..##.##] (3,5,7,8) (1,3,4,5,7) (2,5,7,8) (1,2,3) (3,4,6,8) (0,2,3,4,6,8) (4,8) (1,6,8) {14,17,41,45,22,37,28,37,68}
+3
+[#...##] (1,3) (1,2) (0,3) (0,1,2,5) (0,3,4,5) (0,1,3,4,5) {22,37,20,27,10,15}
+2
+[#.##.##..#] (0,1,2,5,6,7) (1,2,4,5,8,9) (2,7) (2,4,9) (1,2,3,4,5,6,7,9) (0,1,2,4,5,7,8,9) (5,8,9) (0,1,4,7) (0,1,3,4,5,8,9) (0,2,3,6,7,8) {58,58,75,30,69,55,17,68,62,66}
+2
+[.#....] (0,2,3,4) (0,2,3,5) (1,2,5) (0,1,2,4) (4,5) (2,5) (1,4) (2,3,5) {47,35,86,36,50,75}
+2
+[#.#.#..] (0,4) (0,2,3,4) (1,5) (0,2,4,5,6) (0,1,3,5,6) (3,4,5,6) (2,3,6) (0,1) {216,21,211,46,229,222,222}
+4
+[.#..#] (0,3) (2) (0) (0,2,4) (1,4) (3,4) {26,6,30,19,32}
+1
+[#..##] (0,3) (2,3) (0) (0,3,4) (0,4) (1,2) {32,17,37,28,12}
+1
+[#......##.] (4,7,8) (2,5,8,9) (1,3,5,6,9) (0,1,3) (0,1,3,5,6,7,8,9) (0,3,7,8,9) (1,3,4,5,6,7,8) (0,1,2,5,8) {50,62,25,57,6,59,34,28,53,49}
+2
+[.#...] (0,1) (2,3) (1,2,3) (0,3) (1,4) {21,13,9,21,1}
+2
+[.#..##] (0,3,4) (1,3,4,5) (2,3) (1,4,5) {1,19,2,11,20,19}
+1
+[.###.#] (1,2) (0,1,2,3) (0) (0,1) (5) (1,2,3,4,5) (0,1,2,4) {31,46,28,20,20,31}
+3
+[.##.#....] (2,3,5,6,7) (0,2,3,5,7) (0,1,4,5,8) (1,2,4,5,6,7,8) (4,6,8) (1,2) (0,3,4,6,7,8) (0,2,3,6,8) (1,2,4,6,7) (0,1,2,4,5,6,8) {44,161,169,27,174,37,182,146,63}
+3
+[.##.###] (1,2,6) (0,2,3) (0,1,2,3,6) (1,2,3,4,5) (0,1,2,5,6) (0,1,3,5,6) (0,1,4,6) (1,3,4,5) {194,48,197,188,8,18,44}
+4
+[#..###..#.] (1,3,7,8,9) (0,1,2,3,5,8,9) (0,2,4,8,9) (1,2,6,7,8) (0,1,2,3,5,6) (5,6,7) (2,7,9) (0,1,2,3,5,6,7,8) (2,6,8) (0,2,5,6,7,9) (1,3,4,7,8,9) (0,4,5,7,8,9) (1,2,3,4,7,8) {211,64,249,58,32,206,206,228,85,225}
+5
+[#.#.#...#.] (7,8) (0,1,3,5,6,7,8,9) (0,1,2,3,4,5) (0,1,3,5,7,9) (2,3,6,7,9) (3,6,8) (1,2,4,5,7,8,9) (2,6,8,9) (1,4,5,6,8,9) (0,1,2,3,4,5,7,8,9) (2,4,6,7) {70,102,91,94,83,102,90,110,115,110}
+3
+[#.##] (0,1,2,3) (0,2,3) (0,1) {41,21,38,38}
+1
+[###.] (1,3) (0,1,2) {11,27,11,16}
+1
+[##....] (1,2,4,5) (1,2,5) (0,1,2,3,5) (0,1,3,4) (1,4) (0,2) (0,3,5) (0,2,3,4,5) {190,63,182,47,41,54}
+3
+[####.#....] (0,3,5,7,9) (0,1,2,3,4,5,6,8) (0,2,4,5,6,7,8,9) (4,5,6,9) (0,2,5,7,8) (0,2,5,6,7,8,9) (3,4) (1,2,5,7,8) (1,2,7,9) (1,2,5,6,7) (3,8,9) {50,163,190,40,46,190,62,173,163,44}
+2
+[##..] (1,2) (0,1) (1,3) (0,3) (1) (0) {127,137,6,9}
+1
+[.###..] (0,1,4,5) (3,4) (0,1,2,5) (1,2,3) (2,5) (0,1,2,3,4) {52,59,60,40,48,50}
+1
+[#....#.#] (0,2,3,5,6) (1,5,7) (1,2,4,5,7) (0,5,7) (0,2,6,7) (0,2,3,4,5) {20,27,30,14,18,43,12,33}
+1
+[.#.#..] (1,3,4) (2,5) (0,1,2,3) (1,2,3,5) (2,3,4,5) (1,3) (0,1,3,4) {26,65,52,83,57,46}
+1
+[####.#.#] (1,4) (1,2,4,5,6,7) (2,3,5,6,7) (0,3,4,5) (0,5,6,7) (0,1,4,5,6,7) (1,3,6) (1,2) (0,2,5) (2) {48,64,63,27,63,73,51,50}
+3
+[#..##..] (0,1,2,3,4,6) (1,2) (0,1,2,5,6) (2,3) (1,2,6) {21,46,62,34,18,3,36}
+2
+[..##....##] (0) (3,4,5,6,7,9) (0,2,3,4,6,7,8,9) (3,4,5,6,9) (0,4,6) (2,3,6,9) (2,5,6,8) (0,2,4,8) (0,1,3,5,7,8,9) (1,2,3,5,8,9) {69,29,71,77,62,71,83,28,71,77}
+4
+[##..#...##] (0,2,3,7,8,9) (0,1,2,3,6,7,8,9) (0,1,6,7) (2,3,4,5,6,7,9) (0,1,2,3,4,5,6,7,9) (0,1,2,3,4,5,7,8) (2,5,7) (3,5) (2,4,5,6,8,9) {47,37,64,61,51,60,38,61,38,43}
+3
+[##.#....] (0,4,5,6,7) (1,3,4,5) (3,7) (0,1,2,3,6) (1,3,4) (2,7) (0,2,3,4,5,7) (0,2,4,7) {168,16,53,36,152,142,149,181}
+3
+[#..#.##] (0,2,3,6) (0,1,2,3,4,5) (0,1,2,3,5) (0,1) (0,1,2,4,5,6) (0,3,4,5,6) (1,5,6) (0,1,2,3,5,6) {232,205,207,220,176,208,45}
+3
+[..###..] (1,2,3,4,6) (0,1,4,5) (0,1,2,3,4,6) (0,5,6) (0,1,6) (0,3,4) (2,3) (0,2,4,5,6) {250,38,208,34,214,212,228}
+2
+[.#.#.###] (0,2,3,5) (3,5,6) (0,2,4,5,6) (0,2,6,7) (0,1,2,3,4,7) (0,2,4,5) (3,4,5,6,7) (1,6) {51,37,51,167,176,166,185,171}
+2
+[.#.##.##.] (2,3,4,5,6,7,8) (1,8) (1,2,4,5,8) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6,7) (1,2,4,5) {32,74,32,24,51,49,35,35,38}
+4
+[##...##] (0,3) (0,1,4,6) (1,5) (0,1,2,5,6) (0,3,5,6) (2,5) (2,5,6) {138,138,37,12,107,50,140}
+4
+[###..####] (0,1,3,5,7,8) (0,3,4,7,8) (1,7,8) (2,3,4,5,7,8) (0,1,2,8) (1,4,7) (2,5,7) (0,1,3,4,5,6,7) (1,3,7) (0,1,3,6,7,8) (6) {51,191,42,63,140,42,43,199,55}
+4
+[#####....] (0,3,6,8) (0,2,3,4,5,6) (1,4,5,8) (6,8) (0,1,3,5,7,8) (0,1,4,5,6,7,8) (1,3,5,6,7) (0,1,2,3,4,6,8) (2,5) {56,253,31,241,39,250,240,234,56}
+2
+[..###..#] (0,5) (0,3,4,7) (3,5,6) (0,1,2,4,5,7) (1,2,7) (2,4) (1,3,6,7) {55,24,38,38,53,51,18,44}
+5
+[..#.##.#] (0,2,3,4,5,6) (2,3,4,6) (1,3,5,6) (0,1,4,7) (1,3,5,6,7) (4) (0,1,2,3,4,7) (0,1,2,4,6,7) (0,3,4,6) {46,58,43,76,80,40,62,49}
+5
+[##...#] (1,3) (0,3,4,5) (0,1) (1,2,3,4) (0,1,5) {15,22,5,13,8,9}
+1
+[.....##] (0,3,4,5,6) (5,6) (2,3,4,6) (0,1,3) (0,4,6) (0,2,4) (0,2,4,5,6) (0,1,4,6) {50,15,23,33,47,23,35}
+1
+[....##.##] (0,1,2,3,5,6,7) (0,3,5,6) (1,2,3,4,6,8) (0,2,3,4,8) (0,4,6,7) (0,1,2,4,6,7,8) (0,2,5) (0,1,2,6,8) (3,7) (0,1,2,3,5,6,7,8) (0,1,3,5,6,8) {213,162,173,173,41,165,184,152,57}
+3
+[.#..#.#..] (2,5) (0,2,3,4,5,7) (0,3,5,6,7,8) (0,1,7,8) (0,1,4,6) (0,6,8) (0,1,2,3,7) (0,2,4,5,6,7,8) {74,9,44,36,36,52,51,50,47}
+3
+[##..#.] (0,2,3,4) (1,2) (0,1,2,3) (1,3,5) (0,2,4) (0,1,5) {131,157,46,36,13,124}
+2
+[.#..##.] (0,1,2,4) (5,6) (3,6) (0,1,6) (1,2,5) (1,6) (0,1,3,6) {167,187,169,13,154,23,34}
+4
+[..#..#] (1,2,3,5) (0,1,3) (0,1,2,3,5) (4,5) (0,2,5) (1,2,3,4) {8,19,24,19,13,19}
+2
+[#....#] (1,2,3,4,5) (2,5) (0,1,2,3,4) (1,3,5) {114,127,139,127,127,25}
+2
+[.###.] (0,2,3) (0,1,3) (1,3,4) (0,1,4) (0,1,2,4) (0,3) (0,3,4) {64,44,14,46,51}
+2
+[.#.##] (1,2,3) (0,4) (2,3,4) (1,2) {17,31,42,22,28}
+2
+[.###.#] (0,2,3,5) (4) (2,4) (1,4,5) (2,3,4) {17,16,41,21,239,33}
+2
+[#..##.] (0,1,2) (0,1,3,5) (1,3,4,5) (0,2,4,5) {30,23,20,13,13,23}
+3
+[...#..#..#] (1,7) (0,6,7,9) (1,4,7) (2,6) (0,1,6,8,9) (0,3,7) (5,7,8,9) (1,2,3,4,6,7,8) (8,9) {10,40,33,27,26,5,34,53,27,9}
+2
+[..#....#] (0,1,4,6,7) (0,1,2,3,4,6) (2,7) (0,1,2,3,4,5) (3,7) (3,4,5,7) (0,1,2,4,5,7) (0,4,6,7) {57,46,46,40,64,23,41,88}
+1
+[#.#..##] (1,3,6) (4,5) (1,2) (1,2,4,5) (0,1,4,5,6) (0,1) (3) (1,2,4) (1,5) {21,73,20,28,28,36,19}
+2
+[.#.#.] (0,1,2,4) (0,1) (0,1,3) (3) (1,2,4) (0,3) (0,2,4) {54,59,37,29,37}
+2
+[###.##..#] (0,1,2,3,5,6,8) (0,1,2) (0,4) (3,4,5,6,7,8) (4,5) (0,4,6,8) (0,1,4,5,6,7,8) (0,1,2,4,5,8) (4,8) {51,38,27,23,67,40,38,31,61}
+1
+[.##.##] (0,4,5) (3,4,5) (4,5) (1,2,3,4) (0,1,3,4) (0,1,3,4,5) {173,167,5,179,194,35}
+5
+[.#.######.] (0,1,3,4,6,8,9) (0,1,2,3,4,5,7,8,9) (2,3,4,8) (2,6,9) (1,7,9) (4,5,7) (0,3,4,5,6,7,8) (7) {19,20,18,26,26,10,22,23,26,27}
+4
+[##.....#.#] (0,1,3,4,5,6,7,8,9) (0,7,8,9) (0,7) (1,2,5) (0,1,2,3,4,6,7,8,9) (5,8) (1,9) (6,7,9) {59,32,19,29,29,24,31,61,56,49}
+2
+[....###] (1,2,3,4,5,6) (4,5) (0,2,3,5,6) (0,1,3,4,5) (1,2,3,4,6) (4,5,6) {11,26,15,26,55,46,29}
+1
+[#.####] (0,1,2,4,5) (1,4,5) (1,2,3,5) (2,5) {8,34,22,10,24,38}
+3
+sum: 502
diff --git a/day-10.txt b/day-10.txt
new file mode 100644 (file)
index 0000000..9638687
--- /dev/null
@@ -0,0 +1,198 @@
+[#...#] (1,3) (2,3,4) (0,2,3) (0,1,2) (2,3) {37,24,60,50,16}
+[##...#..] (0,1,3,5,6) (0,1,5) (4) (5,6) (0,4,7) (1,2,5) (3) {23,18,2,26,14,36,25,7}
+[.#..###] (0,1,4,5) (0,3,4,5,6) (3,5,6) (0,5) (0,1,4,5,6) (0,1,2,3,4) (0,1,5) (2,5) (0,1,2,4,5) {36,30,6,18,28,40,21}
+[.###] (2) (0,1) (1,2) (1,2,3) {9,173,175,13}
+[.###.] (1,2) (0,1,2,3) (2,3) (1,2,3,4) (1,2,3) (0,2,4) (1,4) {12,32,31,24,17}
+[..#####.##] (1,3,4,6,7,8,9) (4) (0,2) (0,2,3,4,5,7,8,9) (3,6,7,9) (1,5,8) (0,1,2,3,4,6,8) (1,7,8) (0,1,2,3,4,8,9) (2,7,9) (0,1,2,5,6,8) (2,4,7,8) (6,8,9) {73,75,92,46,75,30,45,37,109,39}
+[###..#..] (0,1,2,3,6,7) (3,6) (0,4,7) (0,6,7) (1,3,5,6,7) (0,1,2,4,5,6) (3,4,6) (2,3,6) (2,3,5,6,7) {39,23,31,81,38,28,100,61}
+[##.#.##..] (1,4,5,6,8) (2,3,4,6,8) (1,3,5,7) (0,1,2,3,4,5,7,8) (0,3) (1,2,3,4,5,7,8) (0,3,6,7,8) (0,1,3,4,5,6,7,8) {44,47,31,59,56,47,39,40,58}
+[####.##.] (2,3,5,6) (0,3,4,6,7) (1,6,7) (0,1,3,4,5,7) (0,2,3,6,7) (1,7) (0,1,2) (0,1,2,3,5,6) (1,4,5,6,7) (0,7) {57,60,27,40,31,42,75,72}
+[.##.] (0,2) (2,3) (1,2) (1,3) (0) (0,2,3) {12,19,26,28}
+[##.#] (0,2) (1,2) (0,1) (0,1,3) (0,3) {50,44,35,16}
+[.##.#...] (0,4) (0,2,4,5,7) (0,1,3,4,5,7) (0,2,3,5,6,7) (1,2,6,7) (1,3) (0,6,7) (0,2,3,6,7) (0,7) (0,2,4,5,6) {265,33,227,40,229,215,224,76}
+[.###] (0,1) (3) (2) (1) {7,7,16,13}
+[..#...###.] (0,1,2,3,5,6,7,8,9) (0,2,3,4,5,6,8) (0,2,3,5,6,9) (0,1,2,3,4,5,6,8,9) (1,3,7,9) (0,3,5) (0,1,2,5,6,7,8,9) (1,3,4,7) {46,30,36,39,15,46,36,27,25,34}
+[..##] (0,1,3) (0,1,2) (2) (1,2,3) {148,159,169,21}
+[.#.#] (0,1,2) (1,3) {128,133,128,5}
+[#...#..] (0,2) (4,6) (2,5) (0,1,5) (0,3,4,6) (1,2,3,4,5) {21,4,22,10,15,13,13}
+[......#] (0,2,4,5) (4,5) (0,1,2,3,4) (0) (0,1) (4) (0,1,2,4) (0,1,5) (0,1,5,6) {74,58,51,19,67,41,8}
+[#..##..#] (0,5,6) (0,1,2,3,6,7) (0,1,2,4,5) (4,7) (0,3,6) (4,6,7) (1,2,3,5,7) (1,5,6) (0,1,2,3,4,5) {55,53,44,38,62,51,53,44}
+[###..#] (0,1,3,5) (3,4) (1,2,3,5) (0,2,4,5) (1,2) (0,5) (4) (1,4,5) {23,37,41,30,59,48}
+[..#..##..] (0,2,4,5,7,8) (1,2,5,8) (1,4,5,7) (2,8) (0,1,3,8) (1,2,3,5,6,7,8) (3,4,5,8) {32,50,41,45,41,64,15,42,71}
+[...##] (0,1,2,3) (1,4) (1,2) (3) (2) (0,1) {18,38,31,31,17}
+[##.#..##] (0,1,4,6,7) (0,2,5,6) (3,6) (0,1,4,5,6,7) (0,1,3,6,7) (2,3,5,7) {30,27,7,24,23,20,46,31}
+[####..] (1,2,4) (2,3,4) (0,1,2,3) (0,1) (0,1,3,5) (0,1,2,4) (3) (0,2,3,4,5) {56,48,39,27,34,20}
+[.#..] (2,3) (0) (0,2) (1,2) (0,1,2) {25,14,194,175}
+[.#.#..##] (1,3,7) (0,6) (1,2,5) (6) (0,1,2,4,5,6) (2,3,4,7) (0,2,7) (3,6) {18,26,14,31,9,8,28,24}
+[.###...#] (0,1) (1) (3,4) (0,1,3,5) (0,1,2,3,7) (0,2,3,4,5) (0,1,2,3,4,5,6) (1,7) {31,34,9,14,9,12,0,4}
+[##.#.##.##] (0,1,2,3,6,8) (0,2,3,4,5,6,8,9) (2,5,7,8,9) (0,1,2,3,4,5,7) (8) (2,6) (0,2,3,4,5,8) (1,4,5) (1,3,4,5,7,8,9) (4,5,7) (0,3,4,5,8) (0,1,2,4,5,6,7,8) {61,39,48,74,98,100,18,54,71,32}
+[.###.#.] (4,6) (1,5) (2,3,6) (3,4) (0,5) (0,1,2,4) (1,2,6) (1,2,3,6) {34,49,56,171,181,28,52}
+[.#...##.] (0,2,6,7) (1,2,3,6) (1,2,5) (4) (0,2,4,6) (1,3,5,6,7) (2,5,7) (0,1,2,3,4,6,7) {21,51,76,32,21,41,47,32}
+[#.#...#.] (1,3,5,6) (2,5,6) (0,2,4,6,7) (2,6,7) (1,2,4,6,7) (0,2,6) {14,178,42,177,3,194,219,13}
+[..#.##] (0,2) (0,1,2,3) (2,4) (1,2,3) (1,2,5) (1,3,5) (4,5) (3,5) {22,57,58,60,19,70}
+[#....] (0,2,3) (0,4) (1,4) (0,2,4) (1) {29,22,15,4,34}
+[#.#..##.] (0,1,2,3) (1,2,3,4,5,6) (1,5,7) (2,3,6,7) (1,4,7) (0,1,2,5,6,7) {18,36,44,41,15,21,29,17}
+[......#] (0,2,4) (3,5) (1,3,6) (2,3,4,5) (0,1,4,5,6) (0,1,2,3,5) (1,6) {18,30,171,176,158,175,15}
+[.##.#.#.] (0,6,7) (0,5,6) (1,3,4,5,7) (1,4,6) (5,6,7) (3,6) (2,5,7) {170,18,14,10,18,26,207,190}
+[.#.#.] (0,1,2,4) (0,2,3,4) (2,4) {20,17,22,3,22}
+[.###.#..##] (1,6) (0,9) (0,4,5,7,8,9) (4,6,9) (1,2,3,4,5,7,9) (3,6,7,9) (0,3,5,7,9) (0,1,2,4,5,6,8,9) (0,2,4,5,6,7) (0,3,4,5) (4,7) (1,6,8) (0) {71,26,22,19,63,41,53,53,26,61}
+[.#.##.] (1,2,4,5) (1,4,5) (0,2,4,5) (1,3,4) {15,139,35,118,154,36}
+[...###.] (1,2,4,5) (1,4,5,6) (0,5,6) (0,4,5) (3,4,5) (1,2,5,6) (3,4,5,6) (0,2,5,6) (0,1,3,4,5) {46,123,127,34,152,179,36}
+[##..#.#...] (2,4,5,6,7,8,9) (0,2,3,5,6,7,9) (0,1,3,4,5,6,7,9) (1,2,3,4,5,6,7,8,9) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,5,6,7) (1,2,4,6,9) (0,1,2,4,5,7,8) (0,2,3,4,5,6,8,9) (2,8) (0,1,2,3,5,7,8,9) {64,67,73,68,77,93,96,99,51,81}
+[...###..#.] (1,2,4,5,8) (3,4,6,7) (0,1,2,3,6,7) (2,8) (2,6,9) (0,1,2,6,7) (2,4,5,6,8,9) (1,2,5,6,7,9) (1,2,7,8) (0,2,3,5,6,7,8,9) (0,2,3,7) (3,7) {39,30,72,54,35,30,55,66,28,25}
+[..##....#] (1,2,5) (1,2,6,8) (2,4) (0,2,3,5,6,7,8) (1,2,6,7,8) (4,7) (0,1,3,4,5,6,7) (2,3,8) (0,4,8) {22,46,95,37,27,36,47,40,67}
+[....#...#.] (0,1,2,3,4,7,8,9) (1,2,5,7,8,9) (2,4,5,7,9) (0,1,2,3,5,6,7,8) (0,1,4,6,7,8) (0,2,3,4,6,8,9) (0,1,5,6,7,8) (5,6) (0,1,2,3,5,6,8,9) {69,71,61,45,38,50,58,61,85,54}
+[.#.#] (2,3) (1,2) (0,1) (0,3) {31,14,6,23}
+[####.] (1,3) (0,1,4) (2,4) (0,4) {197,207,4,13,201}
+[##.###] (0,1,3,4,5) (1,4,5) (0,1,2) (1,3,4,5) {33,53,13,27,40,40}
+[#####.####] (3,4,6,7,8,9) (1,4,6) (0,3,4,5,6,7,9) (1,6,9) (0,1,2,6,7) (1,2,7,9) (0,1,5,6,8,9) (0,2,4,5,6,7,8) (1,2,6) (0,2,4,5) (0,3,4,9) (2,4,5,8) {77,74,65,34,72,62,103,59,45,69}
+[#.##.] (1,2) (0,2,3,4) (1,2,4) (2,3) (1,3,4) {1,39,31,28,37}
+[##.#] (1,2) (1,3) (2) (0,2,3) (3) (0,3) {10,19,11,39}
+[##.#] (1,2,3) (0,1,3) (0,1,2) (0) (1,2) (2) {33,40,36,23}
+[#...####.#] (1,2,3,6) (1,2,6,7,8) (2,5) (0,2,3,4,5,6,7,8,9) (0,7,8) (0,1,2,3,4,5,7,9) (4) (1,2,3,4,5,6,9) (1,4,5,6,8,9) (2,3,4,5,6,7,8,9) (0,3,4,5,6,7,8) {63,72,78,73,89,91,89,85,85,62}
+[#####.#.] (2,7) (0,6) (3,5,7) (0,1,4,7) (0,1,2,4,5,7) (0,1,2,3,4,6) (1,3,4,5,6) (6,7) (0,1,2,3,4,5) {58,53,40,44,53,48,54,33}
+[##..#.] (1,2,3,4) (4) (2,3,4) (0,3,4,5) (0,2,3,4) (2,4) (0,2,4,5) (0,2,3) {55,3,83,63,91,22}
+[.####.] (0,3,5) (0,1,2,4,5) (2,3) (1,2,3,4) (0,3,4) (0,2,5) {54,8,39,65,28,34}
+[###.#...] (2,3,5,6) (0,1,3,4,5,7) (0,2,5,7) (0,1,3,7) (4) (0,4,5,7) (0,1,2,3,5,6) (4,5,6) (0,3,4,5,6,7) (0,1,3,4,6) {74,34,27,57,60,85,61,53}
+[..##.###..] (0,2,5,6,7,8,9) (1,2,3,4,5,6,7,9) (1,2,3,4,6,7,8,9) (0,1,4,5,6,8) (1,3,4,5) (1,4,5) (1,2,4,7) (0,3,5,7,8) (0,2,5,8) (0,3,9) {52,77,66,62,77,63,54,65,60,50}
+[###.##] (1,5) (0,1,2,5) (0,3,4,5) (0,1,3) (2,3,4,5) {172,166,34,166,30,60}
+[.#.##] (4) (0,3) (1,2,4) (3) (2,4) (1,2,3,4) {14,23,142,50,145}
+[.#.#..#] (2,5) (3,4) (1,2,3,5,6) (0,2,3,4,5) (0,4,5,6) {22,9,22,28,39,42,29}
+[#.#.] (1,2) (0,1) (2,3) (0,1,3) (0,2) {135,33,140,1}
+[#..#.] (0,3) (0,1,3,4) (0,2,4) {40,18,13,27,31}
+[#..###.] (0,1,3,4,6) (3,6) (1,2,3,6) (0,4,5,6) (4,5) {15,25,19,36,15,9,45}
+[###.##] (0,1,3) (0,1,2,4,5) (1,2,3,4) (0,1) (0,2,4) {12,10,15,3,15,7}
+[..#.#] (3) (0,1,2,4) (2,4) (1,3,4) (0,1,3) (2,3) {16,21,44,215,36}
+[#..###] (3,4,5) (0,1,5) (0,2,3,4) (0,3,4) (2,3,4,5) (1,2) (0,4) (0,1) {63,33,44,53,63,24}
+[..#.##] (4,5) (2,4) (0,4) (2,4,5) (1,2,3,4) (3,4) {1,3,19,17,45,13}
+[####..##..] (2,3,5,6,9) (4,8) (0,1,4) (0,3,4,8,9) (8,9) (1,4,9) (1,2,3,5,6,7,8,9) (2,3) (2,3,6,7) (1,2,3,4,5,6,7,8,9) (0,6) (0,3,4,5,7,8,9) (3,4,6) {24,37,44,60,50,32,57,50,44,51}
+[.#.###] (3,4) (0,1,3,4) (0,1,2,5) (0,1,3,4,5) (3,5) (0,4) {20,13,7,23,21,19}
+[......#.] (0,1,2,3,4,6) (6) (1,3,5,6) (0,1,5) (0,1,2,3,5,7) (1,2,4,6) (1,2,7) {10,225,206,17,22,19,45,184}
+[.##.#] (0,1,2,3) (2,4) (1,2,4) {9,199,214,9,205}
+[###.] (1,2) (0) (0,2,3) (1,3) (3) (0,1) {167,28,22,28}
+[#....#.#] (3,4) (0,1,2,4,5,6,7) (1,2,5,6,7) (0,5,7) (3) (3,5) (2,4) {16,202,213,52,36,229,202,210}
+[#...] (1,2,3) (2) (0,2) (0,1,3) (0) {34,22,38,22}
+[.###] (1,2,3) (0,2,3) {0,123,123,123}
+[#...#.] (1,4,5) (1,2,5) (2,3,4) (1,2,3) (0,4,5) {7,16,17,16,10,9}
+[##.######] (0,5) (0,1,2,3,4,5,8) (1,6) (0,1,3,4,5,6,8) (4,6,7) (1,4,5,7) (3,4,5,6,8) (2,5,8) (3,5) {27,35,9,37,35,76,34,15,29}
+[.#####.##] (2,8) (1,3,4,6,7,8) (1,5,7) (3,4,5,6,7) (0,2,3,4,5,6,7) (1,3,4,5,8) (1,3,4) {10,47,11,39,39,33,26,44,22}
+[#####] (3) (1) (4) (1,4) (1,3,4) (2,3) (0,1,3) {12,33,12,36,13}
+[..##.] (0,1,4) (2,3) (0,2,4) (1,3) {17,26,11,20,17}
+[#..###...] (2,6,7,8) (0,2,3,4,6,8) (6,8) (0,3,4,5) (0,3,4,6,7,8) (0,1,2,3,4,5,8) (0,1,2,3,5,6,7,8) (1,6) (1,2) {37,41,57,37,21,26,49,24,53}
+[#..##...#.] (0,3,4,8) (1,2,3,4,6,7,8) (0,1,3,5,6,7,9) (0,1,4,7,9) (7,8,9) (3,4,5,7,8,9) (1,2,3,4,7) (1,2,3,4,5,6,9) {25,214,202,225,223,16,195,221,208,31}
+[.##.#] (1,4) (0,3,4) (2) {19,12,132,19,31}
+[#...#.#] (0,3,4,5) (1,3,6) (2,5) (2,6) (0,1,2,3,4,5) (0,3,6) (1,4) {34,34,32,35,43,28,24}
+[###..#.###] (0,1,2,4,8,9) (0,2,8,9) (2,9) (1,3,4,5,7,8,9) (0,5,6,7) (3,4,6,9) (0,1,2,3,4,6,8,9) (8) (1,2,4,5,6,7,8,9) (0,4,6,8,9) (0,1,3,4,7,8,9) (0,2,3,4,5,7,8,9) (0,1,2,5,7,8,9) {92,70,78,56,93,45,51,56,115,136}
+[..#..#.#.] (0,2,3,7) (7) (0,1,2,5,6) (3,4,5) (0,1,3,5,6,7) (1,6) (3,5,6,8) (1,6,8) (3,5,6,7,8) (2,3,4,7) {33,38,34,79,27,61,65,54,28}
+[..#.#...] (0,2,5,6,7) (2,4) (0,1,3) (1,2,3,4,6,7) (0,2,4,5,6,7) (2,5) (1,3,4,7) {42,40,72,40,54,48,53,66}
+[...#..#..] (3,6) (5,8) (2,4,6) (1,2,4,5,6,7,8) (0,2,6,7,8) (2,7) (1,3,4,5,6,8) (1,5) (0,5) (1,4,5,6,7,8) {37,53,60,30,53,83,86,52,68}
+[...##.#] (0,2,4,5,6) (2,5) (1,3) (0,1,4,5) (0,2) (1,6) (1,4,5,6) {27,34,31,3,35,47,31}
+[######.#.] (0,3,4,5,6,7,8) (0,1,3,5,7) (1,6,7) (1,6) (0,1,2,4,5,7,8) (1,2,3,4,5,7) (1,2,4,6,8) (1,3,4,6) {39,192,137,145,165,144,68,157,42}
+[#####.] (1,2,3,4,5) (4) (0,2) (0,1,5) (1,2) (2,4) (0,1,2,3) {29,34,34,10,14,25}
+[#..#] (0) (1) (1,3) (1,2,3) (2,3) (3) {5,49,24,58}
+[.###.....] (0,1,5) (0,2,3,4,6,8) (2,4,6) (1,2) (0,3,4,7) (5) (0,3,8) (2,3,5,6) (0,1,2,5,6) {33,17,15,20,12,38,14,8,9}
+[#...###.] (0,2,6,7) (0,1,3,6) (1,3,4,5) (0,5,7) (3,4,5,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6) {70,51,32,65,55,50,55,54}
+[..###.#.] (0,5) (2,7) (0,1,3,6,7) (1,4) (0,1,6) (0) (0,1,2) (0,1,2,5,6,7) (1,2,3,7) (5) {54,248,31,23,192,25,33,31}
+[#.##] (0,2,3) (1,2) (0,1,3) (2) {154,152,33,154}
+[###.] (1,3) (2) (2,3) (0,2,3) (0,1,3) (1,2) {23,54,44,51}
+[#..##.#.] (1,4,5,6,7) (0,1,2) (3,4,5) (7) (0,2,5) (1,4) (1,2,3,4,6) (0,4) (0,1,2,4,5) {21,58,40,27,61,36,34,31}
+[#.#..###.#] (0,1,2,3,5,6) (0,1,5,6,7,8,9) (0,2,3,6,7,9) (2,4,5,6,7,8,9) (0,1,3,4,5,6,7,8,9) (6,7) (0,8) (0,7) (0,3,9) (0,2,4,5,7,8) (2,4,7) (5,9) {80,22,34,39,50,48,37,66,61,59}
+[#.#...] (0,1,5) (0,1) (1,2,3,4) (0,3) (0,1,2,5) (0,2) (0,3,4) {61,39,49,46,34,17}
+[##.##.#..] (0,1,3,5,7) (1,2,3,4,5,6,8) (1,2,4,5,8) (0,2,7,8) (4,8) (1,2,3) (0,2,3,4,6,8) {47,63,80,69,45,43,34,33,63}
+[..###.##] (0,1,2,3,4,5) (5,6) (0,2,3,4,5,7) (0,1,6) (0,1,3,4,5,6,7) (0,1,2,3,4,7) {58,52,24,40,40,32,36,32}
+[.#.###] (0,2,3,4,5) (2,3,4) (1,3,4,5) (0,1) (0,1,4) (2,3) {126,131,34,52,162,31}
+[...#...#.] (0,2,4,7,8) (0,1,2,3,4,8) (1,4,5,6) (0,2,3,4) (1,2,5,6) (0,3,5,7,8) (0,1,2,3,4,6,8) (0,3,4,6,7) (0,1,2,3,4,5,6,7) (3,4,5,6,8) (1,3) {90,84,60,121,101,74,94,55,58}
+[#..###..#] (4,8) (0,2,3,4,5,7,8) (1,5) (0,2,3,4,6,7) (1,2,3,4,7) (0,2,3,4,6,7,8) (1,4) (1,2,3,4,5,6,7,8) (5,6) (0,1,2,5,6,7) {51,71,87,80,119,212,211,87,67}
+[##.#.#] (0,2,4,5) (1,5) (2,3,5) (0,3) (0,1,3,5) {25,22,10,31,2,32}
+[...#######] (2,5,7) (5) (0,2,3,5,6,7,8,9) (1,2,3,6,7) (1,2,4,7,8) (0,1,2,4,5,6,7,9) (3,5,6,8,9) (2,9) (0,4,5) (0,6,7,9) (1,2,3,5) {37,28,54,39,17,80,47,53,26,47}
+[#.#..###.] (0,1,8) (2,3,6,8) (1,2,3,5,7) (0,1,2,3,4,5,7) (1,3,4,7) (2,3,4,5) (1,3,4,6) (0,1,2,4,5,7,8) {20,50,40,52,38,38,9,40,8}
+[#.###] (0,1,2,4) (1,2,4) (0,2,3) (0,2,3,4) (0,1,3,4) {26,19,29,22,23}
+[#..#.] (0,2,4) (0,2) (1,2,3) (0,2,3,4) (2,4) (0) {38,15,49,33,27}
+[.##.###..#] (1,2,5,6,7,8) (3,7,8,9) (0,2,4,5) (0,1,6) (1,7) (1,2,3,5,6,7,8,9) (0,2,4,6,8,9) (3,9) (1,2,4,5,6,7,8,9) (0,4,9) {54,59,71,22,57,58,71,45,57,62}
+[#...#] (0,4) (0,2) (0,1,2) (1,3) {40,25,31,6,9}
+[##.##..] (2,4,6) (0,2,4,6) (0,4,5) (0,1,3,4,5) (1,3,4,6) (0,3,5,6) (0,3,5) {54,7,11,34,34,49,21}
+[...#.] (0,1,4) (1,2,3) (1,2) (0,1) {145,172,27,8,143}
+[#.......#.] (0,2,9) (4) (1,2,5,6,8) (1,2,7) (0,2,4,6) (0,5,6,7,8,9) (0,3,5,8,9) (3,6,7,8,9) (0,1,2,5,9) {238,49,63,23,20,238,207,206,223,239}
+[..##.] (2,3) (1,2,3,4) (0,1,2,3,4) (0,1,2,4) {27,29,45,38,29}
+[##.#.] (1,2) (1,2,4) (0,2,3) {4,15,19,4,7}
+[..#.] (2,3) (1) (0) (0,3) {154,8,20,20}
+[.#..###] (1,3,5,6) (2,5) (0,1,2,3,4,5) (0,1,2,4,5,6) (3,4) {193,195,211,184,201,213,21}
+[#.#.] (0,2) (1) (0,2,3) {20,6,20,15}
+[.###] (1,2,3) (0,2,3) {5,0,5,5}
+[##..] (0,1,2) (1,3) (0,1) (1,2,3) (2,3) (0) {12,20,10,27}
+[...#] (0,2,3) (0,1,3) (0,1) {46,29,17,36}
+[...###] (1,2,4) (0,1) (0,1,2,4) (0,3,4,5) (0,1,2,5) (1,3,4,5) (2,3,4,5) {24,22,28,26,33,29}
+[...##.#.#] (2,3,4,6,7,8) (1) (1,2,3,5,6,7,8) (0,1,2,5,6,7,8) (2,6,8) (0,3,4,5,6,8) (1,2,3,5,7) (4,5,6,8) (0,1,5,6,8) (1,4,5,6,8) (1,3,4,6,7,8) {35,48,52,49,48,60,89,36,89}
+[#.####.##.] (1,9) (3,4,8) (0,2,3,4,5,7,8) (0,3,4,5,7,8,9) (2,6,8,9) (0,1,2,3,4,5,6,7) (0,4,6,7) (1,2,3,4,6,8) (0,5,6,9) (0,6,7,9) (3,4,5,8,9) {32,35,28,32,34,19,48,31,22,35}
+[####...] (0,2,3,5) (0,1,3,4,6) (0,1,3,4,5,6) (4,5,6) (2,3) (0,1,2,3) {199,27,201,210,15,183,15}
+[..##..] (0,2,3,4) (0,1,2) (0,1,3) (1,3) (1,2,3) (2,3,5) {136,35,140,152,118,2}
+[#..###.] (2,3) (0,5,6) (1,4,5,6) (0,1,2,6) (1,2,5,6) {32,38,49,16,5,40,55}
+[#...###..] (0,1,5,6,7,8) (1,3,5) (0,2,3,4,5,6) (0,2,3,4,5,7,8) (2,4,7) (2,4,5,7,8) (1,3,4) (0,1,2,4,5,6,7) (3,6,7,8) {44,54,43,75,57,76,49,61,54}
+[##..#] (0,1,4) (2,3,4) (0,1,2,3) (0,1,3,4) {9,9,4,4,11}
+[###.#] (0,2,3) (0,1,2,4) (2,3,4) {129,109,134,25,114}
+[#..#.##] (0,1,2,3) (1,3,4,6) (1,3,5,6) (0,5,6) (0,2,3,5,6) (4,5) {29,16,11,20,20,45,31}
+[#.#.#] (2) (0) (0,2,3) (0,1,3) (1,2) (0,3) (0,1,4) {45,33,35,34,10}
+[.#..##..] (0,1,3) (3) (5,6,7) (0,4,5,7) (2) (0,4,6,7) (0,1,2,3,5,6,7) {46,10,8,17,36,44,42,61}
+[.#..####.] (1,4,7,8) (2,5,7) (0,1,2,3,4,5,6,7) (0,1,2,5,6,7,8) (2,5,6) (0,2,3,4,5,6,8) (0,3,4,6) (1,6) (0,1,2,3,5,6,8) (0,3,4,5) {230,206,215,83,74,235,248,178,176}
+[.###] (0,1,3) (0,1) (0,2) {152,29,123,16}
+[#..#.] (0,1,4) (2,3) (0,3) {7,7,20,20,7}
+[##.#.#...#] (0,2,4,5,6,7,8,9) (3,4) (0,1,2,4,6,8) (2,4,6,8) (0,2,3,4,5,6,7,8) (4,5) (2,3,6,7,8,9) (3,7,9) (0,1,3,4,5,7,9) (0,1,2,5,6,8,9) (0,5) (2,6) {53,19,47,37,50,50,47,49,44,49}
+[.#..##.##] (3,5,7,8) (1,3,4,5,7) (2,5,7,8) (1,2,3) (3,4,6,8) (0,2,3,4,6,8) (4,8) (1,6,8) {14,17,41,45,22,37,28,37,68}
+[#...##] (1,3) (1,2) (0,3) (0,1,2,5) (0,3,4,5) (0,1,3,4,5) {22,37,20,27,10,15}
+[#.##.##..#] (0,1,2,5,6,7) (1,2,4,5,8,9) (2,7) (2,4,9) (1,2,3,4,5,6,7,9) (0,1,2,4,5,7,8,9) (5,8,9) (0,1,4,7) (0,1,3,4,5,8,9) (0,2,3,6,7,8) {58,58,75,30,69,55,17,68,62,66}
+[.#....] (0,2,3,4) (0,2,3,5) (1,2,5) (0,1,2,4) (4,5) (2,5) (1,4) (2,3,5) {47,35,86,36,50,75}
+[#.#.#..] (0,4) (0,2,3,4) (1,5) (0,2,4,5,6) (0,1,3,5,6) (3,4,5,6) (2,3,6) (0,1) {216,21,211,46,229,222,222}
+[.#..#] (0,3) (2) (0) (0,2,4) (1,4) (3,4) {26,6,30,19,32}
+[#..##] (0,3) (2,3) (0) (0,3,4) (0,4) (1,2) {32,17,37,28,12}
+[#......##.] (4,7,8) (2,5,8,9) (1,3,5,6,9) (0,1,3) (0,1,3,5,6,7,8,9) (0,3,7,8,9) (1,3,4,5,6,7,8) (0,1,2,5,8) {50,62,25,57,6,59,34,28,53,49}
+[.#...] (0,1) (2,3) (1,2,3) (0,3) (1,4) {21,13,9,21,1}
+[.#..##] (0,3,4) (1,3,4,5) (2,3) (1,4,5) {1,19,2,11,20,19}
+[.###.#] (1,2) (0,1,2,3) (0) (0,1) (5) (1,2,3,4,5) (0,1,2,4) {31,46,28,20,20,31}
+[.##.#....] (2,3,5,6,7) (0,2,3,5,7) (0,1,4,5,8) (1,2,4,5,6,7,8) (4,6,8) (1,2) (0,3,4,6,7,8) (0,2,3,6,8) (1,2,4,6,7) (0,1,2,4,5,6,8) {44,161,169,27,174,37,182,146,63}
+[.##.###] (1,2,6) (0,2,3) (0,1,2,3,6) (1,2,3,4,5) (0,1,2,5,6) (0,1,3,5,6) (0,1,4,6) (1,3,4,5) {194,48,197,188,8,18,44}
+[#..###..#.] (1,3,7,8,9) (0,1,2,3,5,8,9) (0,2,4,8,9) (1,2,6,7,8) (0,1,2,3,5,6) (5,6,7) (2,7,9) (0,1,2,3,5,6,7,8) (2,6,8) (0,2,5,6,7,9) (1,3,4,7,8,9) (0,4,5,7,8,9) (1,2,3,4,7,8) {211,64,249,58,32,206,206,228,85,225}
+[#.#.#...#.] (7,8) (0,1,3,5,6,7,8,9) (0,1,2,3,4,5) (0,1,3,5,7,9) (2,3,6,7,9) (3,6,8) (1,2,4,5,7,8,9) (2,6,8,9) (1,4,5,6,8,9) (0,1,2,3,4,5,7,8,9) (2,4,6,7) {70,102,91,94,83,102,90,110,115,110}
+[#.##] (0,1,2,3) (0,2,3) (0,1) {41,21,38,38}
+[###.] (1,3) (0,1,2) {11,27,11,16}
+[##....] (1,2,4,5) (1,2,5) (0,1,2,3,5) (0,1,3,4) (1,4) (0,2) (0,3,5) (0,2,3,4,5) {190,63,182,47,41,54}
+[####.#....] (0,3,5,7,9) (0,1,2,3,4,5,6,8) (0,2,4,5,6,7,8,9) (4,5,6,9) (0,2,5,7,8) (0,2,5,6,7,8,9) (3,4) (1,2,5,7,8) (1,2,7,9) (1,2,5,6,7) (3,8,9) {50,163,190,40,46,190,62,173,163,44}
+[##..] (1,2) (0,1) (1,3) (0,3) (1) (0) {127,137,6,9}
+[.###..] (0,1,4,5) (3,4) (0,1,2,5) (1,2,3) (2,5) (0,1,2,3,4) {52,59,60,40,48,50}
+[#....#.#] (0,2,3,5,6) (1,5,7) (1,2,4,5,7) (0,5,7) (0,2,6,7) (0,2,3,4,5) {20,27,30,14,18,43,12,33}
+[.#.#..] (1,3,4) (2,5) (0,1,2,3) (1,2,3,5) (2,3,4,5) (1,3) (0,1,3,4) {26,65,52,83,57,46}
+[####.#.#] (1,4) (1,2,4,5,6,7) (2,3,5,6,7) (0,3,4,5) (0,5,6,7) (0,1,4,5,6,7) (1,3,6) (1,2) (0,2,5) (2) {48,64,63,27,63,73,51,50}
+[#..##..] (0,1,2,3,4,6) (1,2) (0,1,2,5,6) (2,3) (1,2,6) {21,46,62,34,18,3,36}
+[..##....##] (0) (3,4,5,6,7,9) (0,2,3,4,6,7,8,9) (3,4,5,6,9) (0,4,6) (2,3,6,9) (2,5,6,8) (0,2,4,8) (0,1,3,5,7,8,9) (1,2,3,5,8,9) {69,29,71,77,62,71,83,28,71,77}
+[##..#...##] (0,2,3,7,8,9) (0,1,2,3,6,7,8,9) (0,1,6,7) (2,3,4,5,6,7,9) (0,1,2,3,4,5,6,7,9) (0,1,2,3,4,5,7,8) (2,5,7) (3,5) (2,4,5,6,8,9) {47,37,64,61,51,60,38,61,38,43}
+[##.#....] (0,4,5,6,7) (1,3,4,5) (3,7) (0,1,2,3,6) (1,3,4) (2,7) (0,2,3,4,5,7) (0,2,4,7) {168,16,53,36,152,142,149,181}
+[#..#.##] (0,2,3,6) (0,1,2,3,4,5) (0,1,2,3,5) (0,1) (0,1,2,4,5,6) (0,3,4,5,6) (1,5,6) (0,1,2,3,5,6) {232,205,207,220,176,208,45}
+[..###..] (1,2,3,4,6) (0,1,4,5) (0,1,2,3,4,6) (0,5,6) (0,1,6) (0,3,4) (2,3) (0,2,4,5,6) {250,38,208,34,214,212,228}
+[.#.#.###] (0,2,3,5) (3,5,6) (0,2,4,5,6) (0,2,6,7) (0,1,2,3,4,7) (0,2,4,5) (3,4,5,6,7) (1,6) {51,37,51,167,176,166,185,171}
+[.#.##.##.] (2,3,4,5,6,7,8) (1,8) (1,2,4,5,8) (0,1,6,7) (0,1,3,4,5,6,7) (0,1,2,3,4,6,7) (1,2,4,5) {32,74,32,24,51,49,35,35,38}
+[##...##] (0,3) (0,1,4,6) (1,5) (0,1,2,5,6) (0,3,5,6) (2,5) (2,5,6) {138,138,37,12,107,50,140}
+[###..####] (0,1,3,5,7,8) (0,3,4,7,8) (1,7,8) (2,3,4,5,7,8) (0,1,2,8) (1,4,7) (2,5,7) (0,1,3,4,5,6,7) (1,3,7) (0,1,3,6,7,8) (6) {51,191,42,63,140,42,43,199,55}
+[#####....] (0,3,6,8) (0,2,3,4,5,6) (1,4,5,8) (6,8) (0,1,3,5,7,8) (0,1,4,5,6,7,8) (1,3,5,6,7) (0,1,2,3,4,6,8) (2,5) {56,253,31,241,39,250,240,234,56}
+[..###..#] (0,5) (0,3,4,7) (3,5,6) (0,1,2,4,5,7) (1,2,7) (2,4) (1,3,6,7) {55,24,38,38,53,51,18,44}
+[..#.##.#] (0,2,3,4,5,6) (2,3,4,6) (1,3,5,6) (0,1,4,7) (1,3,5,6,7) (4) (0,1,2,3,4,7) (0,1,2,4,6,7) (0,3,4,6) {46,58,43,76,80,40,62,49}
+[##...#] (1,3) (0,3,4,5) (0,1) (1,2,3,4) (0,1,5) {15,22,5,13,8,9}
+[.....##] (0,3,4,5,6) (5,6) (2,3,4,6) (0,1,3) (0,4,6) (0,2,4) (0,2,4,5,6) (0,1,4,6) {50,15,23,33,47,23,35}
+[....##.##] (0,1,2,3,5,6,7) (0,3,5,6) (1,2,3,4,6,8) (0,2,3,4,8) (0,4,6,7) (0,1,2,4,6,7,8) (0,2,5) (0,1,2,6,8) (3,7) (0,1,2,3,5,6,7,8) (0,1,3,5,6,8) {213,162,173,173,41,165,184,152,57}
+[.#..#.#..] (2,5) (0,2,3,4,5,7) (0,3,5,6,7,8) (0,1,7,8) (0,1,4,6) (0,6,8) (0,1,2,3,7) (0,2,4,5,6,7,8) {74,9,44,36,36,52,51,50,47}
+[##..#.] (0,2,3,4) (1,2) (0,1,2,3) (1,3,5) (0,2,4) (0,1,5) {131,157,46,36,13,124}
+[.#..##.] (0,1,2,4) (5,6) (3,6) (0,1,6) (1,2,5) (1,6) (0,1,3,6) {167,187,169,13,154,23,34}
+[..#..#] (1,2,3,5) (0,1,3) (0,1,2,3,5) (4,5) (0,2,5) (1,2,3,4) {8,19,24,19,13,19}
+[#....#] (1,2,3,4,5) (2,5) (0,1,2,3,4) (1,3,5) {114,127,139,127,127,25}
+[.###.] (0,2,3) (0,1,3) (1,3,4) (0,1,4) (0,1,2,4) (0,3) (0,3,4) {64,44,14,46,51}
+[.#.##] (1,2,3) (0,4) (2,3,4) (1,2) {17,31,42,22,28}
+[.###.#] (0,2,3,5) (4) (2,4) (1,4,5) (2,3,4) {17,16,41,21,239,33}
+[#..##.] (0,1,2) (0,1,3,5) (1,3,4,5) (0,2,4,5) {30,23,20,13,13,23}
+[...#..#..#] (1,7) (0,6,7,9) (1,4,7) (2,6) (0,1,6,8,9) (0,3,7) (5,7,8,9) (1,2,3,4,6,7,8) (8,9) {10,40,33,27,26,5,34,53,27,9}
+[..#....#] (0,1,4,6,7) (0,1,2,3,4,6) (2,7) (0,1,2,3,4,5) (3,7) (3,4,5,7) (0,1,2,4,5,7) (0,4,6,7) {57,46,46,40,64,23,41,88}
+[#.#..##] (1,3,6) (4,5) (1,2) (1,2,4,5) (0,1,4,5,6) (0,1) (3) (1,2,4) (1,5) {21,73,20,28,28,36,19}
+[.#.#.] (0,1,2,4) (0,1) (0,1,3) (3) (1,2,4) (0,3) (0,2,4) {54,59,37,29,37}
+[###.##..#] (0,1,2,3,5,6,8) (0,1,2) (0,4) (3,4,5,6,7,8) (4,5) (0,4,6,8) (0,1,4,5,6,7,8) (0,1,2,4,5,8) (4,8) {51,38,27,23,67,40,38,31,61}
+[.##.##] (0,4,5) (3,4,5) (4,5) (1,2,3,4) (0,1,3,4) (0,1,3,4,5) {173,167,5,179,194,35}
+[.#.######.] (0,1,3,4,6,8,9) (0,1,2,3,4,5,7,8,9) (2,3,4,8) (2,6,9) (1,7,9) (4,5,7) (0,3,4,5,6,7,8) (7) {19,20,18,26,26,10,22,23,26,27}
+[##.....#.#] (0,1,3,4,5,6,7,8,9) (0,7,8,9) (0,7) (1,2,5) (0,1,2,3,4,6,7,8,9) (5,8) (1,9) (6,7,9) {59,32,19,29,29,24,31,61,56,49}
+[....###] (1,2,3,4,5,6) (4,5) (0,2,3,5,6) (0,1,3,4,5) (1,2,3,4,6) (4,5,6) {11,26,15,26,55,46,29}
+[#.####] (0,1,2,4,5) (1,4,5) (1,2,3,5) (2,5) {8,34,22,10,24,38}
diff --git a/day-10_test.txt b/day-10_test.txt
new file mode 100644 (file)
index 0000000..dd91d7b
--- /dev/null
@@ -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}