#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  cin >> H >> W;
  vector<string> glid(H);
  for (int h = 0; h < H; h++) {
    cin >> glid[h];
  }
  bool ok = true;
  for (int h = 0; h < H; h++) {
    for (int w = 0; w < w; w++) {
      if (glid[h][w] == '.') continue;
      bool pok = false;
      if (w > 0) {
        if (glid[h][w - 1] == '#') pok = true;
      }
      if (w < W - 1) {
        if (glid[h][w + 1] == '#') pok = true;
      }
      if (h > 0) {
        if (glid[h - 1][w] == '#') pok = true;
      }
      if (h < H - 1) {
        if (glid[h + 1][w] == '#') pok = true;
      }
      if (!pok) ok = false;
    }
    if (!ok) break;
  }
  cout << (ok ? "Yes" : "No") << endl;
}
