diff --git a/AdventOfCode2025/AdventOfCode2025.csproj b/AdventOfCode2025/AdventOfCode2025.csproj
index 28be7fa..c43c780 100644
--- a/AdventOfCode2025/AdventOfCode2025.csproj
+++ b/AdventOfCode2025/AdventOfCode2025.csproj
@@ -8,4 +8,17 @@
AdventOfCode2025
+
+
+ Day10.cs
+
+
+ Day10.cs
+
+
+
+
+
+
+
diff --git a/AdventOfCode2025/Inputs/Day10_0.txt b/AdventOfCode2025/Inputs/Day10_0.txt
new file mode 100644
index 0000000..3a9b1fe
--- /dev/null
+++ b/AdventOfCode2025/Inputs/Day10_0.txt
@@ -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}
\ No newline at end of file
diff --git a/AdventOfCode2025/Inputs/Day10_1.txt b/AdventOfCode2025/Inputs/Day10_1.txt
new file mode 100644
index 0000000..e262f76
--- /dev/null
+++ b/AdventOfCode2025/Inputs/Day10_1.txt
@@ -0,0 +1,156 @@
+[.#...#...#] (3,5,7,8) (0,3,4) (0,1,2,3,4,7,9) (0,1,3,4,6,7,9) (1,4,5,6,8) (0,1,6,9) (0,2,3,4,5,7,8,9) (1,2,5,6,7,9) (0,2,3,5,6,7,8,9) (0,2,3,4,5,7,8) {46,36,54,60,41,78,47,75,59,57}
+[.#...#.] (0,1,2,3,4) (0,1,2,3,4,5) (3,5,6) (0,2,4,5) (1,2,5) (3) (0,3,4,5,6) (1,2,4,6) {48,163,178,40,179,32,133}
+[##.##.###] (0,1,3,4,6,7,8) (1,4) (1,2,3,5) (3,7) (0,3,4,7) (0,3,8) (1,5,7) (1,2,3,4,5,6,7,8) {29,156,20,68,149,33,23,61,43}
+[.###.] (1,2,4) (0,2,4) (0,1,3,4) (2,4) {23,23,40,3,43}
+[...####.#.] (1,3,5,9) (0,1,2,3,5,6,7,8,9) (1,2,4,8) (4,6,8,9) (1,2,7) (1,2,7,9) (2,6) (9) (0,2,3,6,7,8,9) (0,1,4,5,6,7) (2,3,5,6,7,8) (2,3,4,5,7,8,9) (4,5,8) {18,56,78,48,75,58,55,52,83,73}
+[..#..###] (0,1,2,3,6) (1) (0,1,2,3,4,7) (3,6) (3,5,6) (0,1,3,5,7) (1,3,5,6) {41,47,33,69,13,24,48,21}
+[##.####...] (3,8) (1,5,7) (1,4,7,8,9) (0,2,3) (0,3,4,7,8,9) (1,2,4,5,6,7,8,9) (0,2,3,4,5,8,9) (0,1,3,4,7) (1,4) {31,56,25,36,50,41,11,48,30,25}
+[#....#..#] (0,1,2,3,4,7) (4,5,8) (1,3) (1,2,8) (2,8) (0,4) (1,2,3,4,5,6,8) (0,2,3,6) (2,3,5,6,7) {28,40,41,45,39,22,21,16,26}
+[.#.#] (0,1,2) (0,2,3) (2,3) (1,3) {12,0,12,12}
+[#...#.] (1,3,4,5) (0,2,3,5) (0,1,2,4) (1,4,5) (1,2,3) {156,17,167,169,6,162}
+[.##..] (0,1) (2,3) (0,1,2,4) (0,2,3,4) (1,2) (0,4) {36,23,36,21,28}
+[.###] (0,1,2) (1,2) (2,3) (0,3) {16,11,13,9}
+[####..#.#] (1) (0,4,6) (0,2,8) (1,8) (0,4,6,8) (0,2,4,5,6,7) (0,1,3,7) (0,1,2,3,4,6,7) (4,5,6,7) (1,2,6,7) {67,51,52,21,62,30,70,59,28}
+[.####] (0,2) (0,2,4) (1,2,3) (1,2,3,4) {187,8,195,8,6}
+[###..#] (1,2,4) (0,1,2,5) (1,2,3,5) (0,2,4,5) {31,167,186,146,28,177}
+[##....#] (0,1,3,4,5,6) (0,1,3,5) (1,2,4) (1,2,3,5,6) (0,2) (1,5) {41,46,44,31,24,32,20}
+[#.#.] (1,2) (1,3) (2,3) (2) (0,3) (0,1,2) {20,51,60,38}
+[#.##..####] (0,2,3,4,5,6,7,9) (1,3) (1,2,3,4,6,7) (2,4) (0,2,4,5,6,9) (4,5,8) (0,3,4,9) (0,1,3,6,7,9) (0,1,4,7,8,9) (1,2,4,6,8) {48,58,62,58,83,12,67,41,21,48}
+[..##] (2,3) (1,2,3) (3) (0,1,3) (0,1) {18,37,37,41}
+[##.#.##.] (0,1,3,4,7) (0,6,7) (3,6) (0,1,2,3,4) (3,4) (0,1,2,3,5,6,7) {211,199,196,234,30,185,216,200}
+[#...#.##] (1,4) (1,2,3,4,6,7) (0,3,4,5,7) (2,5) (0,1,2,4,6) (5) (1,4,5,7) (2,3,4,7) (1,5,6) {15,54,49,34,60,70,33,47}
+[.#.#] (0,2,3) (1,3) {20,12,20,32}
+[#..#.] (4) (0,3) (1,2) (0,2) (0,2,3) (2) {21,13,48,4,9}
+[.######] (2,5) (0,2,3,5) (0,5,6) (4) (0,1,6) {45,18,22,9,18,40,36}
+[##..#.#.#] (3,7) (1,5) (2,3) (0,1,2,3,4,6,8) (0,1,2,3,4,5,8) (6,8) (0,8) (1,2,8) (1,4,5) (0,1,3,5,6,7,8) (1,2,3,4,5,6,7) {37,61,43,33,21,30,26,7,55}
+[#.##] (1,2,3) (0,1,2) (0,2,3) {18,2,18,16}
+[...#] (0,1,3) (0) (0,1) (0,1,2) {46,34,8,15}
+[.###..#.] (0,1,2,3,4,5) (4,7) (5,6) (1,2,3,5,6,7) (0,2,4,7) (1,2,3,6,7) (0,2,5,7) (1,2,3,4,6) (3,4,6,7) (0,2,3,4,7) {29,24,52,165,163,42,163,190}
+[.#.###] (0,1,3,4,5) (3,4,5) (0,2) (1,4,5) (0,2,3) (1,2,4,5) {48,30,31,45,44,44}
+[.....#...] (2,3,5) (1,2,3,5,7) (4) (0,3,4,6,7,8) (0,1,4,5,6,7) (4,5,6,7,8) (0,3,6,8) (0,1,3,4,6,7,8) (0,1,6,8) (1,2,5,8) (5) {63,64,34,57,217,221,225,221,225}
+[#.#.#####] (4,5) (2,4,6,7,8) (3,5,6,8) (1,3,4,7,8) (0,2,4,5,6,7,8) (1,2,3,5,6,7,8) (1,8) (0,2,3,4,5) (0,6,8) {34,15,58,37,54,58,53,45,56}
+[.#..#.] (3) (1,2,3,5) (0,4) (1,2,3) (0,2,4,5) (3,4) (0,1) (0,1,3,4) {190,199,34,195,185,18}
+[##..#.###] (1,2,3,5,6,7) (4,6,8) (3,6,7) (3,5,6) (0,2,4,6,7,8) (0,5,6,7,8) (1,2,5) (0,1,2,4,6,8) (1,2,3,6,8) (0,6,7) {54,41,60,49,46,39,113,59,64}
+[##.#####.#] (1,3,4,5,6,7,8,9) (4,6,7,8,9) (1,2,4,6) (0,3,4,6) (0,2,4,5,6,8) (0,1,2,5,8,9) (0,2,4,9) (0,1,4,5) {199,27,185,28,209,39,57,19,48,184}
+[##..] (0) (0,3) (1,2) (1,2,3) (0,2,3) (0,1) {37,28,14,25}
+[.....##..#] (0,1,3,4,5,7,8,9) (7) (0,2,4,8,9) (0,1,2,5,6,7) (0,1) (0,4,5,9) (6,9) (1,3,5,6,7,8,9) (0,1,2,5,7,9) (2,6) {39,38,37,7,8,34,46,44,8,50}
+[.###.####.] (0,1,2,3,4,5,7,8,9) (4,9) (1,2,5,7,9) (0,1,2,3,5,6,7,8,9) (0,2,4,6,8,9) (2,3,4,6,9) (3,7,9) (8) (3,8) (0,1,4,5,6,7,8,9) (1,5,8) (0,1,3,4,5,8,9) {37,40,38,45,42,40,32,32,63,72}
+[...#.#] (3,5) (0,1,2,5) (1,2) (0,3,4) {12,14,14,10,2,18}
+[.###.] (0,2,4) (0,4) (2,3,4) (0,3) (1,2,3) {11,5,30,29,25}
+[.#..#] (3) (1,3,4) (1) (2,4) (0,3) (0,2) (1,2,3,4) {28,25,43,31,29}
+[##.##.] (0,1,3,4) (2,3,4) (0,1,4,5) (0,2,4,5) (0,1,2,3) (2) (1,3,5) (1) {41,54,43,59,36,17}
+[#.....#] (0,1,3,6) (1,2,3,5) (0,1,2) (0,3,4,5,6) (0,4) {158,34,22,43,142,31,25}
+[.#.#..#.] (0,1,2,4,6,7) (0,1,2,3,4,5) (1,5) (0,1,3,5,6,7) (0,1,2,3,4,5,7) (1,3,6,7) {207,233,190,213,190,221,29,40}
+[.#.##] (0) (0,1) (1,2,3) (1,2,4) (2,4) {120,34,41,9,32}
+[.#.#..##.] (1,2,4,6) (0,1,2,3,6,7,8) (2,3) (1,2,3,4,6,8) (0,7,8) (1,2,5,8) (0,2,5,6,8) {24,18,36,21,12,8,26,16,29}
+[#..###.] (1,2,3,4,5,6) (0,2,4) (0,1,2,4) (3,5,6) (0,2,3,4,5,6) (0,3,5,6) (0,1,2,3,5,6) (4) (0,1,2,3,5) {77,44,66,199,46,199,190}
+[...##..##] (1,2,3,5,6) (0,1,3,4,5,7) (1,2,3,4,5,7,8) (1,2,3,6,8) (0,1,6,7,8) (0,1,2,3,4,5,7) (0,2,3,4,8) (0,1) (1,2,3,4,5,7) (0,3,4,5,6) {75,122,93,109,78,80,57,77,68}
+[.######.] (0,3) (0,3,4,5,7) (0,2,4,7) (2,3,5,7) (2,4) (0,1,2,3,4,7) (1,5,6) (5,6,7) {69,29,62,61,67,57,30,83}
+[##.#.#.#.#] (0,3,4,6,7,8,9) (0,4,5,6,7) (2,4,6) (0,3,5,6) (1,4,5,9) (0,2,3,4,5,6,7,9) (3,5,8) (0,1,2,3,5,6,7,8,9) (1,5) (0,1,2,5,6,7,8,9) (4,8,9) {75,55,56,57,75,97,92,67,89,81}
+[##...] (3) (2,3) (3,4) (0,1,2) (0,3) (1,4) (0,1,4) {25,31,36,35,20}
+[.####...] (1,2,3,4,5,7) (1,4,5,6) (1,7) (1,5,6) (0,2,4,6) (0,3,4) (0,2,4,5,6) (2,5,6,7) (2,3,4,5,6,7) {37,56,77,44,75,87,79,68}
+[..###.#] (1,2,4) (0,1,5) (1,3,5,6) (2,3,4,6) (0,2) (0,2,3,4,5,6) {193,41,194,36,35,47,36}
+[.####.##.] (0,1,4,5,6,8) (0,1,3,4,8) (2,6,7) (2,3,4,5,6,7,8) (0,3,5,6,8) (0,1,2,3,4,6,7,8) (1,3,5,6,8) {37,29,6,39,17,42,48,6,49}
+[.###.] (1,2) (0,1,3) (0,1) (0,1,4) {27,44,17,12,11}
+[#..###..] (1,2,4,6,7) (0,1,4,7) (0,4,5) (0,5,7) (0,2,3,4,5,6) (0,1,3,5,6) (0,3,4,5,6) (2,4,6,7) (0,1,3,4,5,7) (3,7) {64,50,26,50,55,64,42,58}
+[.####.#] (3,5,6) (0,1,4,6) (0,1,2,5,6) (2,4,6) (2,3,4) (0,1,3,4,6) (1) (0,1,2,3) {35,39,33,29,32,5,30}
+[..#######.] (0,1,2,4,5,6,7,8) (3,4,6,8,9) (0,2,3,4,6,7,8,9) (0,1,3,7,9) (0,2,3,4,5,6,7,8) (0,2,4,5,6,7,8,9) (0,1,3,4,6,7,8) (3,5,8) (2,5,6,8) (0,1,2,3,5,6,9) (0,1,4,5,7,9) {63,45,22,67,61,46,45,62,60,57}
+[##.#.] (1,2,4) (0,1,3) (0,1,4) {20,190,170,13,177}
+[####..#.##] (1,4,8) (0,1,3,4,5,6,7,8) (1,3,4,9) (0,1,2,3,7,9) (1,3,4,6,7,8,9) (0,2,4,5,6,8) (0,3,4,5,9) (2,6,7) (0,1,2,4,5,6,7,8,9) (0,1,5) (1,2,8) (8) (2,3,4,5,6,7,8,9) {69,258,242,57,90,67,71,74,262,61}
+[##.#] (0,1) (0,3) (2,3) (1,2,3) {33,27,21,37}
+[#...###.##] (0,1,2,5,8,9) (5,6) (2,3,4,5,7) (3,4,8) (1,4,6,7,8) (1,6,8) (0,1,2,5,6,7,8) (1,2,4,5,7,9) (3,7,9) (2,8) (1,5,8) (0,1,2,3,4,5,6,8,9) (0,4,5,7,9) {71,97,88,63,90,129,70,78,125,64}
+[..##.##.#.] (0,1,2,4,5,6,8,9) (1,2,3,4,5,6,7,9) (0,1,2,5,6,7,8,9) (0,1,2,3,5,8,9) (1,2,7,8) (0,6) (0,1,3,4,5,6,7,8) (0,3,4,5,7,9) (2,9) {79,74,70,46,50,78,52,64,71,74}
+[.#..#...##] (1,3,6,9) (1,3,5,6,7,8,9) (2,3,4,5,7,8,9) (1,3,4,7,9) (1,2,3,4,5,6,9) (0,1,2,3,7,9) (3,6,9) (0,1,2,5,6,8,9) {12,179,160,196,149,168,187,29,24,200}
+[##.###...] (4,5,7,8) (0,4,6,7,8) (3,4,7,8) (1,2,3,6,7,8) (2,3,5,6,7,8) (0,2,6) (0,1,2,5,6,7) (0,1,2,3,7,8) (1,4,5,7) (1,2) {38,38,49,37,47,40,37,76,60}
+[.#.###] (0,1,3,5) (0,4) (2,3) (1,4) (2,3,4) {16,18,13,20,22,7}
+[....#..#] (1,2) (0,2,3,5) (4,7) (3,5,6) (0,7) (0,2,4,5,6,7) (1,2,3,4,5,6,7) (3,4,5,6,7) {27,8,21,31,171,42,40,185}
+[####] (1,2) (1,3) (0,1,2,3) {13,40,21,32}
+[#.#.] (3) (0,2) (0) (0,3) (0,1) (1,3) {51,6,18,31}
+[#.#.####..] (0,2,3,4,9) (1,5,9) (0,2,4,6) (3,5) (0,1,3,7,8,9) (2,5,6) (1,3,4,5,6,8,9) (2,3,7,8) (0,1,4,6,7,8) {48,39,41,65,53,38,40,22,40,54}
+[.#...##] (0,2,6) (0,1,2,4,5) (0,3,4,6) (2,3,4,5,6) (1,2,3,4,5) (2,3,4,6) (1,5,6) {188,50,227,45,61,54,210}
+[.#.#] (1,3) (2,3) (0,2) (0,3) (1) {22,26,21,16}
+[#...##.#.] (0,1,4,8) (1,2,5,6,7) (0,3,4,5,6,8) (1,2,3,7,8) (0,1,2,3,4,5,6,7) (0,6,7,8) (0,1,2,3,4) (1,3,4,5,6,7,8) (4,5,6,8) {42,28,19,20,28,8,25,25,34}
+[....#..#] (1,2,4,6) (1,2,3,5,6,7) (1,3) (0,1,3,4,5,6) (0,2,4,7) (1,2,4,5) (0,1,3,7) (0,1,2,3,4,5,6) (4,5,6,7) {28,193,172,188,18,168,169,174}
+[#..#.##] (0,1,2,3,6) (1,2,4) (3,4,6) (0,1,2,4,5,6) (1,2,5) (0,1,5) (0,1,4,5) (1,2,3,4,6) (0,1,2,3,5,6) {23,44,32,31,49,25,42}
+[#...#...#.] (0,1,3,5,7,8) (0,2,5,6,7,9) (0,1,3,6,7,9) (0,1,2,8) (0,4,8) (1,2,3,5,6) (0,1,2,4,5,6) (6,7,8) (2,9) (0,1,2,3,4,5,9) (7,9) {31,34,22,33,4,20,37,40,5,42}
+[#.#.#.#.] (0,1,5,6,7) (0,5) (0,2,4,5,6,7) (0,2,6,7) (1,2,7) (0,5,6) (0,1,2,3,4,5) (3,4,5,7) {74,43,50,18,36,73,63,65}
+[#..###..#.] (0,1,5,8) (2,3,4,5,7) (0,4,6,9) (7) (0,3,4,7,8,9) (0,2,3,4,9) (0,2,4,5,6,7,8,9) (3,4) (0,1,3,5,6,7,8,9) {41,11,23,37,40,25,21,50,26,39}
+[..#...#..] (1,2,4,5) (2,3,4,5,6,8) (4,8) (0,1,2,4,5,6,7,8) (6,7,8) (0,3,7) (1,2,4,5,6,7,8) (2,6,7,8) (1,2,3,4,5,6,8) (0,1,4,5,7,8) {20,23,31,18,37,23,42,62,58}
+[.#..##] (0,2,4,5) (0,5) (1,3,5) (2,4,5) (1,2,5) (0,1,4) (1,2,3,4) (1,2,4,5) {28,173,163,15,156,176}
+[..##.#.] (3,5) (1,6) (1,4,5) (2,3,5) (0,1,2,4,5) (0,3,4,5,6) (0,1,6) (0,2,3,4,6) {192,198,29,36,34,55,180}
+[.#...] (0,2,3,4) (3) (2,4) (2,3,4) (0,1,3) {20,5,23,39,23}
+[.###.#.#.] (0,1,2,4,5,6,7) (0,1,5,6,8) (3,5,7,8) (1,2,4,8) (0,1,5,8) (2,3,4,7) (3,4,5,6,8) (0,1,2,3,4,6,7,8) {33,46,30,38,48,61,34,28,67}
+[#.#.] (0,2) (0,1,3) {20,15,5,15}
+[##.#] (1) (0,1) (0,2,3) (0,2) (1,3) (0) {175,26,160,156}
+[#.#...] (0,1,2,5) (0,1,2,4,5) (1,3,4) (2,5) (0,1,2,3) (1) (1,4) {32,64,38,23,33,27}
+[##..###] (0,1,2,4,5,6) (0,4,6) (0,1,2,3,4) (3,5) (0,2,3,4,5) (1,5,6) (1,6) {38,43,36,32,38,58,40}
+[#...#...#.] (1,4,6,8,9) (0,1,2,3,8,9) (4,7,8) (1,2,3,5,7) (0,1,2,4,6,7,8) (0,4,6,9) (1,5,8) (1,2,3,5,6,7,8) (0,1,2,3,4,5,8,9) (0,1,2,3,4,5,7,8,9) (1,2,3,5,6,7,8,9) (1,3,8,9) {222,258,228,230,246,216,68,67,272,243}
+[.#.#] (1,3) (0,2) {0,181,0,181}
+[#...#..] (0,1,3,5) (0,2,3,4) (1,2,3,4,5,6) (1,3,5,6) (0,2,3,6) {34,20,19,39,19,20,5}
+[..##..#] (2,3,6) (4,5) (0,2,4,5) (0,1,2,3,5) (0,6) (0,1,3,4) (1,2,3,5) (0,1,3,5) (1,5,6) {63,81,46,70,29,86,31}
+[#.##] (1,2,3) (0,2,3) {8,11,19,19}
+[..#.#.] (0,1) (0,2,4,5) (2,4) (0,1,2,3) (1,2) {33,34,47,7,20,19}
+[##...####.] (0,6,8) (1,3,4,5,6,8,9) (0,1,2,3,4,5,7,8,9) (1,5,7) (2,5,7) (1,2,4,5,6,7,8) (6,7,8,9) (3,4,6,8) {19,41,30,162,166,51,157,39,173,36}
+[...##.] (0,3,5) (0,1,3,5) (0,2) (5) (0,2,3,4,5) (3) (0,1,2,4,5) (3,4,5) {60,7,37,242,24,49}
+[#..#.###.] (0,3,5,6,7) (0,1,2,3,5,7,8) (4,5) (0,1,4,6,7,8) (3,5,7) (0,1,2,6) (0,2,3,4,5,8) {36,26,22,20,25,31,22,24,23}
+[.....#..##] (0,1,2,3,4,7,8,9) (4,5,7,9) (1,2,3,5,6,7,8,9) (0,2,6) (1,4,6,9) (0,7) (1,2,5,6,8,9) (1,2,4,8) (2,3,4,7,8) (0,1,3,5,7,8) (0,1,2,3,5,7,8,9) (0,1,2,3,4,5,6,7,8) (1,5,6,7,8,9) {61,127,89,74,48,100,78,106,123,85}
+[#...#] (2,3,4) (1,4) (0,2,3) (0,4) {22,4,37,37,25}
+[##.#.####.] (1,3,4,7,8) (0,1,2,3,5,6,7,9) (0,3,5) (1,2,3,4,7) (1,5) (3,4) (1,3,4,8,9) (1,5,6,9) (0,1,3,4,5,6,7) (2,7,8) (0,2,5,7) {45,68,47,75,45,72,28,59,19,25}
+[.####] (1,2,3,4) (0,1,2,3,4) (2,4) {19,19,28,19,28}
+[#.##.#] (0,1,2,3) (5) (1,3,4,5) (0,3,5) (0,2,3,5) (2,3,4,5) {25,8,25,45,20,50}
+[..###] (3,4) (0,3) (0,2,3) (0,2,4) (0,1,2,4) (2,3,4) {44,20,49,54,54}
+[.##.#] (0,3) (1,2,4) (0,1,2,3) (1,2,3) (4) (0,2,4) (0,1,3) {49,57,40,64,199}
+[##.#..#..#] (3,6,8) (2,4,9) (1,2,3,4,5,6,7,8,9) (0,4,8) (1,2,4,5,6) (2,4,7,8) (1,3,4,6,8,9) (0,2,3,5,7,8,9) (1,2,4,6,7) (0,4,6,9) (6) (0,2,3,4,5,9) (0,6,7,8) {35,38,57,25,67,35,54,35,28,30}
+[##...#] (0,1,5) (0,1,3,5) (0,2,3,5) (1,3,5) (1,2,3,4) (2,4) {31,44,36,36,25,50}
+[..#.#..] (0,1,2,3,5) (1,3,4,5) (0,2,3,5,6) (0,1,2,6) (2,3,4,5,6) {16,19,36,41,25,41,22}
+[#..##] (2,4) (0,2,3) (0,1,4) {6,5,10,1,14}
+[##..###] (1,3,4,5) (3,4) (3,6) (0,1,2,3,4,6) (0,1,2,4,5) (0,2,4) (0,1,3,4,5) {36,43,28,49,53,28,24}
+[#.###] (0,3) (1,3) (0,1,2) (0,3,4) (0,2,3) {37,25,18,32,3}
+[.###.] (0,1,2) (0,1,4) (0,3) {25,11,2,14,9}
+[..##..] (0,3,4) (0,1,5) (0,1,2,5) (2,5) (0,1,3) (0,3,4,5) {55,30,20,45,25,43}
+[.##.#...] (3,4) (1,2,3) (0,3,4,6,7) (0,3,6,7) (0,1,4,6) (0,1,3) (0,2,3,4,5,6) {42,38,14,41,30,1,33,16}
+[#.#....] (0,3,5,6) (4,6) (0,1,3,5) (0,1,3,4,6) (0,2,3,5) (2,3,4,5) (4,5,6) {60,30,201,241,223,230,52}
+[...#..####] (0,1,3,6,7,9) (1,2,5,6,9) (5,6,8) (3,6,7) (2,5,6,7,9) (0,1,2,3,4,5,6,9) (1,3,4,6,8,9) (0,1,2,4,5,6,7,9) (1,4,6,9) (2,3,5,6,7,8) (0,2,3,6) (3,5,6,8) {59,89,84,93,59,86,149,79,35,97}
+[..#####.] (0,2,3,4,5,7) (2,3,4,5,6) (1,3,4,5,7) (0,1,2,5,6,7) (4,5,6) (0,6,7) (0,1,4,5,7) {34,19,26,33,40,44,43,45}
+[..#.] (0,1,3) (1,2) (2,3) (0,2) (1,3) {28,195,198,23}
+[.####..] (2,4) (3,5) (0,2,5,6) (0,3,4,5,6) (1) (1,2,3,4,5) {26,12,19,24,25,34,26}
+[##..#.#..] (2,4,7) (1,2,3,4,6) (3,8) (0,4,5,6,7,8) (2,4,8) (0,1,2,3,4,6,8) (4,5,8) (1,2) (0,2,5,7) {13,22,53,17,55,7,18,13,38}
+[.###.##] (0,4,5) (0,2,3,4,5) (2,5) (1,2,3,4,5,6) (0,1,2,4,6) (1,2,4,6) (0,1,4,5,6) (0,1,2,6) (2,4) {56,38,82,8,72,50,38}
+[..#.###] (0,1,2,3,4,6) (1,2) (0,1,2,6) (0,1,3,4,5) (1,3,4,6) (0,2,3) {47,57,46,46,31,12,34}
+[.....#] (0,4) (0,2,4,5) (1,4,5) (1,3,5) (0,2,3,4) (4,5) (1,4) {13,43,13,29,54,58}
+[.#...] (0,2,3,4) (3,4) (1,4) (1,2,3,4) (1,3,4) (1,2) {18,62,45,53,68}
+[#.#.#.##.] (0,1,4,5,7) (0,2,3,5,6,7,8) (0,3,5,8) (2,3) (0,2,3,4,5,6,7,8) (0,1,4,5,6,8) (0,1,2,3,4,5,6) (0,1,2,3,5,6) (0,1,5,6,8) (0,1,2,3,5,6,7,8) (2,3,4,5,8) {88,62,55,67,42,90,69,24,55}
+[###.] (1,2,3) (0,1,2) {10,29,29,19}
+[#.##....] (0,3,4,5,6,7) (0,1,2,4) (1,6,7) (0,2,5,6,7) (0,1,3,6,7) (1,2,4,6,7) (3,4,7) (3,4,5,7) {36,37,20,30,26,15,41,54}
+[...###...#] (0,1,3,4,5,6,7,8,9) (3,7,8) (1,2,3,5,6,7,9) (0,2) (0,2,4,5,7,8,9) (1,4,6,8,9) (0,2,3,4,5,6,9) (0,1,2,9) (1,8,9) {50,20,46,33,37,34,30,29,33,44}
+[#.###...] (0,1,2,6,7) (0,3) (0,1,3,4,6) (4,6,7) (1,2,6) (1,5) (2,4) {149,152,18,146,165,1,171,23}
+[.#...##] (0,1,3) (0,2,3,4,5,6) (0,4,5) (4) (0,2,3,4,5) (2,5,6) (1,5,6) (0,1,2,4,6) {55,42,54,39,45,64,55}
+[##.######] (1,2,5,6,7) (0,1,2,6,8) (2,4) (1,2,3,5,6) (0,1,2,3,4,5,7) (0,2,3,5,6,7,8) (0,3,8) (2,3,7) {18,31,54,28,24,33,20,43,5}
+[..#..#..] (1,2,3,4,6,7) (3,5) (0,2,3,6) (2,5) (3,4,5,6,7) (0,2,6) {20,10,42,38,16,36,36,16}
+[####] (0,1,3) (1,2,3) (0,1,2) (0,1) (1,2) (1,3) {22,46,14,23}
+[#.#..###.] (2,3,4,8) (0,1,4,5,8) (0,1,3,4,5,6,7,8) (1,2,3,4,8) (0,4,5,8) (0,2,5,7) (0,2,5,6) (5,6,7,8) {49,39,56,51,61,201,182,178,213}
+[#..####.] (0,1) (0,4,5,6,7) (2,3,5,6) (2,3,4,6,7) (3,6) (1,2,4,5,6,7) (0,1,3,4,5,6,7) (0,3,4,5,6) (1,2,7) (0,1,2,4,5,6) {55,47,43,70,72,72,97,41}
+[#.##..###] (0,3,5,6,7,8) (0,1,2,3,4,5,8) (0,1,4,6,7) (1,5,6,7,8) (2,4,6,8) (0,3,4,7) (0,6,7) {45,56,24,27,47,40,42,45,44}
+[...##..#] (0,3,4,5,6,7) (0,5,6) (0,1,3,5,6,7) (0,2,4,5,6,7) (1,2,3,4,5,7) (0,1,2,3,5,6) {45,15,14,23,15,46,45,22}
+[####.] (0,3,4) (0,4) (0,1,3,4) (3) (2,4) (1,3,4) (0,3) {41,29,18,54,67}
+[#####.##] (0,2,3,4,5,6) (3,7) (0,5,6,7) (0,1,2,5,7) (1,3,6,7) (0,3,4,5,6) (0,1,2,4,6,7) (0,1,4,5) (1,2,3,4,6) {228,224,48,57,234,212,84,42}
+[#.#.] (0,2,3) (0,2) (0,1) (2) (1,3) {24,1,199,14}
+[#...##.#..] (4,6) (0,1,2,3,6,7,8,9) (1,2,3,4,6,8,9) (0,2,4,5,6,7) (1,2,4,7,8) (0,1) (9) (2,3,7) (0,1,3,4,8,9) (0,4,5,6) (0,1,3,4,6,7,8) (3,5,7,8) {56,45,47,209,70,207,65,233,217,16}
+[......#.] (0,1,3,6) (2) (0) (1,3,4,5,6) (0,3) (2,3,4,6,7) (0,1,4,5,7) (0,2,3,4,7) (0,1,2,4,5,7) (0,5,7) {60,41,52,69,65,33,40,49}
+[.#####] (1,3) (1,4) (1,4,5) (0,1,5) (2,4,5) {2,18,20,1,35,25}
+[#..#....#.] (0,3,7,8,9) (1,8,9) (2,3,4,5) (0,1,3,5,6,7,8) (1,2,3,4,6,7,9) (2,7) (3,4) (0,2,4,5,7,8) {33,21,12,48,27,26,20,36,34,14}
+[##..###.] (1,2,3,5) (0,1,2,3,5,7) (1,3,4,5,7) (0,1,5) (1,4,5,6) (2,5) (0,2,3,4,6,7) (0,3,6,7) {39,43,34,47,31,62,39,42}
+[#.#.] (0,2) (0,2,3) (1,3) {23,18,23,28}
+[#.#.####.#] (0,1,4,6) (1,4,7,8,9) (6,7) (1,3,5,6,7,8) (0,1,2) (0,2,4,6,9) (0,2,3,7) (1,3,7) (0,1,2,3,5,7,8) (2,3) {39,46,53,50,30,17,54,52,23,26}
+[#..#.#.#.] (1,2,4,5,6,7,8) (0,2,3,4,6,7,8) (0,2,3,4,7,8) (0,6) (0,1,4,5,6,7) (1,2,3,6,7,8) (2,3,5,7,8) {159,43,190,170,179,53,60,205,190}
+[##....] (0,2,3,5) (2,3,4) (0,4) (1,4) (0,1,2,5) (1,3,5) (0,5) {61,45,24,19,33,55}
+[##..#.#.] (0,1,2,3,4,5) (0,1,2,3,4,7) (0,1,2,5,6) (0,1,2,3,4,5,6,7) (1,2) (1,5,6) (0,3) {49,56,48,34,20,33,25,12}
+[...##.] (2,4) (1,3,4,5) (0,2,4,5) (2) (1) (2,3) (0,4,5) {18,12,48,23,25,22}
+[..#..] (0,2,4) (0,1,3) (0,4) (0,1,2,3) {223,29,196,29,194}
+[#.##...] (0,1,2,3) (1,5) (5) (4,5,6) (1,2,3,5) (0,2) (0,1,2,3,5,6) (1,2,5,6) (1,2,4,5,6) {42,69,65,34,23,75,57}
+[#.##.] (1,4) (0,1,2,4) (0,2,3) (0,1,4) {34,24,26,10,24}
+[#.#..#] (0,1,2,5) (0,2,4) (0,1,3,4,5) (0,1,3) {29,17,17,12,21,14}
+[.#..###..] (6,7) (2,4,8) (1,2,3,4,5) (0,1,3,4) (2,3,6,7,8) (0,1,7) (6) (2,4,5,6,7) (0,7) (0,2,5,7) (1,2,4,5,7,8) {39,45,62,38,64,27,40,66,55}
+[#.#.##] (0,4,5) (3,4) (2,3,4) (0,1,4,5) {37,20,155,155,192,37}
+[.##.##] (0,1,2,3) (0,1,2,4) (1,2,3,5) (2,3) {134,145,153,22,131,11}
+[.#.#] (0,2,3) (1,3) (2,3) {20,164,33,197}
diff --git a/AdventOfCode2025/Solutions/Day10.Part1.cs b/AdventOfCode2025/Solutions/Day10.Part1.cs
new file mode 100644
index 0000000..2b7c519
--- /dev/null
+++ b/AdventOfCode2025/Solutions/Day10.Part1.cs
@@ -0,0 +1,199 @@
+using System.Collections.Immutable;
+using System.Collections.ObjectModel;
+using System.Text.RegularExpressions;
+
+namespace AdventOfCode2025.Solutions;
+
+public partial class Day10
+{
+ public override string SolvePart1()
+ {
+ List machines = GetInput().ToList();
+ List results = [];
+ foreach (Machine machine in machines)
+ {
+ var vertices = GetAllCombination(machine.TargetVertexKey.Length)
+ .Select(combination => new LightsState([..combination]))
+ .Select(x => new KeyValuePair(x.Key, x))
+ .ToDictionary();
+ foreach (var (_, vertex) in vertices)
+ {
+ (vertex as LightsState)?.BuildEdges(vertices, machine.ButtonMasks);
+ }
+ var startVertex = vertices[GetLightsKey(new bool[machine.TargetVertexKey.Length])];
+ var targetVertex = vertices[machine.TargetVertexKey];
+ results.Add(FindShortestPath(startVertex, targetVertex));
+ }
+
+ return results.Select(path => path.Length).Sum().ToString();
+ }
+
+ private static Edge[] FindShortestPath(Vertex from, Vertex to)
+ {
+ var queue = new Queue();
+ var visited = new HashSet();
+ var cameFrom = new Dictionary();
+
+ queue.Enqueue(from);
+ visited.Add(from);
+ cameFrom[from] = null;
+
+ while (queue.Count > 0)
+ {
+ Vertex current = queue.Dequeue();
+ if (current == to)
+ {
+ return ReconstructPath(from, to, cameFrom);
+ }
+
+ foreach (Edge edge in current.Edges)
+ {
+ if (!visited.Add(edge.To))
+ {
+ continue;
+ }
+
+ queue.Enqueue(edge.To);
+ cameFrom[edge.To] = edge;
+ }
+ }
+ return [];
+ }
+
+ private static Edge[] ReconstructPath(Vertex from, Vertex to, Dictionary cameFrom)
+ {
+ var path = new List();
+ Vertex node = to;
+ while (node != from)
+ {
+ Edge? edge = cameFrom[node];
+ if (edge == null)
+ {
+ break;
+ }
+
+ path.Add(edge);
+ node = edge.From;
+ }
+ path.Reverse();
+ return path.ToArray();
+ }
+
+ private static string GetLightsKey(bool[] lights) => new(lights.Select(b => b ? '#' : '.').ToArray());
+
+ private static IEnumerable GetAllCombination(int size)
+ {
+ var numberOfCombinations = (int)Math.Pow(2, size);
+ for (var i = 0; i < numberOfCombinations; i++)
+ {
+ var combination = new bool[size];
+ for (var j = 0; j < size; j++)
+ {
+ combination[j] = (i & (1 << j)) != 0;
+ }
+
+ yield return combination;
+ }
+ }
+
+ private IEnumerable GetInput() => Input.Lines.Select(ParseLine);
+
+ private Machine ParseLine(string line)
+ {
+ var regex = new Regex(@"\[(?[\.\#]*)\]|\((?[\d,]*)\)|\{(?[\d,]*)\}");
+ var matches = regex.Matches(line);
+ string lightsKey = string.Empty;
+ List buttons = [];
+ List jolts = [];
+ foreach (Match match in matches)
+ {
+ if (match.Groups["lights"].Success)
+ {
+ lightsKey = match.Groups["lights"].Value;
+ }
+ else if (match.Groups["buttongroups"].Success)
+ {
+ buttons.AddRange(
+ match.Groups["buttongroups"]
+ .Value
+ .Split(',', StringSplitOptions.RemoveEmptyEntries)
+ .Select(int.Parse)
+ .ToArray());
+ }
+ else if (match.Groups["jolts"].Success)
+ {
+ jolts.AddRange(
+ match.Groups["jolts"]
+ .Value
+ .Split(',', StringSplitOptions.RemoveEmptyEntries)
+ .Select(int.Parse)
+ .ToArray());
+ }
+ }
+
+ var buttonMasks = new List();
+ foreach (var buttonIndices in buttons)
+ {
+ var buttonMask = new bool[lightsKey.Length];
+ foreach (var idx in buttonIndices)
+ {
+ buttonMask[idx] = true;
+ }
+
+ buttonMasks.Add(buttonMask);
+ }
+
+ return new Machine(
+ lightsKey,
+ buttonMasks.ToArray(),
+ jolts.ToArray()
+ );
+ }
+
+ private sealed record Machine(string TargetVertexKey, bool[][] ButtonMasks, int[] Jolts);
+
+ private abstract record Vertex()
+ {
+ public readonly EdgeDictionary Edges = [];
+ }
+ private sealed record LightsState(ImmutableArray Lights) : Vertex
+ {
+ public static string GetKey(ImmutableArray lights) => new(lights.Select(b => b ? '#' : '.').ToArray());
+ public string Key => field ??= GetKey(Lights);
+ public void BuildEdges(Dictionary allVertices, bool[][] edges)
+ {
+ foreach (var edgeMask in edges)
+ {
+ var targetLights = Lights.ToArray();
+ for (var i = 0; i < targetLights.Length; i++)
+ {
+ if (edgeMask[i])
+ {
+ targetLights[i] = !targetLights[i];
+ }
+ }
+ var targetKey = GetLightsKey(targetLights);
+ if (!allVertices.TryGetValue(targetKey, out var targetVertex))
+ {
+ continue;
+ }
+
+ if (Edges.Contains(targetVertex))
+ {
+ continue;
+ }
+
+ Edges.Add(new Edge(this, targetVertex));
+ targetVertex.Edges.Add(new Edge(targetVertex, this));
+
+ }
+ }
+ }
+
+ private sealed class EdgeDictionary : KeyedCollection
+ {
+ protected override Vertex GetKeyForItem(Edge edge) => edge.To;
+ }
+
+ private sealed record Edge(Vertex From, Vertex To) { }
+}
\ No newline at end of file
diff --git a/AdventOfCode2025/Solutions/Day10.Part2.cs b/AdventOfCode2025/Solutions/Day10.Part2.cs
new file mode 100644
index 0000000..0604807
--- /dev/null
+++ b/AdventOfCode2025/Solutions/Day10.Part2.cs
@@ -0,0 +1,41 @@
+using Google.OrTools.LinearSolver;
+
+namespace AdventOfCode2025.Solutions;
+
+public partial class Day10
+{
+ public override string SolvePart2()
+ {
+ return GetInput()
+ .Select(machine => ConfigureJolts(machine.ButtonMasks, machine.Jolts))
+ .Select(x => x.Sum())
+ .Sum()
+ .ToString();
+ }
+
+ private static int[] ConfigureJolts(bool[][] buttonMasks, int[] jolts)
+ {
+ var solver = Solver.CreateSolver("SCIP");
+ var objective = solver.Objective();
+ var constraints = new Constraint[jolts.Length];
+ for (var i = 0; i < jolts.Length; i++)
+ {
+ constraints[i] = solver.MakeConstraint(jolts[i], jolts[i], "j" + i);
+ }
+
+ var buttonsPress = new Variable[buttonMasks.Length];
+ for (var i = 0; i < buttonMasks.Length; i++)
+ {
+ buttonsPress[i] = solver.MakeIntVar(0, 1000000, "b" + i);
+ objective.SetCoefficient(buttonsPress[i], 1);
+ for (var j = 0; j < constraints.Length; j++)
+ {
+ constraints[j].SetCoefficient(buttonsPress[i], buttonMasks[i][j] ? 1 : 0);
+ }
+ }
+
+ objective.SetMinimization();
+ _ = solver.Solve();
+ return buttonsPress.Select(v => (int)v.SolutionValue()).ToArray();
+ }
+}
\ No newline at end of file
diff --git a/AdventOfCode2025/Solutions/Day10.cs b/AdventOfCode2025/Solutions/Day10.cs
new file mode 100644
index 0000000..de9f227
--- /dev/null
+++ b/AdventOfCode2025/Solutions/Day10.cs
@@ -0,0 +1,10 @@
+using System.Collections.Immutable;
+using System.Collections.ObjectModel;
+using System.Text.RegularExpressions;
+
+namespace AdventOfCode2025.Solutions;
+
+public partial class Day10() : Solution(10)
+{
+
+}
\ No newline at end of file
diff --git a/AdventOfCode2025/Solutions/Day9.cs b/AdventOfCode2025/Solutions/Day9.cs
index 834a815..21b8648 100644
--- a/AdventOfCode2025/Solutions/Day9.cs
+++ b/AdventOfCode2025/Solutions/Day9.cs
@@ -14,6 +14,7 @@ public class Day9() : Solution(9)
public override string SolvePart2()
{
+ return string.Empty;
List positions = GetPositions().ToList();
// var areas =