#include <bits/stdc++.h>
using namespace std;
const long long LINF = 1001002003004005006ll;
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int h, w;
char c[55][55];
int main() {
  cin >> h >> w;
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) cin >> c[i][j];
  bool a = true, painted[55][55] = {};
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (c[i][j] == '.' || painted[i][j]) continue;
      bool minia = false;
      for (int k = 0; k < 4; k++) {
        int nx = i + dx[k], ny = j + dy[k];
        if (nx < h && nx >= 0 && ny < w && ny >= 0) {
          if (c[nx][ny] == '#') {
            minia = true;
            painted[nx][ny] = true;
          }
        }
      }
      if (!minia) a = false;
      break;
    }
    if (!a) break;
  }
  cout << (a ? "Yes" : "No") << endl;
  return 0;
}
