Problem Statement
In 1970 John Conway published a paper outlining how very simple rules could lead to very interesting, complicated behavior. His game was based (very roughly) on how biological organisms work. In his game, Conway put a number of "living" organisms on a two dimensional grid. He then applied four rules to all locations on the grid a number of times. As these rules were repeatedly applied, complex behaviors emerged from these four simple rules.
The four rules were based on the number of "living" organisms that were adjacent to each space in the grid. In his game, he defined two grid spaces to be adjacent if they were immediately next to each other, or diagonal to each other. Thus every space in the grid has 8 other spaces in the grid which are adjacent to it.
The original four rules were as follows.
1) If a grid space is adjacent to less than 2 living organisms, any living organism there dies due to its isolation.
2) If a grid space is adjacent to exactly 2 living organisms, any living organism there stays alive if it was alive.
3) If a grid space is adjacent to exactly 3 living organisms, any living organism there stays alive if it was alive, and if there is no living organism, one is "born" there.
4) If a grid space is adjacent to more than 3 living organisms, any living organism there dies due to over crowding.
For this problem, we would like to be able to specify these rules, rather than
hard coding them. Thus, part of the input will be a
Your task is, given an input
Definition
- Class:
- GameOfLife
- Method:
- alive
- Parameters:
- String[], String, int
- Returns:
- int
- Method signature:
- int alive(String[] start, String rules, int generations)
- (be sure your method is public)
Notes
- In the input String[], start, 'X' represents a live organism, and '.' represents an empty space or dead organism.
- In calculating the number of living organisms adjacent to a grid location, you should "wrap around". Thus organisms on the far left are adjacent to organisms on the far right, and all four corners are adjacent to each other.
- Each time the rules are applied, they are applied simultaneously to all grid spaces. Thus, we count how many adjacent organisms there are for every grid space before applying the rules.
Constraints
- start contains between 1 and 50 elements inclusive, each of which contains between 1 and 50 characters, inclusive.
- start contains only the characters 'X' and '.'
- rules contains exactly 9 characters, each of which is 'D', 'S', or 'B'
- generations is between 0 and 1000, inclusive
- each element of start contains the same number of characters as each other element of start
Examples
{"...XXX....X.XX.XX.X..XXX...X........X.....X.X...X.",".XX..XX........X.........X...XXXXX.X..X.X....X...X","..XXXXX...XX.XX....XX.XXX.X.XXX.X.XXXXX.X....X....",".X....X...X.XX.X....XX.X..X....XX.XX.X...XX..X..XX","X..X.XXX.XXX...X.X..X.XX.X.X..XX..X...XXX....X..XX",".X..X.XX.X..X.XX..XXX....XXXX.XX..XXXX.X..X....XX.","X.X...XXXX.XX..X.XXX...XXXXXX.X.XXXX.X.X....X..X.X","....XX..X.X....XX.X.XXXX...XXXXX.XXX..X.XXXXXXX..X",".XXX.X.XX..XX.X.XX....X.X.XX.XXX........XX.X..XX..",".X...X.X.X.....X...X.X......XX.X.....X.XX.X.XX..X.","X.XX.XXX...X...X.....X..X.X..X..X...X.....XX....XX","X..X....X...X..XX.XXX..X.X...........X.XX....X.X..","XXXXX..X..XX.....X..X...X.....X.....X..XXX.X..X.XX","X....XXXX.X..........X..XX...X..X.X....XXX.XX.X...","....X...X.X.X.X..X....X.X..X.X..XX.X.XX....XXX.X..","...XX..XX.X.X..X....X..X.X..XX..X.......X...X..X..",".....XX.XX...XXX..X..XX.XX..X.X..X.X..X.....X...XX","....XXX......X.X.X.X.X.......XXXX.X....X...XXXX.XX",".XXX.X....XX.X.....X.X..X.X.X....XX.XXX...X..XX..X","X.XX..X..X.......XX....XX....X....X..X.XX..X.XX...","....X.X..X.X.X........XX.X.X...X.....X.....XX.X...","XX..XX..........X..X..X..X...X.XXX.X...XX...X.XX.X","XX.....XX.XX.XX....X.XX.X..XX.X......X.X.X.X.X..XX",".....X..XX.X...X....X...X..X...XX.X.XX.XX.X.XX....","X.X.....XX.XXX....XX.X.............XX.XXXXX...X...","X.X...X...X..XXX...XX...X...X.X.X.X...XX.X...X....","XXXX..XX.X.XXX........X...XX..X.....XX....X.XXX...","..X..X..X.X...XX.X..X.X..XX.XX.X...X.X.....X.XXX.X","..XX.XX....X.....X...X...XX.X.X.XX..X.XX.X..XXXX..","X....XX.X..XX..XX....XXXX...XX..X..X.XX..XXX....XX","X..X.....X.XX..X.XX.X.X....X.X.X..X..XXXXXX.XX.X.X","X....X.X.X.XXX.X...XXXX...X.XX.XXX....X....XX.XX.X",".X.XX....XX.....X.....X.X..XX...X......X....XX..XX","..XXXXX.X....X.XXX.X.XX.X.X.X.X....X......X....X.X","...X..X........XX..X.XX.X..X..XX.XX.X.X.X...X..X..","X.X....XX..XX..X..X..........X.X.X....X.XX..X.....","X.XX.XXX..XX.....X.X.XX.XX..X..X........XXXXX.....","..X.X.XX.X.X.XX..X...XX...X......X.X...X.XXX......","..XXXX.X..X.XX...XX.X...X.X.X...X.X.X......X...X..",".....X.XX.....X.XXX..XX.XXX...XX.XXX.X........XXX.",".XX.....XXXXXX.X...X.......XXXX.X..XX..XX.XX.....X","...X.X....X.XX.X....X.X...X.X.X.XX.XX.XX.....X.XXX","..X.X..XXXXX.X...X...X...X..XXX........X..X...X...","X.X..X.XXXX..X.X......X.XX.XXXX...........XX......",".X.XX.X.XXXXX.XX.......XX.X...X.....X...XXX..X..X.",".....XX..X..XXX...X...XX...X..XXXXXX......XX.XX.X.",".X.X.....X.X....X...X..X..XXX...X...X..XX...X....X","X..X...X...XX...XX..XX...X....X...X.X.X.XXXXX.....","XX.....X.....X.X........XX.X.XX.....X..X.XXX..X.XX","X....XX.X.XX.X.X.X..X..X..X...XXX.X.X..X........X."}
"DDSBDDDDD"
1000
Returns: 72
{"...XXX....X.XX.XX.X..XXX...X........X.....X.X...X.",".XX..XX........X.........X...XXXXX.X..X.X....X...X","..XXXXX...XX.XX....XX.XXX.X.XXX.X.XXXXX.X....X....",".X....X...X.XX.X....XX.X..X....XX.XX.X...XX..X..XX","X..X.XXX.XXX...X.X..X.XX.X.X..XX..X...XXX....X..XX",".X..X.XX.X..X.XX..XXX....XXXX.XX..XXXX.X..X....XX.","X.X...XXXX.XX..X.XXX...XXXXXX.X.XXXX.X.X....X..X.X","....XX..X.X....XX.X.XXXX...XXXXX.XXX..X.XXXXXXX..X",".XXX.X.XX..XX.X.XX....X.X.XX.XXX........XX.X..XX..",".X...X.X.X.....X...X.X......XX.X.....X.XX.X.XX..X.","X.XX.XXX...X...X.....X..X.X..X..X...X.....XX....XX","X..X....X...X..XX.XXX..X.X...........X.XX....X.X..","XXXXX..X..XX.....X..X...X.....X.....X..XXX.X..X.XX","X....XXXX.X..........X..XX...X..X.X....XXX.XX.X...","....X...X.X.X.X..X....X.X..X.X..XX.X.XX....XXX.X..","...XX..XX.X.X..X....X..X.X..XX..X.......X...X..X..",".....XX.XX...XXX..X..XX.XX..X.X..X.X..X.....X...XX","....XXX......X.X.X.X.X.......XXXX.X....X...XXXX.XX",".XXX.X....XX.X.....X.X..X.X.X....XX.XXX...X..XX..X","X.XX..X..X.......XX....XX....X....X..X.XX..X.XX...","....X.X..X.X.X........XX.X.X...X.....X.....XX.X...","XX..XX..........X..X..X..X...X.XXX.X...XX...X.XX.X","XX.....XX.XX.XX....X.XX.X..XX.X......X.X.X.X.X..XX",".....X..XX.X...X....X...X..X...XX.X.XX.XX.X.XX....","X.X.....XX.XXX....XX.X.............XX.XXXXX...X...","X.X...X...X..XXX...XX...X...X.X.X.X...XX.X...X....","XXXX..XX.X.XXX........X...XX..X.....XX....X.XXX...","..X..X..X.X...XX.X..X.X..XX.XX.X...X.X.....X.XXX.X","..XX.XX....X.....X...X...XX.X.X.XX..X.XX.X..XXXX..","X....XX.X..XX..XX....XXXX...XX..X..X.XX..XXX....XX","X..X.....X.XX..X.XX.X.X....X.X.X..X..XXXXXX.XX.X.X","X....X.X.X.XXX.X...XXXX...X.XX.XXX....X....XX.XX.X",".X.XX....XX.....X.....X.X..XX...X......X....XX..XX","..XXXXX.X....X.XXX.X.XX.X.X.X.X....X......X....X.X","...X..X........XX..X.XX.X..X..XX.XX.X.X.X...X..X..","X.X....XX..XX..X..X..........X.X.X....X.XX..X.....","X.XX.XXX..XX.....X.X.XX.XX..X..X........XXXXX.....","..X.X.XX.X.X.XX..X...XX...X......X.X...X.XXX......","..XXXX.X..X.XX...XX.X...X.X.X...X.X.X......X...X..",".....X.XX.....X.XXX..XX.XXX...XX.XXX.X........XXX.",".XX.....XXXXXX.X...X.......XXXX.X..XX..XX.XX.....X","...X.X....X.XX.X....X.X...X.X.X.XX.XX.XX.....X.XXX","..X.X..XXXXX.X...X...X...X..XXX........X..X...X...","X.X..X.XXXX..X.X......X.XX.XXXX...........XX......",".X.XX.X.XXXXX.XX.......XX.X...X.....X...XXX..X..X.",".....XX..X..XXX...X...XX...X..XXXXXX......XX.XX.X.",".X.X.....X.X....X...X..X..XXX...X...X..XX...X....X","X..X...X...XX...XX..XX...X....X...X.X.X.XXXXX.....","XX.....X.....X.X........XX.X.XX.....X..X.XXX..X.XX","X....XX.X.XX.X.X.X..X..X..X...XXX.X.X..X........X."}
"SSSBDDDDD"
1000
Returns: 916
{"...XXX....X.XX.XX.X..XXX...X........X.....X.X...X.",".XX..XX........X.........X...XXXXX.X..X.X....X...X","..XXXXX...XX.XX....XX.XXX.X.XXX.X.XXXXX.X....X....",".X....X...X.XX.X....XX.X..X....XX.XX.X...XX..X..XX","X..X.XXX.XXX...X.X..X.XX.X.X..XX..X...XXX....X..XX",".X..X.XX.X..X.XX..XXX....XXXX.XX..XXXX.X..X....XX.","X.X...XXXX.XX..X.XXX...XXXXXX.X.XXXX.X.X....X..X.X","....XX..X.X....XX.X.XXXX...XXXXX.XXX..X.XXXXXXX..X",".XXX.X.XX..XX.X.XX....X.X.XX.XXX........XX.X..XX..",".X...X.X.X.....X...X.X......XX.X.....X.XX.X.XX..X.","X.XX.XXX...X...X.....X..X.X..X..X...X.....XX....XX","X..X....X...X..XX.XXX..X.X...........X.XX....X.X..","XXXXX..X..XX.....X..X...X.....X.....X..XXX.X..X.XX","X....XXXX.X..........X..XX...X..X.X....XXX.XX.X...","....X...X.X.X.X..X....X.X..X.X..XX.X.XX....XXX.X..","...XX..XX.X.X..X....X..X.X..XX..X.......X...X..X..",".....XX.XX...XXX..X..XX.XX..X.X..X.X..X.....X...XX","....XXX......X.X.X.X.X.......XXXX.X....X...XXXX.XX",".XXX.X....XX.X.....X.X..X.X.X....XX.XXX...X..XX..X","X.XX..X..X.......XX....XX....X....X..X.XX..X.XX...","....X.X..X.X.X........XX.X.X...X.....X.....XX.X...","XX..XX..........X..X..X..X...X.XXX.X...XX...X.XX.X","XX.....XX.XX.XX....X.XX.X..XX.X......X.X.X.X.X..XX",".....X..XX.X...X....X...X..X...XX.X.XX.XX.X.XX....","X.X.....XX.XXX....XX.X.............XX.XXXXX...X...","X.X...X...X..XXX...XX...X...X.X.X.X...XX.X...X....","XXXX..XX.X.XXX........X...XX..X.....XX....X.XXX...","..X..X..X.X...XX.X..X.X..XX.XX.X...X.X.....X.XXX.X","..XX.XX....X.....X...X...XX.X.X.XX..X.XX.X..XXXX..","X....XX.X..XX..XX....XXXX...XX..X..X.XX..XXX....XX","X..X.....X.XX..X.XX.X.X....X.X.X..X..XXXXXX.XX.X.X","X....X.X.X.XXX.X...XXXX...X.XX.XXX....X....XX.XX.X",".X.XX....XX.....X.....X.X..XX...X......X....XX..XX","..XXXXX.X....X.XXX.X.XX.X.X.X.X....X......X....X.X","...X..X........XX..X.XX.X..X..XX.XX.X.X.X...X..X..","X.X....XX..XX..X..X..........X.X.X....X.XX..X.....","X.XX.XXX..XX.....X.X.XX.XX..X..X........XXXXX.....","..X.X.XX.X.X.XX..X...XX...X......X.X...X.XXX......","..XXXX.X..X.XX...XX.X...X.X.X...X.X.X......X...X..",".....X.XX.....X.XXX..XX.XXX...XX.XXX.X........XXX.",".XX.....XXXXXX.X...X.......XXXX.X..XX..XX.XX.....X","...X.X....X.XX.X....X.X...X.X.X.XX.XX.XX.....X.XXX","..X.X..XXXXX.X...X...X...X..XXX........X..X...X...","X.X..X.XXXX..X.X......X.XX.XXXX...........XX......",".X.XX.X.XXXXX.XX.......XX.X...X.....X...XXX..X..X.",".....XX..X..XXX...X...XX...X..XXXXXX......XX.XX.X.",".X.X.....X.X....X...X..X..XXX...X...X..XX...X....X","X..X...X...XX...XX..XX...X....X...X.X.X.XXXXX.....","XX.....X.....X.X........XX.X.XX.....X..X.XXX..X.XX","X....XX.X.XX.X.X.X..X..X..X...XXX.X.X..X........X."}
"DDDSSBDDD"
1000
Returns: 268
{"........................","........................","........................","........................","........................","........................","........................","........................",".........XXX.XX.........","..........X..X..........","..........X..XX.........","........................","........................","........................","........................","........................","........................","........................","........................"}
"DBDBDBDBD"
8
Returns: 80
The replicator
{"......" ,"......" ,".XXXX." ,"......" ,"......"}
"DDSBDDDDD"
2
Returns: 6
after 1 application of the rules we have: {"......", "..XX..", "..XX..", "..XX..", "......"} This is because the grid space that we changed from '.' to 'X' had 3 adjacent 'X's, and by our rules, an organism is born when there are 3 adjacent living organisms. The two 'X's at the ends of the line of 'X's are only adjacent to 1 other 'X', and thus, by the rules, they die. after 2 application of the rules we have: {"......", "..XX..", ".X..X.", "..XX..", "......"} Since there are 6 'X's, there are 6 living organisms, thus we return 6.
{"XX","XX"}
"DDSBDDDDD"
1
Returns: 0
Because we wrap around edges, every space in the grid is adjacent to 8 living organisms, thus they all die after the first application of the rules.
{"........XXX" ,"..........X" ,".........X." ,"..........." ,"..........." ,"..........." ,"..........." ,"..........." ,"..........." ,"..........." ,"..........."}
"DDSBDDDDD"
1000
Returns: 5
The well known glider moves up 1 sqaure and 1 sqaure to the right every 4 generations.
{"........XXX","..........X",".........X.","...........","...........","...........","...........","...........","...........","...........","..........."}
"DDSBDDDDS"
2
Returns: 5
{"X.X...X.....X.X...XXX.XX.X....XXX.X..XX.XXX.X.X...","XXXXX..X..X.XXX.X......X..XXX.XX...X.X.....X...XX.","...X.XX.....XX....XX.X.X.X..X.X.X.XXX.X.XX......XX",".XX...X..X..X..X....X..X....X.X..X.XXXX.X.......X.","X..X.X....X...XXXXX.XX...XX.XX.X....XX.....XX.X..X",".........X.....XXX..X...XX..X...XX..X...X..XX..X.X","XX.X...X.X.X.X.......XXXXX.X.X....X..XXX.XX.XX...X","XXXX.XX.......XX....X...X.XXX..XX.XX..XXXX..X...X.","XX..XX.....XXX........XXX.XX..X..X.X....XX.X.X....","X......X..XXX.XX.X....X.XXX...XXXXX.X...XXXX.XX...",".X.X.X...XX.X...XX.X.XXXXXXX....XX....X.X.XX..XX.X","..XX..XX..XXX.X.....XXX..XXX......XXXX..X.X.......","...X...X...X...XXX.XXX......X.........XXXX...X....","...XXX.XX.X.X...XXX....X.....X.X..X....X..XXX.X...","....X...X...XXX.X.....XXX..X..X.X......X.....XX...",".....XX.XXXX...XXXX.X.XX..X.X..........XXX.XX...X.","...XXX.X...X.XXX..XX..XXX.XXXXX..XXXX.X.X..X.....X","........XX..X.......X...XXXX...X...X.XX..X....X..X","......X......XX.X.....XXXX....XXXX.X.X.XX.XX.XX..X",".XXXX.....X..X.XX.X.X.X.XX..X......X.....XXXX.X...","X..X.....X....X..XXX.XX.XXXX.XX..X.X.X.XX.XX...X.X",".XX.X.XXX.X......X...X....XX.X....X.....XX........",".....XXX..X..X...XX.XX...XX.X.XXXXX..X..X..X....XX","........XX.X..X.XXXXXX..X...XX.X..X....XX.....X..X","X...XX.X.XX...X.XX..X.XXX.X..X.....X..X....X.X....","....X.X.X....X.X.X......XX.XXX.X...XXX..X....X...X","X..X..X....X.X.......XXXX.......X....X..X.X.XXX...",".X.....X.X....X...X...X........XX..X.X.X.XX.XXX...","..X....XX....X.XXX..X......XX....X.X..X...X...X...","XXX.....XXXXXX.XX...XXXX.X.X......X....X....XXXX..","..X.XX..XX.....X.X..XX...XX.....X..XX........X..XX","X....X.XX.X.X..XX.X.X.X...XX.X.X.XX..X.X...XXX..X.","X.XX...X.X....X....XX...XX.XXXX....X.XXX.XX.X.XX..","X..XX..XX....XX..X.........XX....X.X..X...X.....X.",".X.X.XX..XX.X.....X............X..XXXX.XX.X.X.X.X.","..X..XXXX..X..XX.X.....X......XXXXX...X...X.XX.XXX","X....X...X....XXX....X...X.......XX.XX..X.......XX",".XXX.X..XXXX.XXXX..XX...XXX....X..XXXX....XX.XX...","..X..X....X..X...X.X.X.X......XX.X..X.XX......X.XX",".......X..XXX....XXX..X.X..X.X.X..X.X....X..XX.X.X","......XXXX.X.XXX..XXX....X..X..XXXX.XX.XX...X..X..",".X.X....X..X.X.XX....X..........X..X......X....X.X",".X........XX.X.X.X.X..XXX....X.X....X..XX...X.X..X","X..X..XXXXX.X..X.X....X.X......XX..XXX.X..XXX..X.X","..XX..X..X.X...XX..X..X..X...X.XXXX.........X..X..",".X...X...XXX..XXX.XX....X.X.X..X....X.X....X.X.XX.","......XXXXX..XXXX..X.XX.XXXXXXXX..X..X.X.......X..","..X.....X.XX.X.X.X...X...XX.X.....X..XX.X......X.X","....XX....X.XXX...XXXXX..X.X.XX...X....XX......X..","X.XXX.XX..XX.......X...X..X..X..X...XX....XX...XX."}
"DSSBDDDDD"
1000
Returns: 815
{"...XXX....X.XX.XX.X..XXX...X........X.....X.X...X.",".XX..XX........X.........X...XXXXX.X..X.X....X...X","..XXXXX...XX.XX....XX.XXX.X.XXX.X.XXXXX.X....X....",".X....X...X.XX.X....XX.X..X....XX.XX.X...XX..X..XX","X..X.XXX.XXX...X.X..X.XX.X.X..XX..X...XXX....X..XX",".X..X.XX.X..X.XX..XXX....XXXX.XX..XXXX.X..X....XX.","X.X...XXXX.XX..X.XXX...XXXXXX.X.XXXX.X.X....X..X.X","....XX..X.X....XX.X.XXXX...XXXXX.XXX..X.XXXXXXX..X",".XXX.X.XX..XX.X.XX....X.X.XX.XXX........XX.X..XX..",".X...X.X.X.....X...X.X......XX.X.....X.XX.X.XX..X.","X.XX.XXX...X...X.....X..X.X..X..X...X.....XX....XX","X..X....X...X..XX.XXX..X.X...........X.XX....X.X..","XXXXX..X..XX.....X..X...X.....X.....X..XXX.X..X.XX","X....XXXX.X..........X..XX...X..X.X....XXX.XX.X...","....X...X.X.X.X..X....X.X..X.X..XX.X.XX....XXX.X..","...XX..XX.X.X..X....X..X.X..XX..X.......X...X..X..",".....XX.XX...XXX..X..XX.XX..X.X..X.X..X.....X...XX","....XXX......X.X.X.X.X.......XXXX.X....X...XXXX.XX",".XXX.X....XX.X.....X.X..X.X.X....XX.XXX...X..XX..X","X.XX..X..X.......XX....XX....X....X..X.XX..X.XX...","....X.X..X.X.X........XX.X.X...X.....X.....XX.X...","XX..XX..........X..X..X..X...X.XXX.X...XX...X.XX.X","XX.....XX.XX.XX....X.XX.X..XX.X......X.X.X.X.X..XX",".....X..XX.X...X....X...X..X...XX.X.XX.XX.X.XX....","X.X.....XX.XXX....XX.X.............XX.XXXXX...X...","X.X...X...X..XXX...XX...X...X.X.X.X...XX.X...X....","XXXX..XX.X.XXX........X...XX..X.....XX....X.XXX...","..X..X..X.X...XX.X..X.X..XX.XX.X...X.X.....X.XXX.X","..XX.XX....X.....X...X...XX.X.X.XX..X.XX.X..XXXX..","X....XX.X..XX..XX....XXXX...XX..X..X.XX..XXX....XX","X..X.....X.XX..X.XX.X.X....X.X.X..X..XXXXXX.XX.X.X","X....X.X.X.XXX.X...XXXX...X.XX.XXX....X....XX.XX.X",".X.XX....XX.....X.....X.X..XX...X......X....XX..XX","..XXXXX.X....X.XXX.X.XX.X.X.X.X....X......X....X.X","...X..X........XX..X.XX.X..X..XX.XX.X.X.X...X..X..","X.X....XX..XX..X..X..........X.X.X....X.XX..X.....","X.XX.XXX..XX.....X.X.XX.XX..X..X........XXXXX.....","..X.X.XX.X.X.XX..X...XX...X......X.X...X.XXX......","..XXXX.X..X.XX...XX.X...X.X.X...X.X.X......X...X..",".....X.XX.....X.XXX..XX.XXX...XX.XXX.X........XXX.",".XX.....XXXXXX.X...X.......XXXX.X..XX..XX.XX.....X","...X.X....X.XX.X....X.X...X.X.X.XX.XX.XX.....X.XXX","..X.X..XXXXX.X...X...X...X..XXX........X..X...X...","X.X..X.XXXX..X.X......X.XX.XXXX...........XX......",".X.XX.X.XXXXX.XX.......XX.X...X.....X...XXX..X..X.",".....XX..X..XXX...X...XX...X..XXXXXX......XX.XX.X.",".X.X.....X.X....X...X..X..XXX...X...X..XX...X....X","X..X...X...XX...XX..XX...X....X...X.X.X.XXXXX.....","XX.....X.....X.X........XX.X.XX.....X..X.XXX..X.XX","X....XX.X.XX.X.X.X..X..X..X...XXX.X.X..X........X."}
"BBBBDDDDD"
998
Returns: 205
{".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,"......................XXX.XX......................" ,".......................X..X......................." ,".......................X..XX......................" ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................."}
"DBDBDBDBD"
16
Returns: 80
The famous replicator rule. If the grid extended infinitely, this rule would make an infinite number of copies of the original pattern! However, because our grid wraps around, the replicator no longer replicates the original pattern after about 16 generations.
{".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,"......................XXX.XX......................" ,".......................X..X......................." ,".......................X..XX......................" ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................." ,".................................................."}
"BBBBBBBBB"
1000
Returns: 2450
{"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"........................X........................" ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................." ,"................................................."}
"SBDDSSBBS"
1000
Returns: 1493
{".................................................", ".................................................", ".................................................", ".................................................", ".................................................", ".................................................", ".................................................", "....................XXXX.........................", "...................X...X.........................", ".......................X.........................", ".....XX.X.............X........XX................", "...XX...X....................XX.XX...............", "....X.X.XXX.......X.X....X...XXXX................", "...XX.XX.X.X.....X..X.....X...XX.................", "XXXXX.XXXX.XX....X......X..X.....................", "...XX.XX.X.X.....X..X.....X...XX.................", "....X.X.XXX.......X.X....X...XXXX................", "...XX...X....................XX.XX...............", ".....XX.X.............X........XX................", ".......................X.........................", "...................X...X.........................", "....................XXXX.........................", ".................................................", ".................................................", ".................................................", ".................................................", ".................................................", ".................................................", "................................................." }
"DDSBDDDDD"
270
Returns: 67
{ "........................................", "........................................", "..XX....................................", "X....X..................................", "......X.................................", "X.....X.................................", ".XXXXXX.................................", "........................................", "........................................" }
"DDSBDDDDD"
1000
Returns: 13
moves right 2 every 4 generations
{"X"}
"BDDDDDDDD"
2
Returns: 1
Note that the 8 squares adjacent to (0,0) are all (0,0)
{".X....XX..X.",".X.XX.X.X.XX",".X...X.X...X","XXX.XXXXXX.X",".XXX..X.X.XX","..XX..XXX.X.","XXXX..XXXX..","XX.X..XXXXXX",".XXXX.X....X","X..X.X.XXXXX","X..X.XXXX.XX","X.X.XXX.X.X."}
"BSSBBDDBS"
599
Returns: 72
{"XXX.XXXXX.X...XXXX..XX.XX..XX..X","X.X........XXX.....XX.X..XXXX.XX","XX.XX...X.XX..XXXXX.....XXXXX.XX","...XXX.X.X....XXXXXXX.......XX.X","...X..X.XX........XX.XX..X..X..X",".XXXX.....XXXX......X.X.X..X...X","..X.....X..X..XXXXX.X.X.X..XXX.X","XX.XXXXXXXXXXXX.X.X.X.XX.X.XXX..",".X..X.XXXXX.XXX.XXXX.X.X..XX....","X.XXX.XXXX.X.X..X..XXX.XXX....XX","XX..XX...XXX.XXXX..X...X..XXX.XX","XX.X.....X.XXXX....X.XXX..XX..X.","X.........XX.X.XXX.X.X.X....XXXX","X...XXX.X.XX.X..XX...XX...XXXXX.",".X.X...XX.XXXX..X.XX.X.X.XX.XX.X","..XXXX.X..X..X..XX.X.XX..X......",".XX..X...XXXXX.XXXX..XX.XXXX.XXX",".X...X.XX..X..X.X....XX...XX....","XX.X..XXX...X.XXX..XX.......XX.X","...X..X.X.XXXXXX.X...X..XX..X.XX","X.XXX.XX.XXX..X.XXXX..XXX.XX...X","..XX...XX.X.X..X..X......X.XX..X",".X.XXXX..XXXXXX..X...X..X..X..XX",".X.XXX.XXX.X......XX..XX..XX...X","X..X...XX...XXXX......X....XXX.X","..XXXXXXX..XXXXX.XXXX..X.XX.XX..","X.XX.XX.X.XXX....XX....XX....X..",".XXXX.XXX...XXX.XX.X.XXXXXX.X..X","...XXX.X.....XXX.X..X.XX..X.X.X.","XXXXXX...XXX.X.X..XX.XX...XX.X.X","...XX.X.XXX..XXX.XX.XXX..X.XXX..","....XXX.XX....XXXXXX.XXX...XXX.X"}
"DDSDBBDBD"
144
Returns: 3
{".X..X..X.XXXX.X.XX.XXXX....",".X.XXX....XXXX...X.X.X..X..","XX..X..XX....XX..X.XX..X..X",".......X.XX.....X..XX..X...",".XX...X..X.....X..XX..X.X.X","X..X.XX.........X..XXX....X","X.XXX.....X..X..X.XX.X..X..","XXX...XXX.XXXXXXX..X.XXXX..","X..XXXX..X.XXX..XXX.XX.XXXX","X..XXX.XXX.XX.X..X.X....X.X","..X.X.X.X......XX.X.X..XXXX","..XXXXXXXXXX..XX..X.XXXX.X.",".X...XXX..XX.XXXX.XX..X.X.X",".X..X......X.XXX.XXXXX.X...","X..XX....X..XX..X.......XXX","......XX..X.XX.XXXX..X.X..X",".X.X.XX..XX.XX.XX.XXX...XXX","X.XXX.XXX.XX..X...X...X.X..","..X.....XXXXX.XXXX.X.XX.X..","XXXX..X..XXXXX...XXX.....X.","XX.XXXXXX..X.XXX.XXXX.XX..X",".XX.XXX....X...XXXXXXX.XX.X","......X.XX.X.XXXX.X.X..X.XX","......XXXXX..X...X.X..X.X..","X..X.XXX..X..X..X..XX.X....","X.XX.XX.X...X......X..X.X..","X...X.X.XX..XX.X.XX....XX.."}
"SSBDDDDDS"
115
Returns: 237
{"X..XXX.XX.X.XX.X.XX.X.XX.XX.X...XX.XX......X.X",".X.X...X.XX.X.XXX..XXX..XX....X.XXX.XXX.XX..XX",".X..XXXXX..XX..XXX...XXXXXX..X..X...XXXXXXX.XX",".X..X.X.XXX.XX.XXXXXXX..XX...X..XX.X..XXXXX..X","X...X.XXX..XX.X..XX.....XX..XX.XX.X..X..X...XX","....X....X.X.X.X.XXX...X.X..X.X.X.XXXXX......X","..XX.XXXX.XX.......X.XXXX.XX.XX...X..X......X.","X..XXXX...X.XX.X.XXX.XXX..X..X..XX...XX...X...","..X.XXX.XX.X..XXXX.XXX.X...XX...X.X.X.X...XX.X","X..XXX.X....XX.X.......XX...XXXX.XX..XXXX.X.X.","XX....X.XX..XX...X.XX..X.XXX.XXX.X.X.XXX..X.XX","XX.X....X.X.XXX..X.XXXXXXXXXX....X.XX..XXXXX..","XX..X..XXXX.XX..XX.X.X...X.X.XXX...X.XXXX..X..",".X...XX.XXXXXXX...X..XXXX.X.......X...X...XX..",".X.X.X....XXXX..X.X..XXXXX...X..XX......XXXX.X","X..XXX.X.XXXX.XX.X...X....XXXXX....XX...X.....","XXX.X.X.XX..XX..X..XX.XXXXXX.X.X.X.XX...X....X","X.XXX..XX..XXXX..X..XXX.X.XXXXX.XXXX.......X..","XX.XX..XX.X.X.......XXX...XX...XX.XXXXX...XXX.","X..XXXX..X..X...XXXXXXX..XX.X.XXXXX.XXX.....XX","..X.X.X.XXXXX.X.XX.X.XXX.X...X.XX.XXX..X.XX.XX",".XXX.X.X.X.X.X........XXX.....X.......XX..XXXX","XX...X..X...X.X.X.X..XXXXX..XX.XXX.XXX...X....","....XXX.X..X.XXX.X...X.XX.X.X..X.XX.XX.X..X..X","X......X...X..X.......X.........X.XX.X.X..XXX.",".X.X..XX.X.X..X..XXX..X....X.X....XXX.XXX.X..X","X.X.XXX.XXXXX.....X..X.X.X.XX...X.X..X..X..XXX","....XXXX..X...XX.XXXX...X..XX.XX.XX.X.X.X.X..X","X.XXX.XXX..X..X.X......X....X.XXX....XX.X.XX.X","XXXXXXXXXXXXXX.X..XXX.X.X....XX..XX.....XX.XX.","X..X.X.XXX.XX...X....X.XX.X...X........X..X.X.",".XX.X..XXXXX..XX..X..X.X..XXX..X.XXXXX.XXXX...",".X.X..XX.......XXXXXX..XX.XXXXXXX..X.X..XXX.XX","..XXX.XX..X.X....XXXXXX.XX.XX.XXX.XX.XXX..XXX.",".XXX..XX....X.XX....X.X.X.X..XX.XX...X....XX.X",".X..XXX.XXXXXX..XX.X...X.X.X..X.X.XX.X.X.XX...","..X.X....X.XX..X..XXXX..X.XXXX.XXX.XXXXX..X.XX",".XX....XX.X.X.XXX.XXX.X.XX.XXXX.X.XX..X.X.....","X...XX.X.XXX..XXX..X..X..XX..XX.X.XXXXXX.X..XX","XXX.XX..X..X.XXXX.....X..X..X.X.........X.XX.X","X....XX...X.XX..X.X.XXX.XX.X.X..XXXX.X.....XX.","X...XXX....X..X.XX..X.X.....X.XXXXX.X.XXXX.XXX",".XXXXX.X.XXX..XX.X.XX.....XX.XX.XXX..XX.XX...X","..X.....X...XXXX....X.....XX.XXX.XX..X..XXX.X.",".X..XX....X....X....XXXX...X..X.X..X.X.X..X...",".XX.X....XX.X..XXXX...XX.XX.X....XX...XXX...XX"}
"BDBSBSDSD"
385
Returns: 1234
{"..X...X.XX.X..X.....X...XX.XXXXX..X...X.XX....","X.X.XX......X.X.XX.X..X..X..XX....X.X..XX..X.X","...XX.X.XX.XX..XXXX.X.XXX.X.XX.XXX..XX.XX.XX.X",".X.XX.X.X.XX....XXXXX.X.XXX...XX....X.XXX....X","XXX.X.X.XXXX..X.X..X.X..XX.XX.XX.XXXX..XXX...X","..X....XX.....XXXX..X..XX..XXX.XX.X....XXX.X..","X..XX.X.....X....X.....XXXX.X.X.X.X.XX....XX.X","X...XXX.X.XXX.X...XXX..XX...XXXXXXX.X.XXX...XX","XX..XX..X...XX.X..........XX....X.....XXXXXX..","..XXX.XXX.XXXX.XX.X..X...X..XX...X.....X.X..X.","...X.X..XXXX.XXX..X..X.XX.XXX..X..XXXX..X.X.XX","..X..XX...X.XX.XX......X.X.X.X.X.XXXX..X.X.XXX","XX....X.XXXX..X..X.X....XXXXX...XX.X.X....X.X.","X..X..XX.....X..XX.XXX.X..X.X.X.......X.XX.XXX","XXX..XXXXXXX....X.....XXXX.XXX.X..X.X.X.XXX..X",".X.X...X....XX..X..X.X.XXXX..X..X.XXXX........","X.X.X...XX.XX..X......XXXX..XXX.XX....XX..XXXX",".X.X...XXX....XX..XX.....XX.XXX.X.XXXX....X.X.",".X...XX.X.X..X....X.XXXXX..XXXX.X....X..X.X.XX","..X.XX.X.XX.X...X.XX.XXXX.XXXXXXXXXXX.XXX.X.X.","...XX.X..XXXX..X.XXX.XXXX....X....X.......X...","X.X....XX..X.X...X.XXX...X.XXX...XXX.XX.XXXX.X","...X..X..XX.XXX...X....XXX.X.X..X.X...XXXXX.X.",".X..X...XXX........XXX..XXX.XX..X.XX.XXX.XX...","XXX.X..XXXXXX.X...XX...XXX...XX.XX..XXX.X.XX..","X..X.XX..XX.......XX.XX.XX..XX.XX..XXX..XX.XX.",".X.X..X.X.XX..XXX.X.X..X.XXXXX.X..XXX..XX..X..","...X....XX...X...XX...XXXX.XXX.XXX....XX.X.X.X","..X.X..XX.X.X..XXX..X...XX.X..XX.XXXX.XXXXX.XX","X..X...XXXXX..X.XXX..X.XX.X.XXXX.XXX.X....XX.X","X.XX...X..X.XX.XXX.XX.XX.X...X..X..XXX.X....X.",".........X.XXXXXXXX.XXXX.X.XX.XXX...XXXXX.X..X","XXX..XX.X.X.X.X..X.XX.X.X..X.......X.X....X.X.",".X..XXXXX.X.X..XX.X.......X..XX.XXXX..XXXXX..X","XX.XXX.XXX...XX.XX.XXXXX.XX.....X.X.X.XXX..XX.","XX..X.....X..X..X..X..XX.XX..X..X.XXX.XXXX.X.X","...X.X.X..XXXXXX...XX..X..XX.XX.X..X...XXXX.XX","X.XXXX.XXX..X.X....XXX.X.X..XXX..X.XX.XX.XX...","XX.XX.X...X.X.XXX..XXX.XXX.XX.XXXXX..XX.X.X.X.","XX...XX....X.X.X.X...X.XXX.....XXXX.X.....XX..","X..XXXX...X..XXX.XX.X...X.X...XX.XX.X....XX.X.","X.X.XX...X..XX.XX.XX.X....XXXXXX.XX...XX..X.X.",".X.XXX.X.XX..XX..XXXXXXXX.X..X......X.XX....X.","...X.XX.X...XXXXX...XXXXXX.XXXX..X.XX..X......","X.X..X...XX.X..X...XXX..X.XXXX.XX.XX.XX.X.XX.X","X..XXX.XX..X.X..XX..XXXXX..XX.XX..X...XX.XX..."}
"SSDSDDSBD"
698
Returns: 264
{"..X...X..X.XX.X.XX....X.X..X..XXXX..X.X....X...XX",".X.XX.XX..X.X.XXXXXXXX..XXXX...XX...XXX.X.XX..X.X","....XX...X.XXXXXXXXX.X..XXXX....XX.XX....XX.XXXX.","....X.XX.XXXX.XX....XXXX..XX...XX...XX.X..X.XXX..","XXXX..XXX...XXXXXXXX...XX...XXX.X..X.........XX.X","X.XX...XXX.X....X.X.XX..X.XXXXXXXXXXXXX.XX...X...","..X.X....XXXX..X..X..X.X..X.X......XX..XXXX.XX.X.",".XXXX.XXXXXX.X.....X.X.X.XXXXX......X..X...XX.XXX","XX.XXXXX........X.XX.X....XXX..XX.XX.XX.XXX...X..","..X..XXXX.....XXXXXX.X.XX..X...XXX.X..XXX.....X.X","X.X...X...XXXXX...X.X.XX.X..X..X.XX.XX.....XXXX.X",".....XX.XXXXXXXXX.....X.XXXXX.XX..XX.X.X..XXXXXXX",".X..XX.XXX..X.XXX....XXX.XXX...X.X.XXXXX..X.XXX.X","X.XXX...XXXXXX.X...X..XXX..XXXX.X.XXXX.......X...","....X.....X..XXXXX..XXX.XXXXX..X.XXX.XXXX.X.XXX.X",".....XXXX.XX.XXX.XX.X..XX...X..XXX.X.X...X.XXXX..","X.XX...X.X..XXX.XXXXXXX...X..XX.XXX.XX.X.XXX..XXX","..XX..X..XXXX...X..X.X..X....XXX.XX.XX..X.X...X..","X..X..X..XXX.X.X.X.XX.XXXXXXXX.X.X...XXXX.X.....X","X..XXXX....XX.X..XX.XXXX..XX..X.XXXX.XX.XXX.XXX..","XXX.XX.XX.XX....XXX.......XXX..X....X.XXXXX..X.XX","XX..X....XXX..XXX....X.X...X.XX.X.XXXXX.XX....X..",".XXXX...XX.X..XXXX..XXX...XXXX..XXXX.X..X.....X..","XXXXX..XX.XXX.X.X..X.X....X.XXXXX.XXX.XX..X..XXXX","XX.X..XX.X..X...X....X....X.X....XX...X....XX.X.X","...X..XXX...XX.X.X..XXX..XXX.....X.X.XXX.X..XX..X","..X.X.X....X.X.XX.XXX....XX..XXXX..X.XXXXXXX..X..","XXXX.XX..XX....X...XX..XX.XXXX..XX.XXX...X..XXXX.","...XXXXXXX....XX.X..XX.X....X....X..XX.X.X..X..XX","XX.XXXX....XXX..XX.X..X.XX...XX...X.X.X...X....X.","..XX......XX...X.X.XX..X........XX...XXX....X.X..","..X.XXX..XX.XX..XX..X..XX.XX...X.X...X.X.X.X.X...","X.X..XX.X.X..XXX...XXX.XX.X...XX....XXXX.XX......","XXX.XXX.X.X.XX.XX..X.X...XX..X.X.XX.......X.X.XX.","X.XXXX.X..XX.X..X....X...XX..XX.XX.X...X.X.XXXXX.","X..X..XXX..XXX.XXX..XXX.XX.X.X.X.....XX.XXXX.X..X","XXXX..XX.X..X.X.X..X..XXXX.X..XXX.X.X.X.XX....XXX","X...XXXXX..XXX.XXX.XX.XXX..XXX......XXXXXX.......",".XX.XXX.XX.X......XX.XXXXXXXXX.X.X..XX.X.XX.X.X.X","..XXXX..X..X.XX..X.X........XX.XX.XXXXXXXX.X.X.X.","..X.X...XXXX.XX....XX.XXXX...X.XXX..XXXXXXX..X.X.","..X.XX.X...XXXXX.X..XX.X.XX...XXXXXX.X...XXXXX.XX",".X..XX.XX.XX..XXXX.XX.XX.XXXXXX.X.....XXXX.XX...X","XX.XXX.X.....X.X..XX.X.X...XX.X....X..X....X.....","XXX..XX.X..X.X.XXX.XX.XXX.X...X.X..XXXX...XX...XX","X.XX...X..XXX..X.XXXXXXXXXX........XX..XX.XX.X..X","X...X.X.....X.X..X.X.XXXXXXX...XX..X....XX.XX.XXX",".X.XX.XXX.XX.X...XXXXXX.XX.XX..XX.X..XXX.....X.XX","XXX.XXXX.XXXX....XXXX.XXXX.....XX..XX.X....XXXXXX"}
"BDBSDSSBB"
852
Returns: 950
{"XXX..XXX.X.XX.X.X.X....X.XXXX.X.X.X.XXXX","XX.XX....XX..XX.X.XX...X......XXX.XXX.X.",".XXXXX.XX..XX..X.XXXX.X.XX....XXXX.X.XX.","X.XX.XXX.X..X..XXX.......XX.XX.XXXX.X...","X...XXX..XX...X....X.X...X.X.X..XX....X.","...XXX.XXXX.XXXXX.....X..XXX.XX.....X..X","X..X.X.......X...X....X.XX.X...XXX..X..X",".X.X..X.X..XX..XX..XX.XXX.X..XX.X..XXXX.",".X..X.XXXX.X..X..XX..X..X...X..X.X.XXXXX","X..X.XX.....XX.XXXX.XXX.X.X.XXXX..X..XXX",".X...XXXXXXXXXX.X.....XX.XXX.XXXXX..X.X.","XXX.X..XXXX...XX...XXX.XXX....XXXXXXX.XX","X.XX.X..X.X.XXXX..X...X.X.X...XX.XXXXX..","X.XXX.XXX.XXX..X..XXX..X.XXX..X.XXXX...X","XXXX.XX..XXX..XXX.XXX...XX.XXX.X...X.XXX","..XXX..X.XX...X.X.XX.XX.X...XX...XXX...X","X.X..XX.XXX..XX.X..XXXX.X.XX.XXXXXX..XX.","..X..X.X.XXX...........XX..XX.X...XX.XX.","..X....X..X.X...XX.XX...XX...X..X.X.X.X.","..XX.XXXX..X..X.X..X.XX.XXXX.X.XX.X.XXX.",".X..XX.XX.X.XX...XX..X.XX....X..XXX.XXX.",".X.XXX....XXXXX..X...X..XX..X..X.XX....X","X.XXXX.X.....XXX.XXX..X..X..XXXX..X.XXX.","......X..XXXXXX.X...........XXXX.....X..","X.XX.X.X.X.XXX...XXX.X..XXXX.....X.XXX..","X.XX.XXXX.XX.XXX.X.XX.XX........XXX...X.",".X...XX.XX.X.X.X.X..XX.X..X.....X.XXX..X",".XX.XXXX...X...X.....X..X..X...XXXX..XXX","X..X..X....XX..XX..X...XXXXXX.X..XX.X...","...X..X.XX.XXXX.XXXX.X..X...X.......X...","....XX....XXX.XX........XX..XXXX.XX..X..","X..XXX.X..XXXXXX.X.X..XXX.XX.X..X.....XX","..XX.X.........XX.X.XXXX...X..XX..XX.X..","XX.XX.X.X.....X.X.XX.X.X.XX.X...X...XX..",".XXX..XX..XX...X....X..XXX.XX.X...XX.X..","X..XXXX....X.XX.X..XXXX..X.X..X...XX.X.X",".X.X......XXX.XXX.XXX.X.X..XX.XXX...X..X","X.XXXX..XX..XX..XXXX..XX..X..XX.X.X.....","X..X.X..XX.X.XXX..XX.....XX.X...XX..X..X","..X......X....XXX..XXX..XXX..X..XX.XX..X"}
"BDBBBBDDB"
510
Returns: 974
{"XXXX..X.X.XX..X...X.X.X..","X.X.......XX....X...X..X.","X.XX..XXXX.XXX.XX..X..XX.","XXX.XX.X.X.XX...X.X..XXX.",".XX.X....XXXX..X..XXX.X..","XX.XXX..XX.XX..XX.XX....X","...X.X....X....XX..X..X.X","XX....X.XXX..XX.X..X.XXXX","X..XXXXXXX..X.X..X.XXXX.X","X.XXXX..XX.X.XXXX.X...X..",".X.X..X.X..X..X..XXX.XX..","XXX.....X.XX..X.XXX....X.",".X...X.XX..XX..X....XXX..","...XX.X.X.XX.X..X..XXXXX.","XX.X.X.......XX.X.XXXXX..","XXXXXX.X..XX.X.X.XX.XX...","X..XX..X.XX.XXXXXX.XX.XXX","......X..XXXX..X.X..XX.XX",".XX.XXX..X...X.X..XXX.X.X","..X.XXXX....X..X..XXX...X",".XXX..XX..XXX...XX.XX....",".X...XX.XX....XXX......XX",".XXXXXX...XX...X.XX.X....","XXXX.X...XXX......XXX...X","XXXXXX...X.....XXXXXXXX.."}
"DDSBBSBDD"
120
Returns: 451
{"XXX.X.XXXXXX..X.X.XX..XX.XX..XXX.X...X..X","X.XXX...X.X.X.X..X.X.X....X.X...X..X...X.",".XX..XX..X..X.XX...XX.X.X.X.XX....X..X..X","X.XX.XX.XX..X..X....XX.XXX...XX..XX...XXX","X..X..X.X..X......XXX.XX....XXXX.X.XXX.XX","..XXXXXX.X..X..XXX...X.X..X.X.X....X...XX","XXXXX..XX.X......XX.X.X.XXX...XX.XX.XX.X.","XX.XX..XXX.XXX.XXXXXX.XX.XX.X..X.......X.",".XXX.X.XX.X..XX.......XXXX.XXX.XXX...XXXX",".XX.X....XX.XX...X..XXXX...X...XX...X..X.","X.X...X..XX..X.X..XX....XXX.X...X.X.XX.X.",".XX...XXX.XX.XXXXX.X.X.X.X..X.XX..X..XXXX",".....X.X.X..X.XXX.X.X..XX.X....X...X.....",".X.XX..X.XXX.XX..X.X.....X......XX....X..","..XXX.X...X.X.X.......X..XX..XXXX.X.X...X","X.X.X.X....X..XX....XX.XXXXX..X.X...X.X..","XXXX..X....X.XX.X..X..XXXXX.X...XX.X....X","X.X....X..X.X.XX.X.XX...XXX..X..XX.X.X.XX",".....X.XX...XXX...X..XX...XXX..X.....X...","XX.XXX...X..XXX.X...XX...X...XXXXX.X....X","XXX.XX...XXXXXXX..X...X.X.XXXX.XXX...XXX.","...XXXX..X.X..X...X.X.X.XX..XXXX...X...X.","..XXXXXXXXX.XXXX..XXX..XX.X..X..XX.X..XXX","XX.XX..X.X..XXX.X.X.....X..XX....XX...X..","..XXX.XXXXX..X..XXXXXXX.XX....XXXXXX..XX.","XXX.XXXX.XX.X.XXXX.X..XX..XXXXXX.X....X..","XX.X.X.XXXXX...X.XXXXX.XXXXXX..XX..XXX...","....X.X.XX..X.XX.XX....XXXX.XX.XXX....X.X","X.X.XXX...XXX..XXXX...X.XXXX......XXX.XX.","XX....XXX.X.X..X...XXX...XX..XX...X.X.XX.","XXXX.....X.XXXXX..XX.X.X.XXX.X...X.X.XX.X","X..X.XX...XXX....XX..X.X.X.XXXX.X...X.X.X","XX..XX.X.X..XX.XXXXX....XXX.XXX..XX.XXX.X","..X...X.X....X.....X....XXXX...XX...XXX..","..XX..X...XXXXXXX.X.....XX..XXX.XXXXXXX.X","XX...XX..........X.X.XX.X.X.......X.XXX..","X.X..XX.X.XX...XX..XXXX.X.XXX.X..XXX..XXX","XX...XX.......XX.X.X..X...XXX..XX..XX....","..XXX.XX.XX....X.XXX.X..XXX..XX...XXXXX..",".XXX.X.X..XX...XX.XX.....XXX.XXX.....X.XX","X....XXXX...XXX.XX..X...XXX.XX.X..XXX...."}
"SDDDSBSDD"
945
Returns: 9
{"..X.....XX.X.XXX.XXXX..X.X","XXXX...XXX.X.XXX..X.XX...X",".....X....X.X....XX.X.XX..","XX..XX....XX.X.XX.XX...XX.",".XXX.X...XXX.XX.X.X.XX.X.X","...X...XXXX.XX..X..X.XXX..","XXX...XXX.XX.X.XX.X.......",".X..XXX..X..XXXX..X.X..X.X",".XX.XX...X.X.XXX.XXX.X..XX","..XX...X...XXX.XXXXX.X...X","...XX..X...XXXX.XX.X.X.XXX","X.X...X.XX..X..X.X...XX.XX","...X..X.X..XXX..XXX.XXX..X","XXXX..X..XXX.XX....X..XXXX",".XX..X.XXX..X.X.XX.X....XX","XXXXXX.XX...XX.....XX..X..","X.XXX..XXXX......XX...X.X.","X..XX.XX..X.XXX..X..X.X.X.",".XX..XXXX..XXXX..X..XX....",".X.X..XXXXX.XXXXXXXX..XX.X","XXX.X....X..X....X.XXXXXX.","...X.X..XX.X.XXXXXX..X.X.X","....XX..XXXXXX..XX.X..XXX.","X.XX...X...XXXXXX....X....",".X.X.XX....X.XX.X.X...X..X",".XXX.X...XX.X..XXXX.XXX..."}
"DSDDDDDSS"
584
Returns: 8
{"..XX...X........XXX....X.X..X.XXX...XXXX.X..XX.X.","X.XX..XXX.XXX.X..XXX..X.X.X.XX..X..XX.X.XX.....X.",".X...XX....X.....XX.....XX..X..X..X.XX.....XX.X.X","..XX..XXX..X...X..X...X..XX..XX..XX.X.X.XX..X.XXX","X.X....XX.X.XX.XX...X....XX..X..XXX.XXXXXXX....XX","..X.X.XXXXX.X..XX.X.X.XX..X.XXXX..X.......X..X.XX","..XX....X.XX..X..XXX.X..XXXX.X.X...XXXXX.X......X","X.X.XXXXXXXXXXX..XX.XX.X..XXXXXX..XX.X..X.....XX.",".XX.X..XXX.XX.X...XXXX..X.X..X.......XX.XX.X.X..X","..XX...XXXX.X..X..X.....X..X..X.X..X...XX..X....X","X.XX...X..XX.XX...XX.X.X..XXX.....X..XXXX..X..X.X","X.X..XX.XX.XX.X..X.XX..X...XX..X..X.X..X.XX.X...X","...XX.X...X..X..XX....XXXXX.XXX.X.X..X......XXX.X","XX..X..XXX.XX.X..X.XX.X.X..XXXXXXX...X.XXXXXX.X..","X..XXX.X.XX.X..X.X....X.XX.XX.X.X.XX.XXX...X..X..","XXX.XX...X...X.X..X.XXXX.XXXXXXXX....X..X.XXXX..X","X.XXX.X...X.X.XX.....X..XX.XXXX.X.XX..XX.XXX.....",".XX..X...X.X...XX.XXX.X.XXXXX.XX..XX.......X...XX","XXX..XXX.X....XX.XXXX..X..XX..XXX.X.....XXXXXXXXX",".X.X...X.XX...X...X.XX......XX..X.XX.XX....X..XXX","X...X..X.X....X....X..X.XX.....X.XX.XXXXX.X.XX..X","...XX.XXXXXX.XXX..X...XXX..XXX...XXXXXXXXXXX...X.","..XX..X..XX.XXX.......XXX...X.X.XXXX...X....X....","XXX.XXX.X..XXX.XXXXXXX.X.X.XXX.X...XX.....XXX..X.","...X..X..X.XXX....X..X..XX.XX.X...XXX.XX.X......X",".X....XXXXX.XX...X.X.X..XX...X.X.XXX.XX.....XXXX.",".X.XX.X..X.X.X.XX..XX.XXX.XX.X..XXXX.X...X..XX..X",".....XX..XX.X...X....XXX.XXX..X.X.X.X..X..XX.XX.X","XX..X.X....XXX.XXXX.X.X.XX.X..XXXXXX.XXXXXX.X.XXX","XX..X.X.X.XX.X......X.XXXXXX...XXX..X.XXX..X.XX..","..X.X.XX.XXXX.X.X.XXX.X...X...XX.XX.XX..XX.......","XXX.XX...XXXXX.XXXX..X..XX...X..X.X...XX.X......X","XXXX.XX....XXXXX.X....XXX.X.XXX.X.XX...X.X.XX....",".XX..XXXX..XXX..XXX.X..XX...XXX.X...XXXX...XXX...","XX..XXXX..XXX..XXX.....XXX...XXXXX...X...XXX.XXX.",".....XX.X..XX.X.X..X.X..X..X..XX.XXX.XX.X....XX.X","..XXXX...X.XXX.X.X...X...XXXX..XX.X..XX.X.X.XX.XX","..X...X....XXX..X..XXX.XXX.XXX.XXXXX.X....X.X..X.","..X.....XX.X..X.....XXX.X.XX..XX.XXX.X.X.XX.XXX.X","X.XX...X..X.........X.XXX.XXX.XX.X..XX...XX...X.X",".X..X..XX...XX...XXXX.XXXX..XX..XX.XXX.XXXXXXX.X.","X.X......XX.X..X.X...X.X..X.....XXXXXXX...XX....X","X...XXXXXXX.XXXXXXX..X.X.XX.XX..X.X..X...XXX..XXX","X...X..X.XXX.XX.......XX..XX.X....X.X.XX..X.X....",".....X.XX.X..X.X.X.XXXXX..XX..XXXX..X..X..X....X.","XXX.XXX.X.X....X..X.XXXX...X..XXX...XX.X.........","X.XXXXXXXXXX..XXX.X.XXXXXXXX.XX.X.X.X.XX.XXX.X.XX","X.X.XX.......XXX.X..XX.X..X.X.....X...X..XXX..XXX",".XX.XXXX..X.XX...XXX.X..XXX.XXXXX.X...X..XX...X.."}
"BDSDDBSBB"
471
Returns: 477
{"X.X.XX..XXX.X.X.X.XX..XX..XX.XX.....X..XXXX","X....XXX.X.XXX.X...XX.XXXX..XX.X.....X.XXXX",".XXX.XXXXX.XX.XX..X..XX.XXX...XXX.X...X..XX","....X.XX..XXXX.XX...XX.XXXX.XX..XX.XX.XXXX.","XXXX.XX..X..XXX.XX.X.X...XXXXX..XXXXXXXXX..",".....X..XX...X.XXXXX....XX....XXX.X....X...","X....XX.XX.XXX.X.XX.XXXX....XX.XXX.XXXX.XXX","...XXX.....X..XXXX.XX.XXXXXXXX..XXXXXXX..XX",".XXXXXX.X.X.XXX.XXX.XXXX.....XXXX.X......X.","X.XXXX.XX.XX..XX...XX.XX.X....X.XXXX....X.X",".XX.....X...X...X......XXX...X.....XXX...XX","X.XX.X.XXXXXX..X..X..X.X..X...X.X..X.X...X.","...XX..X..X....XX.X..X.X.XX.XXX...XX...X..X","XX.X.X.XX...XX.X...XXX....XXX...X.X.......X","..X.XX..XX.X.XXX.XX..X....X..X.X..X.X.XXX.X","X...XXX.X...XX.X.X.X.XXXXXXX..X.X.X...XXXX.","X.XXX..X.X..XXX.X.X.X....X.X..XXXXX.XX..XXX",".X..X.XX.XXX...X..X....X...X.X.X.XXX..XXX..","XXXX.....XX.XXX...X.XXX.XX...XX....XXXXXXXX",".XXX...XXX..X.....X...XXX.XXX.XXX...X.XXX.X",".X.XX.XX..X..XXXXX.XXX.X.X...XX....X.X.XXXX","X..XX.X...XXXXXXXX.X.XX.XXX.X.X.....XXXX.XX","..XX.XX..X.X...XX.....XXX..X.X...X.XXX.XXX.","X.X.XX..X...XXXXXX...X....X...XX.X.X.XX.X.X",".........X..XXXX........X..XXX.X..XX.X.XXX.","X.XX.X.XX..XXXX...X.X...X..X.X.XXXX.XX....X",".X..X....X..X.XXX.X..X.XX..XX.XXXXX.X.X...X","XXXXX.X..XXX.XX...XX....XXXXXX.X.XX....X...","X.X.XX.XX..X...XX...X..XXX.XXX..XXXX..XXXX.","X..X.XXXX.X.X.X..XX.X....XX..X.XX.XX...XXX.","X.......X..XX.....X.XX...X.X.X.XXX...XXXXXX",".X.X..XXXXX..XX.X.XXXX...X.XX...XXX.XXX...X","X...XXXXXX.XXX.X..X...X..XXXX........X.XX.X","X.XXX..X.X..X.XXXXXXX..XXXX.X...XXXXX..X...","XX.X......X.XX..XX.X..XXXX..XX....XX...XX..",".XXX......X....XXX....XXX.X..XXX.X...XX.XXX","XXX...XXXXXXX..XXX..X...XX..X..X...XXX.X.XX","XXXXXXX.XXXXXX......X.....XX..X.X..X.X.X...","...XXXXXXX....X..XXX...XXX.X.X.X.XXX..X...X","X.XX..X..X...XX.XXX.XXXXX.X..XX.X.....X.X.X",".....X.....XXX..X..XXXXXX.X...XXXX...X.....","XXX....X.X..XX.X.X..X.XX...XX...XXX.XX.....","...XX..XX..XXXXX...XX.X..X..XXX.XX...XX..XX"}
"DDDBSSDBS"
500
Returns: 944
{"...XXX......XX...X..X","XX.XXXXX.XX..XX..XXXX","XXX.XX...........XX..","XXX.XX.XXX..XX..XXXX.","XXXX...X.X......X..X.",".X.X....XXX.XXX..X..X",".X..XXXX.X..X.XX.X..X","XXXXXXX.XX..XX.XX.X.X","XXX..XX.X..X.XXX.....","X.....XX..X..XX.....X","X.....X..XX.X..X.XX..","X.XX...XX.X.XXXX.X.X.","XX...XXXXX.X.X.XXX...",".XXXXX.X..XX....XX.XX","..X..XXX..XXXX.XXXXXX","X..XX...X..XXX..X.XX.","XX..XX....X.X.XX.X.XX","XX...X.XXXXXXXXX.X...","X..X.XX.X.X.X.X.X..X.","...X...XXX...XX..X...",".X..XX..XX.X...X.XX.."}
"DSSBSSDDS"
388
Returns: 250
{".X.XXXXXXX..X..X.XX....XX.XX..X.XX","XXXX.XXX.X...X...X..XXXXXX.XXX.X..","..XXXXXXX....XXX.X..XXXX....X.X.X.","X....XXXX........X..X..X.X.XXXX...","X..XXXX.XXXX.XXXXX...XXXXXXX..XXX.",".XXX.XX.X..X.....XX.XXXXXX..XXX..X",".XXX..X..X..XX..XXXX.X......XXX..X",".XXX.XXX.X.X..X....X.XXXXX.X....X.","X..XX.XXXXXX..XX.XXX.X..XXX..X.X..","X.X..XX.X.XXX...X..X.X..XXXXXXX.X.","X.XX..XX.X.XX.X...X....X.XXX...X..",".X.....X....X.X....XXX..X.X.XXX.X.","XXX...XX..XX.X.....X...X.X.X.X..X.",".X...X.XX..XXX..X.X...XX...X..XX..","XX..XXX.X..XX.X.X..XXX..X.XXXX..X.","X.XX.X.XXX.X..X...X.X....X.X.X.XX.",".X.XXXX..XXX..XXX...X.XX..X.XX...X","X..X....X.X.X.XXXXX.XXXX.X.XXX.XXX","...X.X.X.XXXX.XXX..XXX.XXXXXX.X.XX",".X.XX...XXX.XXXX...XX...X.X.XXX...","....XX.XXX.....XX.XX....XXXX.XXX.X","X..XXXXXXX.X.X....XXX.X.X.X.X....X","X....X...X..X.X.XX.XXXXXX.X...XXX.",".X.XX...X.X..XX..XXXX.....X..X.X.X",".XXX.XXXX.XXXXXX.XXX.X...X.X...XXX","XX.X.X.XXX......XXXX..X...XXX....X","..XXXX.X..X.X.XXX.XX.XXXXXX.X.XXX.","X.X.XX.X.X......X..X.X...XX.X.X.XX","X.X.X.XXX.X.X.XX..X..XX.XX..XXX.X.","X.X.X..X.X....XX.X..X..X.X.XXX..X.","..XXXXXX.XX..XX.X.X..XXXX.XXX.X.X.","XXXX.XXXX..X....X..X...X.XXXXXX.XX","..X.X.X..XX...XX.XXXX...X..X..XXX.",".XXX..XX........XXXX...X.X.XXX..X."}
"BBBDSDBSB"
300
Returns: 558
{".XXXX.","XXXXX.","XX.XX.","XX.XXX","XXXXX.",".XXX.."}
"SBDDSDBSS"
395
Returns: 12
{"X..X.XX...X.X.XX.XXXX.X.X.X.X.X...X.",".X.XXXXXX...XXX.....X...XXXX.X.X.X.X","X..XXXX...X..X....XXX.XXX......X..XX","XXXXX...X..X.XXX..X.X..XX..X....XXXX",".X.....XX.XXX...X.XXX..XX.X.XXX...XX","X...X.X..X.......XXX.XXX.XX........X",".XX.X.X.XXX.XXX.XXXXX.X...XX.X...X..","XX......XX..X.XXXX...XX.X..XXX.X.XX.",".X..XXXXX...X.X...X....X..XX...XXX..","..X..X.X.X..X..XXX..XX.X.XXXXXX.X.X.","XXXX.XXXXXX.XX........XX.XXXX.XX....","XX.XX.XXXX.XXX.XX.X..X..X.X.XX.....X",".X.XX.XX.X.XX.XXXX..X.XX..X.XXX.X.X.",".XXXXX.........XX..XXX....X..X.X..XX","XXX.....XX.XX...X..XX.X.X.X...XXX...","XXX..X..X.X.XX...XX.X...XX.XXX...X..","..XX.XXXXXXXXX.X.X.......XXX.XX...X.","XXXXX.....X.X.XXXXX.XX.X.XX..XX.XX..",".XX..X..X...XX...XXX....X.XX..X....X","XX..XXXXXX..X.X....XX...X.XX..X...X.",".....XXXX...X..XXX.X.XXX.......X..X.","..XXX.X.....X.XXX.XXXXX.X.X..XX...X.","XXXX.X.XXXXXX.X..X.X.XXXX.X.XXX.....","..XXX...X.X.XX..X..X.XXX.XXXX.XX.XX.","XX..XXX....X.XX.X....X.XXXX..X...XX.","XX....XX......XX..XX.XXXXXX.X.XX..XX","X.XXX.X.........X.X..X.XX.X.XX.X.XX.","XX.X.XXX.XXX.XX...X...XX..X.....X.XX",".X.X......XX.X..XX.X......X..XXXXX..",".X.XXXXX...XXXX.XXX..X..X....X.XX.X.","X.XX.X...X....XX...XX.X..X.X.X.X..XX","X..X.XX...XX....X..XX..XX.X.XXX.X.XX","X.XXXXXXXXX..XX....XXXX..XXXXXXX.X.X","X..X.X.XXXX..X..X..XX.X...XX.X..X.X.","..XXXXXX..XXX..XX.XX..X..X.......X..",".XX..X...XX.X...XXXX..X.X.XXX....XXX"}
"SDSSDDDDB"
234
Returns: 86
{"XX..X..X...X.X.XXXXX.XXX.XX.....","XX..X..X..XXXXX.XX..X...X.XXX.X.","X....X....XX..XXX.X.X.X..XX.X.X.","XX.......XXXX...XXXX...XXXX.X..X","X...XX.XXXXX...XX...XX..XX.X..X.","..XX.XX...XXXX.X....X.X.XX..X.X.",".XXX...X.XX......XXXXXXXX.X.X...","X.XXXX.X....XX.XX.X.XX.XXXX..X..","XX.XX.XX.XXX..X.XX...X...XXX.X.X","XX..XX..X.XX....X.X.X.X...XX.X..",".XX....XX..X.XXXXXX.X..XX....X..","..X...XX..X.X..XXX....X.XXX..XXX",".X.....XX.XXXXXXX..XXXX.X...XX.X",".X.X..X...XX....XXXXXXX...XXX.XX",".XXX....X....X..XX.XXXXXXX.XXX..",".X..XXXXXX....X...X...X..XX...X.","..XX.X...XX..X.X.X.....X.X.X.X.X","X.X.X.XX.....X.XX....XX..XXXX.XX","..X..X.X.XX...XX..X.XXX.XX...X.X","...X.....X..XX...X.X.X.X...XX.XX","...X.X.XXXX.X..XX...X.X.XX.....X","X.....XX.X.XX.XX.XXXX.X...XXX.X.","XXXX..XXXX..X.XX.X.XXXX.XX..X.XX","...XX.XX.XXX.X..XXX...XXX.X.XXX.","X..XX..X...XXX..X.X..XX.XX.XX.XX","...X....X.X..XX.XXX.XXX.XXX...XX","....X..X.XX.X....X..XX.XXXX....X","XX......X..X.XXX..X.....XXXXX.X.","XX..X......XXXXX....XX.X..XX...X",".X......X......XXX.X.X....X.X...",".XX.XXXX....XX.X.X....X.X.X.XX.X","X..X...X...XXX..XX.....X.......X"}
"SDSDDBSSB"
646
Returns: 59
{"....X...X.XX.XX..XXXX..","XXX.X.XXX....X.X...X..X","XXX..X..X.XXXXX.XX.XX..","X..X.X.X...XX.X.X...XXX",".X.X.X.X...X.........XX","...XXX..X.....X..X.XX..",".XX.X.......X.X...X..XX","...X..X.X....X.XXX....X","XX...XXXX.XXXXXX.X.....","X.XX.X.XX.X.X...XX.X.XX",".XX.X.XXX.XX.XX.X..XX.X","....X.XX.XXX.X.X...XX.X",".XX..X.X...XX..XX.X.X..","X.X..X.X.XX...XX.X...X.",".XXXXX..XXXXX.X.XX..X..","XX.X.....XX..XXXX.X.X.X","XXX....XXXX.XX....X.X.X","...XX..XXXXXX.XXX...XX.","X..X....X.......XXXXX.X",".X.X.X.XX.X.X..X....XX.",".XXX.XXXX.X..X....X.XX.",".X.XX..X.X..X...XX.XXX.","X.X......X...X.X..X...X"}
"DSSBSBBDS"
466
Returns: 382
{"...XXX.XX..X...X..X..X....XX.X..XX....X","..X...XX.X.XX..X..XXX.XX.X..XX.X..XXXX.",".XX.X..X.....X.XX...X.XX.X.XXXXX..X.XXX","X..X....X.X..X...XXX...X.X....XX..XX..X","..X.X.X..XX..X.X.XXXXXXXX.X.X....XXXXXX",".XX....X..XXX..XX..X.XXXX.X..X.XX...X..","XX.XXXX..XXX.XX.XX.X..X.XX.XXX...X..XX.","X.X..XXXXXX.X...XXXXX...X.XXX....X.XX.X","XXX.....XXX.XXXX.X..X......X.X...XX..XX","...XX...X..XXXX.X...XX.XXXXX.XXX...XX.X","..XXXX..XXX.XXX.....XXX.X..X..XX..X...X",".X...X.X.XXX.....X.XXXXX.XXX.XX.XX.X..X",".X.XX.......XX..XXXX.XX.X.X..X..X.X....",".XXX.X.X.X...X....XXXX.XX.XXX..X..XXX..","XXX...XX.X..X..XXXXX..X.XX..XXXX.XXXXX.","..X.X.XXX.........X.X.X.XXX..X..XXX.X..","XX...XX.XX....XXX.X.X.X.X.X.X.X..X..XX.","..XXXX.......X......XXXXXXX.XX...XXXX.X",".X...X..X.X...X.XX.XXX.X.X..X.X.X..X.XX","...X..X.X...XX.X.X..X......X.X...X....X",".X.XX.XXX.X..X.X..X..XX..XX..XXX..XX.X.","XXX...X..XXX..X..XX...XX.XX.XX.X....X..",".XXX..X.X.XX.....XX.....X..XX.X..X.XX..","XX..XXXX.XXXXXXX.X..XX...X.X...XX.XX...","X.X.XXX.X..XXX........X.XXXX.XX...XXX.X","...XX....X.X...X.XX......XXX.XXX.XXX.X.","..XXXXX..X..XXXX...X.X..X.X...X.X..X...",".XX.X.X...XX.....X.X.X.X.X.XXX.XX..XXX.","X.X.XXXX..X.X..XXX.....X....XXX.X..X.X.",".X.XXXX.X....XX..X...X.X.XXXXXXX..XX...","...XX..X....XX....X.....X.X...X....X.X.",".X.X.X.X.X.X.XXXXXXXX.X.XXX.X.X.X.XX..X","X.X.X.X.XX....X..XXXX.XXXX....XX.XX...X",".X.....XXXX.XX.......XX.XX.XXXX.XX.X.X.","X...X.X...XX....XXXXX...XXXX...XXX....X","....X.XXX.X..XX.XXX.X....XX...XXXX.XXX.","..X.XX...XX.XXXXXXX..XX..XXXXXXXXXX.XXX","X...X.XXXXXX.XX..XXX...XX.XXXX..XXX.XX.",".X.XXX.X....X..XXX..XXX.XXX...XX.XX.XXX"}
"DBBBBBBBD"
405
Returns: 1145
{".X.XX.XX.XXX.XX.......X.XXX..XX","..X.X..XX...XX....XX.X..X..X.XX","X..XXXX..X....XXXX...XX.X..X.XX","X..XXXXX..XXXXXXXXXXX.X...X.X..",".XXX.XX...X.XXX.XXX..XX...XXX..","XXX......XX..X.XX..XX..........","XXX.XX...X..XXX..XX.X....XXXX..",".X.....XXXX.XXX.XXXX.XX..X..XXX","XX.X..X.X.XX.XXX.XX.XXX.XXX.XXX","XX.XXXXX..XXX.X.XX.X...XXX..X..","X......XX....X.X.XXX.X.XXX.X.XX","XXX.XX.XX.....X..X.XX......XXX.",".XXX.XXXXXX...X..XXX.XXXXXX..XX","X.XXX.XXX.XXXX......X.X.XX...XX","XXXX.X...XX.XXXXX.X.X.X.X..X..X","...XXX.....XXXX.XX.XXXXXX.XX..X","X.X..XX.X.X.XXX.X....X...XXXX.X","X....X.XX.XX.X.XX.XX....XX...XX",".X.XXXX.XX..XX..XXX....X..X.XX.","..X.X..X.XXXXXX.XXX.X.X...XXX.X","X...X..X..X...X...X.X.XX...X...","X.X.XX...X.X.X.X..X.X.XXX.X.X.X","X..X.XX...XXXXXX.XX.X.XXXX.....",".X.XXXXX..X.XX..X.X.X.XXXXXX..X","X..X.X...XXX..XXXXXX.X.X..XX...",".XX.XX.XXX..X.X.XXXXX.....X.XXX","XX.XX..X..X..X....XX...XX...X..","...XX.XXXXX.X.X..X..XX.XXX...X.","XX.XXX.X..X.X.X..X..XX..XXXX.X.","XX......X.X.X.XXX..X........X..","XXXX.....X..XXX.XX.....XXXXXX.X"}
"BBDBSDBSB"
622
Returns: 500
{ "XXXXXXXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXXXXXXX" }
"BBBBBBBBB"
0
Returns: 46