#include <bits/stdc++.h>
using namespace std;
bool isorate(const vector<string>& grid, int cy, int cx) {
  pair<long long, long long> s[] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
  if (grid[cy][cx] == '.') return false;
  bool found = false;
  for (long long i = 0; i < 4; i++) {
    auto x = cx + s[i].first;
    auto y = cy + s[i].second;
    if (x >= 0 && x < grid[cy].size()) {
      if (y >= 0 && y < grid.size()) {
        if (grid[y][x]) {
          return false;
        }
      }
    }
  }
  return true;
}
int main(void) {
  int h, w;
  cin >> h >> w;
  vector<string> grid(h);
  for (long long i = 0; i < h; i++) cin >> grid[i];
  for (long long y = 0; y < h; y++) {
    for (long long x = 0; x < w; x++) {
      if (isorate(grid, y, x)) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
