adventofcode

git clone https://git.ce9e.org/adventofcode.git

commit
9adf36531dc154ccf3144366f6f9938639460d05
parent
3f26ef6152303dafcb0d253a85e827be2e6e3b68
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-12-12 17:32
2023-12-12

Diffstat

A 2023/12/input.txt 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/12/solution.rs 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A 2023/12/test.txt 6 ++++++

3 files changed, 1122 insertions, 0 deletions


diff --git a/2023/12/input.txt b/2023/12/input.txt

@@ -0,0 +1,1000 @@
   -1     1 ?#?##?#????.?..?? 9,1
   -1     2 ????????#???#? 1,8
   -1     3 .??????#???#??????? 2,7,1,1
   -1     4 ???.?.?.???#.? 1,1,1,4
   -1     5 ??#???#?##??. 4,5
   -1     6 ??????##??#???????? 1,10,1
   -1     7 ?#?#??.???.???? 6,1,2
   -1     8 ?#?#??..#???#???#? 6,1,4,2
   -1     9 ??????.?.???#?####? 5,1,9
   -1    10 .#?#??#.????#?#??#? 4,1,1,5,1
   -1    11 ????..????..??? 3,2,2
   -1    12 .?#??#.??.? 4,2
   -1    13 ???#????#??? 2,4
   -1    14 #.??#??#??.????#? 1,3,3,1,1
   -1    15 ???.#?????#. 1,1,4,2
   -1    16 ??#?#?.??#??. 3,1,1,3
   -1    17 ?????#???? 2,4,1
   -1    18 ?.??????.?#?#? 5,3
   -1    19 .?????#???..? 7,1
   -1    20 .????????.# 1,3,1
   -1    21 ???#.?.?.. 1,1,1
   -1    22 ?.???.??????#??#??? 2,2,6
   -1    23 ??#???.???????#??# 2,10
   -1    24 ?#??#?.????.???? 2,2,1,1,1
   -1    25 ????#?##??. 1,6
   -1    26 #?#???#???.????? 8,1
   -1    27 ???.?????#???? 1,7
   -1    28 ?????#?????#?...???# 11,1,1
   -1    29 ?.?#?.??.#?#? 2,2,4
   -1    30 ???#.????#??##. 1,1,3,1,2
   -1    31 ??????.????? 2,1
   -1    32 ???#???#?..??.?#??## 1,7,2,6
   -1    33 ?.??#..#???#???.?? 1,1,5,1,1
   -1    34 ?.???###?? 1,5,1
   -1    35 ???.?.#??#?????.?#? 3,2,1,3,1
   -1    36 ???.??.???? 1,1,3
   -1    37 .?##????????.. 6,1
   -1    38 ????????#???##?#?#. 1,2,2,8,1
   -1    39 ?##?#?????#.????? 4,1,2,4
   -1    40 ?????#??.?#? 4,3
   -1    41 ?##???.#??.? 2,1,1,1
   -1    42 ???.#???#??????# 5,4
   -1    43 ?.?????#.???#..? 4,1,1,1,1
   -1    44 .?????#??????..#? 8,1,1
   -1    45 ????#??##?? 4,2
   -1    46 .??##??#?????.. 1,9
   -1    47 ?.?????????? 1,3,1
   -1    48 ?#??..????..??? 1,2
   -1    49 ??????.?.????? 2,2
   -1    50 ?.??##?.?? 1,4,2
   -1    51 ??#?.#?.#. 3,1,1
   -1    52 ??.?##???????#.? 2,5,3
   -1    53 ???.?#?.?#?#?. 1,1,1,4
   -1    54 ??.#???????.# 1,1,3,1
   -1    55 ??###???#? 4,2
   -1    56 ?.?????#??#???? 1,1,1,5
   -1    57 ?..??.?##?????? 1,1,2,1,1
   -1    58 #??#.#.?.???? 4,1,1,2
   -1    59 ?#?????#???#??#.#?. 6,1,5,1
   -1    60 ?.?###???.????#??? 1,4,1,1,1,4
   -1    61 ???#?.#.##?#?##? 3,1,8
   -1    62 ??#?#?#??????#??#?.? 1,6,7
   -1    63 ##???#?#.???.? 8,1,1
   -1    64 ?..#??.????#?#??.?? 3,5
   -1    65 ?????#?##??. 2,4,1
   -1    66 ??.???###?.?????.? 1,6,1,1,1
   -1    67 ??????????#?#??? 2,4,1,1,2
   -1    68 ?#???#???#???.?#? 2,9,2
   -1    69 ?#??..????? 1,3
   -1    70 ??#?.?.????#.? 3,1,2
   -1    71 ???#??#?#..???? 2,3,4
   -1    72 ?#.##?#?..???#?##.?# 1,2,2,4,2,2
   -1    73 ???.?..#?.???? 1,1,2,3
   -1    74 ????#?#????.? 1,8,1
   -1    75 ?#?????????#?? 1,1,3,5
   -1    76 ???.#??#????? 4,1,1
   -1    77 .#????.??? 1,1,1
   -1    78 ??.?????#????#?#? 2,1,2,1,4
   -1    79 .???.????? 3,1,1
   -1    80 #????#??##???? 1,9
   -1    81 ????#?#?#??.?#?? 4,1,1,2
   -1    82 ??????..?#? 5,3
   -1    83 ??#?#??#????#???#??. 7,5
   -1    84 ??###?.???#??.#. 5,5,1
   -1    85 ?????##??. 3,3,1
   -1    86 ?.??????#????????# 1,1,12
   -1    87 .????.????? 1,1
   -1    88 ???.??#??..?#?..?#?. 3,4,3,2
   -1    89 ???????.?#??? 3,3,3
   -1    90 ??#???.?????? 2,1
   -1    91 ?#?.?##?#??## 1,6,2
   -1    92 .????.??#??#?.... 1,6
   -1    93 .???.#???#? 1,5
   -1    94 .?#.???#??? 2,2
   -1    95 #...??.???#? 1,1,1,1
   -1    96 #.???.?#.??????????# 1,1,1,1,11
   -1    97 ????#??.?? 4,1
   -1    98 ??#???..??? 5,1
   -1    99 ..??????#?? 1,5
   -1   100 ????##?#?.??????.? 6,4,1
   -1   101 ?.?????????????..? 5,3
   -1   102 ??#???????????##???? 5,2,2,6
   -1   103 .?#??.??#???# 3,4,2
   -1   104 ????#?#????##? 5,3
   -1   105 ?#?.??.???#???#?##? 1,1,12
   -1   106 ??.???#.????????##?? 1,1,2,1,1,8
   -1   107 .??????#??? 2,3
   -1   108 ?#?????#?#? 2,4
   -1   109 .?????..????? 2,3
   -1   110 .?.???#????.???..?. 4,2
   -1   111 ??.??..????????. 2,2
   -1   112 ??##????#???.?#? 1,10,2
   -1   113 ??????#??.?...? 1,3
   -1   114 ??##???#?.????#????? 6,6
   -1   115 ?#?????#?#?????? 2,5,3
   -1   116 ??#???????#???? 5,4,1
   -1   117 #?.????..?#?. 1,1,1,2
   -1   118 ????????#??#####? 3,12
   -1   119 ????????#??#? 2,1,6
   -1   120 ????##??.?#. 2,3,2
   -1   121 .?.?##?.????#???. 1,2,8
   -1   122 ?.#.????.#????? 1,4
   -1   123 ??????????.? 1,1,2,1
   -1   124 ??.????#??##?. 1,1,6
   -1   125 ???.?#??..# 3,3,1
   -1   126 ?????#??????.?#.. 10,2
   -1   127 ...??.???????#???#?. 1,11
   -1   128 ??????.#.??.?.? 3,1,1,1,1
   -1   129 ????.#????#?.#?#?? 2,1,2,1,1,1
   -1   130 ???#?#..#???? 4,1,2
   -1   131 .????..?#?#??.? 2,6
   -1   132 .??#??###?#?#??#??.. 4,12
   -1   133 ??#???#??# 2,1,1
   -1   134 ????..#???..???? 3,1,2,1,1
   -1   135 .#??.???#? 1,1,1
   -1   136 ?#??#?.???#. 1,1,1,1
   -1   137 ?....????##?.??..? 1,1,1,3,1,1
   -1   138 ???.#???????#??.#?# 1,11,3
   -1   139 .?.?#????#? 2,1,1
   -1   140 ?#??#??#.??#?.?????? 7,2,3
   -1   141 ???????????.?. 1,1,5,1
   -1   142 ??#???####?# 3,6
   -1   143 ??#??#.?????????? 1,4,1,1,5
   -1   144 ??####?##??.#.?. 8,1
   -1   145 ?????#??.?#?#?? 3,2,4
   -1   146 ?.???##?#...?? 7,1
   -1   147 ?#?.#?##?#?????# 1,12
   -1   148 .?????#??#??#???.?#. 1,13,1
   -1   149 .??##??#?????# 1,6,2
   -1   150 ??.??.?##????.? 1,1,6,1
   -1   151 ??..????#?#. 1,2,3
   -1   152 ?#?.?#..???? 3,1,1,1
   -1   153 ?.##??????? 2,2
   -1   154 ????#?###??.???# 3,6,1,2
   -1   155 ?#??????#???.??????? 11,3
   -1   156 ???..#?##??# 1,1,5,1
   -1   157 ???#?..?????? 4,2,1
   -1   158 #?#????.??..?# 5,1,2
   -1   159 ?#???.???? 2,2
   -1   160 ???###?###??.#.? 11,1
   -1   161 ????###?#?#???. 11,1
   -1   162 ??#??????#??? 2,2
   -1   163 #??.#...??#? 3,1,1,1
   -1   164 .#.?.?##??#???#.?.#? 1,1,8,1,1,2
   -1   165 ?#???????#..#?? 4,1,1,1
   -1   166 ##??#?#.???.?.? 3,3,3,1
   -1   167 ????.??..????????? 1,1,1,3,1,1
   -1   168 ???????#????. 1,1,4
   -1   169 ???????#????# 1,5,1
   -1   170 ..#??????? 2,4
   -1   171 ??#???.???? 2,4
   -1   172 .???#??.???##?. 5,4
   -1   173 ?.???##.??????..? 2,3
   -1   174 .#???.?.??#???#??#?? 1,1,1,10
   -1   175 .??.#???#???? 2,9
   -1   176 ???????##????????.? 1,10,1
   -1   177 ?#.?.#??#?????. 1,1,1,3,1
   -1   178 ???.????#.?.? 5,1
   -1   179 ?.?#???#??????.? 1,1,2,3,1
   -1   180 ??#??..?#.? 5,2
   -1   181 .??#?.#.#.?? 3,1,1,2
   -1   182 ??#.?#?.???#?? 3,2,3
   -1   183 ??????#???..?.??.?? 8,2
   -1   184 ??..??.?#??? 2,1,3
   -1   185 ??.???#???? 2,2,1
   -1   186 ??????#???.#??# 1,2,2,4
   -1   187 #??.#?#?...??????## 1,1,4,1,1,2
   -1   188 ???#????#????.?.???? 12,2
   -1   189 ?#?##?.??????? 5,3,1,1
   -1   190 ??????.??????? 1,2,4
   -1   191 ???..??????..??## 2,3,1,1,2
   -1   192 ?.??..????.?? 1,1,2,1
   -1   193 #?.???.?..??? 1,2,1,2
   -1   194 ????#.#??#??????#?? 1,2,2,10
   -1   195 ?????###??? 7,1
   -1   196 ?#??#?..???.#?? 6,3,1,1
   -1   197 ?#??.?.?##?#??? 3,1,5,1
   -1   198 ??#??#???#???##? 1,2,1,2,5
   -1   199 ?#?#.#?....??????. 2,1,2,1,1,1
   -1   200 .????##???..?#. 7,1,2
   -1   201 ???..?.??#?#?.?#. 1,4,2
   -1   202 ??.?.????.#.????#?? 1,1,2,1,7
   -1   203 ?#?????#??.? 1,2,1,1
   -1   204 ???#???#?????? 9,1
   -1   205 ??..???.?##..?? 2,2,3,1
   -1   206 ?.#??????????????? 8,1,2
   -1   207 ??#??#?####??.???? 1,7,2
   -1   208 #.???..#.? 1,1,1
   -1   209 ?????#..????? 4,1,1,1
   -1   210 ??.???##?#???.# 1,5,1,2,1
   -1   211 ????.??.?#?. 3,1
   -1   212 #??.???????????##?.? 1,1,13,1
   -1   213 ?#.???###?.?.?? 1,1,5,1,2
   -1   214 ??#??????#?????????? 11,2
   -1   215 ???..????. 1,1,3
   -1   216 .?????????????? 1,4
   -1   217 ?.#????.???#????? 5,5
   -1   218 ???????.#??#?.. 1,1,1,2,2
   -1   219 ?????.????????????? 1,2,2,8
   -1   220 .???????#?? 3,3
   -1   221 ??.????#??..?.??#. 1,3,1,1,1,1
   -1   222 ?.#??#???.?? 1,1,1,1
   -1   223 .??????????? 5,2
   -1   224 .???????#??? 8,1
   -1   225 .#?..#???#?.#. 1,1,2,1
   -1   226 .???#?#???.???? 7,2
   -1   227 ??.?????????#????#.. 2,9
   -1   228 ??##???????#????# 5,1,1,1,1
   -1   229 ?#????#??.#??.??? 8,3,1
   -1   230 ?.#??#?.#?. 1,2,1
   -1   231 #???????#???#? 2,6,3
   -1   232 ??##?#?.?#?? 4,2,3
   -1   233 ???.#????????.?? 1,1,8,1
   -1   234 ##???.??????#???# 4,1,2,2,2
   -1   235 ??###?.?#???? 4,4
   -1   236 #?#??.?#?.?.?#?##..# 1,1,3,5,1
   -1   237 .????#?????#?#??. 2,1,7
   -1   238 .???###??###????.?? 12,1
   -1   239 ??.???####?.??? 1,5,2
   -1   240 ??#????????.?##??## 1,1,1,1,6
   -1   241 ???##????#????????## 1,5,1,5,3
   -1   242 .??#?#??#?####??.? 5,8,1
   -1   243 ???#??##...#????? 8,3
   -1   244 .??...##????.? 1,5,1
   -1   245 .??#????????#? 7,3
   -1   246 .???.?##.??????.? 3,3,1,2
   -1   247 ????#??##??#?. 3,5
   -1   248 ??##??#???#.? 7,2,1
   -1   249 #.??#??#??#???.??? 1,2,7,1
   -1   250 ...???.#.??? 2,1
   -1   251 #???.?##?###??# 1,2,2,6
   -1   252 ????.?#??.? 2,1,1
   -1   253 ???..?#?#??.#???? 1,6,3
   -1   254 ?..?????#?? 1,1,2
   -1   255 .?##??.?.?#? 5,2
   -1   256 ###???????#?? 3,2,2,1
   -1   257 ????????#?##??.. 1,1,4,3
   -1   258 ??.?.?#????#?..#.#?# 1,5,1,1,1,1
   -1   259 .#???#?.#???? 1,1,1,5
   -1   260 ?????.?#?.?#?? 2,1,2,3
   -1   261 ?#???????????#?###? 1,1,1,8
   -1   262 ???#???#.#??? 1,3,1,1
   -1   263 ??#?#????????? 3,2,5
   -1   264 ?.???????#???# 2,6
   -1   265 ??##???##??. 4,5
   -1   266 ????#?.??#??#???#. 4,9
   -1   267 #??.???.?.??## 2,1,1,2
   -1   268 ?#??.????#?.? 3,2,1
   -1   269 ..#?##.?.##??##???? 4,7
   -1   270 .??.?##???#???#?.?? 8,1
   -1   271 #.?????#?????? 1,6,1,2
   -1   272 ?#????.#?.??.#?? 5,1,1,1
   -1   273 ?.?.#?#??????.? 1,1,4,1,1
   -1   274 ??.?#????.??#..#?? 5,2,2
   -1   275 ?#??#????. 2,4
   -1   276 ?#????#??#?.#?? 1,1,5,1,1
   -1   277 #??##??#??#? 2,3,1,2
   -1   278 ??.?.#???#?.??#?#. 2,2,2,3,1
   -1   279 .##????.?##.?? 3,3
   -1   280 #?.???.??#?#???.?#? 2,2,2,2,2
   -1   281 ??.????#???????#?? 2,3,1,1,3,2
   -1   282 ??#??#.#??#???#?.? 1,1,1,5,1,1
   -1   283 ??.????###.?. 1,5
   -1   284 ?#???###?.????? 1,5,2
   -1   285 ????#?#???.? 7,1
   -1   286 .???#???### 3,1,3
   -1   287 ??#..?#??. 3,4
   -1   288 ?????##?.?? 1,4
   -1   289 ?.??#.??????#?#??#? 1,2,1,5,1
   -1   290 ????..??#?? 3,2
   -1   291 #.????.?#???##??# 1,1,10
   -1   292 ??????????..?.???? 7,2,4
   -1   293 ?#.????????? 2,3,1,2
   -1   294 .?????.#??#? 2,4
   -1   295 ???#?????#.????.? 1,7,2,1,1
   -1   296 ..???##?????#?? 8,2
   -1   297 ?#????????? 5,1
   -1   298 ????#?#????. 3,2,1
   -1   299 ???..?..#?..# 3,1,2,1
   -1   300 .????.???????? 1,3,1,1
   -1   301 .????#?.???#??##?.?? 1,3,7,1
   -1   302 ..??#?#???..#?#???? 3,1,1,4,1
   -1   303 .??.?????.?#?##??.? 2,1,6
   -1   304 ???#.?#.??#?? 2,1,1,2
   -1   305 ?.??????#?????????. 1,5,1,2,1
   -1   306 ???##?##?.???#?. 1,6,2,2
   -1   307 .??#....??.? 2,1
   -1   308 .??????.?#???.??? 1,2,1
   -1   309 ??.??...?##?##????? 2,9
   -1   310 .#??#?#?????????.??? 11,3,1,1
   -1   311 ???#??#?#????.???? 12,1,1
   -1   312 ???.????#??? 1,1,2,1
   -1   313 ?#.??#???##????. 1,12
   -1   314 ?.????????#?? 1,2
   -1   315 .??###??????????#?## 5,1,7
   -1   316 .#?##.???.?.?.???? 4,1,1,1,1,1
   -1   317 ?#??###??##..?##? 1,7,3
   -1   318 ???#.??.?###?#.? 4,1,3,1,1
   -1   319 ???????##?##??#.. 3,1,8
   -1   320 ??#?#.???#?#????? 4,1,4,1
   -1   321 ?##??#??#?##?? 2,1,6
   -1   322 #?#?.?##?????. 1,1,8
   -1   323 ????????.#? 6,2
   -1   324 .??#.?#?#??.?. 1,5
   -1   325 ?.?#?.?.????? 2,1,2
   -1   326 ?#????#??????.?????? 2,1,1,3,2,3
   -1   327 ????????#?.##.?.?? 8,2
   -1   328 ?#????#????????#.??? 5,3,2,1,1,2
   -1   329 #?#????#..???????#? 1,3,1,4,1,1
   -1   330 .#???#.???????.#???? 5,1,1,3,1,3
   -1   331 .??????.?#?##???? 5,6
   -1   332 ?.??#.?????#####???? 1,1,9,1
   -1   333 #???#????#.??.?## 2,2,4,1,3
   -1   334 #????#????#.?#???#?. 1,1,1,4,5
   -1   335 ?#????.??. 5,1
   -1   336 ????##?????? 7,2
   -1   337 ?#?#??#?#????.?.#?? 9,1,2
   -1   338 ??##.?##?#??.??..?? 4,4,2
   -1   339 ..??.??????? 2,7
   -1   340 ?#??#.#?##????? 4,1,6
   -1   341 ??.?#?.?#?.?????? 3,1,6
   -1   342 .#??????.?? 4,1,1
   -1   343 ##??.##??.?##?#???? 4,4,6,1
   -1   344 ??????#?????#?? 10,2
   -1   345 ?##??????? 3,5
   -1   346 .??????????.#?#.? 9,1,1
   -1   347 ..???#????##??#? 2,1,8
   -1   348 ??????#??#???????# 1,1,1,8,1
   -1   349 ?..???.???#?##?#. 2,6
   -1   350 ?#????##.???#?# 2,3,6
   -1   351 ?#????#??? 4,3
   -1   352 #?.??????????#???. 1,1,2,3,3
   -1   353 ????????????..?.? 1,4
   -1   354 ##?#??#.?#??.#??# 7,1,1,4
   -1   355 ??.?????????#..???. 1,1,8,2
   -1   356 ????#?????.?#? 2,1,3,2
   -1   357 .?#??..#??? 3,1,1
   -1   358 ?#?#?????#????? 1,1,9
   -1   359 #???#?#?#?.? 1,7,1
   -1   360 #??????##??..?#?#??? 2,6,6
   -1   361 .??###??????#???. 3,3,3
   -1   362 ?????????????##.?? 1,1,8,1
   -1   363 ????????#.??#???# 9,2,1
   -1   364 ???#????????? 1,6,2
   -1   365 .?????.???.??.. 5,1,2
   -1   366 ?#?.??????.??# 1,6,1
   -1   367 ???#???.????? 2,1,3
   -1   368 .#.????#..?##?.????? 1,1,2,3,2
   -1   369 ?#?.?#???#?.?. 2,6
   -1   370 .##?#.#??#???????### 2,1,1,1,1,4
   -1   371 ????#???.????.#.? 7,1,1,1
   -1   372 #???.????? 1,4
   -1   373 ##??#???#??????????? 5,10,1
   -1   374 ?#??????..??? 5,1
   -1   375 .???#??#?##? 1,7
   -1   376 ??..#?#??????#. 2,4,3
   -1   377 ?.??????#??.???.?.?? 3,5,1,1,1
   -1   378 ??????#?.??. 5,1
   -1   379 #??.??#?.?#?##??#? 3,1,1,5,1
   -1   380 ##?#?.?.#? 5,1
   -1   381 ????#???.? 4,1,1
   -1   382 .??#?#????..?????? 1,1,3,1,1,1
   -1   383 ??#????#?##???????? 1,1,11,2
   -1   384 #??.?#?#???.# 1,6,1
   -1   385 ??.??????.? 3,2
   -1   386 ???#?.?????#?##?#.# 4,1,7,1
   -1   387 ????##???#?.??.# 2,5,1,2,1
   -1   388 ?.?###????#?#??#???? 11,1,1
   -1   389 ???#.????.?.?#?#??#. 4,3,1,5,1
   -1   390 ?##?###?????.??? 9,1,2
   -1   391 ??#???.????????#???? 4,1,8,1
   -1   392 #?#????.???.? 6,1
   -1   393 ?????..??.????.??? 1,4
   -1   394 .??.???.??.?#??.?.? 1,2
   -1   395 .?.??#?.??#??#??#? 3,7
   -1   396 ?#?????..????? 4,1,2,1
   -1   397 ????????????#?? 4,5
   -1   398 ??.?#???#??.??? 1,3,2,2
   -1   399 ##??#?.????#??? 6,7
   -1   400 #?????.?###?##? 1,1,7
   -1   401 ?.??#?#??# 2,4
   -1   402 ?#???????# 1,2,3
   -1   403 ????.????..##? 2,4,2
   -1   404 ???????#?#? 1,6
   -1   405 ???#.??#??.? 1,4
   -1   406 ??###?###??..?????? 11,2,1
   -1   407 ?????.?.??.#?.? 1,1,1,1,1
   -1   408 ?#?????#.?#??. 2,5,4
   -1   409 ??.????#?????#???#. 1,1,2,7
   -1   410 ??###????????.? 4,2,1
   -1   411 ?????.?.???.? 1,1,3,1
   -1   412 .?#??????#??.??##?#. 4,2,3,6
   -1   413 ?##???#???#?? 2,3,3
   -1   414 ????#????##??????? 1,13,1
   -1   415 ???.??????##.... 2,3
   -1   416 .#??#???.???.?#?? 1,4,3,3
   -1   417 #??#?????#?#???##?? 2,10,3
   -1   418 ?????##.??#?#??. 7,1,5
   -1   419 ???#????#??? 5,2
   -1   420 ????#???.?#??#???? 1,1,1,9
   -1   421 #???##???. 2,4
   -1   422 .#???..#????#??? 2,2,5
   -1   423 ?????????#?? 7,1,1
   -1   424 ?#??#????.???? 7,1,1,1
   -1   425 ??.?#???#????????? 2,3,6,1
   -1   426 .?..??#?###. 1,7
   -1   427 ???#????.?#?????? 4,1,2,2,1
   -1   428 .????#.???. 4,2
   -1   429 .???????.? 4,1
   -1   430 .?????????.??#? 1,1,2,4
   -1   431 .??##?##?????.?# 2,2,1,1,2
   -1   432 ??????.#.?#? 2,1,2
   -1   433 ?#???.???.??#????. 4,3,1,1,2
   -1   434 ??#.???.??? 2,3,2
   -1   435 .????#????#??????? 10,4
   -1   436 .#.??#..?. 1,1
   -1   437 ????????..?#???# 2,2,2,4,1
   -1   438 ##??????.???.?#.?? 3,1,1,3,1,1
   -1   439 ###???.?#.?#?#????# 3,2,1,4,2,1
   -1   440 #?.###??#.??? 2,3,1,1
   -1   441 ???.??#..??.??? 1,1,1,2,1
   -1   442 ??#?..?.?..?##???. 3,4
   -1   443 ?..???#?#?? 1,7
   -1   444 ????#?#????##??????? 10,1
   -1   445 .?????????.??.??##?? 4,1,1,1,6
   -1   446 ?#???..?????. 2,1,1,1
   -1   447 ?#.??#????? 1,3,1
   -1   448 .???##?#???#?. 1,4,2
   -1   449 ..?????##??????.? 8,1,1
   -1   450 ?????#?..??. 3,1,1
   -1   451 ????#??#?.?#??. 6,3
   -1   452 ????.?.##?????###? 1,1,2,2,4
   -1   453 ?????.?#???? 2,1
   -1   454 #???#?#??.#.?. 1,6,1,1
   -1   455 ????#.?.#??#??#??## 1,1,11
   -1   456 ??##?#???#?.?.????? 1,8,1,1,2
   -1   457 .##??#.?#?? 5,1,1
   -1   458 .?#???.??????..??? 5,1,3,2
   -1   459 .???.??????.##???? 3,1,5
   -1   460 ???#?#??#??????.???? 13,1
   -1   461 ??.?#??.?# 1,2,1
   -1   462 ??#????????.??.?.#? 1,9,2,1,1
   -1   463 ??#??#..??#.? 4,1,3,1
   -1   464 #?.#??#???#???.??? 1,9,1,2
   -1   465 ??#?????????? 1,1,3,1
   -1   466 ????..?.?#?.???? 1,1,1,3,4
   -1   467 ?#??.?#???? 1,5
   -1   468 ?##??.??#.??..????? 2,3,3
   -1   469 .??.?????? 1,1
   -1   470 ?##?#?##????????.?? 3,1,4,3,1,1
   -1   471 .???#?#?#?????#?? 4,7,3
   -1   472 ?#??#???..? 4,1,1
   -1   473 ...?###????#?#??#??# 3,8,2
   -1   474 ???#????.??????#???? 2,1,7
   -1   475 #???????##?####.?? 1,1,1,2,4,1
   -1   476 ??#.????#?????. 1,1,6
   -1   477 #??????#?.#? 1,1,1,1
   -1   478 #??#????????.?? 1,1,3,1,1
   -1   479 ?#?#??#??? 3,2
   -1   480 ..????.?#?. 1,2
   -1   481 ??????##????. 5,3
   -1   482 ????????.??#??. 6,1
   -1   483 .#?##????.?#?#.??? 8,2,1,3
   -1   484 ??#?.????#????? 3,5
   -1   485 ????#???????? 1,8
   -1   486 ??.??#???#?? 1,1,4
   -1   487 ???...???..? 1,3
   -1   488 ..??##??#?#.?##### 9,5
   -1   489 ..?#?.???. 2,1
   -1   490 #?#???#.#???#???? 1,2,2,2,5
   -1   491 ??#???.??.?? 4,1,1
   -1   492 ..???.?????... 2,1
   -1   493 ?..?#???#?..??#????? 7,7
   -1   494 ?.?...???#. 1,4
   -1   495 ?..?#???#????? 6,2
   -1   496 ??#???????#?????#?.. 2,9
   -1   497 ?#??#???###????#. 1,7,1,1
   -1   498 ???#..?#????.?##??# 4,5,3,1
   -1   499 .??#..#??.?? 3,1
   -1   500 ????.#?.??..??#? 4,2,1,4
   -1   501 #????????#. 1,5,1
   -1   502 ????#??.#.??? 4,1,1
   -1   503 .#?#?#??????? 1,1,8
   -1   504 ???#?????.# 4,1,1
   -1   505 ?????#??#.???.?. 7,1
   -1   506 ??????????? 3,1,1
   -1   507 ##??#?#???????# 5,1,4,1
   -1   508 ?#???##?.??#??#????? 3,3,1,9
   -1   509 #????#.????#.?? 3,1,1,1,1
   -1   510 .??#.?#.??#?? 1,1,2,3
   -1   511 ?.??##?##????.??.#.? 1,7,1,1,1
   -1   512 ##???????.? 2,2
   -1   513 ??#??.?#????. 2,1,3
   -1   514 ?....#?#??. 1,1
   -1   515 ??##??.?.??#? 4,1,1,2
   -1   516 ??..?.?????# 1,1,1,1
   -1   517 .??.?????? 1,1
   -1   518 ????#??..?#?#??#. 4,7
   -1   519 ?##????#.??# 3,3,3
   -1   520 ?#?#????.##?#?? 5,1,2,1,1
   -1   521 .#?#???.##? 1,4,2
   -1   522 .??????..?#??? 1,3,3,1
   -1   523 ?##??#??.????? 6,1,1
   -1   524 .???.??... 1,1
   -1   525 .##???###???#?#?? 14,1
   -1   526 #?#?????###?.?????. 3,5,3
   -1   527 ???.?#?#??#?????.?? 1,1,7,1,2,1
   -1   528 ???#?.??##?? 1,4
   -1   529 #?#.???#???. 3,4
   -1   530 ???.?.???.#???#? 1,1,2,1,2
   -1   531 ..#??????#???? 4,4
   -1   532 .#???????????#??.. 1,3,6,1
   -1   533 .????###???#? 1,1,5,1
   -1   534 ?.??????#???...?? 2,5
   -1   535 ?????#??????.??#???? 7,1,3,1
   -1   536 ??#?#..#??.#??? 2,1,2,1,1
   -1   537 .?#?.?#??#? 1,5
   -1   538 #???##??????????? 1,10,1
   -1   539 ????#?###?#?.??.?.# 3,8,1,1,1
   -1   540 ??.##????##. 3,1,2
   -1   541 .??##.?.??? 2,2
   -1   542 ?#?#???????????##??? 11,4
   -1   543 ?.?????#?.????#?? 1,1,1,1,4
   -1   544 ?#?##?????##??????? 2,12,1
   -1   545 ?????????#????.??? 10,1
   -1   546 ???.#???.? 2,4
   -1   547 ?#????.?#.?#?..#?## 2,1,2,2,1,2
   -1   548 ???.#?#?#.?????? 5,2
   -1   549 .##??#?#??#?? 7,3
   -1   550 #.????#?#?#????.?? 1,3,7,1
   -1   551 ??##???#???#??.?#?? 10,3
   -1   552 ????#?????#. 4,1
   -1   553 ?????.???? 4,1
   -1   554 ?##??????#?##.? 2,7
   -1   555 .?##?????#?#?? 6,1,1,1
   -1   556 ???????.???##?? 1,2,5
   -1   557 .?.??#????#??#??###. 1,1,12
   -1   558 ??#??#???#.????. 5,3,2
   -1   559 ?##??#??.???#??? 8,6
   -1   560 ?##??.???????? 5,1,2,1
   -1   561 ?.???.?.????#???# 1,3,1,2,5
   -1   562 ??#?#????#???#??#. 3,2,9
   -1   563 ?#.??????.??????? 2,1,1,1,4
   -1   564 ?????#?????. 2,1,2,1
   -1   565 ???.??#?#..???# 2,1,1,1,1
   -1   566 ?#????????. 2,1,1
   -1   567 ???#??..??.??#??. 3,3
   -1   568 ????????..?? 2,1,1,1
   -1   569 .??..??#...?#.???# 1,3,2,3
   -1   570 ?????###??.?? 4,1
   -1   571 ????#?????? 6,1,1
   -1   572 .???????#??## 3,6
   -1   573 .?.???#???????#? 1,10,1
   -1   574 ?#.???#??#?#???? 1,4,8
   -1   575 .??????##??? 1,4
   -1   576 #??##.?????#???##??? 1,3,1,8,1
   -1   577 ????#????#?###????# 3,1,7,2,1
   -1   578 ??.????###?????? 1,1,7
   -1   579 ?#?#?.???.##? 4,1,2
   -1   580 ????.?..???#?#? 4,1,1,5
   -1   581 ?#???.?#??. 1,2
   -1   582 #??#????????????. 1,7,1,1,1
   -1   583 .?#..#?.##?#.??? 2,1,4,2
   -1   584 ??.???.??#????#??#? 1,1,1,6,1,2
   -1   585 ?..#??#.##?.#. 4,3,1
   -1   586 ???###??##????# 1,7,2,1
   -1   587 ###?????###?#??#..?? 13,1,1
   -1   588 .#?????#??? 1,6
   -1   589 ?#??#??.??.?.? 6,1,1,1
   -1   590 .#??.?#..?#??? 3,1,4
   -1   591 ??#??.?##??? 1,1,4,1
   -1   592 .#????#?#.?#?#?##??? 8,7,1
   -1   593 ?#??#?#.???????. 7,3
   -1   594 #?.??#??##??????. 2,6,2
   -1   595 .#??#?#??.? 1,5
   -1   596 .????#??????#??? 2,7,3
   -1   597 .???#?#????.? 1,4,1,1
   -1   598 ?#..???.#? 1,2,2
   -1   599 .#??????###????? 6,7
   -1   600 ?.????.???#?? 1,1,1,2
   -1   601 ??..??????.##?##???. 2,6
   -1   602 .#?#..?#????.?? 3,5
   -1   603 .#?#?????????? 5,1,1,1
   -1   604 .?.???#?#??.? 1,3
   -1   605 ???#.?#?..????#?###? 2,2,8
   -1   606 .?#???.?.???##?.?.? 2,1,5,1,1
   -1   607 ???????..#?##? 2,1,1,2
   -1   608 .?#?????.??#. 3,1,1,1
   -1   609 ???#????#??.?.#?? 1,8,1,1,1
   -1   610 ?????.????#??#?#? 3,11
   -1   611 #..?.#????#??#?..? 1,9,1
   -1   612 #.?.?#??.??? 1,1,3,2
   -1   613 ????.????.?##???? 1,1,2,3,1
   -1   614 ..??.?..???.?.?? 1,1
   -1   615 .???.##??#??#???? 1,1,6,1,1
   -1   616 #.#?????????# 1,1,3,2
   -1   617 #??#?#???.?????.? 1,5,1,1,1
   -1   618 ??.###???..? 5,1
   -1   619 ?#?#??##??#??.??. 4,7
   -1   620 ??#?????????? 5,3
   -1   621 ?#???#???. 2,2
   -1   622 ??#??#?#??#?? 6,1,1
   -1   623 ?.???#.?#?# 1,3,3
   -1   624 ???#??????#???#?. 1,10,1
   -1   625 ?.?#?##?.?? 1,4,1
   -1   626 #??##??.????#??. 1,3,6
   -1   627 #.???????#? 1,2,2
   -1   628 ?#?#??.?.?#?#.?#? 3,1,1,3,2
   -1   629 ??#???.?#?????? 2,1,6
   -1   630 .??#???##???# 1,2,7
   -1   631 ??#??#???#?#?.?.?. 1,1,8,1
   -1   632 ##???.?..??#?? 2,1,1,2
   -1   633 ?#..????.????????#?. 2,2,10
   -1   634 ??##?..?##????###.?? 4,10
   -1   635 ?#?..??.?? 1,1,1
   -1   636 ??????#??..??????.#? 8,1,1,1,1
   -1   637 ???????.#?????..??.? 2,1,5,2,1
   -1   638 #?#????????##??? 4,1,1,6
   -1   639 .???#?..?????? 1,2,1,4
   -1   640 .#..???.??##??. 1,3,3,1
   -1   641 ????#??????#???????? 1,1,5,2,1,1
   -1   642 ?.?###?#?#?#?#?#?.?? 14,1
   -1   643 ?.?.?#??????? 1,3,2,1
   -1   644 ?##????????#?#??.# 5,1,3,1,1,1
   -1   645 ???.???#????? 1,6
   -1   646 ?????####?????#?#? 1,11,3
   -1   647 ?#?.???#??? 1,2,1
   -1   648 ..#??##??? 6,1
   -1   649 ??????.??.. 2,3,1
   -1   650 .????#?.#???.?? 1,2,1,1,1
   -1   651 .??##?##??..??###??? 7,5
   -1   652 #???#??.??.?#.#.?. 1,2,2,1,1,1
   -1   653 ??????#?#??.?? 5,1,2
   -1   654 #?#??#??????.????.?? 9,1,1,1,1
   -1   655 #?#..????#?????###? 1,1,1,4,7
   -1   656 .?.?????#.?# 1,1,2,1
   -1   657 ?.???#?##?????#????? 5,2
   -1   658 #?????.??? 2,1,2
   -1   659 ?????#??#?#????#?? 13,1
   -1   660 ?.??#????#..?? 5,2,1
   -1   661 ????#??##?.?.? 1,3,3,1
   -1   662 ?.????.?##???#? 2,7
   -1   663 #?#?????#??.??##?? 6,1,1,1,2
   -1   664 ???#?#??????#???.?.? 4,4,1,1,1
   -1   665 ???#???#?#?.#? 4,5,1
   -1   666 ??.?#???????????. 1,5,4
   -1   667 .?#.?????#.? 2,2,1,1
   -1   668 ????.?#?###???#?.#.? 2,11,1
   -1   669 ??#??????##?#?? 2,9
   -1   670 ???????#?#?##??????? 3,1,7,1,1
   -1   671 ???##?....??????? 6,6
   -1   672 ?#.?#?.##?#?#. 1,1,2,3
   -1   673 ??????????#? 4,2
   -1   674 #.?###?#???#?##?#?.? 1,13,1,1
   -1   675 ??#?#?.?.???.??##?? 6,3,4
   -1   676 ???.#?????##?.# 1,1,8,1
   -1   677 ??????#?#?? 8,1
   -1   678 ?#??????#??#?. 6,1,1
   -1   679 .#?#??#.#?#?#?.? 6,5,1
   -1   680 ?????????#??.??#?#? 7,2,3
   -1   681 .????#??#????.??#? 8,1,3
   -1   682 ??.?#???##?#??##??? 2,12,1
   -1   683 ?#???###?.???.?? 7,3,2
   -1   684 #????.#???.???#..# 1,1,1,1,4,1
   -1   685 ????##?.#? 6,2
   -1   686 ??????####?.# 7,1
   -1   687 ????#??.#. 1,4,1
   -1   688 .????#?????????##?? 15,1
   -1   689 ???.????#?# 1,4
   -1   690 ???????###. 1,5
   -1   691 #?.?????#??#?? 2,6
   -1   692 ?????##????.#??#.?? 8,2,1
   -1   693 ??####????##???.# 13,1
   -1   694 ?..??#??#.?#?????? 1,3,1,1,1,1
   -1   695 .#???#???????#??#?? 6,1,8
   -1   696 ??#?#..???? 4,2
   -1   697 .?#?.?.???? 2,1
   -1   698 .???????????? 2,1
   -1   699 ????????#?.??? 1,1
   -1   700 ??#???#???. 2,4,1
   -1   701 #??.????#.?. 3,3,1,1
   -1   702 ?????#.?.?.????. 5,2
   -1   703 ???#???.???? 1,5,1,1
   -1   704 #.?.?????#????? 1,6,1,1
   -1   705 ?#?..#?#.??.??#?. 2,3,3
   -1   706 #????..???. 5,1,1
   -1   707 ?#??#?????#???#. 1,3,1,1,3
   -1   708 ???#?????????????.?? 4,2,1,5,2
   -1   709 ????...?..??.????? 2,1
   -1   710 ??.?..?####?#?#????# 1,14
   -1   711 ???###?##??#?# 9,1,1
   -1   712 ??.#??.???##? 1,3,5
   -1   713 ??#??#???????? 1,2,1,2
   -1   714 ?.###??##??.?#.. 9,1
   -1   715 ?????#???? 1,1
   -1   716 #??????#?#???.?##?. 1,8,3
   -1   717 .?.??###?# 1,7
   -1   718 ?????????##???.???# 1,2,1,4,2
   -1   719 ?.?#???#???#.???? 2,1,2,2,1
   -1   720 #????#??????.?? 4,3,1,1,1
   -1   721 ??????????.? 3,3,1
   -1   722 ?????.??#?## 2,4
   -1   723 ?###?#??.????..? 8,2,1
   -1   724 ?????.##???.?? 3,4,1
   -1   725 #??????.??# 1,3,2
   -1   726 ?#?????????#?.?? 7,3
   -1   727 ????#??#?.??????. 5,1,5
   -1   728 .?#?#??#?.???### 8,1,3
   -1   729 ??.?#???.???????.? 2,4,1,5,1
   -1   730 ??.??#????.#?#???? 1,1,2,1,1,3
   -1   731 ????????.???# 1,1,1,2
   -1   732 ???#??#?#??.????#. 5,2,5
   -1   733 ??.??.?#?.#?#? 2,2,1,4
   -1   734 .#????.#???????.?? 1,1,1,5
   -1   735 ???###??????????.?? 15,1
   -1   736 ???????##.??.??# 6,2,1,1,1
   -1   737 ???????.??? 6,2
   -1   738 ????????.?#?#.??#??. 3,3,3,4
   -1   739 ????#?..?.. 3,1
   -1   740 ?#??#?###???##?#?? 2,13
   -1   741 ????###??? 2,4,1
   -1   742 ??.?#??####?.??##??? 9,6
   -1   743 ?#???..???.????? 4,2,1,2
   -1   744 ??#??##???? 3,2
   -1   745 ?#??#?##?????# 1,2,6,1
   -1   746 ..????..???? 4,1,2
   -1   747 ?#????.???..#???? 2,2,2,2,2
   -1   748 ?#????????#??#??? 1,13
   -1   749 #???..#???????# 1,1,1,7
   -1   750 #?#.#????.?? 3,1,1,1
   -1   751 ?.???????..?.?? 1,4
   -1   752 ?.#??.????? 1,1,1
   -1   753 ??#?.?????#. 3,3,2
   -1   754 .?.#??##?##???#? 1,12
   -1   755 ??#????#??.#? 8,1
   -1   756 ??#???..####?#??#? 5,7,2
   -1   757 ???.#?#?????#?????? 1,6,2,2
   -1   758 ??.???????#??##?#.. 1,2,4,4
   -1   759 #.??????????#???? 1,1,11
   -1   760 ???#?#???#???. 1,4,2,2
   -1   761 ?????.????? 1,1,4
   -1   762 ??????#??##??. 9,1
   -1   763 ??#???#?.??? 6,1
   -1   764 ????.???##?.??.#??? 2,5,1,2,1
   -1   765 ??.#?.?..?#????.?? 1,3
   -1   766 ?#?#.??#.? 3,1
   -1   767 ##??#?.#?????#?????? 3,1,3,1,1,4
   -1   768 ????.?#???#??#?? 1,1,5,2,1
   -1   769 ?????..?????? 4,5
   -1   770 ??#..?#.?.????????#? 1,2,6,1
   -1   771 ?#??#?##???#???#???. 2,8,1,1
   -1   772 ????#????#.????.#? 1,5,1,1,1,1
   -1   773 ?????????# 1,1,2
   -1   774 ??#???##??. 3,4
   -1   775 ?#?????#???#?? 1,1,6
   -1   776 ??#??.#?#???#?????? 2,1,5,3
   -1   777 ??????????#???#. 2,6,1
   -1   778 ?????#?#??????#????? 11,1,1,1
   -1   779 ?????#.?.?...??.?# 1,3,1,1,1,1
   -1   780 ??#.#???#???????? 1,1,10,1
   -1   781 ???#?.????.??#??# 1,3,1,1,6
   -1   782 #??????#.??#?.? 2,1,1,1,2
   -1   783 ?.???????.??? 5,1
   -1   784 ???#...?#?? 1,1,2
   -1   785 ????.?????????.? 1,8
   -1   786 ?##?#?##?#???###??? 3,14
   -1   787 ??????#???#?#?#???#? 1,16
   -1   788 ?.?????????????? 1,2,1,4,1
   -1   789 ?..?.?#??##?..?????? 1,1,6,2,1
   -1   790 .?###?#?.??# 7,2
   -1   791 ???#.#????.???? 1,2,3,1,3
   -1   792 ?#.????#????? 2,1,5,1
   -1   793 #.##?????.#..??#???? 1,2,2,1,5
   -1   794 ??#?##????.#???.?.?? 3,2,1,4,1,1
   -1   795 ?.??#.?????#?#.. 3,6
   -1   796 ????##??#??? 1,1,7
   -1   797 ??.#?##??.? 1,6,1
   -1   798 ??.???#?.??##????? 1,1,6,1
   -1   799 ?#??.????###??.? 2,9
   -1   800 ?????#??#???#.??. 1,7,1,1
   -1   801 ?????????#? 2,3,1
   -1   802 #?????????.???? 8,4
   -1   803 ??.#?.#?.?? 2,1,1
   -1   804 .????##?????#?#? 6,4
   -1   805 #??????.?#????? 1,2,6
   -1   806 ?#???????. 3,4
   -1   807 ???.???##???.??#? 1,8,2
   -1   808 .#???#??#????#??? 1,13
   -1   809 ?.?????#????? 1,2,1,4
   -1   810 ??.??????? 1,3
   -1   811 .????#??#?????# 8,1,1
   -1   812 .??#???#????????? 3,4,3
   -1   813 #?????#???#?#?.????? 7,4,1,1
   -1   814 ???#.?.#??.??????? 4,1,1,1,4
   -1   815 ???????#?? 3,3
   -1   816 ??#???#???? 3,6
   -1   817 ?????#????.?? 5,1,1
   -1   818 .???#?#..##.? 2,3,2,1
   -1   819 ?#?.?????#?#?? 2,1,5
   -1   820 #.????.?????? 1,4,2,1
   -1   821 ???#???..?#??#???. 6,6
   -1   822 #???.#?#?????#?? 4,10
   -1   823 #????????? 2,1,3
   -1   824 ?#??#?#.?#?#???# 1,1,1,4,2
   -1   825 ???????##?#?? 2,7
   -1   826 ..??#?????.?#??? 5,3
   -1   827 ..????????.???.? 1,1,2,1
   -1   828 ?.??#????#?? 4,1
   -1   829 ???.??.????.??. 1,2
   -1   830 .?????????###.?#?? 5,1,3,1
   -1   831 ???.?#????#????? 1,8,1
   -1   832 ??.??.???.??? 2,1,3,1
   -1   833 ?.??###???????.. 4,3
   -1   834 ????????????.#??? 3,3,1,2
   -1   835 ???#?.#?###??#??? 1,3,5,1,2
   -1   836 ?#??#???..??#?.. 7,4
   -1   837 #.??##?????. 1,1,4,1
   -1   838 ?.??.#????#?#??#? 1,1,12
   -1   839 ????#??#?.? 7,1
   -1   840 ????#??.?? 2,3
   -1   841 ?..??#?.????# 3,1,2
   -1   842 ?.#?#???#???.#? 1,5,3,1
   -1   843 ##??#?#???###?? 2,11
   -1   844 ???#####??????? 2,10
   -1   845 ??#?#?#?.?. 6,1
   -1   846 ????..????..#?#. 1,1,3,1,1
   -1   847 .#?????#???##?#??? 14,1
   -1   848 #.??.?.??#.?.?? 1,2,3,1,1
   -1   849 ?#??????.????.???.? 3,1,1,2,3,1
   -1   850 ?.?.???#?? 1,1,2
   -1   851 ??#?##????? 4,1
   -1   852 ?.?#??.??. 2,1
   -1   853 ??.???#.?? 1,1
   -1   854 ##.?.?#?????.#? 2,5,1
   -1   855 ?##?#.???????. 5,1,4
   -1   856 ..?##???#.???? 6,2
   -1   857 .???.??????#?#?. 1,7
   -1   858 ?????#.??#? 2,1,2
   -1   859 .#?.#?????????? 1,1,1,5,1
   -1   860 ???.?????##??..? 2,1,1,4,1
   -1   861 ?????##..? 5,1
   -1   862 #?????????#???? 1,3,1,3,1
   -1   863 ?#????..???????##? 1,1,10
   -1   864 ???#????#.??.????#? 1,2,1,1,2,6
   -1   865 ??##.?.???.??..#? 3,3,1,2
   -1   866 ?.?#?#?.???#?#??? 4,4
   -1   867 ?##???.??#?.? 2,1,1
   -1   868 #?.??##??.?.#?????? 1,6,1,1,1
   -1   869 ???#??#???.?##?? 7,3
   -1   870 ?##??.?.?#????????#? 3,2,1,1
   -1   871 ?..?#?.##?#?.? 2,5
   -1   872 ?..??????? 1,2,2
   -1   873 ??#?????.#???#??. 4,7
   -1   874 ????.?????.. 2,4
   -1   875 .??#?.??.??..??????# 3,1,1,4,1
   -1   876 #???#?###??##?.? 1,11
   -1   877 ??#??.???????#??#? 5,10
   -1   878 ?.??#?..##?. 1,3,3
   -1   879 ??.???.?.? 2,2
   -1   880 #??????##?##.?? 4,6,1
   -1   881 ???????.?#????.?? 2,1,2,3,1
   -1   882 .??#???#???#?##.#.?? 13,1
   -1   883 ??.??#?#?? 1,5,1
   -1   884 ?#?#?#.?????.?? 2,3,2,2,1
   -1   885 ????.???#????#? 1,1,2,4
   -1   886 .?????.????#. 2,1,1,1
   -1   887 .???.????.?? 1,1,1,1
   -1   888 ?.????.?#.??#. 4,2,2
   -1   889 ??????.?.???#?? 1,1,5
   -1   890 ????????.?#???#?? 5,5
   -1   891 ????####??##?? 7,5
   -1   892 .??##??????.???.? 10,1
   -1   893 #??#???#??#??? 1,3,4,1
   -1   894 .#???.????? 2,3
   -1   895 ..??#??#??#??#?? 2,8
   -1   896 ??????##??.???? 2,1,4,1
   -1   897 ??????##??????????? 1,5,5,1,1
   -1   898 ??#?.??????.?????? 3,1,1,1,1,2
   -1   899 ???#.?#??? 2,2
   -1   900 ##.??????#????# 2,2,8
   -1   901 ?#????????? 5,3
   -1   902 ?#?..????.?# 2,1,2
   -1   903 #??.?.#???#????# 1,1,1,3,1
   -1   904 ?..??.??????? 1,1,1,2
   -1   905 ?#?.?######?#???? 2,7,1,1
   -1   906 ??##???.?###? 5,3
   -1   907 ??#.??##..???????? 2,4,4
   -1   908 ??????.#.??##?. 2,1,5
   -1   909 ????#?.??? 1,2,1
   -1   910 .???????.?.? 2,2,1
   -1   911 ?????#???????? 2,3,2,1
   -1   912 ?.??.#?#?# 1,5
   -1   913 ??.???.?????.?? 1,2,1,1,1
   -1   914 ???.?..??? 1,1,2
   -1   915 ????.?.??.? 1,2
   -1   916 ?.????#??? 2,3
   -1   917 ?????#???????.?? 7,2,1,1
   -1   918 ???????.?## 1,4,3
   -1   919 ?.?#?????? 4,1
   -1   920 ??????#????#..?????? 11,3,1
   -1   921 #?##????##???##.? 4,1,7,1
   -1   922 ?#???##??????##?#? 2,3,1,4,1
   -1   923 ??..#?????#??.?? 1,9
   -1   924 ?###.????.???#???? 3,2,1,6
   -1   925 ???#????.????##??. 3,1,4
   -1   926 ????#???.?##?. 1,1,2
   -1   927 .???#??##?#?# 1,6
   -1   928 #??.?????.?.? 3,4
   -1   929 ?.??#?#?#????? 8,1
   -1   930 ?????.????? 1,1,2
   -1   931 ?.#???#????????#.#? 1,8,4,2
   -1   932 ???#???#??#??????#.? 6,1,2,2,2
   -1   933 ????.???.??????#? 2,1,7
   -1   934 ??#.?????.?. 1,2,1,1
   -1   935 ?#?##???.?#???????# 1,5,1,2,1,1
   -1   936 ??????#?#.??? 3,3
   -1   937 ??##??????..#??. 7,2
   -1   938 ????.?.??.? 1,1
   -1   939 ?????#??#? 2,1,2
   -1   940 ???#?.???????# 4,1,3
   -1   941 ??##????#?#?? 5,1,1,1
   -1   942 ??##?.#?.#????????. 1,2,1,1,1,4
   -1   943 ?.??.???.#. 2,1,1
   -1   944 ???#??#?????###???.. 9,6
   -1   945 ???????.???#.?# 1,2,3,2
   -1   946 ???#?.####??????. 1,3,6,1,1
   -1   947 #?#??#?????###?#. 1,8,3,1
   -1   948 ???#?????? 1,3,2
   -1   949 #?#??????#??#?.?? 13,2
   -1   950 .?????#.??#? 1,1,1,2
   -1   951 .###..?.???#??.?? 3,1,6,1
   -1   952 #??#???#?..?????###? 1,6,3,3
   -1   953 .??????#???. 1,3,1,2
   -1   954 #????#??.??????#?? 1,1,1,1,1,5
   -1   955 ?????.??#??#???#?? 4,11
   -1   956 ????#???#??????? 6,1
   -1   957 .??##?.?..?.#??#. 4,1,1,1,1
   -1   958 ???#?????#??? 2,5
   -1   959 #?????.?????.?#? 3,1,5,3
   -1   960 ??.#??#?#.? 2,1,1
   -1   961 ?#.?????????.?. 1,7,1
   -1   962 ###???#?????#????#.. 13,1,1
   -1   963 ..???????.?.#.?? 1,4,1,1,1
   -1   964 ??.#?#????????? 3,1
   -1   965 .????????.??#?#??? 5,7
   -1   966 ?#.????????#???.? 1,2,1,4,1
   -1   967 ?#.??##????#??#####? 1,6,8
   -1   968 ???.?#?#???#?#. 2,5,3
   -1   969 ##..?#????.# 2,6,1
   -1   970 #??#.#???##.. 1,1,1,4
   -1   971 .?.?##?????.?? 3,1
   -1   972 .#..#.??#??#?##?##.. 1,1,11
   -1   973 .?.?????##???#?. 1,7,3
   -1   974 ?#???#????#???# 2,3,2,1
   -1   975 ?##?#????.?# 7,1
   -1   976 ?..??#?????? 1,1,1,4
   -1   977 ..#?.?#?.???#???#? 1,2,4,3
   -1   978 ????????.????? 3,2,4
   -1   979 ???.???#?.?...# 1,1,2,1
   -1   980 #??###???#??? 6,2
   -1   981 ?.?.?.?.#.?? 1,1,1,1
   -1   982 .?##?#??.??#???##?. 5,7
   -1   983 ??.?????#?????? 2,9,1
   -1   984 .?#..?##??..#??# 2,4,4
   -1   985 ????.??????#?????? 1,9,2
   -1   986 .????.##???? 1,2,4
   -1   987 .???.??.#?? 2,1,2
   -1   988 ..???#???? 1,3
   -1   989 .??#???..?? 2,2,1
   -1   990 ?#?#?????????.???? 13,2
   -1   991 ???.??#??... 2,3
   -1   992 ???.?#????#??. 1,6
   -1   993 ?.??##??##????? 8,1
   -1   994 ?.??#?###??#.?#?? 9,1
   -1   995 ??###.?????#????##? 1,3,8,2
   -1   996 ?????#??#.#.???###? 1,5,1,7
   -1   997 ?...?#????. 2,2
   -1   998 ????.??#?.???? 2,3,2
   -1   999 ??.?????#.. 2,3
   -1  1000 #??#??????.. 2,2,2,1

