#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<int>;
using vl = vector<ll>;
using Graph = vector<vi>;
using P = pair<int, int>;
const int MOD = 1e9 + 7;
const double EPS = 1e-9;
void solve() {
  int H, W;
  cin >> H >> W;
  vector<string> G(H + 2, "..");
  for (int i = 0; i < (int)(W); ++i) G[0].push_back('.');
  for (int i = 0; i < (int)(W); ++i) G[W + 1].push_back('.');
  string s;
  for (int i = 0; i < (int)(H); ++i) {
    cin >> s;
    G[i + 1].insert(1, s);
  }
  for (int i = 1; i <= H; ++i) {
    for (int j = 1; j <= W; ++j) {
      if (G[i][j] == '.') continue;
      if (G[i - 1][j] == '#') continue;
      if (G[i + 1][j] == '#') continue;
      if (G[i][j - 1] == '#') continue;
      if (G[i][j + 1] == '#') continue;
      cout << "No\n";
      return;
    }
  }
  cout << "Yes\n";
  return;
}
int main() {
  solve();
  return 0;
}
