#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, w;
  vector<string> s;
  cin >> h >> w;
  string tmp;
  for (long long i = 0; i < w + 2; i++) {
    tmp = tmp + ".";
  }
  s.push_back(tmp);
  for (long long i = 0; i < h; i++) {
    string tmp;
    cin >> tmp;
    s.push_back("." + tmp + ".");
  }
  tmp = "";
  for (long long i = 0; i < w + 2; i++) {
    tmp = tmp + ".";
  }
  s.push_back(tmp);
  bool check = false;
  bool ans = true;
  for (long long i = 0; i < h; i++) {
    for (long long j = 0; j < w; j++) {
      if (s[i + 1][j + 1] == '#') {
        bool check = false;
        for (long long k = 0; k < 4; k++) {
          if (s[i + 1 + round(sin(0.5 * k * (acos(-1.0))))]
               [j + 1 + round(cos(0.5 * k * (acos(-1.0))))] == '#') {
            check = true;
            break;
          }
        }
        if (!check) {
          ans = false;
          break;
        }
      }
    }
    if (!check) {
      break;
    }
  }
  if (ans) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}
