The protagonist of this task, Chell, must solve a new puzzle GLaDOS has come up with. Chell is in a room whose layout can be represented as a matrix of dimensions rows and columns.
Each field can be one of the following:
- Obstructed field - there is a wall in it (denoted as
#
), - The field where Chell is initially (denoted as
C
), - The field where Chell must get to in order to solve the puzzle (denoted as
F
), or - An empty field (denoted as
.
).
Chell is carrying a so-called portal gun, a gun with which you can create portals in the walls.
In each move, she can do one of the following:
- Move to an adjacent field using one move
up
,down
,left
orright
(she cannot move to the field with a wall in it). This move lasts one unit of time. - Create a portal in the wall by turning towards a wall, not necessarily an adjacent one, in the direction
up
,down
,left
orright
and shooting. The portal will be created only on the side of the wall it was hit from. In each moment, at most two portals can be active. If a new portal is being created in the moment when two portals are already active, the one that was created earlier will disappear. It is not possible to create a new portal at the position of another existing portal. This move lasts a negligible amount of time, i.e. zero amounts of time. - If she's at a field that is adjacent to a wall and there's a portal on her side of the wall, she can step into the portal and exit to a non-obstructed field with another portal. This move is possible if there are two active portals and lasts one unit of time.
Chell wants to know the minimal amount of time it takes for her to solve the puzzle, i.e. to reach the field denoted as F
.
Please note: The room will always have walls on the sides, and letters C
and F
will appear only once in the matrix.
Input Specification
The first line of input contains the positive integers and , the numbers from the task.
Each of the following lines contains characters that describe the layout of the room.
Output Specification
You must output the minimal amount of time it takes to solve the puzzle, or nemoguce
(Croatian for impossible) if it is not possible to solve it.
Scoring
In test cases worth of total points, it will hold .
Sample Input 1
4 4
####
#.F#
#C.#
####
Sample Output 1
2
Sample Input 2
6 8
########
#.##..F#
#C.##..#
#..#...#
#.....##
########
Sample Output 2
4
Sample Input 3
4 5
#####
#C#.#
###F#
#####
Sample Output 3
nemoguce
Explanation for Sample Output 2
The puzzle can be solved in moves, illustrated in the pictures below.
In the first move, we turn towards the left wall, shoot and create a portal that appears on the wall in the row and column (coordinates ) from the right side.
In the second move, we create a portal from the upper side of the wall at coordinates .
In the third move, we step into the portal at coordinates and exit at coordinates - a non-obstructed field with the second portal.
In the fourth move, we turn right and create a portal from the left side of the wall at coordinates .
Since there are already two portals, the one at field disappears.
In the fifth move, we step into the portal at coordinates and exit at coordinates with the second portal.
In the sixth move, we create a new portal from the lower side of the wall at coordinates , making the portal at coordinates disappear.
In the seventh move, we step into the portal at coordinates and exit at coordinates .
Finally, in the eighth move, we move one place to the right to end the game.
The portal creation in moves , , and lasts amounts of time, whereas the rest of the move last unit of time, so the total time needed to solve the puzzle is units of time.
Comments
For a version with higher limits, see btoi14p5.