#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  char l;
  cin >> H >> W;
  vector<vector<char>> grid(H + 2, vector<char>(W + 2));
  for (int i = 0; i <= W + 1; i++) grid.at(i).at(0) = '.';
  for (int i = 0; i <= W + 1; i++) grid.at(i).at(H + 1) = '.';
  for (int i = 0; i <= H + 1; i++) grid.at(0).at(i) = '.';
  for (int i = 0; i <= H + 1; i++) grid.at(W + 1).at(i) = '.';
  for (int i = 1; i <= H; i++) {
    for (int k = 1; k <= W; k++) {
      cin >> l;
      grid.at(i).at(k) = l;
    }
  }
  for (int i = 1; i <= H; i++) {
    for (int k = 1; k <= W; k++) {
      if (grid.at(i).at(k) == '#') {
        if (grid.at(i).at(k - 1) == '#' || grid.at(i).at(k + 1) == '#' ||
            grid.at(i + 1).at(k) == '#' || grid.at(i - 1).at(k) == '#') {
          continue;
        } else {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  }
  cout << "Yes" << endl;
}
