#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int H = 0, W = 0;
  string res = "Yes";
  cin >> H >> W;
  char cam[50][50] = {};
  for (int j = 0; j < H; j++)
    for (int i = 0; i < W; i++) cin >> cam[j][i];
  int ci = 0, cj = 0;
  while (cj < H) {
    while (ci < W) {
      if (cam[cj][ci] == '#') {
        if (cj == 0 && ci == 0) {
          if (cam[cj + 1][ci] != '#' && cam[cj][ci + 1] != '#') {
            res = "No";
            break;
          }
        } else if (cj == H - 1 && ci == W - 1) {
          if (cam[cj - 1][ci] != '#' && cam[cj][ci - 1] != '#') {
            res = "No";
            break;
          }
        } else if (cj == 0 && ci == W - 1) {
          if (cam[cj + 1][ci] != '#' && cam[cj][ci - 1] != '#') {
            res = "No";
            break;
          }
        } else if (cj == H - 1 && ci == 0) {
          if (cam[cj - 1][ci] != '#' && cam[cj][ci + 1] != '#') {
            res = "No";
            break;
          }
        } else if (ci == 0) {
          if (cam[cj - 1][ci] != '#' && cam[cj + 1][ci] != '#' &&
              cam[cj][ci + 1] != '#') {
            res = "No";
            break;
          }
        } else if (ci == W - 1) {
          if (cam[cj - 1][ci] != '#' && cam[cj + 1][ci] != '#' &&
              cam[cj][ci - 1] != '#') {
            res = "No";
            break;
          }
        } else if (cj == 0) {
          if (cam[cj][ci - 1] != '#' && cam[cj][ci + 1] != '#' &&
              cam[cj + 1][ci] != '#') {
            res = "No";
            break;
          }
        } else if (cj == W - 1) {
          if (cam[cj][ci - 1] != '#' && cam[cj][ci + 1] != '#' &&
              cam[cj - 1][ci] != '#') {
            res = "No";
            break;
          }
        } else {
          if (cam[cj][ci - 1] != '#' && cam[cj][ci + 1] != '#' &&
              cam[cj - 1][ci] != '#' && cam[cj + 1][ci] != '#') {
            res = "No";
            break;
          }
        }
      }
      ci++;
    }
    cj++;
  }
  cout << res << endl;
  return 0;
}
