#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007LL;
const long long INF = 1LL << 60;
using vll = vector<long long>;
using vb = vector<bool>;
using vvb = vector<vb>;
using vvll = vector<vll>;
using vstr = vector<string>;
using pair<long long, long long> = pair<long long, long long>;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
int q[4] = {0, 1, -1, 0};
int w[4] = {1, 0, 0, -1};
int main() {
  long long h, w;
  cin >> h >> w;
  vector<vector<char>> t(h + 2, vector<char>(w + 2, '.'));
  for (int i = 1; i < h + 1; i++) {
    for (int j = 1; j <= w; j++) {
      char a;
      cin >> a;
      t[i][j] = a;
    }
  }
  for (int i = 1; i < h + 1; i++) {
    for (int j = 1; j <= w; j++) {
      if (t[i][j] == '#') {
        long long cu = 1;
        for (long long u = 0; u < (4); u++) {
          int nx = i + q[u];
          int ny = j + q[u];
          if (t[nx][ny] == '#') {
            cu = 0;
          }
        }
        if (cu) {
          cout << ("No") << endl;
          return 0;
        }
      }
    }
  }
  cout << ("Yes") << endl;
}
