#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int main() {
  int H, W;
  cin >> H >> W;
  char e[51][51] = {'.'};
  for (int i = 0; i < H; i++)
    for (int j = 0; j < W; j++) {
      cin >> e[i][j];
    }
  int dx[4] = {-1, 0, 1, 0};
  int dy[4] = {0, -1, 0, 1};
  bool ans = true;
  for (int i = 0; i < H; i++)
    for (int j = 0; j < W; j++) {
      if (e[i][j] == '#') {
        int ct = 0;
        for (int k = 0; k < 4; k++) {
          if (i + dy[k] < 0 || i + dy[k] >= H || j + dx[k] < 0 ||
              j + dx[k] >= W) {
            ct++;
          } else if (e[dx[k]][dy[k]] == '.') {
            ct++;
          }
        }
        if (ct == 4) ans = false;
      }
    }
  bool check = true;
  for (int i = 0; i < H; i++)
    for (int j = 0; j < W; j++) {
      if (e[i][j] == '.' && check)
        continue;
      else
        check = false;
    }
  if (check) ans = false;
  if (ans)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
