#include <bits/stdc++.h>
using ll = long long;
template <class T, class S>
void cmin(T &a, const S &b) {
  if (a > b) a = b;
}
template <class T, class S>
void cmax(T &a, const S &b) {
  if (a < b) a = b;
}
using namespace std;
signed main() {
  int w, h;
  cin >> h >> w;
  vector<string> v(h);
  for (int i = 0; i < h; i++) cin >> v[i];
  int dx[] = {0, 0, -1, 1};
  int dy[] = {1 - 1, 0, 0};
  bool flag = true;
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) {
      if (v[i][j] != '#') continue;
      bool temp = false;
      for (int k = 0; k < 4; k++) {
        int x = j + dx[k];
        int y = i + dy[k];
        if (0 <= x && x < w && 0 <= y && y < h) {
          if (v[i][j] == '#') temp = true;
        }
      }
      if (temp == false) flag = false;
    }
  if (flag)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
