Statistics

Problem Statement for "MonochromePuzzle"

Problem Statement

Fox Ciel has a NxN square divided into 1x1 cells. Here, N is an even number between 6 and 50, inclusive. Rows of the square are numbered 0 to N-1 from top to bottom, and columns of the square are numbered 0 to N-1 from left to right. Each cell is either white or black. This board is represented by String[] board. The j-th character of the i-th element of board is '#' if the cell at j-th column of i-th row is black, and is '.' if the cell is white.

Ciel can perform the following operation repeatedly.

  • Choose two numbers i, j (0<=i<j<N).
  • Swap rows i and j.
  • Then, swap columns i and j.
Ciel wants to transform the square into a destination pattern G(N) by using the minimum number of the operations.

The destination pattern G(N) is a NxN square, where the cell at i-th row of j-th column is black if |i-j|=1 or i+j=N-1 or {i,j}={0,N/2-1} or {i,j}={N/2, N-1}, and otherwise the cell is white. (Note that there are two cells that satisfy {i,j}={0,N/2-1}.) This is how G(6) and G(8) look like:

         .#.#...#
         #.#...#.
 .##..#  .#.#.#..
 #.#.#.  #.#.#...
 ##.#..  ...#.#.#
 ..#.##  ..#.#.#.
 .#.#.#  .#...#.#
 #..##.  #...#.#.
  G(6)     G(8)
Return the minimum number of required operations. If her objective is impossible, return -1.

Definition

Class:
MonochromePuzzle
Method:
getMinimum
Parameters:
String[]
Returns:
int
Method signature:
int getMinimum(String[] board)
(be sure your method is public)

Constraints

  • board will contain between 6 and 50 elements, inclusive.
  • The number of elements in board will be even.
  • Each element of board will contain N characters, where N is the number of elements in board.
  • Each character in each element of board will be either '.' or '#'.

