#include <bits/stdc++.h>
using namespace std;
const long mod = 1000000007;
using namespace std;
void infect(int H, int W, int h, int w, vector<vector<bool>> &vec,
            bool infected) {
  if (h != 0 && vec.at(h - 1).at(w)) {
    vec.at(h).at(w) = false;
    infect(H, W, h - 1, w, vec, true);
  }
  if (w != 0 && vec.at(h).at(w - 1)) {
    vec.at(h).at(w) = false;
    infect(H, W, h, w - 1, vec, true);
  }
  if (h != H - 1 && vec.at(h + 1).at(w)) {
    vec.at(h).at(w) = false;
    infect(H, W, h + 1, w, vec, true);
  }
  if (w != W - 1 && vec.at(h).at(w + 1)) {
    vec.at(h).at(w) = false;
    infect(H, W, h, w + 1, vec, true);
  }
  if (infected) {
    vec.at(h).at(w) = false;
  }
  if (vec.at(h).at(w)) {
    cout << "No" << endl;
    exit(0);
  }
}
int main() {
  int H, W;
  cin >> H >> W;
  vector<vector<bool>> vec;
  vec = vector<vector<bool>>(H, vector<bool>(W, false));
  for (int i = 0; i < H; i++) {
    string test_s;
    cin >> test_s;
    for (int j = 0; j < W; j++) {
      if (test_s.at(j) == '#') {
        vec.at(i).at(j) = true;
      }
    }
  }
  for (int h = 0; h < H; h++) {
    for (int w = 0; w < W; w++) {
      infect(H, W, h, w, vec, false);
    }
  }
  cout << "Yes" << endl;
}
