Jaemin đã phát triển một ứng dụng trò chơi giải đố.
Một quả bóng được đặt tại một ô trong lưới. Bạn có thể lăn bóng lên trên, xuống dưới, sang trái hoặc sang phải. Bóng lăn theo hướng đó cho đến khi chạm tường hoặc biên. Một số ô có ngôi sao, và người chơi thu được ngôi sao khi bóng dừng tại ô đó hoặc đi qua ô đó. Mục tiêu của trò chơi là thu được tất cả các ngôi sao trong lưới.
Ứng dụng này có trình chỉnh sửa màn chơi, cho phép người chơi tạo và chia sẻ các màn chơi của mình. Một ngày nọ, có người đề xuất: “Hãy thêm tính năng kiểm tra xem màn chơi của tôi có giải được hay không!”. Nói thì dễ hơn làm, phải không?
Dữ liệu vào
Dòng đầu tiên của dữ liệu vào chứa hai số nguyên $H$ (chiều cao) và $W$ (chiều rộng). ($1 \leq H, W \leq 50$) Mỗi dòng trong $H$ dòng tiếp theo chứa một xâu có độ dài $W$, mô tả một hàng của lưới. “#” biểu thị tường, “.” biểu thị ô trống, “O” biểu thị bóng và “*” biểu thị ngôi sao. Trong lưới có đúng một quả bóng và ít nhất một ngôi sao.
Dữ liệu ra
In “YES” nếu có thể thu được tất cả các ngôi sao; ngược lại, in “NO”.
Ví dụ
Dữ liệu vào 1
3 7 #..O..# #.###.# *..#..*
Dữ liệu ra 1
NO
Dữ liệu vào 2
6 6 *..*## ..O... *..*#. ####*. ...... .....#
Dữ liệu ra 2
YES