Jaemin mengembangkan sebuah aplikasi permainan teka-teki.
Sebuah bola diletakkan pada salah satu petak dalam kisi. Kamu dapat menggelindingkan bola ke atas, ke bawah, ke kiri, atau ke kanan. Bola menggelinding ke arah tersebut sampai menabrak dinding atau batas kisi. Beberapa petak memiliki bintang, dan pemain mendapatkan bintang ketika bola berhenti pada petak itu atau melewatinya. Tujuan permainan ini adalah mendapatkan semua bintang di dalam kisi.
Aplikasi ini memiliki penyunting level yang memungkinkan pemain membuat dan membagikan level mereka sendiri. Suatu hari, seseorang menyarankan: “Tolong tambahkan fitur untuk memeriksa apakah level saya dapat diselesaikan!”. Lebih mudah diucapkan daripada dilakukan, bukan?
Masukan
Baris pertama masukan berisi dua bilangan bulat, $H$ (tinggi) dan $W$ (lebar). ($1 \leq H, W \leq 50$) Masing-masing dari $H$ baris berikutnya berisi sebuah string dengan panjang $W$ yang menggambarkan satu baris kisi. “#” berarti dinding, “.” berarti petak kosong, “O” berarti bola, dan “*” berarti bintang. Terdapat tepat satu bola dan setidaknya satu bintang di dalam kisi.
Keluaran
Cetak “YES” jika semua bintang dapat diperoleh; jika tidak, cetak “NO”.
Contoh
Masukan 1
3 7 #..O..# #.###.# *..#..*
Keluaran 1
NO
Masukan 2
6 6 *..*## ..O... *..*#. ####*. ...... .....#
Keluaran 2
YES