#include <bits/stdc++.h>
using namespace std;
char tile[50][50];
bool Solve(int, int);
int h, w;
int main() {
  cin >> h >> w;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) cin >> tile[i][j];
  }
  bool flag = true;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (tile[i][j] == '#') {
        flag = Solve(i, j);
      }
      if (flag == false) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
bool Solve(int y, int x) {
  for (int dy = -1; dy <= 1; dy++) {
    for (int dx = -1; dx <= 1; dx++) {
      if (x + dx < 0 || x + dx >= w || y + dy < 0 || y + dy >= h)
        continue;
      else if (dy == dx)
        continue;
      if (tile[y + dy][x + dx] == '#') {
        return true;
      }
    }
  }
  return false;
}
