#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
const int MAX = 200005;
const int INF = 1001001001;
const int MOD = 1000000007;
int main() {
  int H, W;
  cin >> H >> W;
  vector<string> S(H);
  for (int y = 0; y < (H); ++y)
    for (int x = 0; x < (W); ++x) cin >> S[y][x];
  int dy[] = {-1, 0, 1, 0}, dx[] = {0, -1, 0, 1};
  for (int y = 0; y < (H); ++y)
    for (int x = 0; x < (W); ++x) {
      if (S[y][x] != '#') continue;
      bool res = false;
      for (int i = 0; i < (4); ++i) {
        int ny = y + dy[i], nx = x + dx[i];
        if (0 <= ny && ny < H && 0 <= nx && nx < W && S[ny][nx] == '#') {
          res = true;
        }
      }
      if (!res) {
        puts("No");
        return 0;
      }
    }
  puts("Yes");
}
