Problem Statement
There once was an infinite plane called Xanadu. The plane was divided into a grid of unit square cells. The entire plane was white, with one exception: a black square. More precisely, for some unknown positive integer N there was an N times N square that consisted of N^2 black cells.
Your friend recently showed you a rectangle. She claims that she cut it out of the Xanadu plane, and that she was cutting along grid lines while doing so. Verify her story.
You are given the
If the bitmap can represent a part of the Xanadu plane, return the smallest N that is consistent with cutout. Otherwise, return zero.
Definition
- Class:
- SquareCutout
- Method:
- verify
- Parameters:
- String[]
- Returns:
- int
- Method signature:
- int verify(String[] cutout)
- (be sure your method is public)
Constraints
- cutout will contain between 1 and 50 elements, inclusive.
- Each element of cutout will contain between 1 and 50 characters, inclusive.
- Each element of cutout will contain the same number of elements.
- Each character of each element of cutout will be either '.' or '#'.
Examples
{".....", "..##.", "..##.", ".....", "....."}
Returns: 2
This is very clearly a cutout that contains the entire square. The length of its side is 2.
{"...", "..."}
Returns: 1
It is possible that this is a cutout made from Xanadu. The square was simply somewhere else. The smallest size it can have is 1.
{".....", ".###.", ".#.#.", ".###.", "....."}
Returns: 0
This cutout is definitely not from Xanadu. The square must be filled completely.
{"..####", "..####", "......"}
Returns: 4
We may see the bottom left corner of a square. The square is at least 4x4. It may be even bigger, but 4 is the smallest size that matches what we see.
{"..#..", ".###.", "#####", ".###.", "..#.."}
Returns: 0
This is not a square. This is also not a part of any larger square.
{"####.", "####.", "....."}
Returns: 4
{".....", "####.", "####."}
Returns: 4
{".....", ".####", ".####"}
Returns: 4
{"."}
Returns: 1
{"#"}
Returns: 1
{".#"}
Returns: 1
{"#","."}
Returns: 1
{"##"}
Returns: 2
{"#","#"}
Returns: 2
{"#.",".#"}
Returns: 0
{"##",".#"}
Returns: 0
{"#.#"}
Returns: 0
{"##."}
Returns: 2
{".###."}
Returns: 3
{".###.", "....."}
Returns: 3
{".###.", ".###.", "....."}
Returns: 3
{".###.", ".###.", ".###.", "....."}
Returns: 3
{".###.", ".###.", ".###.", ".###.", "....."}
Returns: 0
{".....", ".###.", ".###.", "....."}
Returns: 0
{".....", ".###.", ".###."}
Returns: 3
{".....", ".###.", ".###.", ".###.", ".###."}
Returns: 0
{"..", ".#", ".."}
Returns: 1
{"...", ".##", "..."}
Returns: 0
{"...", "##.", "..."}
Returns: 0
{"..", "#.", ".."}
Returns: 1
{"##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################"}
Returns: 50
{"##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "##################################################", "#################################################."}
Returns: 0
{"###", "...", "...", "..."}
Returns: 3
{"...........................", "...........................", "...........................", "...........................", "...........................", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################", "###########################"}
Returns: 27
{"....", "..##", "##.#", "##.."}
Returns: 0
{".............................#####################", ".............................#####################", ".............................#####################", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}
Returns: 21
{"#..#", "...#", "###."}
Returns: 0
{"#.#", "#.#", "#.."}
Returns: 0
{"#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 17
{"........##", "........##", "........##", "........##", "........##", "........##", "........##", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 7
{"###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "..."}
Returns: 14
{"#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", ".....", ".....", ".....", "....."}
Returns: 13
{"...#", "#...", "###."}
Returns: 0
{".###", "#.#.", "###."}
Returns: 0
{"..........", "..........", "..........", ".........#"}
Returns: 1
{"...#", "....", "#.#.", ".##."}
Returns: 0
{".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "...##", "...##", "...##", "...##", "...##", "...##", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "....."}
Returns: 6
{"..##", ".###", "..##", "#.#."}
Returns: 0
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", ".............#####.............................", ".............#####.............................", ".............#####.............................", ".............#####.............................", ".............#####.............................", "..............................................."}
Returns: 5
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..##...........................................", "..##...........................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 2
{"...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "###", "###", "###", "###", "###", "###"}
Returns: 6
{".............##############", ".............##############", ".............##############"}
Returns: 14
{"##", "##", "##"}
Returns: 3
{"##########", "##########", "##########"}
Returns: 10
{"......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########", "......###########"}
Returns: 17
{".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 33
{"..................................#############", "..................................#############", "..................................#############", "..................................#############"}
Returns: 13
{"...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################", "..........#################"}
Returns: 17
{"####################################..............", "####################################..............", "####################################..............", "####################################..............", "####################################.............."}
Returns: 36
{"..#", "##.", "#.#", ".##"}
Returns: 0
{"##", "##", "##", "##", "##", "##", "##", "##", "##", "##"}
Returns: 10
{"########..........................................", "########..........................................", "########..........................................", "########..........................................", "########..........................................", "########..........................................", "########..........................................", "########..........................................", "########..........................................", "########.........................................."}
Returns: 10
{"#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####"}
Returns: 17
{"..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "..", "..", "..", "..", "..", "..", "..", "..", "..", ".."}
Returns: 23
{"#.##", ".#..", "..#."}
Returns: 0
{"#...", "#...", "#...", "#...", "#..."}
Returns: 5
{"###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "###............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 41
{"......................................#########", "......................................#########", "......................................#########", "......................................#########", "......................................#########"}
Returns: 9
{"......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "......................#########################", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 25
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##", ".............................................##"}
Returns: 12
{"##.#", "#..#", "...#", ".###"}
Returns: 0
{"...", "##.", "##.", "..."}
Returns: 2
{"...", "...", "...", "###"}
Returns: 3
{"........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 15
{"...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "########...................", "...........................", "..........................."}
Returns: 20
{"..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##"}
Returns: 15
{"#.#", "...", "#.#"}
Returns: 0
{"..#", "..#", "...", "..."}
Returns: 2
{"##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "##########", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 20
{".................", "#################", "#################"}
Returns: 17
{".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", ".###", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "...."}
Returns: 35
{"##...............", "##...............", "##...............", "##...............", "##..............."}
Returns: 5
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################", "...................############################"}
Returns: 33
{"...............................................", "...............................................", ".........................#####.................", ".........................#####................."}
Returns: 5
{"#..#", "....", "#.##"}
Returns: 0
{"####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "####################.......", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "..........................."}
Returns: 20
{"...##", ".....", "....."}
Returns: 2
{".......##########", ".......##########", ".......##########", ".......##########", ".......##########", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 10
{"#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 20
{"........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##", "........##"}
Returns: 10
{"###", "..."}
Returns: 3
{"###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "###################################............", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 35
{"..............####################.............", "..............####################............."}
Returns: 20
{"........................###", "........................###"}
Returns: 3
{"####", "####", "####"}
Returns: 4
{"...........................", "...........................", "...........................", "...........................", "########...................", "########...................", "########...................", "########...................", "########...................", "########..................."}
Returns: 8
{"..", "#.", "#.", "#.", "#.", "#.", "#.", "#.", "#.", "#."}
Returns: 9
{"#####", "#####", "#####", "#####", "#####", "#####", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "....."}
Returns: 6
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "##.............................................", "##.............................................", "##.............................................", "##.............................................", "##.............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 5
{".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####"}
Returns: 8
{"#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####"}
Returns: 10
{"#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "#######################....", "...........................", "...........................", "..........................."}
Returns: 23
{"#######################....", "#######################....", "#######################....", "...........................", "..........................."}
Returns: 23
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######...........................................", "#######..........................................."}
Returns: 13
{"#######..........", "#######..........", ".................", "................."}
Returns: 7
{"#####", "#####", "#####"}
Returns: 5
{".###", ".###", ".###"}
Returns: 3
{"##", "##", "##", "##"}
Returns: 4
{"..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".....#####", ".....#####", ".....#####", ".....#####", ".....#####"}
Returns: 5
{".###", "#.#.", "....", "##.."}
Returns: 0
{"#....", "#....", "#....", "#....", "#....", "#....", "#....", "#....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "....."}
Returns: 8
{"##", "##"}
Returns: 2
{"#..........................", "#.........................."}
Returns: 2
{"..........................................#####", "..........................................#####", "..............................................."}
Returns: 5
{"...", "..#"}
Returns: 1
{".....####.", ".....####."}
Returns: 4
{"..##", "....", ".#..", "..##"}
Returns: 0
{".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", ".....###############...........................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 15
{"###", "###", "###", "###", "###", "###", "###", "###", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "..."}
Returns: 8
{"###..............", "###..............", "###..............", "###..............", "###..............", "###..............", ".................", ".................", ".................", "................."}
Returns: 6
{"....", "....", "####", "####"}
Returns: 4
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################", ".......................###########################"}
Returns: 27
{"####.............", "####.............", "####............."}
Returns: 4
{"..........", "##########", "##########"}
Returns: 10
{".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".####", ".####", ".####", ".####", ".####", ".####", ".....", ".....", "....."}
Returns: 6
{"####", "####"}
Returns: 4
{"######....", "######....", "######....", "######....", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 6
{"...", "...", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###"}
Returns: 15
{"....", "##.#", "###."}
Returns: 0
{"##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##"}
Returns: 17
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "........############...........................", "........############...........................", "........############...........................", "........############..........................."}
Returns: 12
{"#####.....", "#####.....", "#####.....", "#####.....", "#####.....", "#####.....", "#####.....", "#####.....", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 8
{"##.", "##.", "##."}
Returns: 3
{"....#######################", "....#######################", "....#######################", "....#######################", "....#######################", "....#######################", "....#######################", "....#######################", "....#######################", "....#######################"}
Returns: 23
{"......############################.............", "......############################.............", "......############################.............", "......############################.............", "......############################.............", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 28
{"#####", "#####", "#####", "#####"}
Returns: 5
{"...........................", "...........................", "...........................", "...........................", "...........................", "...........................", "...............########....", "...............########....", "...............########....", "...............########...."}
Returns: 8
{"###################################...............", "###################################...............", "###################################...............", "###################################..............."}
Returns: 35
{"#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 26
{"#########################......................", "#########################......................", "#########################......................", "#########################......................"}
Returns: 25
{"##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", ".."}
Returns: 12
{"##.", "#..", "..."}
Returns: 0
{".........##################", ".........##################"}
Returns: 18
{"####", ".##.", "#.##"}
Returns: 0
{"..#", "..#", ".##"}
Returns: 0
{".#.", "...", "#.#", ".#."}
Returns: 0
{"####.", "####."}
Returns: 4
{"####", "####", "####", "####"}
Returns: 4
{"#..", ".#.", ".#."}
Returns: 0
{"##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##", "##"}
Returns: 27
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "................................................##", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}
Returns: 15
{"#####", "#####", "#####", "#####", "#####"}
Returns: 5
{".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################", "#################"}
Returns: 28
{"##........", "##........", "##........"}
Returns: 3
{"...", "...", "...", "...", "...", "...", "...", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###"}
Returns: 10
{".##", ".##", ".##"}
Returns: 3
{".........########", ".........########", ".........########", ".........########", ".........########", ".........########", ".........########", ".................", ".................", "................."}
Returns: 8
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "##................................................", "##................................................", "##................................................", "##................................................"}
Returns: 4
{"######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "######....", "..........", "..........", ".........."}
Returns: 14
{".............##############################....", ".............##############################...."}
Returns: 30
{"###.......", "###......."}
Returns: 3
{"..########", "..########", "..########", "..########", "..########"}
Returns: 8
{"#####", "#####"}
Returns: 5
{"....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "#...", "....", "....", "....", "....", "....", "....", "....", "....", "....", "....", "...."}
Returns: 12
{"#################", "#################", "#################", "#################", "#################"}
Returns: 17
{"..#", ".##", "###", "..."}
Returns: 0
{"#.#.", ".#..", "....", "...#"}
Returns: 0
{"...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##.", "##."}
Returns: 21
{"...............##", "...............##", "...............##", "...............##", "...............##", "...............##", "...............##", "...............##", "...............##", "...............##"}
Returns: 10
{"##########", "##########"}
Returns: 10
{"################.", "################."}
Returns: 16
{"###", "###", "###"}
Returns: 3
{"##########.....................................", "##########....................................."}
Returns: 10
{".................", ".................", ".................", "........#########", "........#########", "........#########", "........#########", "........#########", "........#########", "........#########"}
Returns: 9
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######", ".........................................######"}
Returns: 14
{"..........", "..........", "..........", "..........", "..........", "..........", ".........#", ".........#", ".........#", ".........#", ".........#", ".........#", ".........#", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 7
{"...##", "...##", "...##", "...##", "...##", "...##", "...##", "...##", "...##", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "....."}
Returns: 9
{"..###", "..###", "..###", "..###"}
Returns: 4
{"#..#", ".##.", "#..#"}
Returns: 0
{"....", "#.##", "#..#", "#..#"}
Returns: 0
{"...........######", "...........######", "...........######"}
Returns: 6
{"#..", "##.", "#.#", ".#."}
Returns: 0
{"...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###"}
Returns: 19
{".....", ".....", ".....", ".....", ".....", ".....", "#####", "#####", "#####", "#####"}
Returns: 5
{"...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "...", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "###", "...", "...", "...", "...", "...", "...", "...", "..."}
Returns: 19
{"..#", "..#", "..#", "..."}
Returns: 3
{"...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "...........................###############........", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}
Returns: 15
{".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "#################"}
Returns: 17
{".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "#############....", "#############....", "#############....", "#############...."}
Returns: 13
{"..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..........................#################.......", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................."}
Returns: 17
{"########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################...", "########################..."}
Returns: 24
{"........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########", "........................................##########"}
Returns: 27
{".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", ".....", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####", "#####"}
Returns: 28
{"....#####..................", "...........................", "..........................."}
Returns: 5
{"...................########################.......", "...................########################.......", "...................########################.......", "...................########################.......", "...................########################......."}
Returns: 24
{"##########", "##########", "##########", "##########"}
Returns: 10
{"..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........#", ".........#", ".........#", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", ".........."}
Returns: 3
{"###########................", "###########................", "###########................", "###########................", "###########................", "###########................", "###########................", "###########................", "###########................", "###########................"}
Returns: 11
{"..........", "..........", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########.", "#########."}
Returns: 15
{"..", "..", "..", "##", "##"}
Returns: 2
{".....", "#####", "#####", "#####"}
Returns: 5
{"..##", "..##"}
Returns: 2
{"...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "...............................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######.........................................", "######........................................."}
Returns: 10
{"#..#", "##.#", "##.#"}
Returns: 0
{"####......", "####......", "####......"}
Returns: 4
{".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "####.............", "####.............", "####.............", "####.............", "####.............", "####.............", "####.............", "####.............", "####.............", "####.............", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", ".................", "................."}
Returns: 10
{"..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "..........", "##########", "##########", "##########", "##########", "##########", "##########", "##########"}
Returns: 10
{"..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", ".#", ".#"}
Returns: 2
{".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", ".........######################################", "...............................................", "...............................................", "...............................................", "..............................................."}
Returns: 38
{"...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################", "...............................###################"}
Returns: 19
{".##", ".##", "##."}
Returns: 0
{"..#", "##.", "..#"}
Returns: 0
{"..###..", "..###..", "..###..", "..###..", "..###.." }
Returns: 0
{"..", "##", ".." }
Returns: 0
{".....................", ".....................", ".....................", "........##...........", "........##...........", "........##...........", ".....................", ".....................", "....................." }
Returns: 0
{".#.", ".#." }
Returns: 0
{"..##.", "..##.", "..##." }
Returns: 0
{"...#.", "...#.", ".....", ".....", "....." }
Returns: 0
{"...", ".##", "..." }
Returns: 0
{"...", "##.", "..." }
Returns: 0
{"..##..", "..##..", "..##..", "......" }
Returns: 0
{"......", "######", "......" }
Returns: 0
{".....", "...##", "....." }
Returns: 0
{".......##.." }
Returns: 2
{".................................................", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".##############################################..", ".................................................", "................................................." }
Returns: 0
{"....", "###.", "###.", "...." }
Returns: 0
{"....", "..#.", "..#." }
Returns: 0
{".....", ".###.", ".###.", "....." }
Returns: 0
{"##" }
Returns: 2
{".#.", ".#.", "..." }
Returns: 0
{"..###..", "..###..", "......." }
Returns: 3
{".#.", ".#.", ".#." }
Returns: 0
{"#", "#" }
Returns: 2
{"....", "....", ".#..", ".#.." }
Returns: 0
{"..#####", "..#.#.#", "..#.#.#", "..#####", "......." }
Returns: 0
{".......", ".......", "#######", "#######", "......." }
Returns: 0
{".##", ".##", ".##" }
Returns: 3
{"......", ".####.", "......" }
Returns: 0
{"..", ".#", ".#", ".." }
Returns: 2
{"...", "###", "###", "..." }
Returns: 0
{"......", ".####.", ".####.", "......" }
Returns: 0
{".#", ".#" }
Returns: 2
{"...", ".##" }
Returns: 2
{".##.", "...." }
Returns: 2
{"....", "###.", "...." }
Returns: 0
{"..##", "#.##" }
Returns: 0
{".....", "...##", "...##", "...##", "....." }
Returns: 3
{"....", ".##.", ".##.", ".##.", "...." }
Returns: 0
{"##...", "##...", "##...", "....." }
Returns: 3
{"###", "##.", "###" }
Returns: 0
{".###.", ".....", ".....", "....." }
Returns: 3
{"....", "#...", ".#..", "...." }
Returns: 0
{"...................#", "...................#", "...................#" }
Returns: 3
{"..................................................", ".##...............................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", "..................................................", ".................................................." }
Returns: 0
{".......", "...###.", "...###." }
Returns: 3
{"##.##" }
Returns: 0
{".###.", "....." }
Returns: 3
{"#.#", "###", ".#." }
Returns: 0
{".....", "#####", "#####", ".....", "....." }
Returns: 0
{"############" }
Returns: 12