#include <bits/stdc++.h>
using namespace std;
int hy[] = {0, 1, 0, -1};
int wx[] = {1, 0, -1, 0};
int H, W;
bool closed(int x, int y) {
  bool flag = true;
  if (x < 0 || W <= x) flag = false;
  if (y < 0 || H <= y) flag = false;
  return flag;
}
int main() {
  cin >> H >> W;
  char s[H][W];
  for (int i = 0; i < H; i++)
    for (int j = 0; j < W; j++) cin >> s[i][j];
  bool flag;
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (s[i][j] == '.') continue;
      flag = false;
      for (int k = 0; k < 4; k++) {
        if (closed(j + wx[k], i + hy[k])) {
          if (s[i + hy[k]][j + wx[k]] == '#') flag = true;
        }
      }
    }
    if (!flag) {
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
  return 0;
}
