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