Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Day12

2023/day12.livemd

Day12

Section

test_cases =
  String.trim("""
  ???.### 1,1,3
  """)

test_cases =
  String.trim("""
  ???.### 1,1,3
  .??..??...?##. 1,1,3
  ?#?#?#?#?#?#?#? 1,3,1,6
  ????.#...#... 4,1,1
  ????.######..#####. 1,6,5
  ?###???????? 3,2,1
  """)

test_cases =
  String.trim("""
  ?#??##?..???.?? 6,1,1
  ?#?#?#????????. 8,1
  ??#?#????#.... 3,2
  .????????? 4,1
  ???#????????#. 7,1
  ..????#?.???.?#?. 4,3
  ??#???..#?? 2,1,1
  ??.?#.?#?#?#? 1,2,4,2
  ???#?###????#??#.?? 1,13,1
  .#????#.?#?##?# 1,3,7
  ?#??#??#????#???## 5,1,1,1,1,2
  ?#?#???.###?#.? 1,1,2,3,1
  ?.#.?#??#???? 1,1,3,4
  ????#?#???#.# 5,2,1,1
  ??#???#???##???? 4,7
  ???#?#??#.#..???? 7,1,1,3
  .?.????#????# 2,4,1
  ?.?#??..????#.? 1,3,3,1,1
  .??##??.????#? 4,5
  ?????????? 1,3
  ?..???.?#?. 2,2
  ?#?#.#????.?#??# 4,1,1,2,1
  ??????????.? 2,2
  ??#??#?.?#?? 1,2,2
  #???#???#?.#?? 1,6,1
  .??#??#???????????? 12,1
  .???#?.??..#. 3,1,1
  ????.??#?? 3,1,2
  ?????#.#?. 1,1,1
  .#?????????# 1,1,1,2
  ???.?????..??????#? 1,1,3,4,3
  ??.#??#??? 2,3
  ??#??#?.?.#. 4,1
  ????.??###?????##.?# 3,5,5,2
  ???#?????#???#.#? 2,8,2
  ???#?##????. 1,6
  ?##???????.? 2,3,1
  ???.#????? 2,1,2
  ???.????????.? 2,1
  ???.??.???? 1,1,3
  ??##??##?. 1,2,3
  ?..??#????#.? 1,2,3
  ????.???#?#?? 2,6
  ??.??????. 1,1,1
  ?.???????#????.? 4,6
  .??#?????#?? 2,2,1
  ?#?.#?.#???.???##?# 1,1,1,1,7
  ...###???#?. 4,2
  #?.???###????.?????? 1,1,7,1,1,1
  .#??????.???.#???? 2,1,1,2,1,1
  ??#??#?#???????# 9,3
  ???#??#??#.? 2,2,1,1
  .???.????????.#..?? 1,1,4,2,1,2
  #??#???##?????????? 12,2
  ????????.??? 3,1
  ????.?##???##.???#. 1,8,1,1
  .?????.???#????? 1,7
  ?????##???? 2,5
  ??????.????#???????# 1,13
  #???.?#????#...? 3,4,2,1
  ?#?.##?.?..???? 2,3,1,1
  ?.#..???..? 1,2
  ..#???#??????#?.???# 13,4
  .????#?#????????.? 3,6
  ???##??#??#?? 2,9
  ?.???##???..#??? 3,1
  #?##???????#?#?#. 14,1
  ?###?#???#?#.#?? 7,1,1,1,1
  .????????##???#?.? 10,1,1
  ##??##???? 2,2,1
  ?.??#??????#?#??.??# 1,6,4,1,1
  .??..?.##???#.? 2,1,6
  ???????#.?????????? 7,5
  ?.?????#??.# 1,1,5,1
  ???#?#..??????##? 2,1,8
  ?.?.????##??..?? 1,1,5,1
  ??.?#.??.??..#?#..# 2,1,1,1,3,1
  ??#?#?.#???????.?? 6,4,2
  .?#??#?.?. 3,1,1
  ?.?????#???????? 1,3,4
  ?#??????#?#??#??? 2,1,6,1,1
  ?#?????##???? 2,1,1,5
  .?#????.?#??#?#??? 1,3,7,1
  .#?#???????#???#? 1,4,1,7
  ??#?..???.?###? 2,2,4
  ??#??#???#? 5,3
  .?????#????#???? 11,1
  ??????#????????# 8,1,2,1
  .#??#?.#??#???.??.# 5,4,1,2,1
  ?.?????#??##?#?#???. 8,3,1
  .?#??????? 2,1,2
  .#?.?.????. 2,4
  ?.?.???#???? 1,1,4
  ?#??#..?#??... 4,2,1
  ??#?..???????.? 2,7
  #?#????.##??? 1,1,1,4
  .??##???##.? 9,1
  ?#??#?????? 1,7
  ?????.?#?.?. 1,1,3
  .??#?.????##.?.??.? 1,4
  ???.???.??#????? 1,1,1,7
  ?.???.###?? 1,3
  ??.#????#?. 1,6
  #??#?..#????? 1,2,1,1
  ?#??????#????.????.? 7,5,4
  ?.??#..??.???? 3,1,1
  ?????????????.#? 1,2,6,2
  ??##?????????##????? 7,1,2,1,2
  .?#???#?#??#?? 1,4,1
  ##???#?.#?#??????? 4,2,1,2,1,1
  ?.#??##?#??.???#?? 1,8,2,1
  ..?#.????? 1,1,2
  #?????.??.??#?#??? 5,2,6
  ??#?#????????????##? 5,5,1,5
  #???.?#?#?# 2,4,1
  ?#?.???#.?#??.? 1,1,1,4,1
  .#?.??#.?##? 2,1,1,3
  ..???.???#????#??. 2,2,2
  ?#?.????#??##????? 2,1,11
  ??.?????.??##?. 1,4,2
  ?...#??#?#?##?.????? 1,1,8,1,1
  .?.?????.?###.??? 1,4,3,2
  ??##??.#.? 4,1
  #?.##????#?..#.??? 1,8,1,1
  ???????#???##????#?? 1,1,3,2,5
  ??.?????#???.?.????. 1,8,1,1,1
  ?????.????????.### 1,1,2,1,1,3
  ?#.???????#??????.# 2,6,1,1,1,1
  ????###??#?..#????#? 2,7,6
  ??#????????##?.? 5,1,4,1
  #?????????#?###? 1,1,1,1,5
  ..??????#.?? 1,1,1,1
  ?.??????.#?? 2,2,1
  ??#??..?#????. 3,5
  .###..#?#?? 3,4
  ???#??.?.??.????## 2,2,4
  ??.??#?.?.??#??# 2,2,1,3,2
  ?#???????? 3,2
  ??#####???????##??? 9,4
  ??????#?.? 3,3,1
  #....??????.? 1,4
  ??#????.???##. 1,1,5
  ###?.?..#??????#? 3,1,5,3
  .#.??.#?#?.#??#?...? 1,1,1,1,5,1
  ?.??????#.?#? 1,1,2,1
  ???.#?????#????#?.? 9,2
  ??????#?##???#.????? 12,1
  .???????#? 2,1
  ?.?..#?#????????? 1,1,4,4,1
  ???.?.#.?? 1,1,1
  ..#?.????#??#?? 2,2,5
  ?#.#??#???.???# 1,1,4,1,1
  ???.?###?.??? 3,3
  #?.?..?#?##. 1,1,5
  ?..#??#?.##. 4,2
  ??????#..????##??#?. 4,10
  ??????##??#?#?#?.?#. 3,10,1
  .?.#?????????? 3,3,1
  ?.?#?#??##?? 1,1,2
  .???#?...#? 1,2
  ?..????.?#.??????? 1,2,1,1,1,3
  .??????????## 3,6
  ???????.??#?.. 1,4
  ????.??.?.?? 1,1,2,1
  ?#?##??##?#?.?#?? 11,2
  ?.????#??.?? 1,2,1,1
  ??#??????? 2,1
  .??????.???#? 2,4
  ??#?#?.?.#?. 4,2
  ?#?#???.??? 1,3,1
  ????##???#?????#???. 16,1
  ???..?.??? 1,1
  ???.?????#????? 2,2,1,3
  .????.?#?#?##?#? 2,8
  .?????####? 1,5
  ??##??.?###.?# 2,4,1
  ??.??.??.? 1,1
  ??#??????? 2,1,2
  ??????##??#?. 1,6
  ?#..?##.#??.#?????? 1,3,2,5
  ???.#???##...? 2,2
  ?#..#..#?. 2,1,1
  ??.#???##??#?????.? 1,3,5,1,1
  ?#?#??.????. 4,1,2
  ?#.#.?##???# 1,1,6
  .???????###????? 2,4,1,1
  ??#??##..????##.? 1,1,3,5
  ?##?#?..?????.?. 5,1,2,1
  ?????????.?????.? 4,1
  ?#???#.???? 6,1
  #?.#?#????###?.???? 1,1,1,4,1,1
  #.????##???#.?????? 1,9,4
  #?#???????#?##?.? 3,1,1,5,1
  ?.?#.??????#?? 2,5
  ???.????##?? 2,7
  ??#????.??.????? 6,2,1,1
  ???..???.?????#. 1,2,3,1
  ??#?#..#?#?#????## 3,1,9
  ??.#??????????.. 1,1,8
  ??#??##??#. 6,2
  .???.?##??? 2,4
  ????.??.????##??.??? 3,1,6,1,1
  #?.##?#?#.?.?## 1,6,1,2
  ?##??#??.#?.# 2,1,1,1
  ???????#?.?.?? 8,2
  #?????#??. 1,6
  ?#??#?.???? 5,1
  ##?????.????. 4,1,1
  ???????##???.?#?.# 6,2,2,1,1
  ?#?????#????? 3,5
  ????????## 1,1,3
  ????.?????#? 4,2,3
  ??.????????.??###.. 1,3,3,4
  ?????????#?.# 1,3,4,1
  .##??????#???? 5,6
  ????#??#??.??#?.?#.# 8,1,1,1
  ?#??????#??????? 2,4,1,2
  #??.?#????.??? 1,1,5,1
  ?????..??? 3,1
  ?#?.?##.????.?..#??? 2,3,4,1,1,1
  ???.?????????? 1,10
  ?##....?#?.. 2,3
  ##?????#?.????#?.?. 3,3,5,1
  ##??.??.#..???. 4,1,1,1,1
  #???.#?????. 1,1,5
  ?????#?#?#?# 2,5
  ?#?#?.????? 3,1
  ????#?#.?. 3,1
  ?????.??#?????? 1,1,1,5
  ???#?##???#?#.? 11,1
  ?#?#?#..??#??.?#??.. 6,1,3,3
  ?.???????. 1,1,1
  #??#????#????.???#? 2,4,5,2,1
  ??##????.#????? 6,1,2,2
  ????.?####? 4,5
  ??.?..#?#????#???? 1,1,4,5
  ?#?????????##?#??? 2,2,9,1
  .??#?##?????# 5,1
  .##????????????#. 2,5,2,1
  .?????#?####.##?.# 11,3,1
  ???????.?..??.?. 3,1,1,1,1
  ?##.???.??.. 3,2,1
  ???????.??#???? 3,3
  ???.???????? 2,4
  ?.?#?#?????.??#. 1,6,1,1,1
  ?????????#???? 1,3,6
  ???#??.#?? 1,1,1
  .???..?.?.????? 2,1,1,1
  ???.??#..?#??#?#?#? 1,3,10
  ??#?#??##??#???..# 1,1,5,3,1,1
  ???????#..?#?#?#?.#? 6,1,2,1,2,2
  ???##.?#.? 3,1
  ???..???.#?.?????? 2,1,1,2,1,2
  #???..?????.? 4,1,1,1
  ??.??#?#?????? 5,1,1
  ??#?.?????? 3,2,1
  ????.###??#??##.? 1,10,1
  #?####?##????.#.# 1,8,1,1,1
  ##?????.#.#. 2,1,1,1
  ?????#???##???????? 3,1,10,1
  ?#????.???#?#?? 2,1,6,1
  ??.???????# 1,3,3
  ?.???#..?#???.??#?.? 3,2,3
  ?????.???#?#.# 3,4,1
  #.??#??.#?????..#??? 1,4,1,3,1,1
  ..??.?####????.???. 6,1
  ?..??##?.?.???#??#?? 1,1,3,1,1,5
  ??.??#?????.???..? 2,3,2,1,2,1
  ?.??#???????????#?#? 5,11
  .????#??#???.??#???? 10,4
  #?#?.#?#???..?. 3,1,1,1,1
  ??#?.?.?????? 4,1,1,2
  ??#?.??.#? 1,1,2
  #?#?????###?????? 1,2,10
  ?.??.##???#?????? 1,8
  #??..#.?.#. 2,1,1
  .#?????????.? 1,5,1
  ?#?#??.???????????? 5,3,3
  ???.##.?.???.. 2,1
  ???.?#??#?????#????# 1,2,7,1,1
  .##.?.??#???#?#??.? 2,2,7,1
  ????????#?##. 2,5
  #??.???#.?? 1,4
  ?.#?.?.????? 1,1,1,1
  ?#?.#???#?#??#?# 2,12
  .??????.??????#.# 5,1,1,1,1
  ?.???.?..?? 1,1
  ??##?..?????#???? 3,6
  .????.##..?#??. 3,2,4
  ?##?.?###??? 3,5
  .?.?#?##???????????. 8,2
  ?????#???????## 1,1,3,1,4
  ?.?????#?#?##?? 2,8
  .??????#???.?????#? 1,8,6
  ?#??#??#.??##???? 2,5,5
  ?????##????? 7,1
  ???#?.?##.##? 1,1,2,3
  ?.#.##??##????# 1,1,2,5,1
  .#??????##??.#??#?? 1,3,3,1,5
  ?#??????#??.? 5,4
  ??#?..?????. 3,1,1
  ????#??.?.??? 6,2
  ??#?.?.??.?.???.?? 3,2,1,1,1,2
  ?#?..?????##???????? 3,1,7,1
  .???..???? 2,1,1
  ...?#??..?????? 3,3,1
  ??????????? 2,1,1
  ??????#.???.???.?. 2,2,3,1,1
  ???#??#..???#????.#? 5,1,5,2
  .###???#?. 3,2
  ??.?..?????????? 1,1,1,1,5
  ?????#.???? 6,1,1
  ?.?#?...?#?????????# 2,11
  #?#???#???#?##??? 5,5,4
  ?#.??#??##?##? 1,1,2,2
  ??#?#??.??.??.?.# 1,4,1,1,1
  ????##??#?? 4,1
  ????.?#?#?. 1,2,1
  .???????#? 3,2
  ???.?.###? 2,3
  .#.#?#???.?? 1,1,1,2
  .??..#??.#. 1,1
  ??#?.?#?????#.?#.??? 2,7,2,2
  ?#?????????.. 4,1,1
  ?..#??????? 1,2,3
  ?#??..?#?????# 4,3,1
  ??.???#??? 2,2,1
  #?#???.#??###???.# 1,1,1,1,6,1
  ###??#.????#???#. 6,1,5
  .????.???#???# 4,6
  ?.??#.##?#???#?# 3,4,3
  ?????.?.#? 1,2
  ?.?#????????.. 5,1
  #..??.??##??.?? 1,1,5,1
  #?????#?#????.?.# 4,5,1,1,1
  ???.?..????. 2,2
  ?.##???###??.? 1,2,6,1
  ???.?#???#????.# 1,2,2,1,1
  ???.??#?#.????.??? 2,1,1,1,1,2
  ..?#?#??.????#?.? 4,5
  ??##????##????##??#? 10,1,2,2
  #?#.?#??##.??##?? 1,1,5,4,1
  ?#?.##?.??#??#?.? 1,2,2,2,1
  ?.??.????. 1,1,1
  ??#??.?#??????#??# 1,3,6,1
  .?##.???.?? 2,2,1
  #?#?????#?.??#????#? 10,2,4
  ????.#?#??.???? 4,4,2,1
  ???????#??##?? 2,4,3
  ?#?.???.?.. 1,2,1
  ??????.????? 3,1,2
  #?.???##?#?#??#?# 1,1,10,1
  ?#????????#??#?.? 2,1,4,2,1
  ??.?#..???#??.? 2,2
  ?#????????????..# 6,2,2,1
  ???#??.??#?#???? 1,2,9
  ?##??#????#?????# 3,1,1,8
  ?#?##??.?..?. 7,1
  ????????#?? 1,1,1
  .?.??.??.? 1,1,1
  ????????????????? 2,9
  #???.??#?#?????.???. 2,8,1,2
  ????????.#. 1,5,1
  .???????.????? 3,2
  #???####?#???#??#. 2,7,6
  ..?###?#???? 4,3
  ??????????.?#? 2,3,1,1
  ????????.#????????? 1,1,3,1,4,1
  ????..#.??#.??#. 4,1,1,1,1
  ??.?#???#?..?. 1,7,1
  ????...#?.??#?#.? 1,1,2,3
  ???#??????#?.?#.#?# 7,1,2,3
  ..??.???.??###?### 2,9
  #??#?...?#??? 5,1,2
  .????.??#?.? 1,3
  ?????#??.#????#???# 2,3,8,1
  .?????????????#??#?. 1,1,1,10
  ??????????###. 2,2,1,4
  ???.?.??..?#????#?#? 2,2,9
  ?#??.?#?.###?.???? 4,2,3,1,2
  ?.??##??#? 5,1
  ???#??##?#??.###?#?? 11,3,3
  ?#...??????#. 2,1,1,1
  #??..#?#??????###? 1,1,1,3,6
  ????.???#?????????? 1,1,3,1,2,2
  ??????#???? 5,1,1
  ???#.??????#??#????. 1,1,3,8
  ..????????????????? 8,2,1
  ???#.?#?.#.. 3,1,1
  ??######?#????# 10,1,1
  ?.#?..??????#?#??? 1,1,1,8
  ?#???.??##.? 4,3
  ????#?????.# 2,2,1,1
  .?#??????# 5,1,1
  .?????...?#????? 1,1,1,5,1
  ??###??#?????#??? 11,3
  .????.???#?? 1,2,3
  ?.???#?????#?.??? 1,1,8,1,1
  ?..?..???#??.#?? 1,1,6,1
  #??##??#?.#?#???? 1,6,1,1,1
  ??#????.??# 3,1,2
  ??.???###??#????# 1,6,1,1,1
  .????#??##?? 2,1,3
  #.?.?.?#??#??????? 1,1,1,6,3
  ##??????#..?? 7,1,1
  ?#?#?#.?.?#..? 2,1,1,2
  ???.??.#?#?..?. 2,4
  ??##??????#?? 6,3
  ?#???.???. 4,2
  ???#???????##??#?? 1,6,8
  ?.?#??#?.#??? 2,1,1,1
  .#??.?#???# 3,2,1
  .###????#???.?.??# 11,1,1
  .?#???#????#?? 2,9
  ??##?#??.#?? 5,1
  ?????#?#???????? 1,1,1,2,2
  ??#???#.??????#?# 6,1,1,1,1
  ??#??##?#???? 4,4,2
  ??.??#??##?#.#.??#? 1,1,1,5,1,3
  ????##?#.?##?#?.?#? 3,4,5,1
  #..??.?##? 1,2,3
  ?#?.?????#..?#?????? 1,1,4,2,5
  ?.???..?#.????##.?.? 1,1,4
  ?.???????###???? 1,5,3,2
  .#???.#.?. 1,1
  .?#.??#??###?# 2,1,8
  ??.?????#?. 2,1,1
  ?#???????##?#?..??.# 1,5,5,2,1
  ??????#?..?.????## 7,6
  ?#?.#??#.????#??.# 2,1,1,3,3,1
  ??.??##??.???..??.?# 1,4,1,1,1,2
  #?#?#..??.#????? 5,1,6
  .?##????..?.?.. 3,1
  ?.???????????? 1,1,5,3
  ???????...?.?????? 1,1
  .?#??..??????#????? 3,9
  ????##??.. 4,1
  .?#?.?????#??##??#? 3,1,3,6
  ??.#??????#.?????#? 2,5,1,3
  ?????.??????#??.?? 1,3,9,1
  ?..?????##?#??#?? 1,2,8,1
  ?????#?##?????.? 1,1,5,1,1
  ?????#??#.????.???. 1,3,1,4,1,1
  ??#???#????#?#?.???? 1,2,2,6,1,1
  #???#?..?????#??? 2,3,6,1
  ??.????#?#???.??.# 7,1
  ??##?????# 6,1
  ????#?#?#??.??.?? 7,1,1
  ????#?#??????????? 11,2,2
  ?##?.????. 3,2
  .?.???###. 1,3
  .????#?#.?#???.?? 5,1,2,2,1
  ???.?#???????##??? 1,1,1,1,8
  .????????????..?.?? 5,5,1,1
  ??#.??????.#?#. 1,1,5,1,1
  #???.##?#????#???. 1,1,2,7,1
  ?#??.?#??. 1,3
  ??..??##..? 1,1,2
  ?#??.????????? 1,1,2,4
  ???#????.???. 5,1
  ??????#?##??#??#??.? 2,10,1,1
  #???##???#..#???#?? 3,2,1,1,1,4
  ?.#?.??.?? 1,2,1
  ??.?#????????#? 2,2,5
  ??????.???#?????? 1,1,3,1,2
  ??.?#???.?#? 1,1,1,2
  .?.???#??????? 1,4,1,4
  ?#.?.?###????#?? 2,9
  ?????..????????????? 1,6,2
  #??????#??..??#??# 1,2,4,5
  ?.??????#??# 1,6
  .???.???????#????? 2,7,2
  #???.#?#???##?#??.?? 2,1,1,6,1,2
  #?.?????#.?#.#??#. 2,6,1,1,1
  ##????#??.????? 3,1,1,1,1
  .??##?##?#??.???? 3,2,1,2
  ????#??#???#???..#. 6,3,2,1
  ??.???#?#?#??. 1,1,5
  ..??#.????? 3,1,2
  ???.#.????.?## 1,1,3,2
  ????.?#..?.? 2,2
  .??.???##? 2,1,3
  ????#?#?#???.???# 12,3
  ?????#?.?? 2,1,2
  ??####??.???????##? 7,1,3,2
  ??#?????.?#.? 1,1,2
  ????#?????##.??? 1,10,2
  ????.????. 1,2
  ???####???????## 9,4
  ?#???#.?.?#?##?? 1,2,2,2,1
  ???.???#...#?? 2,2,1,1
  ..#???.?#???.??.?## 3,5,3
  ..??#?#?.?.??#??#.? 6,6
  .#???.##?????##??? 1,2,12
  ?#?.?#??.#. 2,1,1
  .#???...#? 1,1
  ??#.???##??## 3,2,2
  ?????#???????? 1,2,1,1
  #?#.???.????.? 3,1,1,1
  ?????#????#?.?. 3,1
  .?????..???#? 3,1,4
  ???#.??.?.??? 2,1,1
  ###?###??#?#?. 7,2,2
  ??..#??#.#?#?##? 2,1,1,7
  ?????##??..##?#?# 7,6
  .#????#??#?? 1,1,2,1
  ????.???#???? 1,1,1,1
  ???#.??????????.??? 1,1,4,2,1,2
  ?????.#?#?.?.?#???#? 4,1,2,3,1
  .#???#???#??? 1,10
  ?..????#???????.. 5,4
  #?.??#???????.??? 2,4,4,1
  .???????.??#???? 1,1,1,5,1
  ??#?????###????????? 10,1
  .#?????????????????? 5,10
  #???#?????#??#?.?..? 2,11,1
  ???.?????.??.. 2,1,2,1
  ??????#????? 6,2
  ???.??#????#????## 1,5,8
  ?#?#????..?#??.? 4,1,2,1
  ????#???#???? 9,1
  ..??.?##???#.#??#### 7,7
  ???#???#???????##.? 2,7,3
  .?????????#? 1,1,1,2
  ??.??#????#. 1,8
  ???#???##..####?? 2,3,5
  ##?.?.#?.???.?#??. 2,1,1,3
  .???#??????. 4,1,2
  #??.????.??#?.??# 1,1,1,4,3
  ?#?##??.??##?#??? 7,7
  ?.?#???#????.#?# 1,3,2,1,3
  #?.?#.??????.?? 2,1,4,1
  ????#???????#?? 4,6
  .?????????????#.?? 6,4
  ??#??????#??.??#???. 10,5
  .??..??#??? 2,1,1
  ???.????????#? 1,1,3
  ???.???.???? 1,1,1,3
  ????#????. 6,2
  ??#.?#?????# 1,1,3,3
  ?#.?.?#?#???#?#???.. 1,12
  ?????.???## 1,5
  ????..#??. 2,1
  #??#?????#?#??#.. 1,3,8
  ????#????.????#?.? 1,5,3,1
  #????.??#.?. 3,1,3
  ..##??...##?.?#?.? 2,2,1
  ?##????#.??#. 8,2
  #..??##????? 1,4,1,1
  ?.?..??????###??..?? 1,1,5,3,1,1
  ???.??##.??. 2,3
  ??.???#????#??#? 1,1,1,3,1
  ???#???#?????#?. 4,7
  ?.?????#???????#? 8,1
  #?#???????#? 1,4,2,1
  ??#?##.????#??? 4,4
  ?????.???#????#???? 1,1,5,1,2
  ?.?##???#.?#?. 1,3,3,3
  ??.?#.??????? 1,1,5
  ?#???#??????.#?# 6,2,1,1
  ???.?????#??.???? 1,1,4,1,1
  ?.?#?.??#??#??#.?? 2,7
  ??#??????. 2,1,1
  ???????.?.?.? 1,2,1,1
  ??#????#?..?????#??. 1,3,2,1,2,3
  ?.#?..???. 2,2
  ?#.?##.??#?#??..? 2,2,6
  ??.?..???##. 2,4
  ??..??#?..?#?. 3,1
  ?.#?##?##?#.?# 1,9,1
  ???????????. 2,1,1
  ??????#????#????### 1,1,1,1,8
  .???#??.?. 4,1
  .#??###???#??.??? 1,9,1
  ##???????#????. 4,1,4,1
  #???#?.?.??. 2,1,1,1
  ???#.?????? 1,4
  ???###..##? 4,2
  #????..##.? 4,2
  ??###.??#?. 4,3
  .???..?.?????????? 3,9
  #.???#?#??#.???.. 1,3,1,2,1
  ????.#???#??## 3,9
  ????#??.????. 2,4
  .##???.?.?# 5,1
  ?.?..##???##?.#.# 1,1,8,1,1
  ?#??.???#.???#?????# 3,1,1,9
  ..?????????##??? 7,3
  ???.??????..?#? 1,1,2,1,2
  ????#????#??????. 1,1,1,5,1
  .#?#???.??? 6,1
  ?##?#???#?#?.??.? 11,2,1
  ????.#???#?????????? 1,1,1,7,3,1
  ???#????????. 3,4
  ???##?.??.???.?? 2,1
  ????#?#?#? 1,3,1
  .#??###?.#???.#?#??# 6,1,1,4,1
  ??#?.?#???.??#???.#? 4,5,4,1
  ?.?..?#??????.?#?#?. 4,4
  ??#?##????###? 5,4
  ?????#?#?##?#?#? 1,1,1,1,6
  ??#??##??.?.???#???? 7,5
  .#????.?????.#.??? 1,1,1,1,1,3
  ?.??#?????????? 1,1,1,4,1
  ?#??.?.???##??##?# 1,1,1,8
  ???.#?.?????? 1,4
  ?.?..???????.#?. 1,1,4,1,1
  ??#?.?#?##? 2,5
  ???.????#??? 1,1,1
  ??#.???#???#?#?? 1,1,11
  ?.??#????.?####. 4,5
  .????#???#???#???# 1,13
  ???#?#??????? 7,1,1
  ???????#??? 1,3,1
  ?#.?#??#?.#?? 1,6,1,1
  ??#?#?????..??.# 10,1,1
  ????????.#?#????.?? 1,4,1,1,1,2
  ??.#?????#???.?# 1,1,1,4,1
  ?#..?#?..?.???#?.?# 1,3,1,5,1
  ?.??.???#?? 1,4
  .????#??????#??? 1,11
  #????.????. 4,1
  ???????.????????? 2,4
  ????????????.. 2,1
  ?????.?.?.#??#?#???? 5,1,1,6,1
  ??#?#?#??##.# 6,3,1
  ?????#???. 1,5
  ??.???.??. 2,2,1
  #???#????? 1,2,1
  ???#???#??###??..??? 1,1,8,2
  ?.???????#??#????# 2,11
  ????##.?.#..?? 5,1,1,2
  .#..??#???#?#? 1,1,7
  ?#??????##?##???.? 2,1,8,1,1
  .?###??#..???.? 3,2,1
  ???#????.???????? 7,2,4
  ??????.???#???#?.?.? 3,6
  ?#?.??#.?. 2,1
  ?.????.??.???? 1,2,1,3
  ?##????????#? 4,1,1,1
  ?.???????#?#?#??? 2,7
  ?#?##????.??.?#?#?.? 5,1,2,4
  ??????.??.??##??#??# 1,1,1,1,8,1
  ?###?.??.#.??#? 5,1,1,1,1
  ???.#????#???? 1,6,1
  ..?#???#?.?.?????#? 3,2,1,1,1,1
  ???##?#?#.?#?? 1,4,1,2
  ????#???.?.???##?? 1,6,1,6
  ?????.????????#.???? 2,1,1,2,2,2
  ?#?..?.?#??.?????? 2,1,3,5
  ???????#?#?.#?.?? 10,1,1
  ?.????.?.????? 3,4
  ??##??##..... 1,6
  ???#.??..#???### 1,1,2,2,3
  #??#??#??#??#?. 2,1,1,6
  ?????#.???.??#?#??? 2,2,1,6
  .??#?#????#???#??? 6,6
  .??#???.?.#??????.?? 6,7
  ????.#?#?#?###? 1,1,1,3,4
  ?#??.???????. 2,1,3
  ???????.??.???? 3,2,1,1
  ??.?.????#??#??????# 1,1,12,1
  ?#????.?#? 2,2,2
  .#??#.????#??.#? 2,1,1,3,1
  ???#?#??.??#?. 1,1,1,3
  .?#?.??#???? 2,2
  ???????#?????????#?# 1,1,3,9
  ??????.??#?? 1,1,1,1
  .?.???#???##?#??? 1,8,1,1
  ?#?#??.???? 4,1,3
  ..???????. 1,1,1
  ?.????#.????????##? 3,3,2
  ??#?????#???? 3,1,4,1
  ?????.???#????? 2,1,1,2,3
  ?#??.?.??#???? 3,1,5,1
  ?.????????#???#?? 1,8,2,1
  ?#??.#?#?###??#??? 3,1,6,1,1
  #?#??????#??.?? 3,1,1,2,1
  .??????#???.??#. 1,1,4,2
  .?#?..???. 2,1
  ##.#.#?#???#??# 2,1,4,4
  ???#?????#?#?????#?? 2,5,6
  ???#.?#???????. 4,1,1,1,1
  ???##.????.?.?????#. 4,1,1,6
  ?.?.??..?.???#?????? 1,1,1,1,6,1
  ?#?????##???. 2,8
  ##???#?##?.??????? 9,2,3
  ?.????.??##?? 1,2,5
  ???.????.??? 1,1,2,2
  ??.?.?.??#?#???# 1,1,1,6,1
  .?#?##?????????? 8,1,1
  ?.#??.?????????.???? 1,7,1
  ????##???..?.? 2,2,1,1
  .?##???#???? 9,1
  ???#????.?#?.?? 6,3,1
  ?????..??###???#??? 3,11
  ???#???#??.?#.??? 1,1,4,2,2
  ????.?###?#?? 1,6
  #??.?..?##?? 2,1,5
  ??#?#?#?##??###?#? 4,11
  ###??.??#??#?#??.??? 3,1,1,6,1,1
  ??????????#?#???.# 2,1,1,4,2,1
  ???????????????? 1,1,1,5
  .?#?##??..?????. 7,3
  .?.???.?#? 3,2
  ##????.###????#????# 2,1,4,3,4
  ??#?#??.#???.? 7,3
  ?????#?#?#???????# 1,6,1,1,1,2
  ?.??#.?..?#?. 2,2
  ?#??.??#?????? 2,8
  ?????.?.??##???#??#? 1,1,1,12
  ??.??????? 1,5,1
  ###??????.????. 6,1,3
  ??#?.???????? 1,1,3,2
  ?????#?????# 2,4,1
  #.?#????????.??. 1,3,1,3,1
  ?#???#???#?. 3,5
  ???.????#?###?#?#? 1,1,1,1,1,7
  #...?#??#?..# 1,4,1
  ##???????.???#?##.# 4,1,1,4,1
  ???..??... 3,2
  ???.????????.? 3,4,1
  ???.??????#??.? 1,1,8,1
  #????.????????##. 3,1,2,7
  .????????#? 1,3,2
  ????#?#??????#???? 10,4,1
  #????##?#?????##.? 1,11
  ?.#?..?#????###.??? 2,9,2
  .???#?#?#??????#? 1,5,6
  ??#????.#???# 5,1,1,1
  .?????????.???. 2,3,1,1
  ?.#?#??#?#?..# 9,1
  ?#?.?#?#??????#.#? 1,5,1,1,1
  .?#?###??.????#??? 7,1,3
  ???.??##?.. 1,3
  #??????.?#???.#?? 1,4,2,3
  ???###????..? 1,3,1
  .#??.?#??...? 2,3,1
  .?.#?.?#?? 1,3
  ?.?????#???.#?#?.? 8,4
  .?#?###??##? 6,3
  #????#???#???#??#? 3,1,10
  .#??#?????#?.#.??##? 1,2,1,1,1,4
  ??#???????....#?? 9,1
  #...#???###?##??. 1,1,8,1
  ????.?##???#.??? 1,1,4,1,1
  #??.???????#???#. 2,1,3,1,3
  .#?#??????.?. 8,1
  ???#?????????##.?.#. 14,1,1
  .?#??#???. 5,1
  ????.?#???.#?#.? 2,3,1,1
  ?#?#???#.?.?#????? 8,6
  ?#?#.???..?#?? 3,3,4
  .???????##?. 1,7
  ?##?????????.#? 2,2,2,1,1
  ??#???.???????# 1,3,3,2,1
  ??..?.?#?? 1,1,2
  #??????.?#.? 1,1,1,1
  ??.??????..??? 6,1
  ???#.??#?#?.# 1,1,3,1
  #??.??????##?###?#? 1,14
  ????????.???. 1,5,1,1
  .??#?#?????#?? 5,1
  #????.#?#.??#???? 1,3,1,1,5
  ?????#?.#..???. 2,4,1,1
  ???##?????????.. 8,2
  ?..?.????? 1,1,1
  ???..#..?.??#. 1,1,1,3
  ..???#????.?#??#?? 5,5
  ?#??#.??????.?? 5,1,3,1
  #???#.#??#.??#?#. 3,1,4,3
  ???????#?????#.? 3,1,2,4,1
  ??...?#?????????# 1,4,6
  ???.#?###??#???????# 1,1,12,2
  ??.#?.?..??.?. 1,2,1
  .#?#?.??#???#??.?## 4,1,2,1,3
  #??????.????#?#? 2,1,2,3
  ???#??.???????#??? 2,4,2
  ?#?.?..#???.?#????? 1,1,1,6
  .????#?#??##?#.? 1,11
  ??#???##????#? 6,1
  ????#????????????.#? 5,1,3,2,1,1
  ?.????????.#?.?.??# 1,6,1,1,1,1
  ????#??#?#????.? 1,8,2,1
  ##?#.??#??? 4,2
  .#.?????#????. 1,2,5
  ?###??##???. 3,5
  ???????#..????#??.? 2,1,6
  ???#?#????#. 6,1
  ?.??#.????..?? 1,1,3,1
  ???.??.???# 2,1,2
  ##.??#?#???. 2,6
  #??.?#.??#?#?#.???? 1,1,2,6,1,1
  ??.?.??..?.? 1,1,1,1
  .???.##???? 2,6
  ??.??#???#?#??????#? 2,11,2
  ##??#?.??. 2,2
  #.??#??#??????.?. 1,1,10,1
  ???#??#???.##?.? 3,2,1,2,1
  .?#.??#...?#?? 1,2,3
  ??????????????#?? 2,11
  .?#?#.???? 2,1,1
  #?##?#??#?#?. 1,7,2
  ??????.???? 1,1,1
  #??.???#??.??#? 1,1,1,1,3
  #???????#???.? 4,4
  ?#?.??..#??#??? 3,2,1,1
  ??.??..#?.#????.?? 1,1,2,5,1
  ?#??#???.???.??? 7,1,1,1,1
  ?.?????.???? 1,5,1,1
  ????#?????.??????? 1,5,1,1,1
  ???????##?.??.? 3,5,1
  ?#.??????.???? 1,2,1,3
  ???#?#??.???? 1,4,1
  ?#????.?#.???# 1,1,1,4
  ?.?#??????.?## 5,3
  ????#?.?#? 2,1,2
  ?????.?.#??? 4,1,1
  ???#??#??? 7,1
  #?????.?#?##?# 1,2,6
  ?.??.??.????#??? 1,1,2,5,1
  ..?###.?????#?#??. 3,9
  #?????.????.?#?? 3,1,1,2,3
  .????????.?#??#? 2,1,4
  ?#??.??????.??.# 3,5,1,1
  ???????.??.??? 4,1,1
  ?????#??.?#?#?? 3,5
  ?##?????.??#???? 2,4,1,1
  ??.????.?????. 1,2
  ????????#? 1,3,1
  .?????????..#??#??.# 2,1,1,6,1
  ??..????##?.???.#.?? 1,7,1,1,1
  ????#?.#??##????? 6,1,6
  ?#.#??#?#??????# 1,1,8,1
  ?.?.?????. 1,1,5
  ?#????#?.???.?. 1,1,1,3,1
  .??.??.##??#?? 1,1,7
  ?.#??????#.???# 8,2
  ?.?##?????##?.??. 6,2
  ?#???#.#?# 5,3
  ?.??????#??# 6,2
  ?#??#????#?.?..?# 5,1,1,1,2
  ????###?##.???.#?#?. 10,4
  #???#???##?? 2,8
  #??#?##?#?#..?## 7,1,1,3
  ????#?????.?.#? 9,1
  #.?????.??.????? 1,2,1,1,3
  ?.?#?????#??? 1,1,1,2
  ??#???.??#? 4,1
  ???????#??#??.?# 1,1,7,1,1
  .??.???.#??#?#?#?? 2,8
  ???##.??#??????.? 4,2,1,1
  #?.????#??????????? 1,8,1,1,1
  ???????????????? 5,7,1
  .?.?#???.??# 1,2,2,2
  .??##??????? 5,1,2
  ??.???#???##??#??#?? 2,1,1,9
  ?????.??.??###?#.? 1,1,1,1,7,1
  ?.?###.???#??.?.#?? 1,3,2,1,1,3
  ?.??.?##?????? 1,2,6,1
  ?#?#??#?##??????##?? 10,1,1,2,1
  #?.??.???#?# 1,1,1,1
  .???.?????????#?? 2,1,9
  ?????#?????#?.#?#?# 1,1,1,3,5
  ???#.#?????. 1,1,1,1
  ??..??#?.##???#???? 2,1,1,6,1,1
  ????????#?? 1,1,5
  ?????????# 4,3
  ??###?#.#???????. 6,5
  ?.#??#?.?#. 2,2,1
  ?#???#??#??#?? 1,2,2,1
  .?..##??#??.? 1,6
  ??#??#?#.??.???? 8,1,1,1
  ??####????????? 5,1,1,1,1
  #??????????? 3,3
  ??#???##?#?.#?????. 9,1,2
  ???##???.# 7,1
  ???.?#??.? 1,2,1
  ?.????.???? 4,1
  #?#?#???#? 5,3
  #???????.# 7,1
  ??##.???#????? 3,1,4,2
  ??.???.??. 2,1
  ???##?...?????# 5,1,1,1
  .???#???#? 1,1,2
  ??.?#??#?#.???.??? 1,7,1,1
  ##????????#??#?.#?.? 11,1,1,1
  ??.?#??.#..??? 2,3,1,2
  #??#??#??. 1,1,3
  ?#?#???#????? 6,3,1
  ??#???#???????? 3,6,2
  ?##?????#?#??##???.? 3,1,9
  ???.???.?. 1,1,1
  ###??????? 4,4
  .???#?????????.?. 11,1
  ???#.?.###??#?#???? 2,1,1,3,5,1
  ?.#??#???#???#?.#?? 1,1,11,2
  ??.?.??##?##.??? 1,7,1
  ???.???##???????#??? 3,9,3
  ?????????????#?.? 5,2,4
  ?.?????#??????#? 1,1,4,4
  ???.????#?#?#.#? 1,1,2,5,1
  .?.??..?#???#?? 1,2,4,1,1
  ??#?..?#??????? 1,7
  .#??#?#??.?#?###???? 7,7
  #??#.?????##. 2,1,1,2
  ???#???????????#? 4,1,1,4
  ????###?###??? 1,10
  ???####?#???#??#? 13,2
  ?.?..???#?. 1,4
  ?.#?#.?.#??.?##???#? 3,2,6
  ?#???.??###.? 1,5
  ????????.#?.??. 2,1,2,1,1
  ?#?#???#.#?#?? 2,1,2,5
  #..#??????#..#?? 1,8,1
  ???..?#??.? 3,4,1
  ????###?#?.?..# 3,6,1,1
  .?#.?#?#?##.???. 2,1,4,1
  #???#???#?#?##???#?. 15,1
  ??????.?#????.??. 1,3,1,2,2
  ?#??????#??#??..? 8,3
  ??#?.???#?##????.?? 1,2,1,7,1,1
  ?.???.??##??. 1,1,3
  ?????????? 2,6
  ??.?#?#?#???? 6,1,1
  .???##??#?.?. 8,1
  ???#????####?.??#?.# 12,1,1,1
  ?#??##?#?#?????##? 9,2,3
  #?????.??? 1,1,2
  ?##?.???#..?????? 3,2,2,2
  .##?#??.???? 4,1,1
  ?#.????.?## 2,1,2
  ????#????. 1,2,1
  ??#???.?#.??# 5,2,3
  #???#.????? 1,2,4
  ??##?????.?.?#?.? 4,1,1,1,1
  ??.??????? 2,3,1
  .??.?#??????????? 1,12
  ???#####.#???#??# 1,5,6,1
  ???#?????.?#??#?.?? 1,1,2,2,2,1
  ???#??##??.#????#?? 2,3,3,2
  ??#???.##. 2,2
  ##?#?#???????##?#??? 8,5,2
  ?.????#.?#??? 5,2
  ??#??##??#.??#?#? 6,2,1,4
  ?????????##?. 2,4,3
  ????#?.???.?? 2,2,1,1
  ?.##?#????#?#???#?? 1,15
  #??#??#???? 1,6,1
  ???.?###????.. 2,5,1
  ?.??????#?.?.? 2,2,1,1
  ???#.??.?#???????#. 3,1,2,1,1,2
  ?.???.#??. 3,2
  ##..??.???????. 2,1,2,1
  .??????##?.?.#??? 3,2,1,3
  ?????.????#? 3,1,1
  ???????#??.?##?##??? 7,3,3
  ??#..?##?#? 3,2,2
  ?.???.???#?#?? 2,7
  ##?#?#?#???????.? 6,2,1,1,1
  #.??#?#?#??? 1,7,1
  .?.???#####? 1,8
  ???????.?..?. 2,1
  ?##?.#???????.? 2,3,1,1
  ???..?.?#???#??. 2,1,1,5
  .#?????#?#???? 1,3
  ????#?..????...?? 1,3,2,1
  .?#?#???????? 5,6
  .###?.???#??.?????? 3,3,5
  ?????..???????????. 1,3,3
  ???????.?#??????? 1,1,2,8
  #??.#???#???. 1,1,6,1
  ?#?????#?????? 8,3
  #???#?#?..? 1,5,1
  ?#?.??????????#?? 3,2,2,2,1
  ?#?.#???#??##??.??? 1,1,1,1,5,1
  ?.???###.??#????? 1,1,3,1,6
  ???##??.?? 5,1
  ????#???#?????? 1,11
  #?????#???#????. 1,2,1,3,2
  ??????##.?. 1,5,1
  #????.?.?##??????? 1,1,1,4,1,2
  ???#???#???#..?# 1,1,6,1
  #?.?####?. 2,5
  ???..#.??.? 3,1
  ?????#.??? 2,1
  ??.?.????. 1,1
  ?#?#???.?###??#??. 1,1,2,9
  .?#..??#????#?# 2,3,5
  ?.#?#??#?#. 1,6,1
  .#?.???????????#..? 2,5,1,1,1,1
  ??..???.?#????????? 1,3,2,1,1,1
  ??.?#??#..???. 2,3,1,2
  #????.?????#.???? 4,6,2
  ?##.?.?#?. 3,1,2
  ?????#?.???????. 4,1,3
  .?##?..#?#.??????? 2,1,1,2,2,1
  ?.##?#?.??. 4,1
  ??????#?#? 1,1,3
  ?.??#??????#?????.? 1,8,3,1,1
  """)
