#include <bits/stdc++.h>
using namespace std;
bool judge(vector<vector<char>> &mat, int &h, int &w) {
  if (h == 0) {
    return false;
  }
  bool bflag = false;
  vector<bool> line_bflag(w);
  for (int j = 0; j < w; j++) {
    line_bflag[j] = false;
  }
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (mat[i][j] == '#') {
        if (!bflag && (j == w - 1 || mat[i][j + 1] == '.') && !line_bflag[j] &&
            (i == h - 1 || mat[i + 1][j] == '.')) {
          return false;
        }
        bflag = true;
        line_bflag[j] = true;
      } else {
        bflag = false;
        line_bflag[j] = false;
      }
    }
    bflag = false;
  }
  return true;
}
int main() {
  int h, w;
  cin >> h >> w;
  vector<vector<char>> mat;
  char s;
  for (int i = 0; i < h; i++) {
    vector<char> line;
    for (int j = 0; j < w; j++) {
      cin >> s;
      line.push_back(s);
    }
    mat.push_back(line);
  }
  if (judge(mat, h, w)) {
    printf("Yes\n");
  } else {
    printf("NO\n");
  }
  return 0;
}
