你喺閣樓一箱舊玩具入面搵到一個古怪嘅益智玩具。呢個玩具係一塊由 $h \times w$ 個正方形格仔組成嘅長方形棋盤。有啲格仔放咗彩色方塊,如圖 F.1 所示。
圖 F.1:彩色方塊對應樣例輸入 1 嘅起始排列。
你仲未肯定呢個玩具確實要達成咩目標,不過已經開始研究可以點樣重新排列方塊。你可以將棋盤向四個主要方向之一傾斜嚟改變排列:向左、向右、向住自己,或者背住自己。傾斜會令所有方塊沿住相應方向滑動,直到畀邊界或者另一個方塊擋住。畀定起始同結束排列,判斷有冇一連串傾斜操作可以將前者變成後者。圖 F.2 展示樣例輸入 1 入面嘅玩具點樣傾斜。
圖 F.2:樣例輸入 1 嘅解法。
輸入格式
輸入第一行有兩個整數 $h$ 同 $w$($1 \le h,w \le 500$),代表棋盤嘅高度同闊度。跟住有 $h$ 行,由頂行到最底行畀出起始排列。每行有一個長度為 $w$ 嘅字串,由左至右描述嗰行嘅格仔。如果格仔係空嘅,對應字元就係點號(.);如果有方塊,就用小寫字母(a-z)表示佢嘅顏色。唔同字母代表唔同顏色,同色方塊冇辦法分辨。
起始排列之後有一個空行,再跟住結束排列嘅描述,共 $h$ 行,格式同起始排列一樣。
輸出格式
如果有一連串傾斜操作可以將起始排列變成結束排列,就輸出 yes;否則輸出 no。
樣例
輸入格式 1
4 4 .r.. rgyb .b.. .yr. yrbr ..yr ...g ...b
輸出格式 1
yes
輸入格式 2
1 7 ....x.. ..x....
輸出格式 2
no
輸入格式 3
4 3 yr. ..b ry. b.. ... ..b .ry byb
輸出格式 3
no