#include <bits/stdc++.h>
using namespace std;
bool isOK(char* grid[], int ii, int jj) {
  if (grid[ii][jj] == '.') {
    return true;
  }
  if (grid[ii][jj - 1] == '#') {
    return true;
  }
  if (grid[ii][jj + 1] == '#') {
    return true;
  }
  if (grid[ii + 1][jj] == '#') {
    return true;
  }
  if (grid[ii - 1][jj] == '#') {
    return true;
  }
  return false;
}
int main() {
  int h, w, ii, jj;
  string str;
  cin >> h;
  cin >> w;
  char** grid;
  for (ii = 0; ii <= h + 1; ii++) {
    grid[ii] = (char*)malloc(sizeof(char) * (w + 2));
    for (jj = 0; jj <= w + 1; jj++) {
      grid[ii][jj] = '.';
    }
  }
  for (ii = 1; ii <= h; ii++) {
    cin >> str;
    for (jj = 0; jj < w; jj++) {
      grid[ii][jj + 1] = str[jj];
    }
  }
  bool okFlg = true;
  for (ii = 1; ii <= h; ii++) {
    for (jj = 1; jj <= w; jj++) {
      if (isOK(grid, ii, jj) == false) {
        okFlg = false;
        break;
      }
    }
  }
  if (okFlg) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}
