#include <bits/stdc++.h>
using namespace std;
int di[4] = {-1, 0, 1, 0};
int dj[4] = {0, 1, 0, -1};
int main(int argc, const char* argv[]) {
  int n, m;
  cin >> n >> m;
  vector<string> map;
  for (int i = 0; i < m; i++) {
    string temp;
    cin >> temp;
    map.push_back(temp);
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (map[i][j] == '#') {
        bool hantei_d = false;
        for (int k = 0; k < 4; k++) {
          int x = i + di[k];
          int y = j + dj[k];
          if (x >= 0 && y >= 0 && x < n && y < m && map[x][y] == '#') {
            hantei_d = true;
            break;
          }
        }
        if (hantei_d == false) {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
