#include <bits/stdc++.h>
using namespace std;
int main(int argc, const char* argv[]) {
  int H, W;
  cin >> H >> W;
  vector<string> v(H), V(H);
  string s0, s1 = "";
  for (int i = 0; i < W; i++) {
    s1 += '.';
  }
  for (int i = 0; i < H; i++) {
    cin >> s0;
    v[i] = s0;
    V[i] = s1;
  }
  int dy[4] = {0, -1, 1, 0};
  int dx[4] = {-1, 0, 0, 1};
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      int cnt = 0;
      for (int k = 0; k < 4 && cnt < 2; k++) {
        if (i + dy[k] < H && j + dx[k] < W && i + dy[k] >= 0 &&
            j + dx[k] >= 0) {
          if (v[i + dy[k]][j + dx[k]] == '#') {
            V[i + dy[k]][j + dx[k]] = '#';
            cnt++;
          }
        }
      }
    }
  }
  bool flag = true;
  for (int i = 0; i < H && flag; i++) {
    if (v[i] != V[i]) {
      flag = false;
    }
  }
  if (flag) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}
