#include <bits/stdc++.h>
using namespace std;
char s[1005][1005];
int n, m;
bool vis[1005][1005];
bool bla;
bool ch1(int i, int j) {
  if (s[i + 1][j] == '#' && s[i + 2][j] == '#' && s[i][j + 1] == '#' &&
      s[i][j + 2] == '#' && s[i + 1][j + 2] == '#' && s[i + 2][j + 2] == '#' &&
      s[i + 2][j + 1] == '#')
    return 1;
  return 0;
}
bool ch2(int i, int j) {
  if (s[i][j - 1] == '#' && s[i][j + 1] == '#' && s[i + 1][j + 1] == '#' &&
      s[i + 1][j - 1] == '#' && s[i + 2][j] == '#' && s[i + 2][j + 1] == '#' &&
      s[i + 2][j - 1] == '#')
    return 1;
  return 0;
}
bool ch3(int i, int j) {
  if (s[i + 1][j] == '#' && s[i + 2][j] == '#' && s[i][j - 1] == '#' &&
      s[i][j - 2] == '#' && s[i + 1][j - 2] == '#' && s[i + 2][j - 2] == '#' &&
      s[i + 2][j - 1] == '#')
    return 1;
  return 0;
}
bool ch4(int i, int j) {
  if (s[i + 1][j] == '#' && s[i - 1][j] == '#' && s[i][j - 2] == '#' &&
      s[i - 1][j - 2] == '#' && s[i - 1][j - 1] == '#' &&
      s[i + 1][j - 2] == '#' && s[i + 1][j - 1] == '#')
    return 1;
  return 0;
}
bool ch5(int i, int j) {
  if (s[i - 1][j] == '#' && s[i - 2][j] == '#' && s[i][j - 1] == '#' &&
      s[i][j - 2] == '#' && s[i - 1][j - 2] == '#' && s[i - 2][j - 2] == '#' &&
      s[i - 2][j - 1] == '#')
    return 1;
  return 0;
}
bool ch6(int i, int j) {
  if (s[i][j + 1] == '#' && s[i][j - 1] == '#' && s[i - 1][j + 1] == '#' &&
      s[i - 1][j - 1] == '#' && s[i - 2][j + 1] == '#' && s[i - 2][j] == '#' &&
      s[i - 2][j - 1] == '#')
    return 1;
  return 0;
}
bool ch7(int i, int j) {
  if (s[i][j + 1] == '#' && s[i][j + 2] == '#' && s[i - 1][j] == '#' &&
      s[i - 1][j + 2] == '#' && s[i - 2][j + 2] == '#' &&
      s[i - 2][j + 1] == '#' && s[i - 2][j] == '#')
    return 1;
  return 0;
}
bool ch8(int i, int j) {
  if (s[i + 1][j] == '#' && s[i - 1][j] == '#' && s[i][j + 2] == '#' &&
      s[i - 1][j + 2] == '#' && s[i + 1][j + 2] == '#' &&
      s[i - 1][j + 1] == '#' && s[i + 1][j + 1] == '#')
    return 1;
  return 0;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cin >> s[i][j];
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (s[i][j] == '#') {
        bool p = 0;
        p = (ch1(i, j) | ch2(i, j) | ch3(i, j) | ch4(i, j) | ch5(i, j) |
             ch6(i, j) | ch7(i, j) | ch8(i, j));
        if (!p) bla = 1;
      }
    }
  }
  if (bla)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
