Vous avez trouvé un étrange casse-tête dans une boîte de vieux jouets au grenier. Il forme un plateau rectangulaire composé de $h \times w$ cases carrées. Certaines cases portent une tuile colorée, comme le montre la figure F.1.
Figure F.1 : Les tuiles colorées correspondent à la disposition initiale de l'entrée d'exemple 1.
Vous ne connaissez pas encore le but exact du casse-tête, mais vous avez commencé à étudier les façons de réorganiser les tuiles. On peut modifier leur disposition en inclinant le plateau dans l'une des quatre directions principales : vers votre gauche, vers votre droite, vers vous ou à l'opposé de vous. Toutes les tuiles glissent alors dans la direction correspondante jusqu'à être bloquées par le bord ou une autre tuile. Étant données une disposition initiale et une finale, déterminez s'il existe une suite d'inclinaisons transformant la première en la seconde. La figure F.2 illustre les inclinaisons du casse-tête de l'entrée d'exemple 1.
Figure F.2 : Solution de l'entrée d'exemple 1.
Entrée
La première ligne contient deux entiers $h$ et $w$ ($1 \le h,w \le 500$), représentant la hauteur et la largeur du plateau. Suivent $h$ lignes donnant la disposition initiale de la rangée du haut à celle du bas. Chacune contient une chaîne de longueur $w$ décrivant les cases de gauche à droite. Une case vide est représentée par un point (.). S'il y a une tuile, sa couleur est donnée par une lettre minuscule (a-z). Des lettres différentes représentent des couleurs différentes, et les tuiles de même couleur sont indiscernables.
Après la disposition initiale, il y a une ligne vide, puis la description de la disposition finale, composée de $h$ lignes dans le même format.
Sortie
Affichez yes s'il existe une suite d'inclinaisons transformant la disposition initiale en la disposition finale, et no sinon.
Exemples
Entrée 1
4 4 .r.. rgyb .b.. .yr. yrbr ..yr ...g ...b
Sortie 1
yes
Entrée 2
1 7 ....x.. ..x....
Sortie 2
no
Entrée 3
4 3 yr. ..b ry. b.. ... ..b .ry byb
Sortie 3
no