#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, w;
  int count = 0;
  vector<int> dx = {0, 1, 0, -1};
  vector<int> dy = {1, 0, -1, 0};
  cin >> h >> w;
  vector<string> s(h);
  for (int i = h - 1; i >= 0; i--) cin >> s.at(i);
  vector<vector<int>> map(h, vector<int>(w, 0));
  bool can = false;
  bool can2 = true;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (s.at(i).at(j) == '#') {
        bool tmp = true;
        for (int k = 0; k < 4; k++) {
          if (i + dy.at(k) < h && i + dy.at(k) >= 0 && j + dx.at(k) < w &&
              j + dx.at(k) >= 0) {
            if (s.at(i + dy.at(k)).at(j + dx.at(k)) == '#')
              can = true;
            else
              tmp = false;
          }
        }
        if (tmp == false && can == false) can2 = false;
      }
    }
  }
  if (can == true && can2 == true)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
