#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  cin >> H >> W;
  vector<vector<char>> pic(H, vector<char>(W));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      cin >> pic.at(i).at(j);
    }
  }
  bool can1 = true;
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      bool can2 = false;
      if (pic.at(i).at(j) == '.') {
        can2 = true;
      }
      if (pic.at(i).at(j) == '#') {
        for (int dx = -1; dx <= 1; dx += 2) {
          int nx = i + dx;
          if (0 <= nx && nx < H) {
            if (pic.at(nx).at(j) == '#') can2 = true;
          }
        }
        for (int dy = -1; dy <= 1; dy += 2) {
          int ny = j + dy;
          if (0 <= ny && ny < H) {
            if (pic.at(i).at(ny) == '#') can2 = true;
          }
        }
      }
      if (!can2) {
        can1 = false;
        break;
      }
    }
    if (!can1) break;
  }
  if (can1) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
}
