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.

Giới hạn

Thời gian 2.0s
Bộ nhớ 256MB
Tổng điểm 100.0