Jaemin はパズルゲームのアプリを開発しました。
格子のあるマスにボールが置かれています。ボールを上、下、左、右のいずれかに転がすことができます。ボールは壁または境界にぶつかるまで、その方向に転がり続けます。いくつかのマスには星があり、ボールがそのマスに止まるか通過すると、プレイヤーはその星を獲得します。ゲームの目的は、格子内のすべての星を獲得することです。
このアプリには、プレイヤーが自分でステージを作成して共有できるステージエディタがあります。ある日、誰かが「自分のステージをクリアできるか確認する機能を追加してください!」と提案しました。言うは易く行うは難し、ですよね?
入力
入力の最初の行には、2 つの整数 $H$(高さ)と $W$(幅)が与えられます。($1 \leq H, W \leq 50$) 続く $H$ 行にはそれぞれ長さ $W$ の文字列が与えられ、格子の各行を表します。「#」は壁、「.」は空きマス、「O」はボール、「*」は星を表します。格子にはボールがちょうど 1 個あり、星が少なくとも 1 個あります。
出力
すべての星を獲得できる場合は「YES」を、そうでない場合は「NO」を出力してください。
入出力例
入力 1
3 7 #..O..# #.###.# *..#..*
出力 1
NO
入力 2
6 6 *..*## ..O... *..*#. ####*. ...... .....#
出力 2
YES