#include <bits/stdc++.h>
using namespace std;
int n, m;
char ch[555][555];
int w[5][3] = {{0, 0, 0}, {0, 0, 1}, {0, 0, -1}, {0, 1, 0}, {0, 1, -1}};
bool ok(int a, int b) {
  if (a <= n && a > 0 && b <= m && b > 0) return true;
}
int dfs(int x, int y) {
  if (ch[x][y] == '.' || !ok(x, y)) return 0;
  ch[x][y] = '.';
  int sum = 1;
  for (int i = 1; i <= 4; i++) {
    int xx = x + w[i][1];
    int yy = y + w[i][2];
    sum += dfs(xx, yy);
  }
  return sum;
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> ch[i][j];
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      if (ch[i][j] == '#') {
        if (dfs(i, j) == 1) {
          cout << "No";
          return 0;
        }
      }
    }
  cout << "Yes";
  return 0;
}
