#include <bits/stdc++.h>
using namespace std;
long long srch_around(vector<vector<int> > tile, int h, int w) {
  if (tile[h][w + 1] == '#' || tile[h][w - 1] == '#' || tile[h + 1][w] == '#' ||
      tile[h - 1][w] == '#')
    return 1;
  else
    return 0;
}
int main() {
  int H, W;
  cin >> H >> W;
  vector<vector<int> > tile(H + 2, vector<int>(W + 2, '.'));
  for (int i = 1; i <= H; i++) {
    for (int j = 1; j <= W; j++) {
      cin >> tile[i][j];
    }
  }
  bool flag = true;
  for (int i = 1; i <= H; i++) {
    for (int j = 1; j <= W; j++) {
      if (srch_around(tile, i, j) == 0) flag = false;
    }
  }
  if (flag)
    cout << "Yes";
  else
    "No";
  return 0;
}
