#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, w, flag;
  flag = 0;
  cin >> h >> w;
  char s[h][w];
  char check[h][w];
  for (int a = 1; a <= h; a++) {
    for (int b = 1; b <= w; b++) {
      cin >> s[a][b];
    }
  }
  for (int c = 1; c <= h; c++) {
    for (int d = 1; d <= w; d++) {
      if (s[c][d] == '#') {
        if (c == 1 && d == 1) {
          if (s[1][2] != '#' && s[2][1] != '#') {
            flag = 1;
          }
        } else if (c == 1 && d != 1 && d != w) {
          if (s[1][d - 1] != '#' && s[2][d] != '#' && s[1][d + 1] != '#') {
            flag = 1;
          }
        } else if (c == 1 && d == w) {
          if (s[1][d - 1] != '#' && s[2][d] != '#') {
            flag = 1;
          }
        } else if (c != 1 && c != h && d == 1) {
          if (s[c - 1][d] != '#' && s[c][d + 1] != '#' && s[c + 1][d] != '#') {
            flag = 1;
          }
        } else if (c != 1 && c != h && d == w) {
          if (s[c - 1][d] != '#' && s[c][d - 1] != '#' && s[c + 1][d] != '#') {
            flag = 1;
          }
        } else if (c == h && d == 1) {
          if (s[h - 1][1] != '#' && s[h][2] != '#') {
            flag = 1;
          }
        } else if (c == h && d != 1 && d != w) {
          if (s[c][d - 1] != '#' && s[c - 1][d] != '#' && s[c][d + 1] != '#') {
            flag = 1;
          }
        } else if (c == h && d == w) {
          if (s[h - 1][w] != '#' && s[h][w - 1] != '#') {
            flag = 1;
          }
        } else {
          if (s[h - 1][d] != '#' && s[h][d - 1] != '#' && s[h + 1][d] != '#' &&
              s[h][d + 1] != '#') {
            flag = 1;
          }
        }
      }
    }
  }
  if (flag == 0) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  return 0;
}
