#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, -1, 0, 0, 1, -1, 1, -1};
int dy[] = {0, 0, 1, -1, 1, -1, -1, 1};
int h, w;
char g[55][55];
bool judge(int x, int y) {
  if (x >= 0 && x < h && y >= 0 && y < w)
    return g[x][y] == '#';
  else
    return 0;
}
void solve() {
  cin >> h >> w;
  for (long long i = (0); i < (h); i++)
    for (long long j = (0); j < (w); j++) cin >> g[i][j];
  for (long long i = (0); i < (h); i++)
    for (long long j = (0); j < (w); j++) {
      bool f = 0;
      for (long long k = (0); k < (4); k++)
        if (g[i][j] == '#' && judge(i + dx[k], j + dy[k])) f = 1;
      if (f) continue;
      cout << "No" << endl;
      return;
    }
  cout << "Yes" << endl;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  solve();
  return 0;
}
