#include <iostream>
using namespace std;
const int N = 1015;
char map[N][N];
int n, m;
int dx[8] = {-1, 0, 1, 1, 1, 0, -1, -1}, dy[8] = {-1, -1, -1, 0, 1, 1, 1, 0};
bool test() {
for (int i = 1; i <= n ; i++)
for (int j = 1; j <= m ; j++)
if (map[i][j] == '#')
return false;
return true;
}
bool Try() {
for (int i = 2; i <= n - 1; i++)
for (int j = 2; j <= m - 1; j++)
for (int k = 0; k < 8; k++)
map[i + dy[k]][j + dx[k]] = '.';
return test();
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> map[i][j];
if (Try())
puts("YES ");
else
puts("NO ");
return 0;
}
求解为什么wa