Problem Statement
A yet unknown "LL Company" wants to design a logo. After a long discussion, company designers decided that the logo should consist of two letters L drawn in some way.
To start with something, designers drew N rows of M points each, one under another, so that these points form a rectangular grid. They also painted each point either white or black. Here is an example of what they could get for N = 4 and M = 5:

Designers agreed to draw each letter L as a union of a horizontal and a vertical line segment intersecting at their left and bottom ends, respectively. The segments must have positive lengths, and their endpoints must be white grid points. All grid points that lie on the segments must be white as well. For example, here are two valid placements of a letter:


Note that neither the letters nor the grid can be rotated.
The final requirement is that the two letters should be disjoint. That is, no white point should lie on two segments belonging to different letters.
You are given the grid with N rows and M columns, encoded as a
Return the number of different possible logos with two L's drawn on them according to the requirements. Two logos are considered different if there is a pair of points that is connected by a line segment in exactly one of the logos.
Definition
- Class:
- TwoLLogo
- Method:
- countWays
- Parameters:
- String[]
- Returns:
- long
- Method signature:
- long countWays(String[] grid)
- (be sure your method is public)
Constraints
- grid will contain between 2 and 30 elements, inclusive.
- All elements of grid will contain the same number of characters.
- Each element of grid will contain between 2 and 30 characters, inclusive.
- Each character of grid will be either '.' or '#'.
Examples
{"....", "...."}
Returns: 1
{".##..", "...#.", ".#.#.", "#...#"}
Returns: 3
This is the example from the problem statement. The three possible logos look as follows:
{"..#.", "#.#.", "....", "..#."}
Returns: 4
{"..", ".."}
Returns: 0
Too small for a logo.
{".#.#", "....", ".#.#", "...."}
Returns: 34
{"##############", "##############", "#.############", "#.############", "#.############", "#.############", "#.############", "#.############", "#.#####.######", "#.#####.######", "#.#####.######", "#....##.######", "#######.######", "#######.######", "#######.######", "#######.######", "#######.######", "#######.######", "#######......#", "##############"}
Returns: 1350
Corners of L's are identified uniquely in this case, but line segment lengths can vary.
{"#......", ".#....#", ".#.#...", "#....#.", ".##..#.", ".#.....", ".....#.", ".#.#...", ".#...#.", "..##..."}
Returns: 2386
{"...#..........................", "..............................", "..............................", "..................#...#.......", "..................#...........", "..............................", "...........#..................", "..............................", ".....#..#.....................", ".......................#......", "..................#.....#.....", "..............................", "..............................", "..............................", "..............................", "..#...........................", "..............................", "..............................", "..............................", "#............................#", "..............................", ".....#.........#............#.", "..............................", ".........................#....", ".#............................", ".............#................", "..............................", "..............................", ".......................#......", ".............#................"}
Returns: 5020791386
{"..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 12829539100
{"..............................", "..............................", "............#.................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 12570541186
{"..............................", "..............................", "..............................", "..............................", "..............................", "......#.......................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "...........#..................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 11459855221
{".#............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".........................#....", "......#.......................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 11396125202
{"..............................", "......................#.......", "..............................", "..............................", "..............................", "..............................", "..............................", "...........#..................", "..............................", "..............................", "..............................", "......#.......................", "..............................", "..............................", ".......................#......", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 10872681893
{"......................#.......", "..............................", "#.............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............#................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".......#.........#............", "..............................", "..............................", "..............................", ".............................."}
Returns: 10545124390
{"..............................", "..............................", "..............................", "..............................", "............................#.", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "......................#.......", "..............................", "..............................", ".............#................", "........#.....................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..........#..........#........", "..............................", "..............................", ".............................."}
Returns: 9381992709
{"..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".#............................", ".................#.........#..", "..............................", "..............................", "..............................", "..............................", ".......#......................", "..............................", "..............................", "..............................", "..............................", "........#.....................", "......................#.......", "..............................", ".#............................", ".............................."}
Returns: 8800087395
{"..............................", "......................#.......", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".......#......................", ".........#....................", "..............................", "..............................", "..............................", "............#.................", "..............................", "............#.................", "..............................", "...............#..............", "..............................", "..............................", "..............................", "...#..........................", "..............................", "..............................", "..............................", "..............................", ".....#........................", "..............................", ".............................."}
Returns: 8183283808
{"..............................", "...................#..........", "..............................", ".............#................", "..............#...............", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "......................#.......", ".............................#", ".#............................", "..............................", "..........................#...", "..............................", "......................#.......", "..............................", "..............................", "..............................", "..............................", "..............................", "......#......................."}
Returns: 9188643895
{"..............................", "................#.............", "..............................", "..............................", "..............................", "..........................#...", "..................#...........", "..............................", "..............................", "............................#.", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "............#.................", "..............................", "..............................", "..............................", "..............................", "..............................", "............#.................", "....#.........................", "..............................", "..........#...................", "..............................", ".........#.......#............", ".............................."}
Returns: 8074313434
{"..............................", ".............................."}
Returns: 27405
{"..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", "..", ".."}
Returns: 27405
{"..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................."}
Returns: 11159014545
{".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", ".............................", "............................."}
Returns: 11159014545
{".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", ".........................", "........................."}
Returns: 2407598600
{"....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "...................."}
Returns: 99235955
{".#.#......#.#...#..#...#", "...###........#...#..#.#", ".....#..###........#....", ".#..#....#...#.....#....", "..................#.....", ".#.....##.....#..#......", ".....#.#.......#.......#", "..###........#.#....#...", ".............##...#.#...", ".............#..#.....#.", ".#.........###..........", "..###..###........#.#..#", "##........#............#", "..#..#....##..##...#.#..", "...#.#.....#...#.#....#.", "#.##...#.#.#........#..#", ".....#.#...#..#.##...#.#", "...#..#..#..#.#.#......#", "#........#.....#..##..##", "..#.##......#......##..."}
Returns: 2558202
{"#################.####", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "######################", "####################.#", "######################", "######################", "######################", "######################", "######################"}
Returns: 0
{"................", "...#............", "......#.#....#..", "......#........#", "....##...#..#.##", "..#....##.....#.", "......#........#", "##.......#...#..", "..#.......#.....", "...#....##......", "...#....#......#", ".#.#.....#......", "....#..#...#....", "#..#........#.#.", "........#....#..", ".#....#.........", ".....##..###...#", "..........####..", "##..#.....#....#", "..............#.", "...#......##....", "..#.......#.#..#", "...#...........#"}
Returns: 1821957
{"#########.", "#.#######.", "######...#", "#.########", "#.####.###", "#.###..###", "#########.", "##########", "#....##.##", "###..####.", "##.#.####.", "..##.....#", "..#####.##", "##.##.####", "###.###.##", "##.#.#.##.", "#######..#"}
Returns: 17
{".####.#####..#############", "#########.################", "###########.#.##.##.#####.", "#######.###.##########.###", ".########.########.#####.#", "########################.#", "#.#.######################"}
Returns: 0
{"#...#.#.#..#", "##.##..###..", ".#.#..######", "##.###.#.##.", "..#.###.####", "#######.##.#", "##.##.#.#..#", "##.#..#..#..", "#.####..###.", "#...#.####..", "#..#..#...#.", "####..####.#", "#.#....#####", "##.#...#.###", ".#..##...#.#", "...###....#.", "#.###...#.#.", "...#....#.##", ".##.#.#..##.", "..#..#.#...#", "#.##........", ".#.#.#.#.##.", ".##..##....#", "#.#..##.#...", ".#.##.#####.", "#.###...#.#."}
Returns: 4592
{"###.#.##...#", "##.##.###..#", "#..##.####..", "###.###..###", "###...#...##", ".##..#...#.#", ".......#.###", "##....#...##", "#...##....#.", "#..###...#..", "#.##..#.###.", "..##..#..#.#", ".#......#.#.", "..##.######.", "##.#..##.###", ".....##.#.#.", "#.#...#.#.##", ".##...#####.", ".#.#....###.", "..........#.", "..#.##..#...", "####......#.", ".#..####....", "#...#.#...##", "..###.###.#.", "#.#.###...#.", "####.##..##."}
Returns: 23562
{"#.###.", "....##", "###.#.", "#.##..", ".#.##.", "#.##.#", "##....", "##.#.#", "...#.#", ".#.###", "#....#", "#.####", "..#...", "#.##.#", "#..#.#", "..###.", "##.##.", "....##", ".##..."}
Returns: 115
{".#.#.####..#####..###.", "..#####..#############", "######.######.####.###", ".#.##.###..#.##.###.#.", "#....#.#####.#####.###", ".##.####..########.#.#", "#.########.#####.####.", "..#..############..###"}
Returns: 2
{"......#...........#...........", ".....................#........"}
Returns: 10629
{".#############################", "..############################", "#..###########################", "##..##########################", "###..#########################", "####..########################", "#####..#######################", "######..######################", "#######..#####################", "########..####################", "#########..###################", "##########..##################", "###########..#################", "############..################", "#############..###############", "##############..##############", "###############..#############", "################..############", "#################..###########", "##################..##########", "###################..#########", "####################..########", "#####################..#######", "######################..######", "#######################..#####", "########################..####", "#########################..###", "##########################..##", "###########################..#", "############################.."}
Returns: 378
{"..############################", "...###########################", "#...##########################", "##...#########################", "###...########################", "####...#######################", "#####...######################", "######...#####################", "#######...####################", "########...###################", "#########...##################", "##########...#################", "###########...################", "############...###############", "#############...##############", "##############...#############", "###############...############", "################...###########", "#################...##########", "##################...#########", "###################...########", "####################...#######", "#####################...######", "######################...#####", "#######################...####", "########################...###", "#########################...##", "##########################...#", "###########################...", "############################.."}
Returns: 8677
{"############################..", "###########################...", "##########################...#", "#########################...##", "########################...###", "#######################...####", "######################...#####", "#####################...######", "####################...#######", "###################...########", "##################...#########", "#################...##########", "################...###########", "###############...############", "##############...#############", "#############...##############", "############...###############", "###########...################", "##########...#################", "#########...##################", "########...###################", "#######...####################", "######...#####################", "#####...######################", "####...#######################", "###...########################", "##...#########################", "#...##########################", "...###########################", "..############################"}
Returns: 406
{".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."}
Returns: 0
{"##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################", "##############################"}
Returns: 0
{"..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#"}
Returns: 768106850
{"..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."}
Returns: 667002700
{".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", "..............................", ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", ".............................."}
Returns: 884517200
{"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", "..............................", "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.", ".............................."}
Returns: 768106850
{"##", "##"}
Returns: 0
{"...", "...", "..."}
Returns: 4
{".##", "..#", "#.."}
Returns: 0
{".#########", "..########", "#..#######", "##..######", "###..#####", "####..####", "#####..###", "######..##", "#######..#", "########.."}
Returns: 28
{".########", ".########", ".########", ".########", ".....####", "####.####", "####.####", "####.####", "####....."}
Returns: 240
{".#.#", "...."}
Returns: 1
{".#", "..", ".#", ".."}
Returns: 1
{"...", ".#.", "..."}
Returns: 0
{"..##..", "......", "..##.."}
Returns: 29
{"....", ".##.", ".##.", "....", ".##.", ".##.", "...."}
Returns: 54
{"#.##..#...##..#.###..##.#.##.#", "####..#.....#...#.#..#..#.###.", "#..##.###..###.####.###...###.", ".#.....###.......#..###...#..#", "..#.##.#######.##..##.##..###.", "#..#...##.#....###.####.##...#", "#.#....#......##..##.#..##.###", "#.....###......#.###.#..######", "##########..##.#####.#.#...##.", "##.#..#.....##........###....#", "....#....######...#...##..#...", "##..###..####....###....###.##", "##.####..###.#..#..##.#..#..##", "#...###...#..##...####.####.#.", "#.###..#.##.####.#..#....##..#", "#..###.##.#...##.##..#..#.#..#", ".###...#..###..#..#####...#.#.", "##...###.##..#.....##...######", "...####.#...####..##.#..#....#", "..####....#..#..####..##..#.#.", "#..#.#.##.####.##..##.##.#.#.#", ".##.###.##.###..#.#....#.#.#.#", "...#...#.##.#####.##.#.##.####", ".#.#...#...#.###...#..#.###...", "####.....###...#..#..#..#..#.#", "..##....##.#.###.#..#.##.#.##.", "#..#...#..###...#.##.....###.#", ".#..###...#.#.#.###.#.#.##.###", "#.#.#.###..#.###.####.....###.", "#...#.#...#######.....#...##.#" }
Returns: 61669
{"...#..........................", "..............................", "..............................", "..................#...#.......", "..................#...........", "..............................", "...........#..................", "..............................", ".....#..#.....................", ".......................#......", "..................#.....#.....", "..............................", "..............................", "..............................", "..............................", "..#...........................", "..............................", "..............................", "..............................", "#............................#", "..............................", ".....#.........#............#.", "..............................", ".........................#....", ".#............................", ".............#................", "..............................", "..............................", ".......................#......", ".............#................" }
Returns: 5020791386
{"..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", "..............................", ".............................." }
Returns: 12829539100
{"#......", ".#....#", ".#.#...", "#....#.", ".##..#.", ".#.....", ".....#.", ".#.#...", ".#...#.", "..##..." }
Returns: 2386