なつめの住んでいる街の上に浮かんでいる雲には、天使が住んでいる。その天使はなつめと同じくねこ好きで、しばしばねこと遊びに地上に降りてくる。地上に降りるために、天使は雲から地上へ繋がる長い長い階段を作った。しかし、毎回毎回ただ降りていくだけではつまらないと思った天使は、階段に細工をして、段を踏むと音が出るようにした。これを使って、音楽を奏でながら降りていくのだ。
音楽は12種類の音を使って奏でるものである。今回、音のオクターブは無視することにして、 C, C#, D, D#, E, F, F#, G, G#, A, A#, B の12種類のみを考える。隣りあう音同士の差を半音と呼ぶ。たとえば、Cを半音上げるとC#、C#を半音上げるとDとなる。逆に、Gを半音下げるとF#、 F#を半音下げるとFとなる。なお、Eを半音上げるとF、Bを半音上げるとCになることに注意してほしい。
階段から音が出る仕組みは次のようになっている。まず、階段は空中に浮かぶ n 枚の白い板からなっている。雲から数えて 1~n 段目の板には、それぞれに12音のどれかが割り振られている。これを Ti (i = 1 ... n) と書くことにする。また簡単のために、雲は0段目、地上は n+1 段目と考える (ただしこれらには音階は割り当てられていない) 。天使が k (k = 0 ... n) 段目にいるとき、次はk-1, k+1, k+2 段のうち存在するもののどれかに行くことができる。ただし、n+1 段目 (地上) に降りた後は動くことはできず、0段目 (雲) を離れた後はそこに戻ることはできない。それぞれの動き方をしたとき、次のようなルールで音が鳴る。
階段の情報 T1 ... Tn と、天使が奏でたい曲 S1 ... Sm が与えられる。このとき、奏でたい曲の前、途中、後で別の音を鳴らしてはならない。天使がこの曲を奏でて雲から地上へ降りられるかどうか判定せよ。
入力の1行目には、階段の段数 n と天使が奏でたい曲の長さ m が与えられる。2行目は階段の情報であり、T1, T2, ..., Tn がこの順で与えられる。3行目は天使が奏でたい曲であり、S1, S2, ..., Sm がこの順で与えられる。これらは全て1つの空白文字で区切られており、1 <= n, m <= 50000を満たす。
天使が与えられた曲を奏でながら地上に降りられるなら"Yes"、そうでなければ"No"を1行に出力せよ。
6 4 C E D# F G A C E F G
6 4 C E D# F G A C D# F G
3 6 C D D D# B D B D# C#
8 8 C B B B B B F F C B B B B B B B
Yes
No
Yes
No