#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, w;
  cin >> h >> w;
  vector<string> a(h);
  for (int i = 0; i < h; i++) {
    cin >> a[i];
  }
  bool colour = true;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (i == 0 && j == 0 && a[i][j] == '#') {
        if (a[0][1] == '.' && a[1][0] == '.') colour = false;
      }
      if (i == 0 && j != 0 && a[i][j] == '#') {
        if (a[0][j - 1] == '.' && a[0][j + 1] == '.' && a[1][j] == '.')
          colour = false;
      }
      if (i == 0 && j == w - 1 && a[i][j] == '#') {
        if (a[0][j - 1] == '.' && a[1][j] == '.') colour = false;
      }
      if (i != 0 && i != h && j != 0 && j != w - 1 == '.') {
        if (a[i - 1][j] == '.' && a[i][j - 1] == '.' && a[i][j - 1] == '.' &&
            a[i + 1][j] == '.')
          colour = false;
      }
      if (i != 0 && j == 0 && a[i][j] == '#') {
        if (a[i][j + 1] == '.' && a[i - 1][j] == '.' && a[i + 1][j] == '.')
          colour = false;
      }
      if (1 != 0 && j == w - 1 && a[i][j] == '#') {
        if (a[i][j - 1] == '.' && a[i - 1][j] == '.' && a[i + 1][j] == '.')
          colour = false;
      }
      if (i == h - 1 && j == 0 && a[i][j] == '#') {
        if (a[i][j + 1] == '.' && a[i - 1][j] == '.') colour = false;
      }
      if (i == h - 1 && j != 0 && a[i][j] == '#') {
        if (a[i][j - 1] == '.' && a[i][j + 1] == '.' && a[i - 1][j] == '.')
          colour = false;
      }
      if (i == h - 1 && j == w - 1 && a[i][j] == '#') {
        if (a[i][j - 1] == '.' && a[i - 1][j] == '.') colour = false;
      }
    }
  }
  colour ? cout << "Yes" : cout << "No";
  cout << endl;
}
