#include <bits/stdc++.h>
using namespace std;
const string YES = "Yes";
const string NO = "No";
void solve(long long H, long long W, std::vector<std::string> s) {
  bool ans = true;
  for (int i = 0; i < H; i++) {
    bool i_flg = true;
    for (int j = 0; j < W; j++) {
      if (s.at(i).at(j) == '.') {
        continue;
      } else {
        bool flg = false;
        if (i - 1 >= 0 && s.at(i - 1).at(j) == '#') {
          flg = true;
        }
        if (j - 1 >= 0 && s.at(i).at(j - 1) == '#') {
          flg = true;
        }
        if (i + 1 < H && s.at(i + 1).at(j) == '#') {
          flg = true;
        }
        if (j + 1 < W && s.at(i).at(j + 1) == '#') {
          flg = true;
        }
        if (flg) {
          continue;
        } else {
          i_flg = false;
          break;
        }
      }
    }
    if (i_flg) {
      continue;
    } else {
      ans = false;
      break;
    }
  }
  cout << (ans ? "Yes" : "No") << endl;
}
int main() {
  long long H;
  scanf("%lld", &H);
  long long W;
  scanf("%lld", &W);
  std::vector<std::string> s(W);
  for (int i = 0; i < W; i++) {
    std::cin >> s[i];
  }
  solve(H, W, std::move(s));
  return 0;
}
