#include <bits/stdc++.h>
using namespace std;
int s[53][53];
int nexts[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int dfs(int a, int b) {
  for (int i = 0; i < 4; ++i) {
    a = a + nexts[i][0];
    b = b + nexts[i][1];
    if (s[a][b] == 1) {
      return 0;
    }
  }
  return 1;
}
int main() {
  int m, n;
  int flag = 0;
  cin >> m >> n;
  for (int i = 1; i <= m; ++i) {
    for (int j = 1; j <= n; ++j) {
      char a;
      cin >> a;
      if (a == '#') s[i][j] = 1;
    }
  }
  for (int i = 1; i <= m; ++i) {
    for (int j = 1; j <= n; ++j) {
      if (s[i][j] == 1 && dfs(i, j)) {
        flag = 1;
        break;
      }
    }
  }
  if (flag == 0)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
  return 0;
}
