#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2>
inline bool chmin(T1 &a, T2 b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename T1, typename T2>
inline bool chmax(T1 &a, T2 b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename T>
T gcd(T a, T b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int H, W;
char s[100][100];
int flag[100][100];
int main() {
  cin >> H >> W;
  memset(flag, 0, sizeof flag);
  for (int i = 0; i < (int)(H); i++)
    for (int j = 0; j < (int)(W); j++) cin >> s[i][j];
  int c = 0;
  for (int i = 0; i < (int)(H); i++) {
    for (int j = 0; j < (int)(W); j++) {
      if (s[i][j] == '#') {
        if (i > 0 && s[i - 1][j] == '#') continue;
        if (i < H - 1 && s[i + 1][j] == '#') continue;
        if (j > 0 && s[i][j - 1] == '#') continue;
        if (j < W && s[i][j + 1] == '#') continue;
        cout << "No" << endl;
      }
    }
  }
  cout << "Yes" << endl;
}
