#include <bits/stdc++.h>
using namespace std;
using vc = vector<char>;
using vvc = vector<vc>;
void yorn(bool a) {
  if (a)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
int main() {
  int h, w;
  cin >> h >> w;
  vvc g(h + 2, vc(w + 2, '.'));
  for (int i = 1; i <= h; i++)
    for (int j = 1; j <= w; j++) cin >> g.at(i).at(j);
  bool ok = 0;
  for (int i = 1; i <= h; i++) {
    for (int j = 1; j <= w; j++) {
      if (g.at(i).at(j) == '#') {
        if (g.at(i + 1).at(j) == '#' || g.at(i - 1).at(j) == '#' ||
            g.at(i).at(j + 1) == '#' || g.at(i).at(j - 1) == '#') {
          continue;
        } else {
          ok = false;
        }
      }
    }
  }
  yorn(ok);
}
