Problem Statement
The position of the figurines will be given to you in the
Definition
- Class:
- EllysFigurines
- Method:
- getMoves
- Parameters:
- String[], int, int
- Returns:
- int
- Method signature:
- int getMoves(String[] board, int R, int C)
- (be sure your method is public)
Notes
- In a single move the girl can only select a consecutive group of rows or columns to be cleared. In other words, in each move Kristina first decides whether she wants rows or columns, then she picks the index i of the first chosen row/column, then the number k of chosen rows/columns, and finally she removes all figurines from the rows/columns with indices i, i+1, i+2, ..., i+k-1.
Constraints
- board will contain between 1 and 15 elements, inclusive.
- Each element of board will contain between 1 and 15 characters, inclusive.
- All elements of board will contain the same number of characters.
- Each character of board will be either '.' or 'X'.
- R will be between 1 and 15, inclusive.
- C will be between 1 and 15, inclusive.
Examples
{".X.X.", "XX..X", ".XXX.", "...X.", ".X.XX"}
1
2
Returns: 3
In this case in a single move Elly can remove all figurines from a single row, all figurines from a single column or all figurines from two consecutive columns. One way to achieve the optimal answer here would be to remove the figurines from the first and second column in the first move, then the ones from the fourth and fifth column in the second move, and finally the remaining ones on the third row in the third move. Another solution would be to erase only columns, again using three moves.
{".X.X.", "XX..X", ".X.X.", "...X.", ".X.XX"}
2
2
Returns: 2
Almost the same as the first example, but without the figurine in the middle and the number of maximal rows removed is increased by one. This time, the only optimal solution is to clear the first two columns in one move and the last two in another move.
{"XXXXXXX"}
2
3
Returns: 1
The maximal allowed number of cleared rows or columns might be greater than the corresponding dimension of the board. The optimal solution for this board is to clear the only row in one move.
{"XXXXX", "X....", "XXX..", "X....", "XXXXX"}
1
1
Returns: 4
Here clearing rows 1, 3 and 5, together with column 1 yields the best result 4.
{"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..."}
1
2
Returns: 7
Good luck in TCO 13!
{"."}
1
1
Returns: 0
{"X"}
1
1
Returns: 1
{"X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X", ".X.X.X.X.X.X.X.", "X.X.X.X.X.X.X.X"}
1
1
Returns: 15
{"...............", "XXXXXXXXXXXXXXX", "...............", "...............", "...............", "XXXXXXXXXXXXXXX", "...............", "...............", "...............", "...............", "...............", "XXXXXXXXXXXXXXX", "...............", "...............", "..............."}
1
2
Returns: 3
{".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X...", ".X...X.....X..."}
2
1
Returns: 3
{".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X.", "XXXXXXXXXXXXXXX", ".X.X.X.X.X.X.X."}
1
1
Returns: 14
{"........", "........", "........", ".......X", "........", "........", "........"}
4
2
Returns: 1
{"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX"}
1
1
Returns: 15
{"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX..........", "XXXXX.........."}
5
5
Returns: 2
{"XX.", ".XX"}
15
15
Returns: 1
{"XX...", "X.X..", "X..X.", "X...X"}
1
1
Returns: 4
{"X...", ".X..", "..X.", "...X", "XXXX"}
1
1
Returns: 4
{"......X", "XXX....", "XX.X...", "XX..X..", "XX...X.", "......X"}
1
1
Returns: 5
{"X....X", ".X....", "..X...", "...X..", "....X.", ".XXXX.", ".XXXX."}
1
1
Returns: 5
{"XX.XXXXX.XXXXX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XX.XX.XX.XX.XX.", "XXXXX.XXXXX.XXX"}
1
2
Returns: 6
{"XXX.XXX.XXX.XXX", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.X.X.X.X.X.X.X", "X.XXX.XXX.XXX.X"}
1
1
Returns: 10
{"XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX", "X..............", "XXXXXXXXXXXXXXX", "..............X", "XXXXXXXXXXXXXXX"}
1
1
Returns: 10
{"..X.......X..", ".X.X.....X.X.", "X...X...X...X", ".....X.X.....", "......X......"}
1
3
Returns: 4
{"..X..", "...X.", "....X", "...X.", "..X..", ".X...", "X....", ".X...", "..X..", "...X.", "....X", "...X.", "..X.."}
3
1
Returns: 4
{"..XX........XX.", ".X..X......X..X", "X....X....X....", "......X..X.....", ".......XX......"}
1
2
Returns: 5
{"XX", "..", "XX", ".X", ".X", "X.", "..", "..", "X.", "XX", "..", ".X", "XX", "X."}
10
2
Returns: 1
{"X.X.", "XXXX", ".X..", "X.X.", "X..X", "...X", "XX.X", ".X.X", "XX.X", ".X.X", "..X.", "X...", "..XX"}
6
4
Returns: 1
{"..X..", "..XX.", "..XXX", ".X...", "X..XX", "X.X.X", "XXXXX", "XXXX.", "XX.X.", "XX..X", ".XXX.", "..X.X", ".X.X.", "XXXX.", "..X.X"}
13
1
Returns: 2
{".X.XXXXX..XX.XX", ".X.XXXXX..XX.X.", ".XXX.......XXX.", ".X.X.X.X..XX..X", "...XXX..X..XX..", "..X.XXX..X.....", "X.....X.....XX.", ".XXXX.X..XXXX.X", "XX..X.........X", "X.X.X...XX...X.", "XX.XXXXX.XX.XX."}
2
10
Returns: 2
{"...X.X", "......", "XX.X.."}
1
5
Returns: 2
{"..XXX..X.", ".XXX..X..", "X.XXXX.XX", "..X.....X", "...X.....", ".X.XXX...", "X..X...XX", ".XXXXX..X", "..X.XX..."}
3
3
Returns: 3
{"X", ".", ".", ".", ".", ".", "X"}
7
1
Returns: 1
{".X.XX.XXX.X.XX", ".XX.XXXXX..XXX", "X..XX.X...XX..", "X..XXXXX.X.XX.", "...X..X......."}
5
13
Returns: 1
{"..X", ".X."}
1
2
Returns: 1
{"...X...X.XX.XX", ".XX......X..XX", "XXX.XXX.XXXXX.", "X.XX.X..X..XXX", "X..XXXXX..XXX.", "...XXXXX.XXXXX", "X....XX...XX..", "...X...XXX...X", "XXX.XXX....XXX", ".XX.XXX.X.X.X.", "..X.X..X.XX..X", "XX.X.X...X.XXX"}
2
14
Returns: 1
{"XX..X.XX.", "...XXXXXX", ".XX..XX.X", "XX.X.XX.X", "X..X..X..", ".XX...X..", "X...XX..X", ".X.X..X..", ".X....X..", "XX.X....X", "XXXXX.X.X", "XXXXX..X.", "....X..X.", "XXX....XX"}
2
3
Returns: 3
{"X..X.XXXXX..XX"}
1
12
Returns: 1
{".XXX."}
1
5
Returns: 1
{"X.", "XX", "X.", "X.", "..", "XX", "..", "X.", "XX", ".X", "X.", "XX"}
4
1
Returns: 2
{"X..X.", "X..XX"}
2
5
Returns: 1
{"X.....", "X.XX.."}
1
1
Returns: 2
{"..X.X.XX."}
1
6
Returns: 1
{"X.XXX.XXX", "X..X...XX", "..X.XXXXX", "..XXX...X", ".X.....X.", "XX..X.XXX", ".X.XX.X.X", "XXX.X..X.", "....XX.XX", ".X..XX.XX", "X.X.X..X.", ".XXXXXXX.", "...X.X..."}
1
6
Returns: 2
{".X.....X.X"}
1
3
Returns: 1
{"XXX.XX.", "XXXX.X.", "XXXX.XX", "XX...XX", ".X.X.XX", "X.X...X", "...XXX.", "X.X.XXX", "X..XX.X", "X..X..X"}
7
2
Returns: 2
{".XXX.XX.XXX..XX", "...XX.X.XX....X", ".X....XX..X.XXX"}
3
14
Returns: 1
{"XX..XX"}
1
1
Returns: 1
{"XX....X.X.X.", "XXXX.XXXX...", ".XXX.XX.XX.X", "XXX....XXX.X", ".XX.XX.XXXXX", "X.X.X.X.X..X", "XXX..X.XXXX.", ".X.X.XXXX.X.", "....X.X.X...", "..XXX.X.XXXX"}
1
4
Returns: 3
{"X.XXXXX..", "X.XX.XXX.", ".....XX.X", "...XX.XXX", "..X.XX.X.", "X.X.XX.X.", "...X..X..", "XXXXXX..X", "....X.XXX", ".....X.XX", "X.XXX....", "XX..X..XX"}
2
4
Returns: 3
{".XXXX.X.X..XXXX"}
1
12
Returns: 1
{"XXXXX.X.XXXX.XX", "X.........X.X.X", "X...X..X.X.X...", ".XX.XX.XXXX.X.X", "..XX..XXXX.X.XX", ".X.XXXX...XXX..", "...XX.X.XXX..XX", "....XX..X.X...."}
1
1
Returns: 8
{"X.X.", "..X."}
1
1
Returns: 2
{"...X..X.X...", ".XX.XXXXX.X.", ".X.XX..X....", ".X.X.XX....X", "XX..XX...XX.", "XXXXX.XXXXXX", "..X.X.X.XXXX", ".XXX..XX...X", ".XX.X.XX.X.X", "XX..XXXX...X", "XX.X.X...X.X", "X.X.XXX..X.X", "..XX.X.XX..X", "XXX...X....X"}
1
1
Returns: 12
{"X.XXXXX..", "...XXX...", "XX.XX.XX.", "X..XX..XX"}
1
1
Returns: 4
{"......", "XX.X.X", "......", "XXX.X.", "XX....", "X..X..", "XX.X..", ".X.XXX", "X....X"}
1
1
Returns: 6
{"."}
1
1
Returns: 0
{".XXXXXX.", ".X..X...", ".XXX..XX", ".....XXX", "X...XX..", ".......X", "......X.", ".XXXX..."}
1
1
Returns: 8
{"..XX..X", ".....X.", ".XX.X.X", "...XX.X", "X.XX...", "......X", "XXXX..."}
1
1
Returns: 7
{"X", ".", "X", "X", "X", ".", "X", ".", "X", "X", "X", ".", "."}
1
1
Returns: 1
{"..XX.X.X", ".XX..X.X", "...XX..X", "XX.XX...", ".XX..X..", ".XX..XX.", ".XXXXXX.", ".X..X..X", ".X....X.", "X.XXX.XX", "..XXX..X"}
1
1
Returns: 8
{"XX.X....X", "...XX...X", ".XX.X....", "..X.X..XX", "XXX....XX", ".X.XXX..X", "..X..X..X", "...XXXXXX", "XX..XX.XX", ".XXX.X..X", "..XXXXX.X", ".X.....XX", ".X.XX....", "XX..XXX..", ".X.XX..X."}
1
1
Returns: 9
{"XX.", "X.X", "..X", "X..", "...", "XXX", "XXX", "..X", "X.X", "X.X", "X.."}
1
1
Returns: 3
{"..X.X..X.XXX", "....X.....XX", "....XXXXXX..", "X.X.X.X....X", ".....XX..XXX", "...XX.XXX.X.", ".......X..X.", "XXXX...X.X..", "X.X...XX.XXX", ".X..XXXX...X"}
1
1
Returns: 10
{".....X.X.XXX.", "..XX.XXX...XX", "....X..X.X.X.", "...X...XX...X"}
1
1
Returns: 4
{"X.XX.XXXX...", "XXXXXXXXXXX.", ".XX.X.X....X", ".X.XXXX....X", "XX..XXXXX...", ".X..X.XX..XX", "X..XX...XXX.", "...X..X.X...", ".....X.XX...", "..XXX.....X.", ".X.XX.XX.X..", "..X..X...XXX", "XXXXXXXX.X.X", "....X.X....."}
1
1
Returns: 12
{"....X", "XXXXX", ".....", "XX.XX", "...X."}
1
1
Returns: 4
{".X.XX.XXX.", "X.X......X", "X..X.XX.XX", "....X...XX", ".......XX.", "...XX....X", "..X.......", ".X..XX.X.X", "X..XXXXX.."}
1
1
Returns: 9
{".", ".", ".", "X", "X", "X", "X", "X", "X"}
1
1
Returns: 1
{"XXX....X", "XXX..X.."}
1
1
Returns: 2
{"XX", ".X", "XX", "..", "X.", "X.", ".X", "..", "X.", "..", "X.", "XX", ".X", "..", "XX"}
1
1
Returns: 2
{".X.", "X..", ".X.", "X.X", "..X", "..X", ".XX", "X..", "..."}
1
1
Returns: 3
{"X.X", "..X", ".XX", ".X.", "..X", ".XX", ".XX", "X..", "...", ".X.", "..X", "X.X", "..."}
1
1
Returns: 3
{"....X.."}
1
1
Returns: 1
{"XX.XX..", "X.X..XX", ".X..XX.", ".X..XXX", "XXX..X.", "XX...X.", "..X.X.X", ".XX..XX", "X..XXXX", "XXX..X.", "..XX..X", "X...XX.", "X.XX.X.", "XXX..X."}
1
1
Returns: 7
{"XX", "X.", ".X", ".X", "XX", ".X", ".X", "X.", ".X", "X."}
1
1
Returns: 2
{".X.X..XXX...XX.", "X...XX.......XX", ".X..X.X......XX", "..X.XX.XX.XX.X.", "X..X.XXXXXX.XXX", ".X...XX.......X", ".XX...XXXXXXX..", ".X..X.X........", "XXXXXXXX...XXX.", ".XX....X..X..XX", ".X.X.X.X..X..XX", ".XXXXXXX.XX.XXX", ".X......X..XX..", "..XXX...XXX.XXX", ".X.X..X..X...XX"}
1
2
Returns: 8
{"..XXXXX.X.XX...", "X.XXXXXXXX..X.X", "..X.XXX.X...X..", "XX.X...XX..X.XX", "X.XX...X.XX.XX.", "X.XXXXX.....X.X", ".XXX.XX..XX.X.X", "XXX.XXX.XXXXX.X", "XX...X..X.XX.XX", "X.XXX....X.X.X.", "X.XXXX.XX.XXX..", ".X.X.XX...X.XXX", "X....X...X.X.XX", "..XXXX.X..XX..X", "..X..XX..X....."}
1
2
Returns: 8
{".X.X.X....XX.X.", "XX..X...X.XX..X", "....X..XX.....X", ".XX.X..XXXX....", "....XXXXX.XX.XX", "XX..XXX.X.X....", "X.XX..XXX.X.XX.", ".XX.XXX.X...XX.", "X...XX...X...XX", ".X.XX..X.XXX...", "...X.X.X.......", "..X..X...X.X...", "....X.XXXX.....", "..XXXX.XX..X..X", ".....X..X.XX.XX"}
1
2
Returns: 8
{".X.XXX.X...XX.X", "X..X.....X....X", ".XX...XXXXXX..X", ".XX..X.X.X..XXX", ".X.XX.X.XXX...X", "...X.XX..XX.X.X", ".X...XX.X.XXXXX", ".XX.XXX.XXXX..X", "XX..XXX.XXX...X", "X.X...X...XXXXX", "XX.XX....XXXXXX", "X.X....X...XXXX", "...X.XX.XX.XXX.", "..X..X..X..XXX.", "..X.XXX.XXXX..X"}
1
2
Returns: 8
{".XXXX.XX..XXX..", "XX..XXXXXX.X..X", "X..X.XXX.XXX...", "XXXX..XXX..XXXX", "X..XX.X.XX..X..", "XXX.XX..X..XX..", "XXXX..XXX.XX..X", ".XXXX.XX..X.XX.", "..XXX.X.X...X..", "X.X.X......X...", "X...XX..X.XX..X", "XXX.XXXXXXX....", "XX.XXXX.X.....X", "XX.X...XXX.XX.X", "XX.XXX..X..X..."}
1
2
Returns: 8
{"X.X.XX.X.X....X", "XX.XXXXXX.X....", ".X.XXXXX.XXX.XX", "XX.X.XXXX......", "X..XXXX.XX....X", "XX...XXX....X..", "XX.XX.X...X....", "XXX.X.XXXXXX...", "..XXX.X..X.....", "..X..X.X.X.XX..", "XX...XXX.X..X.X", "XXXXXX.X....XXX", "X..XX.X.XXXXXX.", "..XXX..XX.XXXXX", "..X....X.X...XX"}
1
2
Returns: 8
{"..XXXXX......XX", "XXX.XXXX.X..XX.", ".X..XXX.XXX.XXX", "..X...XX..X...X", ".XX.X....XXXXX.", "XX..XX.X..XXXX.", "..XX..X....XXX.", ".....XXX..XXX.X", "XXX..X.......XX", ".X.....XX.XX.XX", "X...XXXXXX.XX..", "X..XX.XXXXXX.X.", "X....XX.X.XXXXX", "X.XXX.X.XXXX.X.", ".XX.XX..XX.X.X."}
1
2
Returns: 8
{"X....XXXX..XX..", "..XXX..X....X.X", "XX.XX...XXX....", "X.X.X.X.XX.X.XX", "X..XXXXX.X.XXXX", "X....X.XXXXX.X.", "X..X.XXX.X.X.X.", "XX.XX.X...XX...", ".X.XX....XX..X.", "..X....X..X.XX.", "X.X.X..X...XX..", "X.X..X.X.XXXXXX", "X.X...XXXXX.X..", "XXX.XXX..XX.X.X", ".XXXX.X.X....XX"}
1
2
Returns: 8
{"X...X.X....X.XX", "XX...X.X.XX...X", "XXXXX.X.XX.X...", "XXXX.XX..X.XX.X", ".X.X.X...XX...X", ".X.XX...X.XXX.X", "X..XX.XX.X..X..", "..XXX.XX..XXXXX", "..X.XXX..XXXXXX", "XX.X.XX.X...X.X", "X.X.XXX.X.XXXX.", "..X.X..X.XX.X..", "XXX...XX.XXX...", ".XXXX.XXXX....X", ".X.XX.XX.X.XX.."}
1
2
Returns: 8
{"X.X.X.XX....X..", ".XX..XX..XX....", "...X.X.X...X.XX", "XX..XXX.XXX.X.X", "X.XX.XX.XX.X...", ".XX...XXX.X.X..", "..XXXX..XX.X..X", "..XXXX...XXXX..", "...XXX.X.XX..X.", "X.X.X.XX...XX.X", "X.XXX.XX.X.XX..", "XX.....XXXX..X.", "...X.X.X....XX.", "X.X.XX.XXX..XXX", "XX.X....X..X.X."}
1
2
Returns: 8
{".X..XXXXX..XX..", ".XX.X..X.X.X...", ".XXXX...XXX.X..", "X.XXX.XX.XX..X.", "X.X.X.XXX.X....", ".X...X.XX.X..XX", "X.X.X.X....X.XX", ".X..XX...X.XXXX", "..X....X..XXXX.", ".XXX.X..X.XX...", "X....XXX.XX..XX", ".XX..XX.X.X.XX.", ".....XXX..XX.X.", "X.....XXX.X...X", "..XXXX..X...X.X"}
1
2
Returns: 8
{"..X..X...X.XXX.", ".X.X.XX.......X", "X.XX.X..XX...XX", "...XXX..X...X..", "...XX..X.....X.", "XX.X.X.X..X...X", "..X.X...X...X.X", "XX.X.X.X..XXXX.", ".X.XX.XX..X....", "XXX..XXX.XXX...", "..XXX.X.XXXXXXX", "XXX.XXX...X.XX.", "..XXX...XXX...X", ".X.XXX..XX..X..", "X...XXXXX.X..X."}
1
2
Returns: 8
{"XXX...XX.X.XXXX", "X.XXX....X.XX..", "XX..X..XXX.X.X.", "XXX....X....X..", ".XX..X....X.XXX", "...X.XXX.XX.XX.", "XX..X.XX.XX.XXX", "XX.X...XX..XXX.", "X.XX..X.X.XX.X.", "X.XXXX...X...XX", ".XXX.XX.XX.X...", ".X.XXX.XX....XX", "XX..XXX.XXXX.XX", ".X...XX..X.XX..", ".XXXX..XXX....."}
1
2
Returns: 8
{"X.XX..XX.X.X.XX", "..X.X..XXX.X..X", ".XXX.XXXX.XXXXX", "..XX....XX.XX.X", "....X.XX..XX...", "X.......XXXX..X", "XXXXX.X.XXX..X.", "X.XX.X..XXX..XX", "X...XX..X.....X", "XXX.XXXXX.....X", "XXXXX..XX.XX..X", ".XXXX.X.X..XX.X", "....XX...X.....", "..XX..XX..X.X..", ".X..X.XX.XX.XX."}
1
2
Returns: 8
{"XXX..X.X..XX...", "X.XX..XXXXX.X..", "..XX...XX.XXX.X", "XX........XX.XX", ".XX.....XX...X.", ".XX.X......XX..", "XXX.XX.XXX.X.XX", ".X..XX.XX..XXX.", "..XXX.XXX.XX.X.", "XXXXX..X..X.XXX", "XX...X.X.X.XX..", "XX.X.XX.XX..X.X", "XX.X.X.......X.", "..X.XX.X.X..X..", "XX.X.....X..X.X"}
1
2
Returns: 8
{".X.XXXXX.X.XX.X", ".X.....X....XXX", ".X..XX..X.XXX.X", ".....X....X.X.X", "..X.X.XX..XX.XX", "XX....X.XXX.X..", "...X.XXX.X....X", ".X..X...XXX.X..", "XX....X.X.XX..X", "X.XX....XX..XXX", "XX.XX.X........", "XX..X.XX.....X.", "X.XXX......X..X", "..X....XXXXXX..", "XX..XX.XXXXX..."}
1
2
Returns: 8
{"X...X..X.X.X..X", ".XX...X.X.X..X.", ".XX.X...X.X....", "X.X.XX...XXX.XX", ".X.XXXXXXX.XX.X", "XXX.....X...X.X", ".....X.X.X...X.", "X..XX.XX..X....", "XXXXXX.X.XXXXX.", ".XX....XX...X..", "X.X.XXX...XXX.X", "X.......XXXXX..", ".X.X.X.XXXX...X", "X.XX..XX.X.X..X", "..X.XX...XX..X."}
1
2
Returns: 8
{"XX...X...XX..X.", "...X.......X...", "XXXXX.....XXXX.", "XX...X..X.XXXXX", "X..X..X..XXX...", ".X.XX..XXXX.X.X", "...XX.X..XXX.XX", ".XX...X....X.X.", "XX.X.XXXX...X.X", "XX..XX..X..X...", "....X.XX..X...X", "XX.XXX......X.X", "..X....XX.X.XXX", "......X..X....X", "X.X.....X.XX..."}
1
2
Returns: 8
{"X.X..X.XX.X..X.", "X..X..X....XXXX", "..XX.X..XX..XXX", "X.XXXXX.X.X.X.X", "X.X.X..X.XXXX..", "...XX..X.XXXX..", ".X......X.X.X.X", "X.X.X..XX.....X", "..........XX..X", "X.X...X.X...X..", "....XXXXXXX.X.X", ".XX..X.XX.XX...", "....XXX.XXX.X..", ".X.XX..XXXX.XXX", "XXXX..XX......."}
1
2
Returns: 8
{"X.XX..X....X.XX", "X..XX.X......X.", "..X.XX..X..X...", "X..XX......X...", "XX..XXXXX..X..X", ".XXX..X.XX.X.X.", "..X...XXX.XXXXX", "X...XXX.X.X.X.X", "X.X.XX....XXX.X", "XXXX...X..XX..X", "X....XXXXXX...X", "XX..X..XX.X..XX", "X.XX.X.X...X.X.", "X.X.X..X...X..X", "XXX.X..XX.X...X"}
1
2
Returns: 8
{".XXXX.......X..", "..X......XXXXXX", ".XX...........X", "..X..X.....X.X.", "X.X..XX..XX..X.", "X.X..XX..XX..XX", "..XXXXX..XXXXX.", "...X....X.X...X", "..XX..XX.X...XX", ".X.X..XX..X....", "X..XX.X.X.XX.XX", "X..XXX....XX.XX", ".XXX.XXXXXXX.X.", "XX...XX..XXX.X.", "..XXXX..X.X.X.."}
1
2
Returns: 8
{"XXX.XXX..XXX...", "X...XX...X.XXXX", "X.X.....X.X.X..", "XX..X.XX.X..X.X", ".XXX.....X.XXXX", "........X.X....", "XXXX.XX.XXXX.X.", ".XX.XX..X..X.XX", "...XXXX.X.XX...", "..XX..XX..XXXX.", "XX.X...X....X..", "X......XXXX..XX", "....XX...X..XX.", "X.XX.XX..XXXXX.", "XX.X.....XX.X.X"}
1
2
Returns: 8
{".XXX.X..X.XXX..", ".X..X..X.......", "X...X.XX.XXX...", "..X.X..X.X..X..", "X..X.X....XX.X.", ".X.X.X..X.XX..X", "X.XXX.XX.X.XX..", "X.XXXXXX..XXX..", ".X...X.XX.XXX.X", "XXX....X..XXX.X", "XX.XXXXX..XXX.X", ".X.XXXXX.XX.XX.", "..XX...XX.X....", "X.X.XXX..X..XXX", ".XXX.X...XXX.XX"}
1
2
Returns: 8
{"..X...XXXXXXX..", "..X...X...XXXX.", "X.X..XXXX...X..", "X.X..X..XX...X.", "X...X.X.X..X.XX", "X.....XX.......", ".X..XX.XXXXXX..", ".X..XXX..X.....", ".X..XX...XX.X..", "XXX.X.X..X..X..", "X.XX.XX.XX..XXX", "X....X.X.....X.", "XX....XXX.XXX..", ".....XXX.XXXX..", "XXXXX..XXXX...X"}
1
2
Returns: 8
{"..X..XX...X.XX.", "X.XX..X.X.XXXXX", ".X.XX..X.XX.X.X", "XXX..X.XX...XXX", ".X....X.XXX.X..", ".XX.X.X.XX.XXX.", "XXXX.XXX...X...", "..X..X..XXXXX..", "XXXXXX....XX.XX", "..XX.....XXX..X", "..X.X.XX...XX.X", "..XXXXX.XXX...X", "..XX..X.XX.XXXX", ".XXX.X..XXX.X..", "..XXXXX.XXXX..."}
1
2
Returns: 8
{"..XXX..X.X.X..X", "..XX..XX.....X.", ".XX....X....X..", "XXX..XXX.X.XX..", "..XX.XX..X.X..X", ".X.XXX...X...X.", ".XXX.X...XX..X.", "X.X.XXX.XXXX.XX", ".X.X.XX.XXX.XX.", ".X.XXX..X.X.XXX", "...XX...XXX.XX.", "XXXX..XX..XXX.X", ".XXX..X.X.X.X.X", "X...XX....XXX.X", "...XX..X.XXXX.."}
1
1
Returns: 15
{"XX.XXX.X..XXXXX", "XXXXXX.X...X.X.", "..X..XX..XX...X", "XX.XXX.X..X.XX.", "XX.XX..XX....X.", "X...XXXX..XX.XX", "...XX.XXX..X...", "X.XX...X..XXX..", "..XXX.XX..X.X..", ".X.X..X..X.XXXX", "X...XXX..X..XX.", "XXX..X..X.XX...", "X..X.XXXXX.XXXX", "XX..XXXXX...X.X", ".XX.XX..XXXXXXX"}
1
1
Returns: 15
{"....XXX...X.X..", "...XXX.XXX..XXX", ".X...XXXXX...XX", ".XX...X.X...XXX", ".XX.XXX..XX.XXX", "........X..X.X.", "X.X...X...XX..X", ".XX.XXXXX.X.XXX", "XXX.X..X..XXXXX", ".X.X.XXXX.X....", ".XXXX.XXXXX....", ".XX..X.X.X.XX.X", "X....XXX..XXXX.", "XXX..X..X.XX..X", "X.....XXX...XX."}
1
1
Returns: 15
{"X.X..X..XXX..XX", "X.XX.XX.XX.XXX.", "XX.XX..XX.....X", "X.X.X..X.X...XX", ".X......XX..XX.", "....X..XX..X...", "X.X..X...X..XXX", ".....X...X.....", "XX..X..X..X....", "....X.XX.XX.XX.", "X.XXXXXX.XXX.X.", ".X..XX..X.X...X", ".X.X.X.X.XXX.X.", ".X.XXX.X.XXXXX.", "XXXX...XX...X.X"}
1
1
Returns: 15
{"XX.X.XX..X.X.X.", "..X.X..XXXXX..X", "X...X.X.X.XXX..", "..XX..X....XX..", "XX.XXX.X.XXX..X", "...X...XX..XXXX", "X..X..X.XXX..X.", ".XX.XX.X.XX....", "X...X....XXXX..", "X....XX....X..X", "..XX.XX.X.XXX.X", ".XX..XXXXXXX...", "X..XX..X.XXX..X", "X.....XX.X.X..X", "....XX.X...XXX."}
1
1
Returns: 15
{"...XXXX..XXXX.X", "..X.X..XX....XX", "..X.X.X.X...XX.", ".XX.....X..X..X", "X.X.X.X......XX", "X.X..X..XX.XX..", ".X.X.XXX.XX..X.", "X.....X....X.XX", ".XX..X.X...X...", "..X..X...X....X", "X...X.XXXXXX.X.", "X.....XX.X.XX.X", ".X...X.X.XXXXX.", "X..X.XX...X.XX.", ".XX..XX.XX...XX"}
1
1
Returns: 15
{"X..XX........XX", "......X.X.XX...", ".X...X.XXXX.X.X", "..X...X....XXXX", "XX.XXX.X.X.XXXX", "XX.....X..XX...", "XXX...X.XXX..XX", "..X..X.X.XXX.XX", ".X.XX.X...XX.X.", ".X.XXX....XXXXX", ".X...X.XX.X.X.X", "..X.X.XX.XXXX..", "..X..XX......X.", "XX...XXX.XXXX.X", "X.XX.X.XXXXXXX."}
1
1
Returns: 15
{"X..XX...X.X.X..", "...XX..XXX...XX", "....XX.XX.X...X", "X.XXX..XXX....X", "XX.XXX..XX....X", "XXX.XX.X.X.XX.X", "X..XX....XX..X.", "X....XX.....XXX", "..XXX.X..XX.XXX", "X..XX...X..XXX.", "..XXX.X...X...X", "XX.XXX.XXX...XX", ".XXX...X..XX.XX", ".XX...X.X.XX.X.", "..XXXX.XX......"}
1
1
Returns: 15
{"X.X..X.X...XX.X", "..XX..X........", "..XX.XXXXXXX..X", "X.....XX.XX.XXX", "X.X.XX...XXX...", "XX.X..XXXX...X.", "X...XXXX...XX.X", "XXX.XX........X", ".XX.X...X..XX.X", "XXX.X.X..X..X..", ".XXXX..XXXXXXXX", "..XX..XX.....XX", "XX...XX.X...XXX", "XXX.XX...X..XXX", ".....X.XXXXXXX."}
1
1
Returns: 15
{"X....X..X.X.XXX", ".XXX.X..XXX.X.X", "XXXX.X.....X.X.", "X...X.XX...XXXX", ".XX..XXXXXXXXXX", "X.XX..XXXX.X.XX", ".X.XX..XXX...XX", "XXX..X..XXXXX..", "..X.XX.X.......", "..XX.XXXX..XXXX", "XXX.X.X.XX.X..X", "..XX...XX.XXX.X", ".X.XX.XX....X..", "..X.XX...X.X.XX", "XX...X.X..XX..X"}
1
1
Returns: 15
{"...X.X..X.XXX..", ".XX.XX.X..XXXXX", "X..XX...X...X..", "...XXXXXXXX.XX.", "....XXXXX.X..X.", "XX.X.X.X.XX...X", "..X.X.X.XX.XX..", "XXXX.XXXXX..X..", "...X.XX.XXXX...", ".XXX...XXXXXX..", "XX...XX.XXX..X.", ".XX..X..XX...X.", ".XXXX....XXXX..", "X.X..XX.X.XX..X", "X...XX.XX..XXXX"}
1
1
Returns: 15
{"X.X...X..X...X.", "X..X...XX.X.XXX", "...XX.X...XX...", ".X..X..XX.XX...", "X..X.X.X..XXXXX", "XXXX....XX.X..X", "...XX..XX..X.X.", "XX.........XX.X", ".XX..X....X.XX.", "X.XXXXXX..X.X..", ".XX.XXX..X.X.X.", "...X.X.XX.X...X", "XX..XX..X.XXXX.", "XXXX.XXX..X....", "XXXXX.XX..X...X"}
1
1
Returns: 15
{".XXXXX...X..X..", "X.XXX.X...XX.X.", "XXX.X..X.....XX", ".XXX...XX.X.XXX", "XX.XXXXXX..X..X", "XX....X.X..X...", "XXXX.XX.....X.X", ".......XX.XXXXX", "X.XX.X.XX.XXX..", ".X..X....X.XXXX", "..XXXXXX...X.X.", ".XX.X..X..X...X", "X....X.XX.XX.X.", ".XXXX.X.X......", ".XX..XX....XX.X"}
1
1
Returns: 15
{"X...X..X..X..XX", "XX..X.XX.XXX.XX", "X...XX.X..XX..X", "XX..X...XXX..XX", "XX.XXXXX.XX.XX.", ".XX.X..X.X.X...", "X.XXX...XX..XX.", "XXX.X...X.X.XX.", "XX.X..XX.X..XXX", "X..........X.XX", "...XX.XXXX.X.X.", "XX..X.......X.X", "....XXX........", ".XXXX.XX..X..X.", ".XX...XXX.XX.XX"}
1
1
Returns: 15
{"...XX...X..XXX.", "XXX.XXX.....XXX", ".XX.X..XX.XXX..", "X.X....XX.XX...", "...XXX.X.XXX...", "XX....X....XXX.", ".X...XX.XXX...X", ".X..X.X..X.X...", "..XX.X.X.X.X..X", "XX.XX.....XXX.X", "X.X.XX....X.XX.", "X.XX.XX.X..XX.X", ".XXX.X..X....X.", "......XX..XXX.X", "....X.XX..X..X."}
1
1
Returns: 15
{"...X..XX..XXXX.", ".X..X.X.XX.X.X.", ".X....X.XX.X.X.", ".XXXXXX.X...X.X", ".....XXXX..XXX.", "XXXX...XXX.XXXX", ".XXX.X.XXXXX.X.", "...XX.XX..X.X.X", ".XXX.XX...XXXX.", ".XX....X...X.XX", "...XX......XX..", "..XX.XX.XXXX.X.", ".X....X..X.XX.X", "X.XXXX..XX.....", "X.XXX.X...XXX.X"}
1
1
Returns: 15
{"..XXX..X.XX..XX", "..XX..XX..X.X..", "...XXXXXXXX..XX", "XX....X.XX.XXXX", ".X...X.XXX..X.X", ".X.....X....X.X", "........XXX.X..", ".X..X...XX.XXXX", "XXXX.....XX.X..", "..X..X..XXXX.X.", "..XXXXXXX.X....", "......X.X.X.X.X", "X.X.XX.X.XXX.X.", ".X.XXXX.X..XXXX", "..X.X.XXXX..X.X"}
1
1
Returns: 15
{"XXXX...XX..XXXX", ".XXXX.X.XX..XX.", "X.X.XX..XX.XXX.", ".XXX.X.XXX.XX..", ".X.XX.XX..X.X.X", "X...X.XXXXX....", "X.XX..XXXXX.X..", ".X..X..XX.....X", ".XXXXXX....XXXX", "X......XXXXX.XX", "XXX....X..X....", "X.......XXX..XX", "X...X..XXXXXXXX", "XXXXXX.XXX.X...", "XXX.....X.X.XX."}
1
1
Returns: 15
{"..X...X.XXXX.XX", ".X.XX.XXX.X.X.X", "XX..X....XXX.XX", "X..XXX.X.XX.X..", "XXXXX.XXXX.....", "XX.XXX.X.X..XX.", "X..XXXX.X.XXX..", "XXXXX..XXX.XXXX", "XXXX.XXXX..XXXX", "X..XXXXXXX.X.XX", "XX.X...XXXXX.X.", "X...XXXXX..X..X", "X..XX.XX...X.X.", "..XX....XX.XX..", ".X...X.X......X"}
1
1
Returns: 15
{"...XX....XXXX.X", "X.XX.X.XX.XX.XX", "..X.XX.XXXX...X", "XXX.....XX.....", "X....XXXX...X..", ".XXX.XX.X.XXXXX", "X..X....XX.XXXX", "XXX.XXX.X.X.X.X", "XXXX.XX.XX...XX", ".XXXX..X.XXXXXX", "...XX...X.XX...", "X.X.XX.X.X.X.X.", ".X...XX....XX.X", "X.XX...XX..XX..", "..X.XX......XXX"}
1
1
Returns: 15
{"X.X.XXXX..X..XX", ".XX.X.XX.XX..XX", "X....XXXX.....X", "X..X..X.X.XX.X.", "......X.....X..", "...XXXX.X...XX.", "XX.XXX..X.XX..X", "..X.X.X.X.XXX..", "X.XXX..XXXX..X.", ".X.X...X.X.X.X.", "X...XXX.X.X....", "..X.XX.XXX.X.X.", ".....X.XXXXXXXX", "XXXX.....XX...X", "..X.X..XXX.X.X."}
1
1
Returns: 15
{"XX....X..X..X..", "XX..XX.X..X.XX.", "XXXXXXX.X.XX.X.", "..X....X..XXX..", "XXX.XXX.X..X...", "...XX.XXXXX....", "XX..XXX.XXX..X.", ".XX....XX.X..XX", "X..XX....XXXXX.", ".XXXXXX.X.....X", "XX...X..X..X.X.", ".X...XXXX.XX...", ".XX.X.XX....X..", "..X...X.XX.X.XX", ".X..X...X..XX.X"}
1
1
Returns: 15
{"X......X...XXX.", ".XX.X..X....XX.", "X..X..XX..X.X.X", "X.X....X..X...X", "XXXX.X.....X.XX", "..XX..X.XX..X..", ".X.XX.XX.XX.XXX", ".XX..X..XXXXXX.", "XXXXX...X.X.X..", ".XX.X.XX.X.X.X.", ".....X..X....XX", ".....X.X....XXX", ".XX.XXX.X.....X", "XXXXXX.XX.XX...", "X..X.X.XX.XX..."}
1
1
Returns: 15
{"XXXXX..XXX..X..", "X.XXXXXXX.X..X.", ".X.X.XX......XX", "..XX..XXX.XX.X.", "XXXX.X.X..X.XXX", "..XXXXX.....XXX", "..XXXXXXXXX.X..", "...XXXX..XX.X.X", "X.X...XXX..XXXX", "XX.X.X.X..XXX.X", ".X..X..XX.XXX..", ".XX..X.XX.X.X..", ".X..XX.X.XX....", ".X.XX.XXX.XX..X", ".X..XX..X.X...X"}
1
1
Returns: 15
{"X..X.XXXXXX..XX", "XX...XX.X..XXXX", "..X.XXX...XXXX.", ".X..X.X..XX...X", "X.X....XX....X.", ".XX.X.....XXXXX", "..X.XX.XXXXX.X.", "..XX..XX.XX.X.X", ".X..XXXX..XXXXX", "XXX..X.X.X..XX.", "..X...XX.X.XXX.", ".XXXXX...XX.X..", "X..XX.X.XX.X.XX", ".X.X.X..X.X.X..", "X.XXX.X.......X"}
1
1
Returns: 15
{"...X....", "..X..XX.", "X.......", ".....XXX", "........", "........", "........", "..X....X", "........", "...X...."}
1
5
Returns: 2
{"X.XX..XX..X..XX", "XX..XX.XX.XX...", "XX.XX..X...X.XX", "...............", "...X..XX..XX...", "XX...XXX..XX.XX", "....XXXXX.....X", "...........XXXX", "XX..XX..X.XX..X", "XX.X....X..X.XX", "..X.X.XX..X....", "...XXX.X...X.XX", "XX.X.X.X...X.X.", "X.......X.XX.XX", "XXX...X....X.XX" }
2
3
Returns: 5
{"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }
1
2
Returns: 7
{".X...X.........", ".......X.....X.", "......X........", ".....XX........", "......XX.......", ".......X.......", ".X...X.XX.X...X", "X.X.X..X...XXX.", "......XX.......", "......X........", ".....X.........", ".......X.......", ".....XXX.......", "...............", ".......X......." }
2
1
Returns: 5
{"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX" }
1
1
Returns: 15
{"X.X.X.X", ".X.X.X.", "X.X.X.X" }
2
1
Returns: 2
{"X.XXXX..XX..X.X", "..XX...X...X.X.", ".XX..XX..X.X..X", "X...X.....X.X.X", "..XXX..X.X.....", "..XXX...XX.X.X.", ".XX.XX.X..XXX.X", "..XXX...XX.XXX.", "XX.XX.XX.XX.XX.", ".XX.XX.XX.XX.XX", "..XXX...XX.X.X.", ".XX...XXX.XX.X.", "X.XX.X..X.X.X.X", "..XXXX.XXX..XX.", "XX.XX..XXX..XXX" }
1
1
Returns: 15
{"...X...X...X...", "...X...X...X...", ".......X.......", "...X...X...X...", "...X...X...X...", ".......X.......", ".......X.......", "XXXXXXXXXXXXXXX", ".......X.......", ".......X.......", "...X...X...X...", ".......X.......", "...X...X...X...", "...X...X...X...", ".......X......." }
1
1
Returns: 4
{"XXXXX", "X....", "XXX..", "X....", "XXXXX" }
1
1
Returns: 4
{".....X.........", "...............", "...............", "...............", "...............", "X..............", "...............", "..............X", "...............", "...............", "...............", "...............", "...............", ".......X......." }
3
3
Returns: 2
{"X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X.XX.X.X...XX..", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX...", "X..X.X.XXXXX..." }
1
2
Returns: 6
{"...X.X......X..", ".X........X...X", "...............", "...XX...X...X..", "XX...X.....X.X.", "....X..........", ".X........XX...", "........X..X...", "X......X.......", "X..........X..X", "X....X...X.....", "X.X.........X..", "....X....X..X..", "............X..", "........X.X..X." }
2
3
Returns: 5
{"..", ".." }
1
1
Returns: 0
{".....X.....", ".....X.....", ".....X.....", ".....X.....", ".....X.....", "XXXXXXXXXXX", ".....X.....", ".....X.....", ".....X.....", ".....X.....", ".....X....." }
1
1
Returns: 2
{".....", ".....", ".....", ".....", "....." }
1
2
Returns: 0
{"X.X....", "X.X....", "X.X....", "X.X....", "....X.X" }
1
2
Returns: 3
{"....X", "....X", "...X.", "..X..", "XX..." }
2
2
Returns: 2
{"X" }
5
5
Returns: 1
{".XX.X.XXX.X.X..", "...XX...X.X.X..", ".XXX.X.X.X.XX.X", "...X.X.X.XX.X.X", "....X...X..X.XX", "XX...XXX...X.X.", "X......XX.X.X..", ".X.XXX.X..XX..X", "XX..XXX...XX.X.", ".X..XXXX.X.X.X.", ".X.XX...XX.XXX.", "XXXXXXX.X...X.X", "X..X.XX.XXXX.X.", "XXXXXX.X...XX.X", "XXX..XX.......X" }
1
1
Returns: 15
{"." }
2
1
Returns: 0
{"X.X.......XXX..", "X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX.." }
1
3
Returns: 4
{"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }
4
3
Returns: 3
{"X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X", "X.XX.X" }
1
3
Returns: 2
{"...X.", "XXXXX", "...X.", "...X.", "...X." }
1
1
Returns: 2
{"." }
1
1
Returns: 0
{"....X..........", ".......X.......", "..........X....", "....X..........", ".....X...X.....", ".........XX....", "............X..", "...............", ".X.....XX......", "..........X....", "...X..XX......X", ".............X.", "...............", ".........X..X..", "..........X...." }
1
2
Returns: 6
{".....", ".....", ".....", ".....", "....." }
1
1
Returns: 0
{"X.X..X..X......", ".XXXXXXXX..X.X.", "X..X.XXXXX..X..", ".XXX..XX..X.XXX", "XX.X..XXXXX.XX.", "X..XXX..X.XX.XX", "X.XXX.X..XX...X", "X...XXX.XX..X.X", ".XX..X.X.X.X.XX", "XXXXX..X.X.XXX.", "X......XX.X.X..", "XXXX.XXX.X...XX", "X.......X.X.X.X", "XX.XXXXX...XXXX", "..X..X.XXXXX..X" }
2
2
Returns: 8
{"X..............", ".X.............", "..X............", "...X...........", "....X..........", ".....X.........", "......X........", ".......X.......", "........X......", ".........X.....", "..........X....", "...........X...", "............X..", ".............X.", "..............X" }
1
1
Returns: 15
{"......", "......", "......", "...X..", "......", "......" }
2
3
Returns: 1
{".X.", "XXX", ".X." }
1
1
Returns: 2
{"..X..", "..X..", "XXXXX", "..X..", "..X.." }
1
1
Returns: 2
{"X....", ".....", ".....", ".....", "....X" }
1
2
Returns: 2
{"..XXXXXXXXXX..", "..XXXXXXXXXX..", "..XXXXXXXXXX..", "......XX......", "......XX......", "......XX......", "..XXXXXXXXXX..", "..XXXXXXXXXX..", "......XX......", "......XX......" }
2
2
Returns: 4
{"..X.X..", "..X.X..", "..X.X..", ".XX.XX.", ".XX.X..", "..X.X..", "..X.X.." }
1
3
Returns: 2
{"XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X.......", "XXXXXXXX", "X......." }
2
1
Returns: 6
{"." }
2
2
Returns: 0
{"XX", "XX" }
1
1
Returns: 2
{".XX............", "XXXXX..........", "X..............", ".X.............", "..X............", "......XX.......", ".....XXX.......", ".....XXX.......", "........X...XX.", ".........X.X.X.", "........X.XX...", "........XXX.XXX", "........XX.X...", "........X.XX...", "........X...XX." }
2
2
Returns: 7
{"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX.", "XXXXX.XXXXXXXXX", "XXXXXXXXXXXXXXX" }
1
1
Returns: 14
{"...............", "........X......", ".............XX", "...X...........", "...............", "...X...........", "..........X....", "...X........X..", "...............", ".......X.......", "....X..........", "...............", "..X........X...", "...X...........", "........X......" }
3
4
Returns: 3
{".XXX.", ".....", ".....", "X.XXX" }
3
1
Returns: 2
{".XXX..", ".X....", ".XX...", "..X...", "......", "......" }
1
1
Returns: 3
{"XXX..XXX..XXX.", ".X..X....X...X", ".X..X....X...X", ".X..X....X...X", ".X...XXX..XXX.", "..............", "...XX...XXX...", "....X......X..", "....X....XXX..", "....X......X..", "...XXX..XXX..." }
15
15
Returns: 1
{"X...", ".XX.", "....", ".XX.", ".XX.", "....", ".XX.", "...X" }
2
2
Returns: 2
{"............", "............", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX.....", "...XXXX....." }
5
3
Returns: 2
{"X..X", "X..X", "X..X", "X..X", "X..X" }
1
2
Returns: 2
{"XXXXXXXXXX", "XXXXXXXXXX" }
1
2
Returns: 2
{"X....", "X....", "X....", "XXX..", "XX.X.", "XX..X" }
1
1
Returns: 4
{"X.X", "X.X", "X.X", "X.X", "X.X", "X.X" }
1
3
Returns: 1
{"...X.", ".XX.X", "X.XX.", ".....", "...X." }
2
1
Returns: 2
{"XX....XX", "..XXXX..", "..XXXX..", "..XXXX..", "..XXXX..", "...XX..." }
1
2
Returns: 3
{"...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "...............", "..............." }
1
1
Returns: 0
{".XX.......", ".XXX......", ".XX.......", "XXX.......", "..........", "..........", ".........." }
1
2
Returns: 2
{"XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X..", "XXX.X..XXX..X.." }
14
13
Returns: 1
{".XX.", "XXXX", "XXXX", ".XX.", "....", "XXXX", "XXXX" }
2
1
Returns: 3
{"X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX.." }
1
3
Returns: 4
{".XX.", ".XX.", ".XX.", ".XX." }
2
2
Returns: 1
{"XX.X..", "XX.X..", "XX...X", "XX...X" }
2
2
Returns: 2
{"XXXXX", ".....", ".....", ".....", "XXXXX" }
2
1
Returns: 2
{"..........X.X", "......X....X.", ".X........XX.", "X............", ".X...X.X..XX." }
2
9
Returns: 2
{"XXX...X.X....XX", "X.XX.XXXX..XX.X", "X..X.XX.XX...X.", "..X..X.X..XXXX.", ".XXX.XX..XXXX..", ".XXX...X.XX....", "....XX..X.XXX..", "...X....X.XXX.X", "..X.XX.X.....XX", "....XX.X...X.X.", "..XX.X..XXXX.X.", "..X.X.X.XXXX...", "XXXX..X...X..XX", ".X.XX....XXX.X.", "..XXX..X.....XX" }
1
1
Returns: 15
{"XX.X", "XX.X" }
1
4
Returns: 1
{"XX", "XX" }
1
2
Returns: 1
{".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X.", ".X...X...X...X.", "XXXXXXXXXXXXXXX", ".X...X...X...X." }
2
2
Returns: 8
{"XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXX.XXXXXXXXXX", "XXXXXXXXXX.XXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXX.XXXXXXXXXXX", "XXXXXXXXXXXXXXX", "XXXXXXXXX.XXXXX", "XXXXXXXXXXXXXXX" }
1
1
Returns: 15
{"XXX..", "XXX..", "...XX", "...XX", "...XX" }
1
1
Returns: 4
{"...............", "..XX...........", "...XX..........", "....XX.........", ".....XX........", "......XX.......", ".......XX......", "........XX.....", ".........X.....", "......X....X...", ".....X.....XX..", "....X.......XX.", ".....X.......X.", "......XX.......", "......X........" }
1
1
Returns: 11
{"X...", "....", "....", "...X" }
2
2
Returns: 2
{"X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X...X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.X.X.X.X", ".X...X.X.X.X.X.", "X...X.X.XXXXX.X", ".X.X.X.X.X.X.X.", "X...X.X.X.X.X.X" }
1
1
Returns: 14
{"X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X", "X..X..X..X..X" }
1
3
Returns: 5
{"X.XXXXXXXX.XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.XXX..X...XX.X", "X.X.......XXX..", "X.X.......XXX..", "X.X.......XXX.." }
1
2
Returns: 6