EduBrick

Кратчайший путь в лабиринте

8000 мс · 512 МБ · всё или ничего

Дан лабиринт: точка — свободная клетка, решётка — стена, S — старт, F — финиш.

За сколько шагов можно добраться от старта до финиша, двигаясь по свободным клеткам вверх, вниз, влево и вправо? Если добраться нельзя, выведите -1.

Формат ввода

В первой строке числа nn и mm от 11 до 500500. В следующих nn строках по mm символов. Символы S и F встречаются ровно по одному разу.

Формат вывода

Одно число.

Примеры

ввод
1 2
SF
вывод
1

Примечание

Клетка — это вершина, соседство по стороне — ребро. Обход в ширину работает точно так же, только вместо списка смежности берутся четыре смещения, а расстояния хранятся в таблице по размеру поля.

Войдите, чтобы отправлять решения.