#include <bits/stdc++.h>
using namespace std;
template <typename T>
void chmax(T &a, T b) {
  a = max(a, b);
};
template <typename T>
void chmin(T &a, T b) {
  a = min(a, b);
};
const int INF = 100000000;
const long long LINF = 10000000000000000;
const int MOD = 1000000007;
const int dx[9] = {0, 1, 0, -1, 1, 1, -1, -1, 0};
const int dy[9] = {1, 0, -1, 0, 1, -1, -1, 1, 0};
int H, W;
char m[52][52];
void solve() {
  for (int i = 0; i < (H + 2); i++) {
    m[i][0] = m[i][W] = '.';
  }
  for (int i = 0; i < (W + 2); i++) m[0][i] = m[H][i] = '.';
  for (int i = 1; i <= (H); i++) {
    for (int j = 1; j <= (W); j++) {
      if (m[i][j] == '#') {
        bool b = false;
        for (int k = 0; k < (4); k++) {
          if (m[i + dx[k]][j + dy[k]] == '#') {
            b = true;
            break;
          }
        }
        if (!b) {
          cout << "No" << endl;
          return;
        }
      }
    }
  }
  cout << "Yes" << endl;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> H >> W;
  for (int i = 1; i <= (H); i++) {
    for (int j = 1; j <= (W); j++) cin >> m[i][j];
  }
  solve();
  return 0;
}
