#include <bits/stdc++.h>
using namespace std;
const long long N = 50 + 5;
long long n, m, dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1};
char ar[N][N];
bool is_val(long long i, long long j) {
  return i >= 0 && i < n && j >= 0 && j < m;
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m;
  for (long long i = 0; i < n; i++)
    for (long long j = 0; j < m; j++) cin >> ar[i][j];
  for (long long i = 0; i < n; i++)
    for (long long j = 0; j < m; j++)
      if (ar[i][j] == '#') {
        long long cnt = 0;
        for (long long k = 0; k < 4; k++) {
          long long x = i + dx[k], y = j + dy[k];
          if (is_val(x, y) && ar[x][y] == '#') cnt++;
        }
        if (!cnt) return cout << "No" << endl, 0;
      }
  cout << "Yes" << endl;
}
