#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, w;
  cin >> h >> w;
  vector<vector<string>> table(h, vector<string>(w));
  for (int i = 0; i < int(h); i++)
    for (int j = 0; j < int(w); j++) cin >> table[i][j];
  bool possible = true;
  for (int i = 0; i < int(h); i++) {
    for (int j = 0; j < int(w); j++) {
      if (table[i][j] == "#") {
        int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
        int cnt = 0;
        for (int k = 0; k < int(4); k++) {
          int nx = i + dx[k], ny = j + dy[k];
          if (0 <= nx && nx <= h - 1 && 0 <= ny && ny <= w - 1 &&
              table[nx][ny] == "#")
            cnt++;
        }
        if (cnt == 0) possible = false;
      }
      if (!possible) break;
    }
    if (!possible) break;
  }
  if (possible)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
