#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T &a, const T &b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const int dx[4] = {1, 0, 0, -1};
const int dy[4] = {0, 1, -1, 0};
int main() {
  int h, w;
  cin >> h >> w;
  vector<vector<char>> s(h, vector<char>(w));
  for (int i = (int)(0); i < (int)(h); i++)
    for (int j = (int)(0); j < (int)(w); j++) cin >> s[i][j];
  for (int i = (int)(0); i < (int)(h); i++) {
    for (int j = (int)(0); j < (int)(w); j++) {
      if (s[i][j] == '.') continue;
      bool can = false;
      for (int k = (int)(0); k < (int)(4); k++) {
        int x = i + dx[k];
        int y = j + dy[k];
        if (0 <= x && x <= w - 1 && 0 <= y && y <= h - 1) {
          if (s[x][y] == '#') {
            can = true;
            break;
          }
        }
      }
      if (can)
        continue;
      else {
        puts("No");
        return 0;
      }
    }
  }
  puts("Yes");
}
