In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].

If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.

The floor of a store is a rectangle divided into square fields. Two fields are **adjacent**, if they have a common side. A parcel lays on one of the fields. Each of the remaining fields is either empty, or occupied by a case, which is too heavy to be moved by a store-keeper. The store-keeper has to shift the parcel from the starting field `P` to the final field `K`. He can move on the empty fields, going from the field on which he stands to a chosen adjacent field. When the store-keeper stays on a field adjacent to the one with the parcel he may push the parcel so that if moves to the next field (i.e. the field on the other side of the parcel), assuming condition that there are no cases on this field.

Write a program, which:

- reads from the standard input a store scheme, a starting position of the store-keeper and a final position of the parcel,
- computes minimal number of the parcel shifts through borders of fields, which are necessary to put the parcel in the final position or decides that it is impossible to put the parcel there,
- writes the result to the standard output.

In the first line of the standard input two positive integers separated by a single space, , are written. These are dimensions of the store. In each of the following lines there appears one -letter word made of letters `S`, `M`, `P`, `K`, `w`. A letter on -th position in -th word denotes a type of the field with coordinates and its meaning is following:

`S`- case,`M`- starting position of the store-keeper,`P`- starting position of the parcel,`K`- final position of the parcel,`w`- empty field.

Each letter `M`, `P` and `K` appears in the input exactly once.

Your program should write to the standard output:

- exactly one word
`NIE`(means "*no*" in Polish), if the parcel cannot be put on the target field, - exactly one integer, equal to the minimal number of the parcel shifts through borders of the fields, necessary to put a parcel on a final position, if it is possible to put the parcel there.

For the input data:

10 12 SSSSSSSSSSSS SwwwwwwwSSSS SwSSSSwwSSSS SwSSSSwwSKSS SwSSSSwwSwSS SwwwwwPwwwww SSSSSSSwSwSw SSSSSSMwSwww SSSSSSSSSSSS SSSSSSSSSSSS

the correct result is:

7

*Task author: Krzysztof Lorys.*