Grid Pattern Stamping Verification
Thợ thiết kế Bảo đang tạo một hoa văn trên một tấm bảng kích thước $n × m$. Ban đầu, toàn bộ tấm bảng đều trống. Bảo sử dụng một khuôn in đặc biệt kích thước $3 × 3$ không có ô ở giữa để in sơn lên tấm bảng. Cụ thể, hình dạng của khuôn in được mô tả như sau:
xxx
x.x
xxx
Mỗi lần sử dụng, Bảo chọn một vị trí sao cho khuôn in nằm hoàn toàn bên trong tấm bảng. Khi đó, $8$ ô xung quanh tâm khuôn in sẽ được phủ sơn, còn ô ở chính giữa tâm khuôn in không bị ảnh hưởng. Bảo có thể dùng khuôn in này nhiều lần ở các vị trí khác nhau, và các vết sơn có thể đè lên nhau.
Cho trước hoa văn mục tiêu trên tấm bảng $n × m$, hãy xác định xem Bảo có thể tạo ra đúng hoa văn đó hay không.
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên $n$ và $m$ ($3 ≤ n, m ≤ 1000$).
Tiếp theo là $n$ dòng, mỗi dòng chứa $m$ ký tự. Mỗi ký tự là . biểu thị ô trống, hoặc # biểu thị ô đã được phủ sơn.
Kết quả
In ra "YES" nếu Bảo có thể tạo ra hoa văn mục tiêu, ngược lại in ra "NO".
Có thể in các chữ cái ở dạng chữ hoa hoặc chữ thường.
Chấm điểm
Subtask 1 (30 points). $n, m ≤ 5$
Subtask 2 (70 points). $3 ≤ n, m ≤ 1000$
Ví dụ
Input
3 3
###
#.#
###
Output
YES
Ghi chú
Trong ví dụ trên, Bảo có thể đặt khuôn in có tâm tại vị trí $(2, 2)$ để tạo ra đúng hoa văn cần thiết.
Nộp bài
Đăng nhập để nộp bài.