EduBrick

H. Телепорты

3000 мс · 256 МБ · всё или ничего

На карте есть свободные клетки ., стены # и телепорты T. Ход в соседнюю клетку по стороне стоит единицу, но переход с телепорта на любой другой телепорт бесплатен.

Найдите наименьшую стоимость пути из левой верхней клетки в правую нижнюю. Телепорты проходимы.

Веса нулевые и единичные — это 0-1 BFS: бесплатные переходы кладутся в начало дэка, платные в конец. Чтобы не перебирать пары телепортов, добавьте одну служебную вершину «телепортная сеть»: вход в неё с телепорта стоит ноль и выход из неё на телепорт тоже.

Формат ввода

Первая строка содержит числа nn и mm (1≤n,m≤10001 \le n, m \le 1000).

Далее идут nn строк по mm символов ., #, T.

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

Одно число — наименьшая стоимость или −1-1.

Примеры

ввод
3 3
T##
###
##T
вывод
0
ввод
1 5
T...T
вывод
0
Войдите, чтобы отправлять решения.