Cerința
Se consideră o clădire de formă dreptunghiulară, împărțită în n*m camere, dispuse sub forma unei matrice cu n linii și m coloane. Dintr-o cameră se poate trece în oricare dintre cele 4 camere vecine pe linie sau pe coloană. Unele camere sunt închise, și în ele nu se poate intra deloc. Trecerea dintr-o cameră în altă cameră durează un minut.
În una dintre camere se află proprietarul clădirii, care dorește să afle, pentru fiecare dintre camere care este timpul minim necesar pentru a ajunge în acea cameră.
Date de intrare
Fișierul de intrare acces.in conține pe prima linie numerele n m; următoarele n linii conțin câte m caractere, care pot fi:
-– reprezintă o cameră liberă#– reprezintă o cameră închisăP– reprezintă camera proprietarului, care se consideră liberă
Date de ieșire
Fișierul de ieșire acces.out va conține o matrice cu n linii și m coloane, elementele matricei reprezentând timpul minim necesar ca proprietarul să ajungă în camere clădirii. Pentru camerele ocupate și pentru camerele libere în care nu se poate ajunge timpul necesar va fi -1.
Matricea va fi afișată linie cu linie, câte o linie a matricei pe o linie a fișierului, elementele de pe fiecare linie fiind separate prin câte un spațiu.
Restricții și precizări
1 ≤ n,m ≤ 1000
Exemplu:
acces.in
4 6 --#-#- --##-- --P--- -----#
acces.out
4 3 -1 -1 -1 5 3 2 -1 -1 3 4 2 1 0 1 2 3 3 2 1 2 3 -1