Examples

  1. {".##.#." ,"#.##.." ,"##...#" ,".#..##" ,"#..#.#" ,"..###."}

    Returns: 2

    One of the optimal solutions: First, choose (i, j) = (1, 2). Then, choose (i, j) = (4, 5).

  2. {"###..." ,".##..." ,"..#..." ,"#..###" ,"##..##" ,"###..#"}

    Returns: -1

    It is impossible to transform board to G(6).

  3. {".#.#...#" ,"#.#...#." ,".#.#.#.." ,"#.#.#..." ,"...#.#.#" ,"..#.#.#." ,".#...#.#" ,"#...#.#."}

    Returns: 0

    No operation is required.

  4. {".#..#....#" ,"#....#..#." ,"....###..." ,"....#.#..#" ,"#.##......" ,".##....#.." ,"..##...#.." ,".....##.#." ,".#.....#.#" ,"#..#....#."}

    Returns: 2

  5. {".##.....#." ,"#..#.....#" ,"#..##....." ,".##..#...." ,"..#..##..." ,"...##..#.." ,"....#..##." ,".....##..#" ,"#.....#..#" ,".#.....##."}

    Returns: 5

  6. {".......##.#." ,"......#..#.#" ,"......#..##." ,".......##..#" ,"......#.#..#" ,".......#.##." ,".##.#......." ,"#..#.#......" ,"#..##......." ,".##..#......" ,"#.#..#......" ,".#.##......."}

    Returns: 5

  7. {".##..#......" ,"#.#.#......." ,"##.#........" ,"..#.##......" ,".#.#.#......" ,"#..##......." ,".......##..#" ,"......#.#.#." ,"......##.#.." ,"........#.##" ,".......#.#.#" ,"......#..##."}

    Returns: -1

    crucial case : two prisms

  8. {".#.....#.....#" ,"#.#.........#." ,".#.#.......#.." ,"..#.#.....#..." ,"...#.#...#...." ,"....#.#.#....." ,".....#.#.....#" ,"#.....#.#....." ,".....#.#.#...." ,"....#...#.#..." ,"...#.....#.#.." ,"..#.......#.#." ,".#.........#.#" ,"#.....#.....#."}

    Returns: -1

    crucial case : entangled prism

  9. {".##....#" ,"#..#..#." ,"#..##..." ,".##..#.." ,"..#..#.#" ,"...##.#." ,".#...#.#" ,"#...#.#." }

    Returns: 1

    N=8

  10. {".##..#","#.#.#.","##.#..","..#.##",".#.#.#","#..##."}

    Returns: 0

  11. {".#.....#.......#","#.#...........#.",".#.#.........#..","..#.#.......#...","...#.#.....#....","....#.#...#.....",".....#.#.#......","#.....#.#.......",".......#.#.....#","......#.#.#.....",".....#...#.#....","....#.....#.#...","...#.......#.#..","..#.........#.#.",".#...........#.#","#.......#.....#."}

    Returns: 0

  12. {".#..........#............#","#.#.....................#.",".#.#...................#..","..#.#.................#...","...#.#...............#....","....#.#.............#.....",".....#.#...........#......","......#.#.........#.......",".......#.#.......#........","........#.#.....#.........",".........#.#...#..........","..........#.#.#...........","#..........#.#............","............#.#..........#","...........#.#.#..........","..........#...#.#.........",".........#.....#.#........","........#.......#.#.......",".......#.........#.#......","......#...........#.#.....",".....#.............#.#....","....#...............#.#...","...#.................#.#..","..#...................#.#.",".#.....................#.#","#............#..........#."}

    Returns: 0

  13. {".#...............#.................#","#.#...............................#.",".#.#.............................#..","..#.#...........................#...","...#.#.........................#....","....#.#.......................#.....",".....#.#.....................#......","......#.#...................#.......",".......#.#.................#........","........#.#...............#.........",".........#.#.............#..........","..........#.#...........#...........","...........#.#.........#............","............#.#.......#.............",".............#.#.....#..............","..............#.#...#...............","...............#.#.#................","#...............#.#.................",".................#.#...............#","................#.#.#...............","...............#...#.#..............","..............#.....#.#.............",".............#.......#.#............","............#.........#.#...........","...........#...........#.#..........","..........#.............#.#.........",".........#...............#.#........","........#.................#.#.......",".......#...................#.#......","......#.....................#.#.....",".....#.......................#.#....","....#.........................#.#...","...#...........................#.#..","..#.............................#.#.",".#...............................#.#","#.................#...............#."}

    Returns: 0

  14. {".#.#...#","#.#...#.",".#.#.#..","#.#.#...","...#.#.#","..#.#.#.",".#...#.#","#...#.#."}

    Returns: 0

  15. {".#......................#........................#","#.#.............................................#.",".#.#...........................................#..","..#.#.........................................#...","...#.#.......................................#....","....#.#.....................................#.....",".....#.#...................................#......","......#.#.................................#.......",".......#.#...............................#........","........#.#.............................#.........",".........#.#...........................#..........","..........#.#.........................#...........","...........#.#.......................#............","............#.#.....................#.............",".............#.#...................#..............","..............#.#.................#...............","...............#.#...............#................","................#.#.............#.................",".................#.#...........#..................","..................#.#.........#...................","...................#.#.......#....................","....................#.#.....#.....................",".....................#.#...#......................","......................#.#.#.......................","#......................#.#........................","........................#.#......................#",".......................#.#.#......................","......................#...#.#.....................",".....................#.....#.#....................","....................#.......#.#...................","...................#.........#.#..................","..................#...........#.#.................",".................#.............#.#................","................#...............#.#...............","...............#.................#.#..............","..............#...................#.#.............",".............#.....................#.#............","............#.......................#.#...........","...........#.........................#.#..........","..........#...........................#.#.........",".........#.............................#.#........","........#...............................#.#.......",".......#.................................#.#......","......#...................................#.#.....",".....#.....................................#.#....","....#.......................................#.#...","...#.........................................#.#..","..#...........................................#.#.",".#.............................................#.#","#........................#......................#."}

    Returns: 0

  16. {".#.##.","#...##","...###","#.#..#","###...",".###.."}

    Returns: 3

  17. {".##..#","#...##","#..##.","..#.##",".###..","##.#.."}

    Returns: 1

  18. {"...###","..##.#",".#..##","##..#.","#.##..","###..."}

    Returns: 2

  19. {".#..#........#","#.#.........#.",".#.#..#.......","..#........##.","#....#.#......","....#...#.#...","..#.......##..","....#...#....#",".....#.#.#....","........#.##..",".....##..#....","...#..#..#....",".#.#.........#","#......#....#."}

    Returns: 4

  20. {".#........##..","#....#.#......","...#....##....","..#.......#..#",".....#.#....#.",".#..#...#.....","..........##.#",".#..#......#..","..#..#......#.","..#.........##","#..#..#.......","#.....##......","....#...##....","...#..#..#...."}

    Returns: 7

  21. {"....##.#......",".....###......","....#..#.....#","........#.#..#","#.#......#....","##..........#.",".#........#.#.","###...........","...#.....#.#..","....#...#....#","...#..#....#..","........#.#.#.",".....##....#..","..##.....#...."}

    Returns: 8

  22. {".#.......#...........#","#.#...........#.......",".#.#...............#..","..#.#.............#...","...#...........#.#....","......#...#.....#.....",".....#.#.......#......","......#.#.#...........",".......#.....#......#.","#..........#........#.",".....#.#.....#........",".........#..#........#","...........#.#......#.","........#.#.#.........",".#.................#.#","....#.#.........#.....",".....#.........#.#....","....#...........#.#...","...#.............#.#..","..#...........#...#...","........##..#.........","#..........#..#......."}

    Returns: 4

  23. {"........#...#.#.......",".....#.....#...#......","..........#.........##","....#........#...#....","...#.#.....#..........",".#..#............#....",".......#...#...#......","......#.#.....#.......","#......#.#............","........#.#.#.........","..#......#........#...",".#..#.#...............","#........#........#...","...#...............##.","#......#.......#......",".#....#.......#.......","...................###","...#.#.............#..","..........#.#........#",".............#..##....","..#..........#..#.....","..#.............#.#..."}

    Returns: 7

  24. {"..........#...#......#",".....#...#.#..........","......#........##.....",".....#.........#..#...","......#.....#...#.....",".#.#................#.","..#.#..#..............","......#.#...#.........",".......#.....#...#....",".#..................##","#..........#.#........",".#........#..........#","....#..#.........#....","........#.#...#.......","#............#...#....","..##...............#..","..#.#..............#..","........#...#.#.......","...#...............##.","...............##.#...",".....#...#........#...","#........#.#.........."}

    Returns: 8

  25. {"..#................#......#...","...........#.....#..........#.","#..#..............#...........","..#.....................#.#...",".....#.................#.#....","....#.#.................#.....",".....#.#...............#......","......#.#.............#.......",".......#.#...........#........","........#.#.........#.........",".........#.#................#.",".#........#.#.................","...........#.#...#............","............#.#.#.............",".............#.#...........#..","..............#.#............#",".............#.#.#............",".#..........#...#.............","..#................#.......#..","#.................#..........#",".........#...........#......#.","........#...........#.#.......",".......#.............#.#......","....#.#...............#.......","...#.#...................#....","....#...................#.#...","#..#.....................#....","..............#...#..........#",".#........#.........#.........","...............#...#.......#.."}

    Returns: 4

  26. {".#..........#..#..............","#.............#.....#.........","...#........##................","..#.............#.........#...","..............#..#..#.........","......#.........#.......#.....",".....#.#...............#......","......#.#.............#.......",".......#.#...........#........","........#.#................#..",".........#.#.......#..........","..........#.......#..........#","#.#.........................#.","..#.......................#.#.",".#..#..........#..............","#.............#.............#.","...#.#...................#....","....#.............#..........#","...........#.....#.#..........","..........#.......#........#..",".#..#........................#","........#.............#....#..",".......#.............#.#......","......#...............#.#.....",".....#.................#.#....","................#.......#.#...","...#.........#...........#....",".........#.........#.#........","............##.#..............","...........#.....#..#........."}

    Returns: 7

  27. {"....#......#.........#........","...#.#...................#....","...#.................#.....#..",".##.......................#...","#......#.......#..............",".#......................#....#","..........#.#....#............","....#.......#...#.............","..............#...#....#......",".............##........#......","......#...........##..........","#..............#............#.","......##..............#.......",".........#..............#....#","........##..........#.........","....#......#....#.............",".......#.......#......#.......","......#............#..#.......","........#.#.........#.........","..........#......#..#.........","..............#...##..........","#.#.........................#.","............#...##............","........##...................#",".....#.......#...........#....",".#......................#.#...","...#.....................#.#..","..#.......................#.#.","...........#.........#.....#..",".....#.......#.........#......"}

    Returns: 10

  28. {".#................#..................#","#.#.................................#.",".#.#...............................#..","..#.#.....#...........................","...#.#...........................#....","....#...............#...........#.....",".................#.#.#................","........#...........#.........#.......",".......#.#...................#........","........#...................#.....#...","...#.............................#.#..","............#...........#.........#...","...........#.............#.#..........","........................#...#.....#...","...............#.......#...#..........","..............#.#.....#...............","...............#.#...#................","......#.........#.#...................","#................#.#..................","......#...........#..................#",".....#.#.......................#......","......#.........#.....#...............","...............#.....#.#..............","..............#.......#...#...........","...........#.#...........#............","............#...........#.#...........",".......................#.#.#..........","............#.#...........#...........",".........#...#...............#........","........#...................#.#.......",".......#.....................#.#......","....................#.........#.#.....",".....#.........................#.#....","....#.....#.....................#.....",".........#.#.#........................","..#.......#.........................#.",".#.................................#.#","#..................#................#."}

    Returns: 4

  29. {".#................#..................#","#................#.........#..........","..........................#.#....#....","....#......................#...#......","...#......#.....................#.....","..........#.....................#.#...",".......#........................#.#...","......#.#.....................#.......",".......#.#...................#........","........#...................#....#....","....##.........................#......","......................#...#......#....","...............#.....#.#..............","......................#.##............","......................#.#.#...........","............#...#........#............","...............#.....#..............#.",".#.................................#.#","#..................#................#.","..................#.#................#","...................#.#..............#.","............#...#...#.................","...........#.##.......................","............#...........##............",".............##........#..............",".............#.#.......#..............","..#........#..#.......................",".#.#...............................#..","..#......#...................#........","........#...................#.#.......",".......#.....................#....#...","...#......#........................#..","....###...............................","..#......#.#..........................",".....##.......................#.......",".................#.........#...#......","................#.#.#.................","#................#.#.................."}

    Returns: 7

  30. {"..#.#.#...............................","..............................#.#.#...","#...........................#......#..","............#.......#...#.............","#....#....................#...........","....#...........................#.#...","#.........................#........#..","........#.....................#...#...",".......#.#...................#........","........#.#....................#......",".........#...#......................#.","............................#......#.#","...#.......................#........#.","..........#.........#..........#......","...............#......#....#..........","..............#.#......#..............","...............#.#...#................","................#.#..............#....",".................#.#.....#............","..................#..............#...#","...#.........#......................#.","................#......#.........#....","..............#........##.............","...............#.....##...............","...#..................#....#..........","..................#.........#........#","....#.#.........................#.....","............#.#.........#.............","..#........#.............#............","........#.....................##......",".#.....#.....................#........",".........#...#...............#........",".#...#....................#...........",".................#.#.#................",".#...#.#..............................","..#...#....#..........................","..........#.#.......#.................","...........#.......#.....#............"}

    Returns: 10

  31. {"......#............#.......#..................","..#.......................#................#..",".#.#........................................#.","..#.#.....................................#...","...#.#...................................#....","....#............#.......#....................","#...................#...#.....................","........#................#............#.......",".......#.#...........................#........","........#.#.........................#.........",".........#.#.......................#..........","..........#.#.....................#...........","...........#.#...................#............","............#.#.................#.............",".............#.#...............#..............","..............#.#.............#...............","...............#.............#..........#.....",".....#.................................#.#....","...................#.......#............#.....","#.................#.#.........................","......#............#.#........................","....................#.#.#.....................",".....................#.#..#...................","......................#.#....................#","......#..............#.#......................",".....#.#...............................#......",".#....................#......................#","#.................#.........#.................","...........................#.#..........#.....","................#...........#.#...............","...............#.............#.#..............","..............#...............#.#.............",".............#.................#.#............","............#...................#.#...........","...........#.....................#.#..........","..........#.......................#.#.........",".........#.........................#.#........","........#...........................#.#.......",".......#.............................#.#......",".................#.......#............#.......","................#.#.........#.................","....#............#........................#...","...#.....................................#..#.",".#..........................................##","..#.......................................##..",".......................#..#................#.."}

    Returns: 4

  32. {".#....................#......................#","#.#.........................................#.",".#.#.......................................#..","..#.#...................................#.....","...#.#...................................#....","....#.......................#....#............","............#...................#.#...........","...............................#.#....#.......","..........#...................#.#.............",".....................#.#.#....................","........#....#.#..............................","............#.#...................#...........","......#....#.#................................","..........#.#...................#.............","...........#............#..........#..........","..........#.....#.............#...............","...............#.............#............#...","...........................#.#............#...","...................#.......#..............#...","..................#.#.....#...................","...................#.#...#....................",".........#..........#.#.......................","#....................#.#......................",".........#............#......................#","..............#................#....#.........",".........#..........#.....#...................","...................#.....#.#..................",".................##.......#...................",".....#.................................#.#....","................##............#...............","........#......#.............#................",".......#................#............#........","......#.#....#................................",".....#.#...............................#......","......#....#.......................#..........","..............#...................#.#.........","........................#..........#.#........","...............................#....#.#.......",".......#.............................#.#......","............................#....#....#.......","...#.....................................#.#..","....#.......................#...........#.....","................###...........................","..#.....................................#...#.",".#.........................................#.#","#......................#....................#."}

    Returns: 7

  33. {"............#.........#......................#","..................#.........#.........#.......","...#........#......................#..........","..#.#.....................................#...","...#......#..............................#....",".........#.#...............................#..","..........#......#.....................#......",".........#.......#...................#........","...........#.#...................#............",".....#.#............................#.........","....#.#.................................#.....",".....#..#.........................#...........","#.#................#..........................","........#.....#.................#.............",".............#.#...............#..............","..............#.............#.#...............",".................#...................#.#......","......##........#.............................",".#.........................#................#.","............#......................#.........#",".....................#...#..................#.","....................#.#.#.....................","#....................#....#...................",".........................#.#................#.",".....................#...##...................","....................#..##.....................","......................#.#....................#","..................#....#..............#.......",".#.............#.............#................","............................#.#.......#.......","...............#.............#.#..............","..............#...............#.#.............",".............#.................#.#............","........#.......................#.#...........","...........#.....................#.........#..","..#................#......................#...",".........#...........................#.....#..",".......#........#...................#.........",".#.........................#.#................","......#.........#.......................#.....","..........#............................#.#....","....#...................................#.#...","...#...............................#.....#....",".....#............................#.#.........","..................#.#..#......................","#..................#......#..................."}

    Returns: 10

  34. {".#..##","#.#.#.",".#.#.#","..#.##","##.#..","#.##.."}

    Returns: 1

  35. {"....##.......#","....#.#......#","...#....#...#.","..#......##...","##.....#......","#......#.#....",".#......#..#..","....##......#.","..#...#...#...","...#.#......#.","...#....#..#..","......#...#..#","..#....#.#....","##.........#.."}

    Returns: 9

  36. {"........#.#..........#","....#..#..........#...",".........#.#....#.....",".....##..........#....",".#...#.........#......","...##..............#..","...#.....#......#.....",".#.............#.....#","#............#....#...","..#...#..........#....","#............#......#.","..#.........#.......#.","...........#..#.#.....","........#.#...#.......","............##......#.","....#..#...........#..","..#...#.....#.........","...#.....#.........#..",".#......#............#",".....#.........#.#....","..........##..#.......","#......#..........#..."}

    Returns: 14

  37. {"............#..#..........#...","........#...#..#..............","...#.................#..#.....","..#..#.......#................","......#...............#......#","...#..#.................#.....","....##.......#................","..............#..........#.#..",".#.....................#....#.","................##...#........","...........#...........#...#..","..........#.......#.#.........","##...............#............","...#..#...............#.......",".......#..............#......#","##..........................#.",".........#.........#......#...",".........#..#.............#...","...........#.............#.#..","................#....#..#.....","...........#...........#....#.","..#......#.........#..........","....#........##...............","........#.#.........#.........","..#..#.............#..........",".......#..........#..........#","#...............##............",".......#..#.......#...........","........#......#....#.........","....#.........#..........#...."}

    Returns: 21

  38. {".#.#...#","#.#...#.",".#.#.#..","#.#.#...","...#.#.#","..#.#.#.",".#...#.#","#...#.#."}

    Returns: 0

  39. {"..#.##..","..#..##.","##.....#","....###.","#..#...#","##.#....",".#.#...#","..#.#.#."}

    Returns: 3

  40. {"..#.#.#.","..#..##.","##.....#","....###.","#..#...#",".#.#...#","##.#....","..#.##.."}

    Returns: 2

  41. {"..###...",".....###","#....#.#","#.....##","#....##.",".##.#...",".#.##...",".###...."}

    Returns: 3

  42. {".#...##.","#...#..#","...#.##.","..#.#..#",".#.#..#.","#.#....#","#.#.#...",".#.#.#.."}

    Returns: 4

  43. {"..#..##.","...##..#","#..#...#",".##...#.",".#...##.","#...#..#","#..##...",".##..#.."}

    Returns: 5

  44. {"...#.##.","....###.","...###..","#.#....#",".##....#","###.....","##.....#","...##.#."}

    Returns: 4

  45. {"....##.#","..##..#.",".#..#..#",".#..##..","#.##....","#..#..#.",".#...#.#","#.#...#."}

    Returns: 3

  46. {"...#..##",".....###","...#.#.#","#.#.#...","...#.##.",".##.#...","##..#...","###....."}

    Returns: 2

  47. {".##....#","#..##...","#...#.#.",".#...#.#",".##..#..","...##.#.","..#..#.#","#..#..#."}

    Returns: 3

  48. {"..#..#.#","...##.#.","#...#.#.",".#...#.#",".##..#..","#..##...",".##....#","#..#..#."}

    Returns: 4

  49. {"...##.#.","...#.#.#","...#..##","###.....","#....#.#",".#..#.#.","#.#..#..",".##.#..."}

    Returns: -1

  50. {"............###.............","..........#.##..............",".......#..............#...#.","..........#..#...........#..",".....##..............#......","....#...........#........#..","....#...........##..........","..#......#....#.............","..................#.#.....#.",".......#............#.....#.",".#.#.................#......","...............#.#.....#....","##....................#.....","##.#........................","#......#..............#.....","...........#.......#....#...",".....##....................#","......#....#...............#","........#..........#....#...","...............#..#....#....","........##..............#...","....#.....#..............#..","..#.........#.#.............","...........#.......#.......#","...............#..#.#.......","...#.#...............#......","..#.....##..................","................##.....#...."}

    Returns: -1

  51. {".....#...........................#.............#","...#......................................#.#...","........#.#.#...................................",".#................#.#...........................",".......#......................#........#........","#............#........................#.........","...................#....#...#...................","....#................#............#.............","..#..............#.....#........................","..............................#....#......#.....","..#........#...........#........................","..........#.#...#...............................","..#........#.............#......................",".....#...............................#.....#....","......................#.#.........#.............",".............................#.......#.....#....","...........#.............#.#....................","........#...............................#......#","...#.......................#................#...","......#.............................#....#......","...#.....................#.#....................",".......#......................#....#............","..............#........................#.....#..","........#.#.............................#.......","......#.......#..............................#..","............#...#...#...........................","...................................#......#.#...","................#.#.#...........................","......#.............................#........#..","...............#...............#..............#.","....#....#...........#..........................",".............................#...........#.#....",".................................#......#......#","#...............................#.....#.........",".......#......#........................#........",".........#...........#....#.....................","...................#........#.................#.",".............#.#......................#.........",".....#...........................#...#..........","....#.................#...........#.............",".................#.....#........#...............","...................#...........#..............#.",".#.......#................#.....................",".............#.#...............#................",".#................#.......#.....................","......................#.#...#...................",".............................#......#....#......","#................#..............#..............."}

    Returns: -1

  52. {"..##...#","...#.#..","#.#...#.","#..#....",".#.#....",".#####..","#####..#",".#.##.##"}

    Returns: -1

  53. {"#..#..#####.#####..###","#.#..#..#.###..####.##","..###....#.##...######","#..####.....###....###","...#..#..#..#.#...####",".###.....#.###....###.","#..#####.##.####.#.#..","##..#####.#.##.###.###","###.#...##...#..#....#","#.##.##.#.##.#.#.#.##.","#...#..#.###....##.#..",".#.#..#..#...##......#","..#.######.##.##...##.","#.#####..##.#...#.....","#.##.#...#.#.##.#..#.#","....###.###.#...#####.",".#..####.....###.#....","..######..##.####.#.##","#.#.#.#.#.###.####..#.","#.##.###..#...####..#.","#..#..###..#.###..#...","#..####.....#####.####"}

    Returns: -1

  54. {".#..#..###.#.....##..#......#...###.","##.###.##..#....###.#.#...#...#..##.","...#.####.#....#......#.##..###...#.",".#.#.#.#..###########..#...#..#..#..","...#####.#..#.##...#.###.##.##......","#.##..#..###....#.#...#..###.##.###.","..##.#.....#...#..##...###..##.....#","##..######..###...#.#......#.##.###.","####...########..#.##..#..###...####",".###.##.#....##..##.....#...##.#....","#.####....#.#..##.##......#.###...##","...##.....#.#.#...#.#.#..#.#....##..","..#..#.....#.#...#...#..#.####.###..","#.##...#..##.#.#.....##.....###.###.",".#..######.#..#....#.#######.#...#.#","#.#.##..#...#..#########.#.###...#..",".#.#..##....#..#.....##.####..#..###","#######....#.###.##.#####.##.##...#.","###.....#####...#..###..#.#..#..#.##",".##..###...###.###..#.####...##.###.","..#...#..#..##....##..#..#.##.####..","..##.#####....##.#..#..##.#...#..##.","..##.####.#.##....#..##..#....#..###",".#..##.###.#...#.###...###.#.#.#..#.","#####..##.....#..####.#####.#.#.##.#",".#...##....####.######.##...#..###.#","###.##.##....#.#.##.#..##...###...##",".####.#..###.####..#.###.#######.##.",".#..#.#.##...#.##.....#..#..#...#.#.",".###.##...##.###...####....#.#####.#",".....#...##.....###..#....#.#..#####",".##..##.#.##.##.#.#.#....###.#.#...#","#...######.##.###.##..##.#..#..##.#.","#....##.#.##..#.##.##.#..#.#..##.#.#",".#.##.##.#..#.#..#..#....#####.##...","...####.######.##.#..###..#..#...##."}

    Returns: -1

  55. {"##.#.##......#..#...##..#.#.##.#.#..#####..#..#..#","#####.##..#.#..#..#######.##..##..#######.##..#.#.","##...###..####..#..#.#.#.#.###..#.#.##.#.###...#.#","..#..####.#.#..#..##.#.#.##....#####..#....##.#.#.","##..#...##...#....#.#.#..####..#...##...#..###.#..","#.#.#####...#.########..####.######.#.##..###.....","#.##..##...#....####.#.....##..####.##.###...##.#.","##......##.###.#..##...#.#..###.##..###...###.#.##","###...###.#.##.##..##.##....#..##.####...#..##.###","##.#..#..#####.###.##..###..#####..#..##.#.##..#..","#.#..#..##.##..#..#.###...#...####.#####..#####.##","..####.###.##.#.##.##.#..##.####.#..#.#.###.##.##.",".#......##.#..##..#.####.##...#.######..##...#..##","#######.###.#.......####....#...###.##.####.###...","..#######....#.##.#..#.##.##.###..#.#####..#.#.##.",".#...#############.#..##.#..#..###....#.###..#.##.",".####.#.######..####.#.......#.#.....#..#######.##","#.#..#.##..#...####..##.#.#......#.##.#.######.###","##..#.#.#..##.#.#.##..#.####.##.#####.#.##...#.##.","...#.###.....#.####..#...####...##..#.#...#.#.###.",".##.#....#..###.#....###...##..#.#..#..#.#.##..#..","...#.#.#.#....###...#..####....#...##.#...#..##...",".#.#....#.#.#..#..#####.#...#.#..#..#..###..#...##","##.#.##..##.#...##.......##.#......###.###.####.##","##.###.#.#..#......#..#.....#..#.##.##..####..##.#",".....###..#.#.##.##...#..#..####..#.##.#...#...##.","...###..#..#.#.#########....#.#..#......##.#.#.#..",".#####.#..#...#.#.#.#.#..#.######.##.#.##.#.#..#.#","..#...#.##..#.#..#...##..#....##.#.......####...#.",".....###.#####..##..####.#.######....###....##....","##..#..#..###.##..##......#...##..###.##.#..###..#","##...##.#..###..#......###.....##..#.#.##.#.#..#.#",".#.##...#.###..##...####.#.##..##..#..#..#.#..##..","...#.###.##.##..##.##.#.###.#.#..##.##.##.###.#.##","...####..#.#.#..#..#....#.##...#..###....#####.#.#","..####.#.####.########.#.#.##.#.######..#..#..#...","#.#####...##.#...#####.#..###.#.##..###.#.#..#..##","....###.#...##..#..#..#..#....#.#..#.....#.#..####",".#.#.#.##.###.##.###.#.#.###...#####..#.##.....##.","...###.#...###...##..#.#.#....###..##...##.##..#.#",".#.#....###.####.#....#.###.###..#.#.##.##..#.#.#.","#..#.##..##.##.....#.#.##...#.#.#.#.###.#.....#.##","##...#..##..#.#.....#####..##....#.#....#...##.##.","..##...##...#..##.#####...##.#.#..#...#####.###.#.",".###.##.######...#.#..##.###..########.##.#######.","..#.##...#.#.##.#..##.#.#.###.##########.##..#..#.","#####.#.#...#######..#.#.#.#..#...#..###.#.#.#....",".##..###..#.##.#....#.#.#.#.#....##.#..#.####.#..#","..#.##.#.#.###.#......#####...##..#...##.#.##....#","..####.#.##..#.#.#.#.#...##.#.#.###.....#...#.#..."}

    Returns: -1

  56. {"..####","..####","##..##","##..##","####.#","#####."}

    Returns: -1

  57. {".#..##","#.##..",".#.##.",".##..#","#.#..#","#..##."}

    Returns: 2

  58. {".#####","#..###","#...##","##..#.","####.#","###.#."}

    Returns: -1

  59. {".#...#","#...##","...##.","..#.#.",".###..","##...."}

    Returns: -1

  60. {".#######","#.#.####","##.#####","#.#.####","####..##","####..#.","######.#","#####.#."}

    Returns: -1

  61. {"..................#....#......................#...",".........#......#....................#............","..............#.......................##..........",".................#..#......#......................","................#...#.....#.......................","........#.......................#................#","...................#.............................#","..................#.........................#....#",".....#..............#.#...........................",".#.............................#........#.........","..................................#...........#...","............#...........#............#............","...........#................#.......#.............","................#.........................#.#.....","..#.....................#................#........","......................#.#.........#...............",".#..#........#....................................","...#.................#.......#....................","#......#........................#.................","......#...................#.......................","...##...#.........................................",".................#.....#...........#..............","........#......#............#.....................","#....................#.....#......................","...........#..##..................................","...............................#..........##......","....#..............#....................#.........","...#...................#.....................#....","............#.........#..........#................",".................#.................#............#.",".....................................##........#..",".........#...............#............#...........",".....#............#..........................#....","............................#......#.........#....","..........#....#..................................",".....................#.......#...#................","............#...........................#..#......",".#.........#..................#...................","..#...........................##..................","..#........................................#..#...",".........#................#.........#.............","..............#................................##.",".............#...........#.....................#..",".........................#..........#..#..........",".......#.....#..................................#.","...........................#....##................","#.........#............................#..........","..............................#..........##.......",".............................#...........#..#.....",".....###.........................................."}

    Returns: -1

  62. {".....#..","..##....",".#.#...#",".##.....","......##","#.......","....#..#","..#.#.#."}

    Returns: -1

  63. {".......................##......#...#.....#.#......","....#..................#...#..............#..##...","...........#...........#..........##.....#.#......","..........#...#....#............#........#.....#..",".#.....#.#............#.....#...................#.","....................#.#......#.#.#...............#",".................#...#....#...#.....#.....#.......","....#......#........#.....#..........#...........#","...........#........#...#.....#..............#...#","....#........................#..#.....#......#.#..","...#....................#.............#....#....#.","..#....##..........#............#..#..............","....................#....#.........#....#.....#.#.","......................#.......#..##.#.......#.....","...#............#.##..#......................#....",".......................#....#..#...........##.#...","..............#........#...............#..#.#.#...","......#..............#.....#..#...........#.......","..............#...........#.......#.#.............","...#.......#..#................#....##............",".....#.##...#..........#..................#.......","......#..........#................#..#.#........#.","....##.......##.........#...................#.....","###............##...#.............................","#.......#.#...........#.........#........#........","............#...............##.......#...#.#......","......##..........#............#......#.......#...",".#...............#...............#......#...#.....","....#..........#.........#.......#...#.#..........",".....#...#...............#.......#.#...........#..","......#.#....#...#..............#..............#..","#....#.........#...#......#................#......","...#.....#.#............#.....#..............#....",".....#.......#.............###........#...........","..#..........#....#..#.................##.........","#.#........##................#..........#.........","......#......#....##...........................#.#",".......#...........#.#...#..#...............#.....",".........##...............#......#..............#.","................#....#......#.....#......#.......#","............#..............#......##...........##.","#.##....................##.............#..........",".#....#.........##..#.........................#...","#.#.......#....#.........#.....#..................",".............#.##.....#....#.........#............",".#......##....#.................#................#",".#..........#..##.........#...............#.......","...#.....#...................##.....#...#.........","....#.....#.#........#................#.#.........",".....#.##...........................#..#.....#...."}

    Returns: -1

  64. {".##..#","#.#.#.","##.##.","..#.##",".###.#","#..##."}

    Returns: -1

  65. {".##..#","#.#.#.","##.#..","..#.##",".#.#.#","#..##."}

    Returns: 0

  66. {".#####","#.#.#.","####..","#.#.##","##.#.#","#..##."}

    Returns: -1

  67. {".##..#","###.#.","##.#..","..#.##",".#.#.#","#..##."}

    Returns: -1

  68. {"######","######","######","######","######","######"}

    Returns: -1

  69. {".#################################################","#.################################################","##################################################","#################################################.","####.################.##########################.#","###################################.##############","########################################.########.","###########.######################################","##################################################","#####################.############################","##################################################","#######.###.######################################","#########################.###############.######.#","##########################.#######################","##################################################","##################################################","####################################.##########.##","##################################################","######################################.#########.#","##################################################","##################################################","####.####.########################################","#########################################..#######","##################################################","##################################################","############.#########################.###########","#############.###################.################","##################################################","##################################################","#############################.####################","##################################################","##################################################","###################################.####.#########","##########################.#######################","##################################################","#####.##########################.##.##############","################.#################################","##########################################.####.##","##################.######.########################","##################################################","######.#########################.################.","############.#########.###########################","######################.##############.############","##################################################","##################################################","##################################################","##################################################","################.####################.###########.","####.#######.#####.###############################","###.##.#################################.######.##"}

    Returns: -1

  70. {".#.##.","#.#..#",".#..##","#...##","#.##..",".###.."}

    Returns: 3

  71. {".##......#","#..#..#...","#...#.#...",".#.....##.","..#..#...#","....#..##.",".##.....#.","...#.#...#","...#.##...","#...#..#.."}

    Returns: 7

  72. {"............#............#.......#......","......#....................##...........",".......#....#....................#......","..............#..#............#.........","..............#..#.....#................",".......#.#................#.............",".#.........#..................#.........","..#..#..........................#.......",".............#..#......#................",".....#...............#..........#.......","...................#....#..........#....","......#...........#........#............","#.#.............................#.......","........#......................#....#...","...##.............#.....................","....................#.......#........#..","........#.............#........#........","...##...............................#...","...........#..#...............#.........","..........#...........#...............#.","...............#.............#.........#",".........#................#...........#.","................#..#....#...............","....#...#...........................#...","..........#...........#........#........","#............................#.........#",".....#...............#.............#....",".#.........#......................#.....",".#.............#..................#.....","....................#....#...........#..","...#..#...........#.....................",".............#..#.......#...............",".......#.#..#...........................","#.#....................................#","...........................##........#..","..........#...............#...........#.",".............#...#.....#................","...............#.............#....#.....","...................#.#.............#....","....................#....#.......#......"}

    Returns: 34

  73. {".......#...#...................#..........",".....#....#...................#...........",".....................#...#.#..............","................#............#......#.....","......#.....##............................",".#..................#.......#.............","....#...........................#.#.......","#.............#...............#...........",".........#.........#.............#........","........#......................#......#...",".#..........................#........#....","#.............#..................#........","....#...........#..................#......","....#.............................##......",".......#...#.........................#....",".........................##.........#.....","...#........#.........#...................","..................#.#.......#.............",".................#...#.....#..............","........#..............#..............#...",".....#...........#.........#..............","..#...............#....................#..","................#............#.....#......","...................#....................##","..........................#..#......#.....","..#............#.......................#..","...............#........#..............#..","..#...............#.#.....................",".....#....#......#........................","...#..................#.#.................",".#.....#.............................#....","#........#.......................#........","......#.................................##","........#..#...................#..........","......#......#..........................#.","............##........#...................","...#...........#........#.................","..........#...#...............#...........",".........#.........#.....................#",".....................#...##...............",".......................#........#.#.......",".......................#........#.....#..."}

    Returns: 36

  74. {"...#............................#........#........","............#.........#...............#...........","............................#..#......#...........","#......................#.............#............",".............................#..#........#........","...........#....#.......................#.........","........#..........#.............#................",".......................#.............#........#...","......#....................#.................#....","..........#.......#............................#..",".........#.....#..........................#.......",".....#...........#.......#........................",".#..................................#............#",".................#.......#.........#..............","..................#............#...............#..","..........#...................#................#..",".....#...........................##...............","...........#.#.............................#......",".........#....#.....#.............................","......#....................#..#...................","..................#.........#..#..................","......................#.....#.........#...........",".#...................#..............#.............","...#...#........................#.................",".............................#...........#..#.....","...........#.#..........................#.........",".....................................#.....#..#...","........#..........#......................#.......","..#.................##............................","....#...................#.......................#.","...............#...#......................#.......","..#...........#.....#.............................","#...#..................#..........................","......#.........#............................#....","................#.......................#....#....",".............#.............................#..#...","............#.........#................#..........","...#...#..................#.......................",".##..................#............................","....................................#...........##",".....#...................#........#...............","#...#...................#.........................","..........#................#..#...................",".................#........#........#..............","........................#.......................##","........#........................##...............",".......#..................#........#..............",".........#....##..................................",".............................#.........#....#.....","............#..........................#....#....."}

    Returns: 43

  75. {".............#.........................#..#.......","...............##........................#........",".............#............................#...#...",".....#.......................#..#.................","....................#...............#...#.........","...#.....................#..#.....................",".................#........#.................#.....",".........#..............#.......#.................","..................................##.........#....",".......#.................#.#......................","............#.#................#..................","........................#........#...............#","..........#......#..........................#.....","#.#...............#...............................","..........#......#.........................#......",".#..................#...................#.........",".#..................#............#................","......#.....#.#...................................",".............#.........................#.....#....",".......................#....#...................#.","....#..........##.................................","....................................#.#.#.........","..........................................#...##..","...................#.........#.....#..............",".......#...#...............#......................",".....#...#......................#.................","......#.......................................##..",".........#..............#........................#",".....#.............#.........#....................","...#...................#....#.....................","..................................#....#.....#....","..........#...........................#....#......","...#...#.................#........................","...........#....#........................#........","........#.....................#.................#.","........#..............#........................#.","....#................#...............#............","....................................#.#....#......",".....................#.........#.....#............","#.................#...........#...................","....#..........#.....#............................",".#...............................#...............#","#.#...................#...........................","..............#................#.....#............","......#.....#..................................#..","........#.........#...........#...................","..#...................#...#.......................","......................#...#.................#.....","...................#..............##..............","...........#...............#.............#........"}

    Returns: 43

  76. {"...................#.............#.......#........","...................#.....................#....#...","............#..#.................#................","......#...............................#.#.........","................#.....#....................#......",".......#.#...........#............................","...#..............................#.........#.....",".....#.........................#.................#","..............................#....#.........#....",".....#.........................#................#.","............#...........#.......#.................","....................#...#.......#.................","..#.......#...............................#.......",".................#.............#.................#","..................#...............#.#.............","..#....................................#..#.......","....#......................#.#....................",".............#.........#.............#............","..............#.....#...#.........................","##.....................................#..........","...........#......#.................#.............",".....#....................#.....................#.","....#..................#.............#............",".................#....#..........................#","..........##......#...............................","..........................#...........#.........#.",".....................#...#.....................#..","................#.............#............#......","..................................#.#.......#.....","................#.............#..............#....","........#..................#.#....................",".......#.#...#....................................","..........##..............................#.......","#.#....................................#..........","......#.......#.............#.....................","........#................................#....#...","..............#.....#.......#.....................",".................#....#....................#......","...#.....................#.....................#..","...............#...#.............#................","...#........................................#..#..","##.................................#..............","............#..#................#.................","....#......................#.........#............","......#.....................#...........#.........","........#....................#................#...",".#.................................#.........#....","..........................#...........#.#.........",".........#...........#...#........................",".......#.....#.........#.........................."}

    Returns: 43

  77. {".#...............#.................#" ,"#.#...............................#." ,".#.#.............................#.." ,"..#.#...........................#..." ,"...#.#.........................#...." ,"....#.#.......................#....." ,".....#.#.....................#......" ,"......#.#...................#......." ,".......#.#.................#........" ,"........#.#...............#........." ,".........#.#.............#.........." ,"..........#.#...........#..........." ,"...........#.#.........#............" ,"............#.#.......#............." ,".............#.#.....#.............." ,"..............#.#...#..............." ,"...............#.#.#................" ,"#...............#.#................." ,".................#.#...............#" ,"................#.#.#..............." ,"...............#...###.............." ,"..............#.....#.#............." ,".............#.......#.#............" ,"............#.........#.#..........." ,"...........#...........#.#.........." ,"..........#.............#.#........." ,".........#...............#.#........" ,"........#.................#.#......." ,".......#...................#.#......" ,"......#.....................#.#....." ,".....#.......................#.#...." ,"....#.........................#.#..." ,"...#...........................#.#.." ,"..#.............................#.#." ,".#...............................#.#" ,"#.................#...............#."}

    Returns: -1

    diagonal line

  78. {".#...............#.................#" ,"#.#...............................#." ,".#.#.............................#.." ,"..#.#...........................#..." ,"...#.#.........................#...." ,"....#.#.......................#....." ,".....#.#.....................#......" ,"......#.#...................#......." ,".......#.#.................#........" ,"........#.#...............#........." ,".........#.#.............#.........." ,"..........#.#...........#..........." ,"...........#.#.........#............" ,"............#.#.......#............." ,".............#.#.....#.............." ,"..............#.#...#..............." ,"...............#.#.#................" ,"#...............###................." ,".................#.#...............#" ,"................#.#.#..............." ,"...............#...#.#.............." ,"..............#.....#.#............." ,".............#.......#.#............" ,"............#.........#.#..........." ,"...........#...........#.#.........." ,"..........#.............#.#........." ,".........#...............#.#........" ,"........#.................#.#......." ,".......#...................#.#......" ,"......#.....................#.#....." ,".....#.......................#.#...." ,"....#.........................#.#..." ,"...#...........................#.#.." ,"..#.............................#.#." ,".#...............................#.#" ,"#.................#...............#."}

    Returns: -1

  79. {".##...#.","#..#...#","#..#.#..",".##.#...","...#.#.#","..#.#.#.","#....#.#",".#..#.#."}

    Returns: 1

  80. {".##..#..","#..#...#","#..#..#.",".##.#...","...#..##","#.....##","..#.##..",".#..##.."}

    Returns: 2

  81. {"..#.#.#.","..#..##.","##.....#","....###.","#..#...#",".#.#...#","##.#....","..#.##.."}

    Returns: 2

  82. {"...###..","...##.#.","....###.","##.....#","###.....","#.#....#",".##....#","...#.##."}

    Returns: 3

  83. {"...##..#","..#..##.",".#..#..#","#....##.","#.#...#.",".#.#...#",".#.##...","#.#..#.."}

    Returns: 3

  84. {"...###..","..#...##",".#.##...","#.#...#.","#.#....#","#.....##",".#.#.#..",".#..##.."}

    Returns: 4

  85. {"..###...","...###..","#.....##","##....#.","##.....#",".#....##","..##.#..","..#.##.."}

    Returns: 4

  86. {".#.##...","#....##.","...##..#","#.#...#.","#.#..#..",".#..#..#",".#.#...#","..#..##."}

    Returns: 4

  87. {"....##.#","....#.##",".....###","....###.","##.#....","#.##....",".###....","###....."}

    Returns: 5

  88. {".##..#..","#...#..#","#..#...#","..#..##.",".#...##.","#..##...","...##..#",".##...#."}

    Returns: 5

  89. {".##.#...","#..#.#..","#....##.",".#..#..#","#..#..#.",".##....#","..#.#..#","...#.##."}

    Returns: 5

  90. {"..#.#..#","...##..#","#....##.",".#...##.","##....#.","..##...#","..###...","##...#.."}

    Returns: 5

  91. {".##.#...#.......#...............#.................","#..#.#...#.......#...............#................","#..#..#...#.......#...............#...............",".##....#...#.......#...............#..............","#....##.....#.......#...............#.............",".#..#..#.....#.......#...............#............","..#.#..#......#.......#...............#...........","...#.##........#.......#...............#..........","#........##.#...........#...............#.........",".#......#..#.#...........#...............#........","..#.....#..#..#...........#...............#.......","...#.....##....#...........#...............#......","....#...#....##.............#...............#.....",".....#...#..#..#.............#...............#....","......#...#.#..#..............#...............#...",".......#...#.##................#...............#..","#................##.#...#.......................#.",".#..............#..#.#...#.......................#","..#.............#..#..#...#.......................","...#.............##....#...#......................","....#...........#....##.....#.....................",".....#...........#..#..#.....#....................","......#...........#.#..#......#...................",".......#...........#.##........#..................","........#.......#........##.#.....................",".........#.......#......#..#.#....................","..........#.......#.....#..#..#...................","...........#.......#.....##....#..................","............#.......#...#....##...................",".............#.......#...#..#..#..................","..............#.......#...#.#..#..................","...............#.......#...#.##...................","#................................##.#...#.......#.",".#..............................#..#.#...#.......#","..#.............................#..#..#...#.......","...#.............................##....#...#......","....#...........................#....##.....#.....",".....#...........................#..#..#.....#....","......#...........................#.#..#......#...",".......#...........................#.##........#..","........#.......................#........##.#.....",".........#.......................#......#..#.#....","..........#.......................#.....#..#..#...","...........#.......................#.....##....#..","............#.......................#...#....##...",".............#.......................#...#..#..#..","..............#.......................#...#.#..#..","...............#.......................#...#.##...","................#...............#................#",".................#...............#..............#."}

    Returns: -1

    [IM] Breaks my brute force solution if I don't check for 3-regularity.

  92. {"....................#.......#.....#...............", ".....................#....#.........#.............", ".......................#.......#.............#....", "........................#..........#.......#......", "................#........................#.....#..", ".......#................#..................#......", ".................##................#..............", ".....#..........................##................", "................#.........#..............#........", "..............##............................#.....", "..................#................#.......#......", "...................#...........#.............#....", ".................#............#...........#.......", "..............#...................#.........#.....", ".........#...#..................................#.", ".........#......#..............................#..", "....#...#......#..................................", "......#.....#.................................#...", "......#...#...................................#...", "...........#..........................#..........#", "#..........................#.#....................", ".#.....................................#..#.......", ".........................#.#............#.........", "..#.............................##................", "...#.#..........................#.................", "......................#..............#...........#", ".#......#..............................#..........", "....................#.#..............#............", "#............................#..................#.", "....................#.......#........#............", "............#.......................#.........#...", "..#........#.....................#................", ".......#...............##.........................", ".......#...............#.......#..................", "#............#..................................#.", "...#..#...#.......................................", ".#............................#...........#.......", ".........................#.#.#....................", "...................#....................#....#....", ".....................#....#..............#........", "......................#...............#..........#", "....#...#..............................#..........", "............#........#..............#.............", "...#.#....#.......................................", ".........#...#.................................#..", "..#........#..........................#...........", ".................##...........#...................", "....#..........#............................#.....", "..............#.............#.....#...............", "...................#.....#..............#........." }

    Returns: 39

  93. {".#.............................................#.#", "#.#...........................................#...", ".#.#.........................................#....", "..#.#.......................................#.....", "...#.#.....................................#......", "....#.#...................................#.......", ".....#.#.................................#........", "......#.#...............................#.........", ".......#.#.............................#..........", "........#.#...........................#...........", ".........#.#.........................#............", "..........#.#.......................#.............", "...........#.#.....................#..............", "............#.#...................#...............", ".............#.#.................#................", "..............#.#...............#.................", "...............#.#.............#..................", "................#.#...........#...................", ".................#.#.........#....................", "..................#.#.......#.....................", "...................#.#.....#......................", "....................#.#...#.......................", ".....................#.#.#........................", "......................#.#........................#", ".......................#.#......................#.", "......................#.#.#.......................", ".....................#...#.#......................", "....................#.....#.#.....................", "...................#.......#.#....................", "..................#.........#.#...................", ".................#...........#.#..................", "................#.............#.#.................", "...............#...............#.#................", "..............#.................#.#...............", ".............#...................#.#..............", "............#.....................#.#.............", "...........#.......................#.#............", "..........#.........................#.#...........", ".........#...........................#.#..........", "........#.............................#.#.........", ".......#...............................#.#........", "......#.................................#.#.......", ".....#...................................#.#......", "....#.....................................#.#.....", "...#.......................................#.#....", "..#.........................................#.#...", ".#...........................................#.#..", "#.............................................#.#.", "........................#......................#.#", "#......................#........................#." }

    Returns: 24

  94. {".#..............#.........#.......................", "#......................#........#.................", "..................#............##.................", "...........#.#......#.............................", "............#............##.......................", ".............#.#....#.............................", "...............#.#..............................#.", "..........##.#....................................", "........................#...#................#....", "...................................##.........#...", ".......#..........#............#..................", "...#...#.......................#..................", "....#..............#........................#.....", "...#.#.#..........................................", ".....................................#.#.#........", ".....##........................................#..", "#..................#...#..........................", "......#............................#..........#...", "..#.......#..................#....................", "............#...#.........#.......................", "...#.#.........................................#..", "........................#.............#......#....", ".....................................###..........", ".#..............#............#....................", "........#............#....................#.......", "....#............................#..........#.....", "#...#..............#..............................", "..............................#.....#.........#...", "........#.........................#.....#.........", "..................#....#........#.................", "...........................#............#..#......", "..#.......##......................................", ".##..........................#....................", ".........................#...........#...#........", "............................#................#...#", ".........#.......#..............................#.", ".........#.................#...............#......", "..............#.......#..........#................", ".....................##...................#.......", "..............#.......#...................#.......", "............................#.#..................#", "..............#..................#..........#.....", "........................#.............##..........", "..............................#.....#............#", "............#............#...............#........", "........#............#............#...............", ".........#.......#.........#......................", "...............#....#...........................#.", "......#............................#...........#..", "..................................#.....#..#......" }

    Returns: 41

  95. {"..#.............#............................#", "...#....................#..........#..........", "#.............#............#..................", ".#.................#.........#................", ".......#....#................#................", "........#.#.........................#.........", "..............#...........#..................#", "....#...........................#.#...........", ".....#.......#.........................#......", ".............................#...........##...", ".....#...........................#..........#.", ".............#....#.....#.....................", "....#................#....#...................", "........#..#...............................#..", "..#...#..............#........................", "....................#..#...........#..........", "#..........................#....#.............", ".........................#.......#..........#.", "...........#.........#..................#.....", "...#..........................#...........#...", "...............#......#........#..............", "............#.#...#...........................", "....................#....#...............#....", "...............#............#.#...............", ".#.........#...........................#......", ".................#....#....#..................", "......#.....#.....................#...........", "..#.............#........#....................", ".......................#.......#..........#...", "...##....#....................................", "...................#...#...........#..........", "....................#.......#............#....", ".......#........#.....................#.......", "..........#......#.....................#......", ".......#..................#...........#.......", ".#.............#..............#...............", ".....#...............................#.....#..", "....................................#...#...#.", "................................#.#..........#", "........#...............#........#............", "..................#..................#.....#..", ".........#............#........#..............", ".........#.........#........#.................", ".............#......................#...#.....", "..........#......#...................#........", "#.....#...............................#......." }

    Returns: -1

  96. {"..#.............#............................#....", "..##.........................................#....", "##..............................#.................", ".#....................#....................#......", "......#....#..................#...................", "...............#..........#...................#...", "....#....................#.........#..............", "...........................#.#..................#.", "..........#.........................#.#...........", ".............#.........................##.........", "........#..............#.......#..................", "....#.............................##..............", "..................##..#...........................", ".........#.......#................#...............", ".............................#..................##", ".....#...............#......#.....................", "#...............................#....#............", ".............#................#.........#.........", "............#.............#....................#..", "............#...........#......................#..", ".........................#.........#........#.....", "...............#...............#..............#...", "...#........#...........#.........................", "..........#.................#.......#.............", "...................#..#....................#......", "......#.............#....................#........", ".....#............#.......................#.......", ".......#.........................#.......#........", "...............#.......#.......#..................", ".......#......#.......................#...........", "....#............#................#...............", "..........#..........#......#.....................", "..#.............#......................#..........", "...........................#................#...#.", "...........#.#................#...................", "......#....#........#.............................", "........#..............#.........................#", "................#......................##.........", "........#....................#...................#", ".........#......................#....#............", ".........#.......#...................#............", ".........................#.#................#.....", "..........................#...................##..", "...#....................#....................#....", "....................#............#.......#........", "##.........................................#......", ".....#...............#....................#.......", "..................##......................#.......", ".......#......#..................#................", "..............#.....................#.#..........." }

    Returns: 42

  97. {"........#.................#......................#", "..............#.......#............#..............", "................#......#........................#.", "...............#.........#..........#.............", ".....#......#......#..............................", "....#....................#.........#..............", "........#................................#.......#", ".............#.......................#.......#....", "#.....#........................................#..", "..........#..........#.....#......................", ".........#...................#...........#........", "................#..............................##.", "....#....................#..........#.............", ".......#......................#...........#.......", ".#......................................#.....#...", "...#....................#...#.....................", "..#........#...........................#..........", "........................#...#..............#......", "........................#..................#.#....", "....#.................#............#..............", "...............................##...........#.....", ".........#...............................#.......#", ".#.................#..........................#...", "..#....................................##.........", "...............#.##...............................", "...#.#......#.....................................", "#..............................................##.", ".........#...................#........#...........", "...............#.#..................#.............", "..........#................#................#.....", ".............#.................#.....#............", "....................#.........#...#...............", "....................#.............#...#...........", ".......................................##.....#...", "...............................##....#............", ".#...#.............#..............................", "...#........#...............#.....................", ".......#......................#...#...............", "...........................#....#...........#.....", "................#......#.........#................", "..............#........#.........#................", "......#...#..........#............................", ".............#.............................#.#....", ".................##.......................#.......", "....................#........#........#...........", ".......#..........#.......................#.......", "..............#.......#..........#................", "........#..#..............#.......................", "..#........#..............#.......................", "#.....#..............#............................" }

    Returns: 42


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: