Du hast in einer Kiste mit altem Spielzeug auf dem Dachboden ein seltsames Rätsel gefunden. Es besteht aus einem rechteckigen Spielbrett mit $h \times w$ quadratischen Feldern. Auf manchen Feldern liegt eine farbige Kachel, wie Abbildung F.1 zeigt.
Abbildung F.1: Die farbigen Kacheln entsprechen der Startanordnung aus Beispieleingabe 1.
Du weißt noch nicht genau, was das Ziel dieses Rätsels ist, hast aber begonnen, mögliche Umordnungen der Kacheln zu untersuchen. Die Anordnung lässt sich ändern, indem du das Brett in eine der vier Hauptrichtungen kippst: nach links, nach rechts, zu dir hin oder von dir weg. Dabei rutschen alle Kacheln in die entsprechende Richtung, bis sie vom Rand oder einer anderen Kachel aufgehalten werden. Bestimme für eine gegebene Start- und Endanordnung, ob eine Folge von Kippbewegungen die erste in die zweite überführt. Abbildung F.2 zeigt das Kippen des Rätsels aus Beispieleingabe 1.
Abbildung F.2: Lösung zu Beispieleingabe 1.
Eingabe
Die erste Zeile enthält zwei ganze Zahlen $h$ und $w$ ($1 \le h,w \le 500$), die Höhe und Breite des Bretts angeben. Es folgen $h$ Zeilen mit der Startanordnung von der obersten bis zur untersten Reihe. Jede Zeile enthält eine Zeichenkette der Länge $w$, die die Felder von links nach rechts beschreibt. Ist ein Feld leer, steht dort ein Punkt (.). Liegt dort eine Kachel, wird ihre Farbe durch einen Kleinbuchstaben (a-z) angegeben. Verschiedene Buchstaben bezeichnen verschiedene Farben, und gleichfarbige Kacheln sind nicht unterscheidbar.
Nach der Startanordnung folgt eine Leerzeile und dann die Endanordnung, bestehend aus $h$ Zeilen im gleichen Format.
Ausgabe
Gib yes aus, wenn eine Folge von Kippbewegungen die Startanordnung in die Endanordnung überführt, andernfalls no.
Beispiele
Eingabe 1
4 4 .r.. rgyb .b.. .yr. yrbr ..yr ...g ...b
Ausgabe 1
yes
Eingabe 2
1 7 ....x.. ..x....
Ausgabe 2
no
Eingabe 3
4 3 yr. ..b ry. b.. ... ..b .ry byb
Ausgabe 3
no