#include <bits/stdc++.h>
using namespace std;
struct Order {
  bool operator()(pair<long, long> const& a, pair<long, long> const& b) const {
    return a.first > b.first || ((a.first == b.first) && (a.second > b.second));
  }
};
constexpr short dx[4] = {1, 0, -1, 0};
constexpr short dy[4] = {0, 1, 0, -1};
int main(void) {
  short H, W;
  cin >> H >> W;
  vector<string> s(H);
  for (long i = 0; i < (H); i++) cin >> s[i];
  for (long i = 0; i < (H); i++) {
    for (long j = 0; j < (W); j++) {
      if (s[i][j] == '#') {
        bool flg = false;
        for (long k = 0; k < (4); k++) {
          if (i + dx[k] >= 0 && i + dx[k] < W && j + dy[k] >= 0 &&
              j + dy[k] < H && s[j + dy[k]][i + dx[k]] == '#')
            flg = true;
        }
        if (!flg) {
          cout << "No" << endl;
          exit(0);
        }
      }
    }
  }
  cout << "Yes" << endl;
}
