#include <bits/stdc++.h>
using namespace std;
int h, w;
bool flag = true;
vector<vector<char>> field;
void check(int x, int y);
int main() {
  cin >> h >> w;
  field.resize(h, vector<char>(w));
  for (int i = 0; i < h; i++) {
    string str;
    cin >> str;
    for (int j = 0; j < w; j++) field.at(i).at(j) = str.at(j);
  }
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++)
      if (field.at(i).at(j) == '#') check(i, j);
  if (flag)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
void check(int x, int y) {
  vector<int> dx(4), dy(4);
  dx.at(0) = dx.at(1) = dy.at(2) = dy.at(3) = 0;
  dx.at(2) = dy.at(0) = 1;
  dx.at(3) = dy.at(1) = -1;
  bool temp = false;
  for (int i = 0; i < 4; i++)
    if (0 <= x + dx.at(i) && x + dx.at(i) < h && 0 <= y + dy.at(i) &&
        y + dy.at(i) < w && field.at(x + dx.at(i)).at(y + dy.at(i)) == '#')
      temp = true;
  flag = temp;
}
