#include <bits/stdc++.h>
using namespace std;
int main() {
  int x, y;
  char t;
  cin >> x >> y;
  vector<vector<char> > g(x, vector<char>(y, '.'));
  auto ans = g;
  for (int i = 0; i < x; i++) {
    for (int j = 0; j < y; j++) {
      cin >> g[i][j];
    }
  }
  for (int i = 0; i < x; i++) {
    for (int j = 0; j < y - 2; j++) {
      if (!(g[i][j] == '.' && g[i][j + 1] == '#' && g[i][j + 2] == '.') &&
          !(g[i][j] == '#' && g[i][j + 1] == '.' && g[i][j + 2] == '#')) {
        ans[i][j] = g[i][j];
        ans[i][j + 1] = g[i][j + 1];
        ans[i][j + 2] = g[i][j + 2];
      }
    }
  }
  for (int i = 0; i < y; i++) {
    for (int j = 0; j < x - 2; j++) {
      if (!(g[j][i] == '.' && g[j + 1][i] == '#' && g[j + 2][i] == '.') &&
          !(g[j][i] == '#' && g[j + 1][i] == '.' && g[j + 2][i] == '#')) {
        ans[j][i] = g[j][i];
        ans[j + 1][i] = g[j + 1][i];
        ans[j + 2][i] = g[j + 2][i];
      }
    }
  }
  if (ans == g)
    cout << "Yes";
  else
    cout << "No";
  system("pause");
  return 0;
}
