Considereu un puzzle consistent en un taulell n × m, on totes les caselles excepte una tenen un número diferent entre 1 i n*m − 1. L’únic moviment permès consisteix a desplaçar a la casella buida un número adjacent (horitzontalment o verticalment), cosa que fa que la casella buida “es mogui” a on estava el número. L’objectiu és deixar el puzzle ordenat de dalt a baix i d’esquerra a dreta, amb la casella buida abaix a la dreta.
Feu un programa que digui si un puzzle donat té solució o no. Si en té, cal dir quin és el mínim nombre de passos per resoldre’l.
Entrada
L’entrada consisteix en dos naturals estrictament positius (i petits) n i m, seguits de n files amb m naturals cadascuna. Cada número entre 0 i n*m − 1 apareix exactament un cop; el zero marca la casella inicialment buida.
Sortida
Escriviu el mínim nombre de passos per resoldre el puzzle, seguint el format dels exemples. Si no hi ha cap solució possible, escriviu "no te solucio".
Input
3 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0
Output
te solucio en 0 passos
Input
1 6 1 2 3 4 0 5
Output
te solucio en 1 passos
Input
2 3 1 0 5 4 3 2
Output
te solucio en 6 passos
Input
2 2 1 3 2 0
Output
no te solucio
Input
3 3 1 5 2 8 7 6 3 4 0
Output
te solucio en 16 passos