#include <bits/stdc++.h>
using namespace std;
int h, w;
vector<string> s;
int main() {
  cin >> h >> w;
  s.resize(h);
  for (int i = 0; i < h; i++) cin >> s.at(i);
  vector<vector<int>> c(h, vector<int>(w, 0));
  int dx[8] = {1, 0, -1, 0, 1, 1, -1, -1};
  int dy[8] = {0, 1, 0, -1, 1, -1, 1, -1};
  bool flag = true;
  for (int x = 0; x < h; ++x) {
    for (int y = 0; y < w && flag; ++y) {
      if (s.at(x).at(y) == '#') {
        for (int dir = 0; dir < 8 && flag; ++dir) {
          int nx = x + dx[dir];
          int ny = y + dy[dir];
          if (nx < 0 || ny < 0 || nx >= h || ny >= w) continue;
          if (s.at(nx).at(ny) == '#') break;
          if (dir == 7) {
            flag = false;
            break;
          }
        }
      }
    }
  }
  if (flag)
    cout << "Yes";
  else
    cout << "No";
  cout << endl;
}
