#include <bits/stdc++.h>
const int INF = 1e9;
const long long LLINF = 1e18;
using namespace std;
int dy[] = {0, 1, 0, -1};
int dx[] = {1, 0, -1, 0};
int dy8[] = {0, 1, 1, 1, 0, -1, -1, -1};
int dx8[] = {1, 1, 0, -1, -1, -1, 0, 1};
int H, W;
string second[55];
int main() {
  cin >> H >> W;
  for (int i = 0; i < H; i++) {
    cin >> second[i];
  }
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      bool f = false;
      if (second[i][j] == '.') {
        bool f = true;
        break;
      }
      for (int k = 0; k < 4; k++) {
        int ny = i + dy[k];
        int nx = j + dx[k];
        if (!(0 <= ny && ny < H) || !(0 <= nx && nx < W)) {
          continue;
        }
        if (second[ny][nx] == '#') {
          f = true;
        }
      }
      if (!f) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
