Slikar

The evil emperor Cactus has in his possession the Magic Keg and has flooded the Enchanted Forest! The Painter and the three little hedgehogs now have to return to the Beaver’s den where they will be safe from the water as quickly as possible!

The map of the Enchanted Forest consists of R rows and C
columns. Empty fields are represented by ‘`.`’ characters, flooded fields by ‘`*`’ and rocks by ‘`X`’.
Additionally, the Beaver’s den is represented by ‘`D`’ and the Painter and the three little
hedgehogs are shown as ‘`S`’.

Every minute the Painter and the three little hedgehogs can move to one of the four neighbouring fields (up, down, left or right). Every minute the flood expands as well so that all empty fields that have at least one common side with a flooded field become flooded as well. Neither water nor the Painter and the three little hedgehogs can pass through rocks. Naturally, the Painter and the three little hedgehogs cannot pass through flooded fields, and water cannot flood the Beaver’s den.

Write a program that will, given a map of the Enchanted
Forest, output the **shortest** time needed
for the Painter and the three little hedgehogs to safely reach
the Beaver’s den.

**Note:** The Painter and the three
little hedgehogs cannot move into a field that is about to be
flooded (in the same minute).

The first line of input will contain two positive integers,
$R$ and $C$, smaller than or equal to
$50$. The following
$R$ lines will each
contain $C$ characters
(‘`.`’, ‘`*`’,
‘`X`’, ‘`D`’ or
‘`S`’). The map will contain exactly
one ‘`D`’ character and exactly one
‘`S`’ character.

Output the shortest possible time needed for the Painter and
the three little hedgehogs to safely reach the Beaver’s den. If
this is impossible output the word “`KAKTUS`” on a line by itself.

**Clarification of the second sample test
below:** The best they can do is to go along the lower border
and then the left border, and get flooded one minute before
reaching the den.

Sample Input 1 | Sample Output 1 |
---|---|

3 3 D.* ... .S. |
3 |

Sample Input 2 | Sample Output 2 |
---|---|

3 3 D.* ... ..S |
KAKTUS |

Sample Input 3 | Sample Output 3 |
---|---|

3 6 D...*. .X.X.. ....S* |
6 |