#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<int, int>;
using Graph = vector<vector<int>>;
template <class t, class u>
void chmax(t& a, u b) {
  if (a < b) a = b;
}
template <class t, class u>
void chmin(t& a, u b) {
  if (b < a) a = b;
}
vector<bool> a(105, false);
int dx[] = {0, 1, -1, 0};
int dy[] = {1, 0, 0, -1};
int main() {
  bool flag = true;
  int h, w;
  cin >> h >> w;
  vector<vector<char>> c(h, vector<char>(w));
  for (int i = 0; i < (h); ++i)
    for (int j = 0; j < (w); ++j) cin >> c[i][j];
  for (int i = 0; i < (h); ++i)
    for (int j = 0; j < (w); ++j) {
      int cnt = 0;
      if (c[i][j] == '#') {
        for (int p = 0; p < 4; p++) {
          if (i + dx[p] >= w || i + dx[p] < 0 || j + dy[p] >= h ||
              j + dy[p] < 0)
            continue;
          if (c[j + dy[p]][i + dx[p]] == '#') cnt++;
        }
        if (cnt < 1) flag = false;
      }
    }
  cout << ((flag) ? "Yes" : "No") << endl;
}
