heh
bendn 2023-12-13
parent cb0379d · commit 4c4de78
-rw-r--r--src/inp.txt2407
-rw-r--r--src/main.rs129
-rw-r--r--src/util.rs11
3 files changed, 1470 insertions, 1077 deletions
diff --git a/src/inp.txt b/src/inp.txt
index 8d3476d..54d6dec 100644
--- a/src/inp.txt
+++ b/src/inp.txt
@@ -1,1000 +1,1407 @@
-.?#???#???#.?.?##?? 6,2,1,4
-.?.????#.???#?.???. 5,1,2,1
-????#??.?. 1,2,1
-???.???#???.??.#?.? 1,7,1,1
-???#???.??????????? 6,6,2
-????.???#??#?? 4,3,3
-??#??#???????? 2,6
-???.#?.?.?#??? 1,2,1,4
-##?#???????????? 9,1,1,1
-?#???#???????????#? 5,2,8
-??.#?#.??????#?# 3,6,1
-?????????##??#.?? 2,9
-??.?????.??.??????. 3,2
-.????.#???#?#?#??.#? 3,1,5,1,1
-?#??..????? 2,1
-?##?.????? 3,4
-#?####?#??.#. 1,8,1
-????.?..#?????.??? 3,6,2
-??#?????????????#?? 8,2,1,2
-?#??.#??#???? 2,6
-#.??.??##???. 1,1,2,1
-?.???#####?#??#.?? 1,13,1
-.????#????.##??#?#?? 7,9
-????????????. 3,6
-?.???##??#?#??..??? 12,1
-.???###??????.????. 1,6,1,2
-.???????.???#?####? 2,1,1,7
-#????.#?..??#? 1,3,1,4
-????#?.#?????#??#?.? 1,1,8,1,1
-?.??#?..?????##??? 1,1,2,1,6,1
-?###..?#?????? 4,6,1
-#.#?????#?. 1,1,3
-#?#?#????#..?? 6,1,1,1
-.???##??.???.???. 4,3,2
-#?#??#.??#??#? 3,1,6
-?#??###?..#?#????#?? 1,3,1,8
-?#???.#??.? 4,3,1
-??##.??#??. 3,3
-??????##??????.? 1,3,1,1,1
-.##???#???????.? 6,3,1
-?#?#????.? 2,2,1
-.??.??.????#? 1,1,2,2
-?#??#????#?? 1,5,1,1
-?.???##?????????. 1,2,1,2,2
-????????####??? 2,9
-??????.??. 1,1,2
-?#?????#.?????.????? 5,1,1,1,3,1
-??????#???#.??? 2,1,1,1,2
-##???#?#????#???##? 2,1,1,1,1,7
-??#???#?#?.#??#?? 7,5
-?.???#????????? 1,1,7
-#?????.#??? 1,1,2
-?..???#?#??#?#??##? 1,15
-??#?????.#?# 4,1,1,1
-.???.?????#?? 2,4,1
-..?##?????#.???????? 8,7
-????.????##? 1,2,4
-??.#??.???#? 2,2
-?.??????#?#?. 1,1,4
-?#...?.???. 1,1,3
-?????.?????#???##?? 4,1,8,1
-?..??.##?#.?.#? 1,4,1,1
-?##?.?.????#??##? 2,9
-???????????? 6,1,1
-.##???.#.. 5,1
-??#????????#???? 1,6
-?#?##???.?#?#?.#?#. 6,2,1,1,1
-????.??.????#????? 2,8
-???#?????????????. 1,1,3,5
-.?.??.##??? 1,2,1
-??#??.????? 4,1
-.???##?#?.??.?? 4,2
-?#.?.??.#???#.?? 2,1,1,1,2
-????#??#.? 2,1,1
-?#?#?#?????##????## 8,3,1,2
-?????#..?..?????#? 4,7
-???.??#???#.?????? 1,3,2,5
-??.?#??##??? 2,2,2,2
-??.??#????. 1,4
-??###????.???? 6,1,4
-????????##?#?#??.? 1,1,1,7,1
-???##???.?.????#??? 5,1,2,4
-????#????.???##???. 2,5
-??.#????.#?#??##? 1,3,7
-????#??##.??# 9,1
-.?#?????.#?#?? 4,1,1
-##???##.????.???? 7,1,1,1,1
-??????..##???##?? 1,7
-???#..??#???#??##?.? 4,1,5,3
-????#.##??###???#?#? 2,3,4,4
-????.?.?#?????? 1,1,7
-???????????. 2,2,1,1
-?#?.??#?#???. 2,6,1
-???????..?? 2,2,1
-.??##?.##.?# 4,2,1
-????.???#.? 3,1
-?#?#####????#?..?? 12,1
-??.?.??.??.##? 1,1,1,3
-???.??#..?# 2,1,2
-?.???????.? 1,4,1
-?#.???##????? 1,1,5,1
-????.???????#????? 4,4
-#?????###. 2,5
-?..??.????##? 1,1,5
-?????.?#??? 3,1
-.?#?...#???.??? 2,3,2
-????#??#??#?..??#?? 8,2,1,3
-.??..??.#? 1,2,1
-.????.??????. 1,1,3
-??#?????????.#??? 4,3,1,2,1
-??????#??? 1,7
-???.?#???????..??? 2,4,3,1
-??.?#????.#?#### 1,1,2,6
-?#??..???#???.??? 3,4,1,1
-.?#?##?..??.??. 6,1,2
-????.???..#. 1,1,1,1
-????#?#?#?????. 4,4,2
-??##???.#?#?#? 6,1,1,1
-.?#.???#?? 2,4
-.?#?##?.??? 5,1
-#.??##.????## 1,2,2,2
-.?##??#?????#??#?.? 6,7
-??????.?#.? 6,1,1
-??#.????#?#?? 2,5,2
-????#????.??#.#?? 4,1,1,2
-????.??????? 1,5
-?.?????????? 1,1,1,4
-.??#?#?????#.? 1,9
-..#????.#? 1,1,1
-##????#??.??? 8,1
-.#?.?..#?#???#?.? 2,7
-???##?#?????#?????? 8,5
-??????##???###???.?? 3,1,4,3,1,1
-?..?#?#???#.???#???. 7,4
-?.#????.?.#.?.???? 1,5,1,1,1,1
-#??????...# 1,4,1
-..???.???#?? 3,4
-#?#??###?#?#???.?? 4,7,2
-??#????????#???.##? 3,2,4,1,2
-???##??#??? 1,5,1
-#..??#????#?.?#?? 1,9,2,1
-?#??#.??.??#?#???#?. 5,9
-??????#.?.?????????? 4,2,1,1,5,1
-??#.#?.??.?#? 2,1,1,2
-#.#.???#?##?.?.??? 1,1,7,1
-????????#??? 1,4,1,1
-????#..????????? 1,1,1,6
-.??..?#??##??.? 2,2,4,1
-?.?#?.????? 2,2
-??#??#???.?.??? 7,1,1
-#?#?.?.?#??####.???? 4,1,7,1
-?.??.??#????# 1,3,1,1
-?.#????... 2,2
-#????.#??# 4,1,1
-.#..???#?###??#?. 1,4,7
-???.?#????.?? 2,6,1
-.#?#??#?#. 4,3
-??..????#?? 1,1,4
-??#.?#.???#???##? 2,1,2,7
-?.?.??.?.??.???.?## 1,2,1,1,2,2
-##???.??#?????#??.?? 3,1,8,2
-?#?.??.?????#?#?? 2,1,9
-??#??##?..???. 6,1
-??????????#??? 1,1,4,1
-.#?#??????.??????## 5,3,2,1,3
-????#??#????..?? 3,3,1,1
-??.....??????##????? 7,2
-??????????#?#?? 9,1,1
-#...?.???.????????? 1,1,1,1,5,1
-.???##?????.?? 5,3,1
-???.??#?##???? 1,1,6
-.??#??#?.?? 2,2,1
-???#???????## 7,3
-??#????##???# 1,9
-#????#?#???.#??????? 1,5,1,1,3,1
-#??#????????#?#??.?? 8,8
-?????#?###?#?#??.? 1,1,9,1,1
-????..???. 3,1
-??#?#.????#????.?### 3,1,2,4,4
-.????#?????? 5,1,1
-??#?.????#???? 3,3,1,2
-????????.???????.#? 7,3,1
-????????#?#??????.? 11,1,1
-..#?#??..??.?.? 5,2,1
-#??.???.????#? 1,1,1,6
-???##?#?.??.???.. 6,1
-?##?????#??#????# 4,7,1
-??#??.??##?.??? 4,3,1
-????#????.?? 1,1,3,2
-???#?.??#. 1,2
-..??#??????.???? 8,3
-#????????????.#.?.? 1,5,4,1,1
-??.??????##????? 1,11
-?#????????.##??#??#? 5,2,2,2,1
-?????..??????#???? 2,2,6
-.???.?#??? 1,4
-?.##?????#.#?? 1,4,3,1
-?.##?#?????#?????.?? 12,1,1
-.????#????????##? 1,9,3
-?#????????????####?. 5,2,7
-?.??????#?????? 1,1,3,3
-.????#??#??????.?. 1,4,1,3,1
-??.??????.##?#????? 2,1,5,3
-??????#?.? 3,1
-.##??????????#? 4,8
-?????????????#.?. 4,1,3
-??.#?#?#?.?.????? 6,1,2
-?.?????##?.?##? 1,8,3
-??#???#?..??. 1,1,2
-??#?.??.??? 1,1,3
-.##?#?#?#??#?.??# 6,1,1,1,1
-?#??.?.???. 3,2
-???#?????..?.?##? 7,1,4
-?.?.?##?###?.. 1,8
-??.###????#?. 2,4,1,2
-.??#.????#?????.#. 3,1,1,1,1,1
-#?#?##??????#?#?.#?. 1,11,1,2
-?#???.??#?##??#. 2,8
-.???#.???#??????#. 1,1,10
-?.??.??##??#?.?.?. 1,2,8,1,1
-??.????#???.?? 1,4
-??#?????.?.?.#. 1,2,1,1,1
-.???#???#?? 1,3,3
-????.??????????? 2,9
-?#.?##???? 2,2,1
-?.???????##??.# 3,6,1
-#???.#???????..#?#?? 1,2,2,5
-?????##????#?.?????? 1,1,8,1,2
-???.???.?..?#?? 3,2
-??.???#???#??????. 2,5
-.???.#.#???#? 1,1,1,4
-???#.??#?? 1,1,4
-?..????#??#? 1,5,2
-.#??#???#?..?#?.???? 2,6,2,2
-#?#????????.. 5,2
-...????????????.# 3,1,1,4,1
-.?#??#????#?#???#?#. 2,2,11
-??#????##??## 1,6
-#?#???#?..#?????# 3,4,2,3
-??##?????.????? 8,1
-.#???#?#?.#??### 5,1,6
-##.???????#.?#?..?? 2,6,1,2,1
-.#??????#?#?#?. 3,8
-?#??????#.. 3,1
-?#???.?.?? 2,1,1
-#???????#????? 2,1,3,2
-?#.????????#? 1,1,2,3
-??#??##???????#??? 1,3,2,4
-?#?.?#?????.?? 1,3,1
-?##???#???.?.#. 10,1,1
-???#???#????#??.?#.? 12,1,1,1
-?????.#????. 2,5
-??###??????#?#??#?.? 3,1,10
-???.?????##?????#? 2,10,1
-?#?#?#????? 2,5,1
-???#??#.??? 4,1,3
-??#???#????? 1,6
-???...????#?? 1,2,1,1
-??????#???.???#??#?? 5,7
-?.??#..?#?##.?. 3,4
-?????????#???? 1,10
-?..???...??##?#?#?? 3,6
-.??.??#?#???#??## 1,5,1,3
-??.???#?#???#??##?. 1,1,6,6
-??.##??##?? 1,3,3
-???????.?? 1,1,1
-?#.#??#?#???.? 1,4,1,1
-.?#???#???.??##? 2,3,1,4
-??.??...?. 1,1,1
-#?????#??? 1,2,2
-.???#???##?????.??. 9,1,1,2
-?????..???#???? 1,2
-????????.? 2,1,2
-?????#???? 2,3,1
-.#??.#??#?#??? 1,1,8
-.??????.??.# 5,1
-????????.#????##??? 2,2,7
-?#?.#??#?. 1,4
-?????#?#?. 5,1
-?.????..?#?.???? 2,1,2,3
-??#?.?#?????..??###. 2,6,4
-.??.????.??????## 1,4,5,2
-.?..??.??? 1,2,1
-.??.?????#??????. 1,1,1,1,4
-????#?...??#??. 1,3
-??????.?.?#????. 1,3,1,1,1
-.#?..?#?.??####??#?? 2,2,9
-.??#.#???? 2,5
-.??????????.???#??. 3,2,6
-#??..???#..#.#??.#. 3,4,1,3,1
-???????#?#????.??? 11,2
-??#???#?.?.#??? 8,2,1
-???.???.?#?##? 1,1,1,4
-????##???.??#???.?? 5,2,3,1,1
-?????###?.???.?#??? 6,2
-?#??#???????????#?#? 6,11
-..???????#. 2,2,1
-????####?#?#?.???? 8,2,1
-?.????.???# 1,1,1
-??#??????##????.# 1,4,4,2,1
-.??..#?.?#?? 2,2,2
-?????????#?#??#.??? 1,10,1,2
-?????#?????. 2,2
-..??#??#??.??..# 3,1,1,1,1
-.??????.?#?. 5,2
-????????#?#. 2,3,3
-##??##????.. 2,2,2
-?.#..?#?#??. 1,1,1,1
-?.?##??##???###?.??? 1,6,6,1
-?????#??#????. 3,1,3
-#?.?.##?????#??#. 1,4,6
-.????####?#..??? 1,7,2
-#?.#..?????#?.?.#? 1,1,1,4,1,1
-.?#?#??????..??##?? 9,2
-????.#.????? 1,1,1,2
-#??#?????????#?.. 2,1,1,2,3
-#..#?#?#??#?#?#?? 1,13
-.???###??#.?.?..?. 9,1,1
-??#?#?#??????.?? 1,10,1
-#?#??.?????? 1,3,1,3
-?#?####.?#??? 7,4
-?.?.#.???. 1,1,2
-??????#??#.??? 7,1,2
-????????.#??. 3,2,1,1
-?..#?.?????? 1,1
-?????.?????#?????? 2,1,1,1,2,5
-.?#?#??#???#?.?.?#?. 12,3
-#????#??????.?.?#? 1,4,1,1,1,3
-??#??##??.???? 7,1,1,1
-#???#?.##??. 3,1,4
-??..???????#??.??#.? 1,1,7,1,1
-??????#??? 1,3
-???#?.??????##? 1,2,1,1,2
-???#?#??#?#?????. 1,1,4,3,1
-???##?????.??..??#? 8,1,2
-????.???????.???.#? 1,1,7,3,1
-??#???#?#?. 2,1,1
-??.????#??#??? 6,3
-#?????????# 6,1,1
-???????##??? 1,1,5
-.?.???.#???? 1,5
-????????????? 1,1,3,1
-???#????#.???##??# 1,1,1,1,1,6
-#.??##???#?????? 1,1,6,2
-??#?#??.???#?#??.?.? 4,6
-.?#???.??? 1,2
-?#.#.??.??????#?.?.? 1,1,7,1,1
-.#??.#???? 2,1,1
-???#???.?#??#????? 1,1,1,6,1
-?##????.?#??# 5,5
-????.??????. 1,6
-?.?...##??????#? 1,2,3,1
-???##??.???..???#?? 2,4,2,2
-????#?#??##?##??? 1,1,11
-??????###?#.? 1,5
-.?#???????..?#? 3,1,1
-..#..???#??????????# 1,1,5,3,2
-??????#??#?.????#?.? 10,1,2
-.??????..??#?#? 3,1,4
-#?????.??.???.##? 1,3,1,1,3
-???.#..#??#????#?# 3,1,1,7,1
-.##?#??#??.? 5,1,1
-.#?#???#?..#??????? 4,2,1,1,2
-?????????# 3,2,2
-????.?.??##.?.. 2,1,3
-??.?.????#?#?? 1,1,1,5
-?.#????.#?? 2,1,1
-...#?#????????##? 7,4
-?.????????##?.#???#. 1,8,2,1
-?##?.??.?#?.?# 2,2,2,1
-#?????.#????#???? 4,1,1,5
-#????#????#??.#???? 1,6,1,1,1,1
-???????.??#?#...?. 1,2,3,1,1
-?#.?????##?#?????? 1,13,1
-??..##?????##.?. 2,6,2,1
-?#??###..?#????????? 6,1,3
-?##?.????????? 3,4
-?.?????.?#? 5,3
-.?..??.?##?#?.???#.? 1,1,6,1,2,1
-?#.?.?.?##????????#? 1,1,1,4,2,1
-???###?#???.???? 7,2
-??#????#?#.#???# 1,1,4,1,1
-.??.?#??#?#??#?????? 2,11,1
-?##???.????.?#?.? 6,2,2
-??#.??????#?..?? 1,1,5,2
-.???##???#? 5,1
-??.?.#?..#??? 1,1,1,1
-#.?.??##???.. 1,7
-.#.##?###?#? 1,9
-#?.??.#?##?#?#?##?. 1,1,4,6
-..??????????#?.?? 2,5,1,2
-..??#???????##????? 2,11
-#???#??###??? 2,3,3,1
-??.???.?#?.##. 1,2,2,2
-?#???????#?. 6,4
-?????.?##.? 1,3
-??.??...?.????##? 1,1,1,6
-.##????.?#? 2,1,2
-??##?###??..?? 7,1
-?????#???##???#?.?? 11,2,1
-?#??##??????? 2,3,1,3
-?#????????? 2,4
-??#??????.?????? 5,1,4
-#?#????#.#?????.?? 4,1,1,1,1,2
-?.#?#?#?#?.???#? 1,6,5
-???#?????.??.? 4,1
-?.??????.?#.?? 1,2
-????#???#???? 5,2
-??#.??????????.?#? 1,5,1,1,1
-?.???#..??#.?#?#?? 2,1,3,6
-.?#.??????. 2,3,1
-??.??###?# 1,5
-#.???#?##??.#?#.?. 1,2,2,1,1,1
-?#?#?####??????? 1,1,10
-#?????????#?#????. 1,1,10
-?.?#???????#. 1,2,1,4
-???.?????.?????? 3,2,1,1
-?????.????.??#? 3,3,2
-.?#???#?#?##?##? 2,7,2
-?.????.??.?? 4,1,1
-.??#??????#??? 3,6
-????.??##?..#. 2,3,1
-??.???.??##. 1,4
-?#..??.??????? 1,1,4,1
-##??#?#???#?#?? 7,6
-#???????????..#?? 5,3,1,3
-?.????#???.#??? 1,5,1,1,1
-??#?.???#???? 3,4
-???????#?? 1,1
-?###??????..???. 9,2
-??????#.#?.#??#?? 2,1,1,1,5
-#???????.??. 2,1,2
-??.?????????? 1,2,1
-??.?#?#?#???????. 2,1,4,2
-#??.##?????? 1,1,5,1
-????.????#?#? 3,5
-??.??#??????#?#? 1,4,1,1,2
-?.#?#?...??.?#. 4,2
-??????##??? 2,5
-???##?.???????????. 6,2,4,2
-?.???????????#??#? 1,1,2,1,2,1
-?????.#?#??#??????#? 1,2,1,1,10
-.??????#.?.?. 7,1
-?#?#??#???##?????? 13,1
-??????????#.????# 10,1,1
-#?#?..???? 1,1,3
-????.???????? 2,1,2,1
-#??#?#??#???.???? 4,6,1,1
-..??##???##????? 9,1
-?????##?????????? 2,3,6,1
-?#????????. 2,1,1
-??.?#???##?#???? 1,9,1
-.??????#??.???## 8,3
-.??.?.####. 2,4
-.#.??#??..?. 1,2
-.???..#??#??#???##?# 2,1,2,8
-#?#????##???#?.????? 1,1,10,1,1
-???.??#???#???#?# 1,7,1,1
-??.????#?#???????.? 4,1
-????#?.?.#..?? 4,1
-??#??#.??.????????# 2,1,1,3,5
-????.?##?????????#?? 1,1,8,5
-.?#?##????????##? 8,4
-?..??.?#.##?.?? 1,1,1,3
-??????????## 1,1,5
-#?..??#?????? 1,1,5,1
-?.#??#??#.?.? 7,1
-.?#?.?##????#?? 1,9
-??###.??.??#??#? 1,3,1,5
-??..?#???#???.?. 1,5,1,1
-?.#??#.??#?#??.?.? 1,4,6
-?.?????#??.??.???.? 7,2,2,1
-?#??#???.?. 6,1
-.?#?##?????.?#. 10,1
-???#??#??#??#?#.?? 1,2,2,1,4,2
-????#?#???????.??#. 1,5,2,1,1
-##?#?.#????????#??? 5,1,5,2,1
-??????#??? 1,7
-.????????????#??. 8,2
-#??#?#?##?#??????? 2,12
-???????#????#?###?.? 2,1,9
-??.#??.????? 1,3,1
-?#.???.??..??#??.. 2,1,1,1,1,2
-?##?#???.#????? 7,2,2
-??#?????.???##? 5,1,2,3
-?????#..??.?? 4,1,1
-??.???#..???#? 2,2
-..?.#??#?.? 1,4,1
-?#?#??????#?###????? 5,6,1
-???#??.#?.? 3,1,2
-????????#???.#???#?# 1,7,2,1,1
-?????#???????????.?? 13,1
-??##?#.#??..#????? 1,4,1,4
-??????????.?. 3,2,1
-??.#.?.#?#?#????# 1,1,1,8,1
-?????.??#. 2,1
-?.?##??#?#??? 3,1,2,1
-#.#?..#???????####?? 1,2,1,9
-#?#??#???#?#???? 1,1,10
-???#???????###???.?# 1,2,2,3,1,1
-?????????#??.# 1,1,4,1
-??.?????#??#??.???? 9,1
-.???##????#???# 6,1,1,1
-##????????.????# 2,6,5
-#?#?##??##???##????? 15,2
-??#??????.? 4,1,1
-?#????#?????.??? 3,2,3,1
-????.?#?.#.???.?#? 1,2,1,2,2
-??###????#???? 3,2
-#?##?#??????.? 8,1,1
-????.??#??#???? 1,1,7
-?.??#??###???.?? 9,1
-#???####.?.?? 1,5,1,1
-?..??#????????? 3,5
-..???.?#?#.?# 1,1,4,1
-.??#??#?.???????.?? 5,4,1,1
-??..?##??#??#??.?#?? 2,10,2
-??#????#?????.??#?. 8,1,1,2
-???#?????#??????? 1,3,2,2
-#..?##?.#.?#??.??? 1,4,1,1,1,1
-?#??????#.? 1,1,1
-.???#??#.????#.???# 5,1,1,3,4
-.??#?##?.?????? 1,1,2,1,1
-???.??#?.? 2,1,1
-???#??????????# 3,1,4
-?.#???.####.??#?? 1,4,5
-?#????#####????? 10,1
-#.#.?????# 1,1,1
-??????.??????? 6,4
-???.??.??.????#????? 1,1,2,1,10
-?????????????#.?#?? 13,1,1
-???.????????.?? 1,2,3,1
-.??#??????#.?? 3,6
-?????.???# 1,1,1
-?????..#??? 2,1,1
-#??.##?#??????? 2,5,1,2
-#?#?.?.????. 4,3
-???.??##??#??? 2,9
-??#???..??.???? 1,1,1,1,2
-???#?#???.????..?. 9,3
-.??#???#????#? 2,3,3
-.?###.?#?##?#???.? 3,9
-??.??#?#?.???.#??#.? 1,3,2,2,1,1
-?#?#???#.?.??.?? 4,2,2
-??.??????????#??## 1,5,1,3
-??????#.??? 1,2,1
-?#??#??.?#?#.. 1,3,2,1
-?#?.##????.? 2,4,1
-?????###??????. 2,4,1
-??#?##?#????#??#???? 8,6
-#?????????#???? 1,2,1,1,5
-?#?.??##??????.#? 2,6,2
-??.????????###??#??# 10,4
-?##??.?#????? 2,7
-.???..??????#???#?? 1,10
-?????????#?????#? 2,7,1,1
-?.??#?????. 1,2,3
-?..??..#?#?? 1,2,3
-.??.?????? 1,1,2
-??#?#????#?.#??? 6,1,1
-?#??.????#? 3,1,4
-?.??????????#???.??. 1,4
-.#?..????.?????? 2,2,4
-#???##?????????.?#? 1,1,2,1,5,2
-????##???.?? 2,6,1
-#.?#??..##.##?##???? 1,3,2,6,1
-.???.###??????#..?.? 3,2
-?#???#??.???#.# 1,2,1,1,1
-?.?#???..? 3,1
-..??????.???##?#? 3,6
-??.####??###???? 4,4,1
-?????????. 1,2
-..??.?#?#?? 2,4
-##????##?. 4,4
-#????#????#?? 1,4,3
-?.??.#????.#??? 1,1,2,3
-#?..##???????#?????? 1,3,2,1,2,1
-.##??#?.??.?? 3,1,1,1
-?##?#.?..#??????? 5,1,4,1,1
-?..???##??????#?#??? 6,6
-?##???#??#???? 2,5
-???##?#???.????.? 8,1
-???###??..?????# 5,1,2,1
-??????.?.#??#??# 1,2,1,2,1
-??????????#.??????# 2,3,1,1,1,1
-????????##????#. 1,11
-?#??.#??#?##??? 2,4,5
-?#.?????.? 2,1
-??##???#?#??## 5,1,1,3
-.?..????#? 1,1,1
-..#??#???.???.???? 6,3,1
-#?????.?#???.#??. 4,4,3
-.??##?#.??.? 4,1,1
-?#?????.?? 3,1,1
-#?????#???#??#???? 8,5
-.?##????#?? 3,4
-??#??#?..?###?. 5,4
-#?#???????????.?. 3,3,6,1
-?????#??#??#. 1,2,1,1
-??#..??##?#??? 1,1,6,1
-.???#??#?.????#?. 8,2
-????#????##?.? 1,3
-???#?.?#???#. 1,2,5
-#????????.??#? 1,4,2,3
-?.??????#? 1,5
-?????????##?.????# 1,1,5,1,1,1
-#????#????#????#??? 1,9,2,1,1
-??.?###?#???????# 6,1,1,1
-?.?##?##??##? 3,6
-..???###?##?#.???# 9,1,1,2
-??????..#? 4,2
-??.????.#.?????#### 1,1,1,1,8
-.#?.??.?.#?? 2,1,2
-##??#?????.???#?. 7,1,5
-#???#???.? 1,1,1
-??#????.?# 3,1,2
-.?????#??#????? 3,7,1
-#???.????.?##?? 2,1,4
-??#?.??.?. 1,1,1
-..#.???#??#??? 1,4
-??????.??##?? 1,2,4,1
-?#????#.#. 1,1,1
-????#??.??..#??.? 3,1
-.????.?#?##???.? 4,1,5
-?.?#???????..#????? 1,7,1,1,4
-?.??????#????#??? 2,12
-.????.????? 2,1,1
-.???.???#??#??? 2,7
-?.?#??#?#?..?? 7,1
-?.?#?.?#??? 2,3
-.?#?????.#..??#?? 3,1,1,3,1
-???.#?#.??#?? 1,3,2
-?.?#???#??#???.?.? 1,1,1,1,1,1
-.#.?.??#.??.#.?????? 1,1,2,1,1,4
-.??#???#??#??#?#? 10,4
-.##?#.????????? 4,1,1,1,1
-???????????????. 12,1
-#??..?????##? 3,1,2,3
-?????##???##..?. 2,8
-????????#????#?# 2,3,3,4
-???????.#????.?.?? 2,1,3,1,1,1
-????#??????.? 3,1,3,1
-?#?#??????.?.??? 1,1,2,1,2
-?#????#??.?##??#? 6,3,1
-?#??.????. 3,1,2
-.#????#????????#?.#? 12,3,1
-??????????#???.#. 8,4,1
-???###?.?..??.? 6,1,1,1
-????.????#???#??.? 3,4,4
-#?#?#?#????#????#?? 1,1,6,2,1,2
-???#.????#?#? 2,1,1,4
-??#??#???.???#.? 5,1,1,1
-..?#??#???????# 4,3,1
-???#???.?#? 4,1
-??#?#??####???.???#. 2,8,1,1
-##?.????##?#.?#?? 3,6,1
-??.???????.?.?? 1,1,4,1
-#?#???.???.??..#. 4,1,1,1,1
-.?..????#?????#?? 1,1,9
-??.?#?###?.??? 6,1
-#.?#????.??.?#????? 1,2,3,1,4
-?#??##??#????????? 13,2
-.??.??##?????.. 1,6,2
-????#.????? 3,1
-.?????..?#..???.. 5,1,2
-????#????.??.?#?# 1,2,3,2,4
-?????#??.??#?.??#. 6,3,2
-?????#????? 3,3,1
-?#.??#??????? 1,4,2
-#??????.?#??????? 1,2,1,5
-?#.????#?##??????? 1,1,11
-????##???.????## 1,2,1,1,2
-.???????#?#??????#?? 3,2,1,1,1,3
-?#????#?#??.??.????? 1,1,6,1,2,1
-...#?.?.?. 1,1
-???##?#.#..?.?? 1,4,1,1,1
-???#??????#?#? 7,3
-???????#?.. 1,5
-?.?#??????.????? 4,1,1,1,1
-?.???.?.??#???#??#?? 2,7,4
-?.?.???###???##?? 1,11
-???#?..?#?????#? 5,2,1,2
-???.?????#???#?#?? 1,1,1,6,3
-.#..?????? 1,1,1
-.???????????#???? 1,9
-?#????#.?.? 3,1,1
-??????.??#??? 1,1,4
-.??#?#????#?.##??? 5,3,4
-#???.?#??#???? 1,1,7,1
-???#?.??.?.#??# 5,2,1,1,1
-?..#???#??.#.?..?? 1,1,4,1,1,1
-?#???.?#???#??#?? 4,9
-?.#?.?###? 2,3
-?????#?.?##?.?.??. 5,2,1
-?.???###???#?#?????? 1,9,1,1
-.?..?????#???. 1,3
-.????###??#?????? 1,4,1,3,1
-??????.??.? 4,1
-?#???????? 1,3
-?????????#.?????#?? 4,1,1,1,5
-?????#???#.???#? 1,7,5
-???#?????#?? 1,5,1,1
-???#.??#???.???? 1,3,1,1,1
-??##?.?##.??#?? 2,2,1
-??#???.??.?.??### 4,2,4
-?..??#.??.?##? 1,1,2,3
-?????#??#?#.#???.??? 7,3,3
-.#??#.?.#? 2,1,1
-.##???#.#???? 6,1
-.?.##?..?? 3,1
-???.?#??#??? 1,1,2,1
-.??????.????#?????# 1,1,10
-??????#??.??????#??? 1,1,4,1,5,1
-#?#???#??????? 3,2,2
-#??.??#?#??#???#? 2,12
-??#???????. 3,1
-????#.?..?????##?.?. 2,2,1,1,6,1
-.????.??#. 4,1
-??????#??.#.??.? 1,2,1,2,1
-#?????..?##?? 4,1,3
-???##????#..#? 6,2,2
-.?.?????#??.?#? 7,1
-??#?.???.. 1,3
-.?????????#? 8,2
-?..????#??? 2,1,1
-??????.????.#? 5,2,1
-?.?#.????#??? 1,5
-??###.???..???#? 5,1,1,2
-#?##??#??##.? 7,3
-??#???.???#?#?? 2,4
-#???.#???????#? 1,1,3,6
-??#.????###.?. 3,6
-#???#.##??? 1,3,4
-?.#?#?##?..?? 6,1
-#..#???#?#?????##? 1,1,13
-#?#???###?#?.????? 4,4,1,1,2
-????#.???#??????.? 4,8
-.??#.??..?#?#??.#? 2,2,5,1
-?????#??###?#????? 1,1,1,6,1,1
-?#??#????###????#? 7,4,1,2
-.#?#?#?##?????.???? 5,4,1
-#?#?????###. 1,9
-????#???##??????? 10,2
-?.??#???##???#??.# 1,1,1,3,4,1
-??????#???#?#?? 6,6
-##?????####??????? 11,4
-.?????#??.?#?#????? 1,2,1,1,5,2
-??#?..??#.?#?#?? 2,1,1,1,2
-.#??#?.#..???????# 4,1,4,1
-??#.??.?????#? 1,1,1,2
-?????##??.# 2,4,1
-?????#????#?#?##??? 3,3,10
-?..?????###?? 1,8,1
-##????.#???#??.??? 2,1,7,1,1
-???#??????#?.? 2,1,3,1
-.#?#???#?.????#??. 7,6
-?.??????.###????.? 1,1,1,2,4,2
-.?????#??#??#?##?## 2,1,4,8
-??.???#???????# 1,1,3,6
-?.#..?????#.. 1,2,1
-??#???#??. 2,1,1
-#????#???#????? 10,1,1
-?????????? 3,4
-??#?????????##??#?# 2,2,5,4
-???###???#?#??#??# 6,5,1,1
-????.??#??.? 2,2
-.???##??##?????? 1,10
-##??????.?.#??? 6,1,1,1
-??##??##?..?# 2,2,2
-#?#.???#.????. 3,4,1,1
-#????##?##.???????. 3,3,2,4
-??????#?#????#.? 1,9
-?.??.?.?#???#???.?.? 1,1,1,2,4,1
-??#?#?##??.????.? 4,3,2,1,1
-??????.#??.???#.???? 4,1,1,4,1,1
-?.??????.#?? 1,6,1
-??.???????#? 1,7
-??????.?##?##?#?.? 2,1,9
-???????#???.??#.#. 5,5,1,1,1
-.??????##?????#? 1,8,2
-?.?#..???.???.?. 1,1
-?????##?.??###?#? 2,5,6
-???.?.?.#. 1,1,1
-#???##??.#? 1,6,1
-????#???#??.???..#? 1,5,1,1,2,1
-????#??###??.?? 1,1,1,6,1
-#?.#???#????.?#????? 1,2,1,1,6
-?..??##??#...?.?? 5,1
-???.#?.?.?? 3,2,1
-#????????#??# 1,1,7
-???#?#??????#?#?.?? 8,3,1
-????????##? 1,1,3
-??#???.??##? 1,1,3
-?????.???????#? 3,1,2,3
-#.##?..??.??.?#?#. 1,2,2,1,1,1
-??.???????#?????? 1,1,5,1,1
-.??.?.?#??? 2,2,2
-???????###?. 1,6
-?#?#?.?????? 5,3
-?#?##?#.????#???? 6,4
-??##?..??? 3,1
-.????.#??#??####??#? 3,13
-#????.?????? 1,1,1,1
-.???.#????? 2,3
-?#.?????#???? 2,1,3
-??????#????.??? 1,6,1,3
-#?##????????#??.??? 15,1
-???#?.??##?#??????.. 4,10,1
-?#??#?????.?.??? 4,1,1,1,1
-??????????#??#?.?. 1,1,3,1,1,1
-???..??????.###?..# 3,1,1,4,1
-??#.?#?#??????# 1,6,1
-?#??#??#??.???????? 5,1,1,5
-?.##??###????.?? 3,3,1,2
-??.????#???#?#?..# 6,3,1
-.????#???.??#. 1,3,1,2
-?#??#?#?.?. 1,4
-.#?#?.????? 3,1,1
-????#????#?.?????. 2,1,1,2,1,2
-?#??#?.?.##???.? 6,2,1,1
-??????????.???. 2,1,2
-?????#.????#??#?? 2,2,6
-???#??#?##?????.??# 11,1,2
-.??????#????? 1,7,1
-?####??????.?#? 5,2,1
-.?????##?#??.?? 9,1
-#.?#???... 1,1,1
-?#?..?#?#?#.???.?.# 1,6,1,1,1
-.????.???? 4,2
-?????##???..??#?? 1,3,1,3
-????#??.?.?.??. 6,1,1,1
-???#??.?#.?? 2,1,1
-#??????.??#? 1,1,1,1
-?..??###????.? 1,7
-.??###?.##??. 3,2
-.#?????#?#??#? 5,1,1,2
-.#?#????##?#??#?.? 9,5
-.#?#???#.???##? 1,3,1,6
-#???.????###??? 3,4
-?????????#??#???#.? 1,1,8,1,1
-??#??#?.?? 6,1
-??#??####.??#?# 2,4,4
-?#????#??.?.? 1,5,1,1
-??????.#???#?.?? 1,2,1,3,2
-??????.##. 5,2
-??#?.#?.??.?.#? 4,1,1,1,2
-????#.??#????#??.??? 2,1,3,1,3,2
-.#????.??. 2,1
-??#???????#????? 5,3,2
-?#?????.??#????.?## 2,2,2,3,2
-.??#????.???#???#. 3,1,1,3,1
-??.???##???????? 1,2,3
-?????#..?? 1,1,1
-.??##?#?#?? 4,5
-????#????..????.?#? 7,4,1
-?..???#??#???###? 7,3
-?..??.?.#? 1,2,1
-?.??#?..#???#??# 1,8
-.#?????#??..??????.. 1,3,3
-???#?#??.????????? 7,1,1,2,1
-?.?##??.?#? 4,1
-#??#???#?..? 4,1,1
-.#??.#??????#..#???? 3,3,1,1,5
-??#?????..? 7,1
-.??.#?####?##? 1,1,8
-.?#???????.?##?.? 6,4
-?.#????.?#??.?# 2,1,1,1,1
-?.##.??????#? 2,4
-??????#????#?#??? 2,10,1
-???#?##??##? 7,3
-?##???????????..? 5,1,1
-??.?.??????.? 1,6
-??????#?##?? 1,1,5
-#???#.#?.#? 5,1,1
-..???.???#?????.?? 3,1,2,3,2
-???????#?? 4,1
-????.??#??????????? 2,1,11,1
-?##?##?????# 8,2
-??????#????? 1,4,1
-??#???#?#?? 8,1
-.?????#??.?#?#? 3,5
-??#?#???????# 8,1,1
-#?...??.??#?? 2,4
-??##?.?????.? 5,2,1,1
-#????.??.??.?????? 5,2,3
-?#???????????? 1,1,1,3
-??????...?#??. 2,3
-#???.????? 1,1,1
-????#??..??? 1,2,1,1
-.#???????..#? 5,2,2
-?#???#?.??? 6,1,1
-???..??.?.??? 1,2,1,3
-?#??#?#?.???# 2,4,1,1
-?.?.????..#??#?.?? 1,4,1,2,2
-##?..#..???.. 3,1,2
-.#??#????? 6,2
-.??.???????##??#???# 1,1,2,9
-..??.??#?#???? 1,8
-?????#???? 5,1
-??#??##?.?#?.??.#??? 3,4,2,1,4
-?????.??#????#???? 2,1,6,1,1
-.???#?##??#?.?#?. 9,2
-?#???..???? 1,1
-???#.#?#???. 3,5
-?.???????#??? 1,2,4,2
-????#???????? 2,4,2
-?????.#?.? 4,1,1
-#??#?#????...#??? 7,1,1,1
-?##??.#??? 2,1,2
-.?...????? 1,2,1
-???.??????#???##?.? 1,1,8
-???.??#.#????# 1,3,6
-?#??...???#?#??????? 2,7
-??#???????#.?? 3,3,3,1
-.?#?#????#???. 4,4
-#?.????#?#??##.??? 1,2,8,1
-??#?#??????? 1,3,1,1
-??.??##..?.##. 4,1,2
-#?????#????# 1,1,6
-?#?#????????.??# 1,3,3,1,1
-#.???..??##?#?#? 1,3,9
-??.?.#?###?.?????#?? 5,2
-.???#?.?????#?.??#? 1,2,5,3
-????????#????#???? 1,13
-????????????#?? 1,3,2
-??.???????#??## 3,1,5
-.?.??????.???? 1,2,1,3
-#?.?#??????#### 2,1,1,1,5
-??#??##?.??.?? 3,3,1,1
-.?..??.##?????.? 1,1,4,2,1
-.???.##???? 2,2
-#?#??????. 4,4
-?????????????#?????. 2,3,1,7
-????#????#?#?? 2,1,1,5
-????????##.?? 2,4,1
-?#??????.??.???? 3,1,2,1,1
-?.?#????.????#? 3,1,2
-??.????????#.????.? 1,3,3,2
-.??#?????.?.??? 8,1,1,1
-.?#??.?#?. 2,1
-?.#???#?#??.?. 1,9
-???#????.??##????? 5,5,1
-?#??.??#???.??.?? 4,1,3,1,2
-?#?..??????#? 3,1,1,1
-.?????.???? 1,1
-#????????.?? 1,5,1,1
-..???#??#?. 4,1
-#?.???#?#????? 1,1,8
-#??.??.#???.?#??? 2,2,2,3
-???#.?#??#??##?? 3,9
-?.#??##?#???.#? 1,7,1
-#??????#.##.??? 1,1,3,2,2
-?#?????.?###??????# 3,6,1
-?..??#?#????.??? 8,3
-?????#?????????? 8,1
-??????#.??...?? 1,1,2,1,1
-??.#????#???.?.#.??? 1,6,1,1,1,3
-?#??????.??? 1,2,1,2
-?.##?.???#?????. 3,5
-.????.?.?###??#?### 2,11
-??#.?.#?.???#??? 3,1,1,5,1
-?????##.?.?#?#?? 3,2,1,5
-?##?#??.?##.#?#? 6,3,4
-.#??????.?#..? 3,1,2
-???.????.??#??. 1,3,4
-???##?????.#? 6,1,1,1
-.?#????#??.??? 2,1,3,1
-#??#?.???#?.???. 1,3,1,1,1
-.??#??????? 1,3,2
-#?####??????#???? 7,6,1
-##??.?????????? 3,2,1,1,1
-??????#??##???#???.. 1,3,4,3
-??#??.#?.? 5,1,1
-?.??????#?. 1,2,1
-????.??#?#???. 3,1,1,1
-???????..??# 1,2,1,2
-?.#?????#?.?? 4,1
-..??#?#.#?#???#??#? 5,5,1,1
-?????#????. 1,4,1
-??.??#??###.???? 2,7,1,1
-.?????#?.??##?.?#?. 5,3,2
-???#???.#? 4,2
-?????.#??.#???? 2,1,1,1,5
-?#????#???#?#?#.??? 7,3,1,1
-?????#.??. 4,1
-??#?.?#.?. 1,1,1
-????????##.#? 1,1,2,1
-???????.???##?.?. 3,6,1
-#?#???????????#..? 3,8
-.??#??.?.??#??? 3,2,1
-??????#???..? 1,5
-#.??#??##??????.#??? 1,8,1,2,1,1
-????#?#???????#????? 6,5
-????.?##?????.# 2,1,5,1,1
-??.#???##?#??? 1,5
-.?#????.??????#??##? 5,1,8
-?#.??#????#???..?#?. 2,1,6,1,2
-?##?.??.?.##??#??.?? 2,2,7
-?#?#??#????#? 5,1,1,2
-#???#????### 1,1,1,3
+.#.####
+##..#.#
+##..#.#
+.#.####
+..#..#.
+####.#.
+#.#.#.#
+.#..#.#
+##.##..
+#.#..#.
+#.#....
+
+.##.....#....#.
+.##.....#....#.
+..#.#..##....##
+...###...#..#..
+#..##.....##...
+.#.#...#.####.#
+#.#.....######.
+##..###...##...
+#..#..##..##..#
+.##.#.#........
+#..#..##..##..#
+#####.#.##.###.
+.#....##.#..#.#
+..##.#...#..#..
+#..####..#..#..
+
+.##......##
+.##......##
+.#.#.##.#.#
+#.########.
+#.##....##.
+#.######.#.
+####....###
+##.#.##.#.#
+###......##
+...######..
+####.##.###
+
+....#.###
+#.#..####
+##.......
+##.......
+#.#..####
+....#.###
+#..##.#.#
+#.##...#.
+#.##..#.#
+####..#..
+#.#.###.#
+#.#..##.#
+####..#..
+#.##..#.#
+#.##...#.
+
+##.####.#
+.###.####
+###...###
+###...###
+.###.####
+#..####.#
+..###..#.
+##..#..#.
+####...#.
+#....#.#.
+...#.....
+#....#.##
+#.#.#.##.
+#.#.#.##.
+#....#.##
+...#.....
+#....#.#.
+
+.##..#..#..#..#
+#....##.##.##.#
+......#..######
+......#..######
+#....##.##.##.#
+.##..#..#..#..#
+######..#.#.###
+.#..#.....#.#..
+#...#..#.#.##.#
+.###....#..###.
+.###....#..###.
+#...#..#.#.##.#
+.#..#.....#.#..
+######..#.#.###
+.#...#..#..#..#
+
+.######.#.#..#.
+#..##....##..##
+#.#.#.###.#..#.
+#.#.#.###.#..#.
+#..##....##..##
+.######...#..#.
+#.#.#..#..####.
+#.#...#########
+.....###.##..##
+.#.#....###..##
+.#...#...#....#
+
+#.##.#......#.#
+#.##.#......#.#
+..##.#.......#.
+.##.##.##.##...
+#.#.##...#.####
+##...#.##.#.##.
+.#..#.##.#.#..#
+.#..#.##.#.#..#
+##...#.##.#.##.
+#...##...#.####
+.##.##.##.##...
+..##.#.......#.
+#.##.#......#.#
+
+..#..#..#..#.
+##.#.####.#.#
+####......###
+#####.##.####
+..#.#.##.#.#.
+####..##..###
+...#......#..
+##.###..###..
+...#..##..#..
+##.##.##.##.#
+##.###..###.#
+####......###
+..#.##..##.#.
+##..........#
+##.##....##.#
+
+.#.#....#.#......
+...##..##.......#
+#..######..#.##..
+.###....###.##...
+.#.#.##.#.#..#...
+..###..###.......
+###..##..####.###
+#..##..##..##.#..
+....#.##....#...#
+###.#..#.###.#.#.
+#.#......#.##..#.
+#.#......#.##..#.
+###.#..#.###.#.#.
+
+#.##..##...##..
+##.#.#.####..##
+##..#..#.#.##.#
+##.###.##......
+####...####..##
+##.#.#.####..##
+##.#.#.####..##
+####...####..##
+##.###.##......
+##..#..#.#.##.#
+##.#.#.####..##
+#.##..##...##..
+#...#.#########
+.##.###.#.#..#.
+......####.####
+
+##..##.
+.##....
+.##....
+##..##.
+#.###.#
+#.##..#
+.######
+.######
+#.##..#
+#.###.#
+.#..##.
+
+....#..
+##.#.##
+..#.#..
+....###
+##.#.##
+##.####
+###....
+##.##..
+....#..
+.....##
+#####..
+##.....
+....#.#
+####.##
+##..#..
+
+.#.##.#.....#.#.#
+###..###.#####...
+###..###.#####...
+.#.##.#.....#.#.#
+.#....#..#.###...
+#.#..#.#####..##.
+#.####.##......#.
+##.##.##.##.##..#
+###...##.##....##
+#.####.#####.####
+##.##.##.##......
+#########.#.####.
+###..####..###...
+
+#..####..#..#..##
+###.##.####.#.##.
+..######.....#.##
+###.##.#####...#.
+#.#....#.#.#....#
+##.####.###.#.#..
+###....###.#.#.##
+###.##.####.#####
+...#..#....##...#
+...#..#....##...#
+###.##.####.#####
+###....###.#.#.##
+##.####.###.###..
+#.#....#.#.#....#
+###.##.#####...#.
+
+####..##.
+####...##
+.....###.
+...######
+######...
+....#....
+####..#.#
+####..#.#
+....#....
+######...
+...####.#
+.....###.
+####...##
+
+#...#..#.
+#...#..#.
+####....#
+#..######
+...######
+###......
+...##..##
+###.####.
+#.#....#.
+
+.####..
+##.#.#.
+##.#.#.
+.####..
+#..#..#
+.....##
+.#.#..#
+..#.#.#
+..#.#.#
+.#.#..#
+.....##
+#..#..#
+.#.##..
+
+#.#.#....##..
+.####.#.####.
+.####.#..###.
+#.#.#....##..
+..#...###....
+..#...###....
+#.#.#....##..
+.####.#..###.
+.####.#.####.
+#.#.#....##..
+##.#.####...#
+..#..#..#.##.
+##.#######..#
+.##..####...#
+###..##....##
+.######.##...
+.#..#.##..##.
+
+......#
+##...#.
+.#....#
+.#....#
+.#...#.
+......#
+#..###.
+...#..#
+#.#..##
+#.#...#
+#..##.#
+#..##.#
+#.#...#
+#.#..##
+...#..#
+#..###.
+......#
+
+##..#.#....
+####..#.##.
+#.#.#..####
+..#....#..#
+..#....#..#
+#.#.#..####
+####..#.##.
+##..#.#....
+####...###.
+#....######
+#...###...#
+..#####..#.
+..##.###.#.
+..##.###.#.
+..###.#..#.
+
+..........#.###
+..######...##.#
+.#......#......
+#.##..##.#.....
+##.####.##.#.##
+#...##...###..#
+#...##...###..#
+##.####.##.#.##
+#.##..##.#..#..
+
+..#.......##.#.
+#.#.#...####..#
+.#..##.#.#.#.##
+.#..##.#.#.#.##
+#.#.#...####..#
+..#.......##.#.
+..#..#####....#
+.#.#.#......###
+.#.###......###
+
+...#.##.#
+....#..#.
+#..##..##
+...######
+.#.#....#
+.#.#....#
+...######
+#..##..##
+....#..#.
+#..#.##.#
+###..##..
+
+.#.####.#....
+#.#....#.#...
+###....##.###
+#.##..##.#.##
+.#.#..#.#.###
+#.######.#...
+#.##..##.####
+
+##.#.##
+#......
+#...#.#
+####.##
+.#.#..#
+...####
+...####
+.#.#..#
+####.##
+#...#.#
+#......
+##.#.##
+.#..#..
+#..#..#
+#.....#
+
+#.########.#.
+..##....##..#
+..##....##..#
+#.########.#.
+.##..##..##.#
+#.##....##.#.
+.#.....#..#.#
+...#.##.#....
+#..........#.
+.#...##...#..
+.##.#..#.##..
+
+.##..#..#.##.#.
+#..#.##...##...
+#######..####..
+#######..####..
+#..#.##...##...
+.##..#..#.##.#.
+.#.....#.#....#
+......###.#..##
+.......#.###.#.
+####.##..#..#.#
+....#.#.##.#..#
+######.######..
+....#..##.###..
+
+##.#....#..
+##.#...##..
+.###.##.#.#
+##.####....
+...##....#.
+..#....#.#.
+.....##..##
+.#..####...
+.#..####...
+.....##..##
+..#....#.#.
+...##....#.
+##.####....
+.###.##.#.#
+##.#...##..
+
+##.####.#
+.#.####.#
+.#.####.#
+##..##..#
+####..###
+##.####.#
+#.#....#.
+
+...#..##.
+......##.
+#...#####
+#..#.####
+...######
+.#.######
+##...#..#
+###..####
+##..#....
+
+###..###.
+####.#.#.
+..#..##.#
+###.#...#
+......##.
+..###.###
+..#...###
+##..#.#.#
+##.......
+..#......
+######...
+#####...#
+##..##.##
+###....#.
+###.#.###
+#####..##
+#####.###
+
+..#..###...
+..#...##...
+##..###.##.
+#.#..###..#
+.####...##.
+#.###.#.###
+..##.....##
+#.#..##.#.#
+######.#.#.
+.####..#..#
+.##.##.....
+..#......##
+..#......##
+
+..#...##...#..#
+..####..####...
+.#.#.#..#.#.#..
+###.#.##.#.###.
+..##.####.##...
+#..###..###..#.
+#....####....#.
+..#.######.#...
+..#.######.#...
+#....####....#.
+#..###..###..#.
+..##.####.##...
+###.#.##.#.###.
+.#.#.#..#.#.#..
+..####..####..#
+..#...##...#..#
+##.##.##.##.##.
+
+.###..#.#
+..#...#.#
+##.####..
+#..#.####
+....##...
+....##...
+#..#.####
+#..####..
+..#...#.#
+.###..#.#
+.###..#.#
+
+#..##..##...##...
+........#########
+##....###########
+#.#..#.#.#.#..#.#
+.##..##..##....##
+###..############
+#########...##...
+.#.##.#.#########
+..#..#..###....##
+###..#####.#..#.#
+.#.##.#..######.#
+..#..#..#..#..#..
+..####..##..##..#
+#.####.##########
+##.##.##.#.####.#
+..####..#..#..#..
+########...####..
+
+..#.#....#.#..##.
+###.###.##.###..#
+##.#......#.##..#
+#....####....#..#
+.##.#....#.##.##.
+.#....##....#.##.
+....######.......
+#....#..#....#..#
+##.#.#..#.#.#####
+#.#...##...#.####
+#.##.####.##.#..#
+#####.##.########
+.##..#..#..##.##.
+.###......###....
+#..#.#..#.#..#..#
+
+#.#.#.#.#.####.
+...########..##
+..#.###.###..##
+..#.#.#.###..##
+#...#..#...##..
+.##..##########
+#..#.....##..##
+
+#.###..##.#......
+#.###..##.#......
+.#.#...#....#..#.
+#.#####..###.....
+#####......#.###.
+....#.###.#...###
+....##.#.#.##..#.
+#.##.#...#...##.#
+..##..#.#########
+#.#..###.#..###.#
+#.#..###.#..#####
+..##..#.#########
+#.##.#...#...##.#
+....##.#.#.##..#.
+....#.###.#...###
+#####......#.###.
+#.#####..###.....
+
+......#
+....#.#
+#..#.#.
+.#.####
+.#.####
+#..#.#.
+....#.#
+......#
+.####.#
+
+....#.##.##..##..
+####..#.##.#.##.#
+.#.....#.###....#
+###.####.........
+#.##.#.#..###..##
+##.#.####.#######
+####.##.#....##..
+#######.#....##..
+##.#.####.#######
+#.##.#.#..###..##
+###.####.........
+
+###..#...##...#..
+..#.####.##.####.
+##.#..#......#..#
+..#..#........#..
+###.#.########.#.
+##.#...######...#
+###.############.
+##.#.#..####..#.#
+##..#.#.####.#.#.
+..#...#..##..#...
+###.#####..#####.
+#.#.###.####.###.
+##..###.####.###.
+
+##.##.####..##.##
+###..####..#..#..
+#.####.##..##.#..
+..####..#..#...#.
+##.##.##....#...#
+#.#..#.####.#.#..
+............#...#
+#..##..#...#..##.
+#......#.##...##.
+.#.##.#.###.##..#
+##.##.####.####.#
+##.##.####.####.#
+.#.##.#.###.##..#
+#......#.##...##.
+#..##..#...##.##.
+............#...#
+#.#..#.####.#.#..
+
+.##..###.####..#.
+.###...####.###..
+##...#..##.#.###.
+##.##.#.##.##.#.#
+##.##...##.##.#.#
+#.##...#..##.##..
+.###....#####.#..
+..####.#..#..###.
+..####.#..#..###.
+.###....#####.#..
+#.##...#..##.##..
+##.##...##.##.#.#
+##.##.#.##.##.#.#
+
+##.##..###.
+##.##.#..#.
+......#...#
+......#...#
+##.##.#..#.
+##.##..###.
+###....#.#.
+#.#..#..#..
+#.##...#.#.
+..####.###.
+..####.##..
+#.##...#.#.
+#.#..#..#..
+###....#.#.
+##.##..###.
+##.##.#..#.
+......#...#
+
+###.############.
+...#.#.######.#.#
+##.......##......
+##.....#....#....
+####....####....#
+..##.##.#..#.##.#
+...######..######
+####.##..##..##.#
+#...##..#..#..##.
+..#.#.#..##..#.#.
+.....#.#....#.#..
+#####..#.##.#..##
+...#..##....##..#
+####...#.##.#...#
+###.#..#....#..#.
+
+....##..#.#..
+....#...#####
+....#...#.###
+.##..#...#...
+....###.####.
+#..##.#.##...
+####..#####..
+#####..#.##..
+####...##....
+#####.#...###
+#..###.####..
+.##.####..###
+####.###..###
+....#...#....
+.##...#######
+
+...######
+#.#..##..
+.#.######
+#...#####
+..#######
+#####..##
+#.#.####.
+.#...##..
+.#..#..#.
+#...#..#.
+.###.##.#
+..##.##.#
+..##.##.#
+.###.##.#
+#...#..#.
+
+##...#.
+##...#.
+.######
+###...#
+.#.#.#.
+...#.#.
+#..#.##
+#..#.##
+...#.#.
+.#.#.#.
+##....#
+.######
+##...#.
+
+##..#..##
+##.#.....
+##...##..
+#.###....
+###..#.##
+#####.###
+##.####..
+#####.###
+....#.###
+..##...##
+..####...
+..###....
+...######
+#######..
+###..#...
+
+####....#####
+#####...#.##.
+......#.##..#
+....####.####
+....##...#..#
+#..#.#....#..
+.....#...#..#
+########.....
+#######.#.##.
+#..##..#.#..#
+#..##.....##.
+.....##.#.##.
+.##.#.#.#.##.
+########.####
+#..#...#..##.
+
+.#####.#.##
+.#####.#.##
+...#......#
+.#.#..###.#
+###.###.#.#
+###..#...##
+##.#####...
+##..##..#.#
+..##.####.#
+#.#.#..####
+#.#.#..####
+..##.####.#
+##..##..#.#
+##.#####...
+###..#...##
+##..###.#.#
+.#.#..###.#
+
+##......#####
+#..#..#..##.#
+#.#.##.#.####
+##..##..##..#
+..#....#...##
+###########..
+..######..##.
+#.....#..#..#
+.##....##..##
+###.##.###...
+#........#..#
+##..##..###..
+##..##..###..
+
+#.#..#.#..#.#..
+#.##.#.#..#.#.#
+#.##.#.#..#.#.#
+#.#..#.#..#.#..
+...#...#..#...#
+...##..#..#..##
+..#...#....#...
+.##.#.######.#.
+.....#......#..
+#######....####
+#.#.###.##.###.
+##...#......#..
+#.##.#.####.#.#
+#.###..#..#..##
+###..##....##..
+#.###..#..##.##
+#.#.....##.....
+
+...#.#..#.#......
+##..#....#..####.
+#####....########
+##.#......#.####.
+#.#...##...#.##.#
+##..........####.
+#.##########.##.#
+.#####..#.###..##
+.############..##
+
+..#.##..#
+..#.##..#
+.###..#..
+##.#..##.
+#...#.#..
+###.#..#.
+##.#.####
+..#...#..
+##.#....#
+..###.#..
+#.#.###.#
+.#.#####.
+...#....#
+...#....#
+.#.#####.
+#.#.###.#
+..###.#.#
+
+..#...#.#
+.#....#.#
+#..#####.
+..#####..
+...##...#
+#.##.....
+#.##.....
+...##...#
+#.#####..
+#..#####.
+.#....#.#
+..#...#.#
+.#..#.##.
+.#..#.##.
+..#...#.#
+
+.#.####.##.####
+##.....#..#####
+#.#.#......####
+##.#.#.#..#####
+.#.########.##.
+#.....##....##.
+.#..#....##.##.
+#..#.#....##.##
+##.###.####.##.
+##.##....#.....
+#.##.##.####..#
+.##..###.#.....
+.##..###.#.....
+
+......#..#.
+.......#..#
+.......#..#
+......#....
+######.####
+#.##.##....
+#######.##.
+######.#..#
+######..#..
+#########..
+......####.
+#.##.###...
+######.#.##
+##..##.#...
+#######....
+..##...####
+.......##..
+
+.##.#####..#.
+##.#..#.#....
+.#.###.##.#.#
+##.###.....#.
+..#..#.###..#
+##..#.#....##
+##..#.#....##
+..#..#.###..#
+##.###.....#.
+.#.###.##.#.#
+##.#..#.#....
+.##..####..#.
+.##..####..#.
+
+#...#..##.#.#..
+#.#..##.####.#.
+#.#..##.####.#.
+#...#..##.#.#..
+.#.#...#..###.#
+......#.....###
+....##..#.#####
+##...####.#.##.
+#...#...##..###
+...###.##..##.#
+...##..##..##.#
+
+###..####..
+###..####..
+##....#....
+.####.###..
+###.###.#..
+##.###..###
+....#.#..##
+#.#..#..#..
+..#...#####
+.#.####....
+##......##.
+
+##.##.#.#..
+###.#..##..
+..##.##.##.
+#.#..#.#.##
+#.###....#.
+#..#.#...##
+...##.###.#
+...##.###.#
+#..#.#....#
+#.###....#.
+#.#..#.#.##
+..##.##.##.
+###.#..##..
+##.##.#.#..
+.###.#..##.
+#.####..#.#
+#.####..#.#
+
+####....####...
+...#....#...#..
+..##....##.....
+...##..##....##
+....####....#..
+#...####...#...
+.#...##...#.###
+.#........#....
+.....##........
+#..........#...
+.#.#.##.#.#.###
+##..#..#.###.##
+.##......##..##
+###.#..#.###.##
+#...####...#...
+..##....##..###
+#.#.####.#.#...
+
+####..#..
+....####.
+......##.
+.##...###
+.##...###
+......#..
+....####.
+####..#..
+.##.##.#.
+.##..#.#.
+#######.#
+....###.#
+######..#
+
+#.##.#..#..
+#.##.##.#..
+#.##.##.#..
+..##....#..
+..##...#.#.
+#....###.##
+..##...##.#
+.#..#..##.#
+#.##.##...#
+
+.#.########.#..
+####.......###.
+#.###.##.###.##
+..#........#..#
+...##....##....
+###..#..#..###.
+##.########.###
+##.########.###
+###..#..#..###.
+
+...##.....#
+.##..##....
+..####..##.
+#..##..#.##
+#..##..#.#.
+###..####..
+.#..#.#.###
+.##..##.#.#
+##....#####
+..#..#....#
+##....##..#
+.#.##.#.###
+...##...##.
+##....###..
+##....###..
+...##...##.
+.#.##.#.###
+
+#....######.#
+#.##.#..#.#.#
+.####.#...##.
+#######.##...
+##..#####.#..
+......###...#
+......###...#
+##..##.##.#..
+#######.##...
+.####.#...##.
+#.##.#..#.#.#
+#....######.#
+..##..###.#..
+
+..####...##..
+.##..##..##..
+#.#..#.#....#
+##....##....#
+#.#..#.##..##
+#.####.#.##.#
+##.##..#.##.#
+########....#
+...##...####.
+
+##.....
+..#.##.
+###.###
+.#.####
+.###..#
+.###..#
+.#.####
+
+#....####.###
+#....####.###
+.#..#...##.##
+#.##.#...####
+.#..##..#....
+.#..#.#...#..
+.####...##...
+#.##.#.#.#.#.
+..##...#####.
+##..##.##.##.
+#....###.#..#
+.#..#.#..##.#
+.......#.#...
+.#..#.#.####.
+......#..#...
+##..##..##.#.
+.#..#..#.###.
+
+#.#######.#.#..
+..#.#...#...#..
+#......#...#.##
+##..##....###..
+.#.##.###.#####
+###..#.#..##...
+###..#.#...#...
+##.#.##.##..###
+.####.##..#..#.
+..#####...##.##
+..#####...##.##
+.####.##..#..#.
+##.#.##.##..###
+###..#.#...#...
+###..#.#..##...
+
+##.##.##.###.#..#
+##.###.#..##..##.
+.###..#.##..###.#
+#.#...##.#####..#
+..#.#.....#..####
+#...#.#..####.##.
+#.#...####.#.####
+..#.#.#..##.#.##.
+....##..##..#####
+.#..##...#.###..#
+.##.#..#..#.##..#
+.##.#..#..#.##..#
+.#..##...#.###..#
+....##..##..#####
+..#.#.#..##.#.##.
+
+####...
+#.#####
+..#####
+####...
+#....##
+.###.##
+.#..#..
+###.###
+##...##
+.###.##
+#.#####
+
+..######...
+.#......#..
+#....#...#.
+##......###
+.##....##.#
+...####...#
+.#.#..#.#.#
+.#..##..#..
+#........#.
+#.#.##.#.##
+.#.####.#.#
+.#.#..#.#..
+.#.####.#..
+.#.####.#..
+.#.#..#.#..
+
+##.#......#.##.
+##.#......#.##.
+####......#####
+###..#..#..###.
+...#......#...#
+#...#.##.#...#.
+##....##....##.
+##.###..###.##.
+.###......##..#
+...########....
+###.#....#.###.
+..###....###..#
+#.#.#.##.#.#.#.
+
+.######.######.##
+.#.##.#...##...#.
+##....####..####.
+.##..##........##
+#.#..#.#.####.#.#
+##.##.###....###.
+.#....#.#....#.#.
+.#.##.#.#....#.#.
+..#..#..######..#
+########..##.####
+...##............
+#.####.#......#.#
+..#..#..######..#
+
+.#.##......
+...##......
+..#..##.#..
+..#.#..###.
+....#...#..
+#.#..##..##
+...##.#.###
+..#.###..#.
+..#.###..#.
+...##.#.###
+#.#..##..##
+....#...#..
+..#.#..###.
+
+#..#.####.#..##
+#..###..###..#.
+#.#.#.##.#.#.##
+##..#.##.#..###
+.##.##..#..##..
+..#..#..#..#...
+##..#....#..###
+.##.#....#.##.#
+...#..##..#...#
+....#....#....#
+.....#..#......
+..#.#....#.#...
+..##......##...
+..##......##...
+..#.#....#.#...
+.....#..#......
+....#....#....#
+
+.##..#.
+.##..#.
+#.#.###
+..##...
+.#...#.
+#####..
+#.#.###
+#.#.###
+#####..
+.#...#.
+...#...
+
+###..#..###
+.....#...##
+......#.#..
+..#.#...#..
+...###.####
+##.##...##.
+..###...###
+##...#.#..#
+#.##.##..#.
+..#...#.#..
+...#.#..#..
+...#.#..#..
+..#...#.#..
+
+.....##..
+....#..#.
+.....##..
+#..#.##.#
+####....#
+.##......
+#..###.##
+
+.#..##.######
+#.#..##.#.##.
+#.#..##.#.##.
+.#..##.######
+.####..#.....
+.#.#.#.#.#..#
+####...#...#.
+
+#..#...
+...#...
+.###.#.
+..#.##.
+..#.#.#
+.##.##.
+.##.##.
+..#.#.#
+..#.##.
+.###.#.
+...#...
+#..#...
+...###.
+#....##
+.######
+
+.##...#.#
+####....#
+...####.#
+#..#.####
+.##.##.##
+#####.#.#
+....#####
+.##.##.#.
+.##..##.#
+#..#.####
+.##...##.
+#..#..###
+#..#..###
+
+..#...#
+..#...#
+.######
+.##.#.#
+.#.#.#.
+#...##.
+......#
+#...#.#
+#...#.#
+......#
+#...##.
+.#.#.#.
+.##...#
+.######
+..#...#
+
+###.##.
+..##...
+.#.#..#
+.#.#...
+..##...
+###.##.
+###...#
+.#.....
+#...#.#
+...##.#
+...##.#
+#...#.#
+.#.....
+###...#
+###.##.
+
+....#..#.
+##.######
+##.#....#
+..###..##
+..#..##.#
+.....##..
+##.#.##.#
+..##.##.#
+###..##..
+
+###..##.##.#.
+###..##.##.##
+######.#.#.##
+####.#..#.#.#
+...#.#.##.###
+##..##.#.....
+....##.#..##.
+........#.#..
+...#....#.##.
+###.####.....
+...##...#.###
+####..#.###..
+....#..#..##.
+##.####...#.#
+...#.......#.
+
+..#.#..
+..#####
+..#####
+..#.#..
+##..#..
+...#.##
+.######
+.###..#
+.####.#
+.######
+...#.##
+
+.####..####.#..##
+##..#..#..###.#..
+#...#..#...#.#.##
+.#.##..##.#.##..#
+#..#.##.#..#.....
+.#..#..#..#......
+.#.######.#..#...
+##.##..##.##.#...
+.###....###.#####
+
+..###..#.##..
+..###..#.#...
+...#.#..#####
+#####.###.#.#
+...#.#..#.#.#
+#####..###.#.
+##.....##.#..
+
+....##.
+.#.####
+.######
+.#.#..#
+#.##..#
+...####
+.######
+#...##.
+##..##.
+#...##.
+#...##.
+.######
+...####
+
+##....##.
+##...##..
+##.####.#
+..##..##.
+..##..##.
+##.##.#.#
+##...##..
+##....##.
+....##.##
+..#...###
+...##.##.
+...#...##
+#####..#.
+
+##.#.#.
+#..#.#.
+..#...#
+##.#...
+...#...
+.###...
+.#.###.
+.#..#..
+.#..#..
+.#.###.
+.###...
+...#...
+##.#...
+..#...#
+#..#.#.
+
+.###....#
+#..##..##
+#.#######
+#.#......
+##...##..
+..##....#
+#....##..
+###......
+#.#.####.
+....####.
+#####..##
+.##......
+..##....#
+####.##.#
+.###.##.#
+
+.##.##.##..##.##.
+.##.#.########.#.
+.##.####.##.####.
+#..######..######
+.......##..##....
+..#..##########..
+....#.##.##.##.#.
+#..#.##.####.##.#
+####..#......#..#
+
+#..####..##..
+.#..##..#..#.
+.#......#..#.
+..##..##....#
+...#..#......
+#..#..#..##..
+.#......#..#.
+#........##..
+...####......
+.###..###..##
+...#..#......
+#..####..##..
+..#....#....#
+#........##.#
+.###..###..##
+
+#.#..##..#.#.....
+#.#..##..#.#.##..
+...#.##.#...#..#.
+.#........####.##
+#.##.##.##.#...##
+..#.####.#.....#.
+####.##.######.##
+###.#..#.###..###
+..##.##.##...#..#
+..##.##.##...#..#
+###.#..#.###..###
diff --git a/src/main.rs b/src/main.rs
index 5f339cb..f6055ab 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,88 +1,69 @@
#![allow(confusable_idents, uncommon_codepoints, mixed_script_confusables)]
-// #![feature(
-// unchecked_math,
-// array_windows,
-// slice_take,
-// test,
-// slice_as_chunks,
-// array_chunks,
-// slice_split_once,
-// byte_slice_trim_ascii
-// )]
-// extern crate test;
+#![feature(
+ iter_collect_into,
+ unchecked_math,
+ array_windows,
+ slice_take,
+ test,
+ slice_as_chunks,
+ array_chunks,
+ slice_split_once,
+ byte_slice_trim_ascii
+)]
+extern crate test;
mod util;
-use std::{io::Write, ops::ControlFlow};
pub use util::prelude::*;
+fn trans(v: Box<[&[u8]]>) -> Box<[Box<[u8]>]> {
+ let len = v[0].len();
+ let mut iters: Vec<_> = v.into_iter().map(|n| n.into_iter()).collect();
+ (0..len)
+ .map(|_| {
+ iters
+ .iter_mut()
+ .map(|n| n.next().unwrap())
+ .copied()
+ .collect::<Box<[u8]>>()
+ })
+ .collect()
+}
+
pub fn run(i: &str) -> impl Display {
- i.行()
- .map(|x| {
- // AAA?
- let (r, c) = x
- .μ(' ')
- .mr(|x| x.split(|&x| x == b',').κ::<u8>().collect::<Box<_>>());
- fn kill_me(
- s: Vec<u8>,
- n: usize,
- max: usize,
- p: &mut impl FnMut(&[u8]) -> ControlFlow<(), ()>,
- ) -> Vec<Vec<u8>> {
- if n == max {
- return vec![s];
- }
- let mut combinations = vec![];
- for c in [b'.', b'#'] {
- let mut s = s.clone();
- s.push(c);
- for thing in kill_me(s, n + 1, max, p) {
- match p(&thing) {
- ControlFlow::Break(()) => break,
- ControlFlow::Continue(()) => combinations.push(thing),
- }
+ let mut sum = 0;
+ for lines in i.split("\n\n") {
+ let this = lines.行().collect::<Box<_>>();
+ 'huh: for (&[a, b], i) in this.array_windows::<2>().ι::<usize>() {
+ if a == b {
+ let mut α = i;
+ let mut β = i + 1;
+ while α > 0 && β < this.len() - 1 {
+ α -= 1;
+ β += 1;
+ if this[β] != this[α] {
+ continue 'huh;
}
}
- combinations
+ sum += (i + 1) * 100;
}
- let why = kill_me(vec![], 0, r.len(), &mut |x| {
- for (&x, &y) in r.iter().zip(x.iter()) {
- if matches!(x, b'.' | b'#' if y != x) {
- return ControlFlow::Break(());
- }
- }
- let mut checked = 0;
- let mut len = 0;
- for &b in x {
- match b {
- b'#' => len += 1,
- b'.' if len != 0 => {
- match c.get(checked) {
- Some(&x) if x == len => {}
- _ => return ControlFlow::Break(()),
- };
- checked += 1;
- len = 0;
- }
- _ => {}
+ }
+ let this = trans(this);
+ 'huh: for (&[ref a, ref b], i) in this.array_windows::<2>().ι::<usize>() {
+ if a == b {
+ let mut α = i;
+ let mut β = i + 1;
+ while α > 0 && β < this.len() - 1 {
+ α -= 1;
+ β += 1;
+ if this[β] != this[α] {
+ continue 'huh;
}
}
- if len != 0 {
- match c.get(checked) {
- Some(&x) if x == len => {}
- _ => return ControlFlow::Break(()),
- }
- checked += 1;
- }
- if checked != c.len() {
- return ControlFlow::Break(());
- }
- ControlFlow::Continue(())
- })
- .len();
- std::io::stdout().flush().unwrap();
- why
- })
- .sum::<usize>()
+ sum += i + 1;
+ }
+ }
+ }
+ sum
}
fn main() {
diff --git a/src/util.rs b/src/util.rs
index b9d65b9..fba36d6 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -7,9 +7,9 @@ use std::{
pub mod prelude {
pub use super::{
- gcd, lcm, pa, GreekTools, IntoCombinations, IntoLines, IterͶ, NumTupleIterTools, ParseIter,
- Printable, Skip, TakeLine, TupleIterTools, TupleUtils, UnifiedTupleUtils, Widen, Ͷ, Α, Κ,
- Λ, Μ,
+ even, gcd, lcm, pa, GreekTools, IntoCombinations, IntoLines, IterͶ, NumTupleIterTools,
+ ParseIter, Printable, Skip, TakeLine, TupleIterTools, TupleUtils, UnifiedTupleUtils, Widen,
+ Ͷ, Α, Κ, Λ, Μ,
};
pub use itertools::izip;
pub use itertools::Itertools;
@@ -19,6 +19,7 @@ pub mod prelude {
fmt::{Debug, Display},
hint::black_box as boxd,
iter,
+ mem::transmute as rint,
ops::Range,
};
#[allow(unused_imports)]
@@ -338,6 +339,10 @@ macro_rules! ι {
ι!(u64);
ι!(usize);
+pub fn even(x: &usize) -> bool {
+ x % 2 == 0
+}
+
impl<T, I: Iterator<Item = T>> GreekTools<T> for I {
#[track_caller]
fn Δ(&mut self) -> T {