#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
using Graph = vector<vector<int>>;
using M = map<int, int>;
using PQ = priority_queue<int>;
using PQG = priority_queue<int, vector<int>, greater<int>>;
const int INF = 1e9;
const int MOD = 1e9 + 7;
const ll LINF = 1e18;
int main() {
  int h, w;
  cin >> h >> w;
  char g[w + 2][h + 2];
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) {
      cin >> g[i + 1][j + 1];
    }
  int ok = 1;
  for (int i = 1; i <= h; i++) {
    for (int j = 1; j <= w; j++) {
      if (g[i][j] != '#') continue;
      int c1 = g[i][j + 1] != '#';
      int c2 = g[i][j - 1] != '#';
      int c3 = g[i + 1][j] != '#';
      int c4 = g[i - 1][j] != '#';
      if (c1 && c2 && c3 && c4) ok = 0;
    }
  }
  cout << (ok ? "Yes" : "No") << endl;
  return 0;
}