defmodule Sol12 do
  def read_case(text) do
    # IO.inspect(text)
    [cmd, pattern_str] = String.split(text)
    # IO.inspect(pattern_str)
    pattern = String.split(pattern_str, ",") |> Enum.map(&String.to_integer(&1))
    {String.to_charlist(cmd), pattern}
  end

  def solve({[], [], _}), do: 1

  def solve({[], pattern, _}) do
    if Enum.sum(pattern) == 0, do: 1, else: 0
  end

  def solve({cmd, [], _}) do
    if Enum.all?(cmd, &(&1 == ?. or &1 == ??)), do: 1, else: 0
  end

  def solve({[first | tail], pattern, just_take_sharp}) do
    case {just_take_sharp, first} do
      {false, ?.} ->
        Sol12.solve({tail, pattern, false})

      {true, ?.} ->
        if hd(pattern) == 0 do
          Sol12.solve({tail, tl(pattern), false})
        else
          0
        end

      {_, ?#} ->
        if hd(pattern) > 0 do
          Sol12.solve({tail, [hd(pattern) - 1 | tl(pattern)], true})
        else
          0
        end

      {_, ??} ->
        Sol12.solve({[?. | tail], pattern, just_take_sharp}) +
          Sol12.solve({[?# | tail], pattern, just_take_sharp})
    end
  end

  def solve(_), do: 1

  def read(text) do
    String.split(text, "\n")
    |> Enum.map(&Sol12.read_case(&1))
    |> Enum.map(fn {cmd, pattern} -> Sol12.solve({cmd, pattern, false}) end)
  end
end

part1 = Sol12.read(test_cases) |> Enum.sum()