diff --git a/2023/12/solution.rs b/2023/12/solution.rs

@@ -0,0 +1,116 @@
   -1     1 use std::collections::HashMap;
   -1     2 
   -1     3 #[path = "../lib.rs"]
   -1     4 mod lib;
   -1     5 
   -1     6 fn parse_map(s: &str, fold: usize) -> Vec<(u128, usize)> {
   -1     7     let mut map = vec![];
   -1     8     let mut run = 0;
   -1     9     let mut count = 0;
   -1    10     for k in 0..fold {
   -1    11         if k > 0 {
   -1    12             count += 1;
   -1    13         }
   -1    14         for b in s.bytes() {
   -1    15             if b == b'.' {
   -1    16                 if count > 0 {
   -1    17                     map.push((run, count));
   -1    18                     run = 0;
   -1    19                     count = 0;
   -1    20                 }
   -1    21             } else {
   -1    22                 if b == b'#' {
   -1    23                     run |= 1 << count;
   -1    24                 }
   -1    25                 count += 1;
   -1    26             }
   -1    27         }
   -1    28     }
   -1    29     if count > 0 {
   -1    30         map.push((run, count));
   -1    31     }
   -1    32     return map;
   -1    33 }
   -1    34 
   -1    35 fn parse_runs(s: &str, fold: usize) -> Vec<usize> {
   -1    36     let mut runs = vec![];
   -1    37     for _ in 0..fold {
   -1    38         for part in s.split(',') {
   -1    39             runs.push(part.parse().unwrap());
   -1    40         }
   -1    41     }
   -1    42     return runs;
   -1    43 }
   -1    44 
   -1    45 fn count(
   -1    46     runs: &Vec<usize>,
   -1    47     map: &Vec<(u128, usize)>,
   -1    48     cache: &mut HashMap<(usize, usize, usize), usize>,
   -1    49     i: usize,
   -1    50     j: usize,
   -1    51     x: usize,
   -1    52 ) -> usize {
   -1    53     if let Some(result) = cache.get(&(i, j, x)) {
   -1    54         return *result;
   -1    55     }
   -1    56 
   -1    57     if i >= runs.len() {
   -1    58         if j >= map.len() {
   -1    59             return 1;
   -1    60         } else if map[j].0 >> x == 0 {
   -1    61             return count(runs, map, cache, i, j + 1, 0);
   -1    62         } else {
   -1    63             return 0;
   -1    64         }
   -1    65     }
   -1    66     if j >= map.len() {
   -1    67         return 0;
   -1    68     }
   -1    69 
   -1    70     let run = runs[i];
   -1    71     let (m, len) = map[j];
   -1    72     let mut sum = 0;
   -1    73 
   -1    74     for end in (x + run)..=len {
   -1    75         if (m << 1) & (1 << (end - run)) != 0 {
   -1    76             break;
   -1    77         }
   -1    78         if m & (1 << end) == 0 {
   -1    79             let s = count(runs, map, cache, i + 1, j, end + 1);
   -1    80             if s == 0 && m >> (end + 1) == 0 {
   -1    81                 break;
   -1    82             } else {
   -1    83                 sum += s;
   -1    84             }
   -1    85         }
   -1    86     }
   -1    87 
   -1    88     if m >> x == 0 {
   -1    89         sum += count(runs, map, cache, i, j + 1, 0);
   -1    90     }
   -1    91 
   -1    92     cache.insert((i, j, x), sum);
   -1    93 
   -1    94     return sum;
   -1    95 }
   -1    96 
   -1    97 fn process_line(line: &str, fold: usize) -> usize {
   -1    98     let (a, b) = line.split_once(' ').unwrap();
   -1    99     let map = parse_map(a, fold);
   -1   100     let runs = parse_runs(b, fold);
   -1   101     let mut cache = HashMap::new();
   -1   102     return count(&runs, &map, &mut cache, 0, 0, 0);
   -1   103 }
   -1   104 
   -1   105 fn main() {
   -1   106     let mut sum1 = 0;
   -1   107     let mut sum2 = 0;
   -1   108 
   -1   109     for line in lib::iter_input() {
   -1   110         sum1 += process_line(&line, 1);
   -1   111         sum2 += process_line(&line, 5);
   -1   112     }
   -1   113 
   -1   114     println!("part1: {}", sum1);
   -1   115     println!("part2: {}", sum2);
   -1   116 }

diff --git a/2023/12/test.txt b/2023/12/test.txt

@@ -0,0 +1,6 @@
   -1     1 ???.### 1,1,3
   -1     2 .??..??...?##. 1,1,3
   -1     3 ?#?#?#?#?#?#?#? 1,3,1,6
   -1     4 ????.#...#... 4,1,1
   -1     5 ????.######..#####. 1,6,5
   -1     6 ?###???????? 3,2,1