#include <iostream>
#include <vector>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
  int H, W;
  cin >> H >> W;
  vector<string> s(H);
  rep(i, H) cin >> s.at(i);

  vector<int> dx(8), dy(8);
  dx = {-1, -1, -1, 0, 0, 1, 1, 1};
  dy = {-1, 0, 1, -1, 1, -1, 0, 1};

  bool flag = true;
  rep(i, H) {
    rep(j, W) {
      if (s.at(i).at(j) == '#') {
        int cnt = 0;
        rep(k, 8) {
          int x = i + dx(k);
          int y = j + dy(k);
          if (x >= 0 && x < H && y >= 0 && y < W) {
            if (s.at(x).at(y) == '#') {
              ++cnt;
              break;
            }
          }
        }
        if (cnt == 0) {
          flag = false;
          break;
        }
      }
    }
    if (!(flag)) break;
  }
  if (flag) cout << "Yes" << endl;
  else cout << "No" << endl;
}
