Zadanie

Furt beh o život

Počet bodov: 45

Conquistador Ferko to má ťažké. To conquistadorovanie Mexika je furt beh o život. Najprv uteká na Mexickej pláni pred pumou na kopec, potom z kopca spolu s pumou uteká pred zosuvom pôdy do Mexického pralesa, potom z Mexického pralesa beží pred nahnevanými Mexičanmi.

Mexičania majú jednu veľkú výhodu, a to že Ferka nemusia dohoniť, stačí ho trafiť šípom. Ferko bude musieť teda pri svojom behu kľučkovať. Nemá však pri behu kapacitu ešte nad tým kľučkovaním rozmýšľať, tak mu s tým budete musieť pomôcť.

Úloha

Ferko uteká z pralesa, a chce dobehnúť za svojimi conquistadorskými kumpánmi. Prales si vieme predstaviť ako mriežku voľných políčok a prekážok, v ktorom sa vie Ferko hýbať v štyroch základných smeroch. Nesmie pritom však spraviť viac ako tri kroky v jednom smere za sebou, inak ho Mexičania trafia šípom. Zistite, na koľko najmenej krokov vie dobehnúť do cieľa.

Vstup a Výstup

V prvom riadku vstupu sú dve čísla \(r\) a \(s\) - počet riadkov a stĺpcov pralesa. Nasleduje mriežka \(r\) krát \(s\) znakov: popis pralesa. S označuje Ferkovu štartovaciu pozíciu, T jeho cieľ, . voľné políčko a # prekážku. Prvý a posledný riadok, ako aj prvý a posledný stĺpec, sú plné prekážok.

Vypíšte jedno číslo - najmenší počet krokov, na ktoré sa vie Ferko dostať z štartu do cieľa, pričom nesmie spraviť viac ako tri kroky v rovnakom smere za sebou. Ak sa to nedá, vypíšte \(-1\).

Vo vstupoch platí \(3 \leq r, s \leq 5000\) a \(12 \leq r \cdot s \leq 10^5\). V prvej z troch sád navyše platí, že prekážky sú len na okrajoch.

Príklady

Input:

3 7
#######
#T...S#
#######

Output:

6

Napríklad tri kroky doľava, jeden doprava, dve doľava.

Input:

8 8
########
#...S..#
#......#
#......#
#......#
#......#
#...T..#
########

Output:

7

Input:

8 8
########
#.....S#
#.######
#...#..#
#......#
#####..#
#T.....#
########

Output:

22

Input:

6 6
######
#...##
#.S#.#
#.#T.#
##...#
######

Output:

-1
Pre odovzdávanie sa musíš prihlásiť.