#include <bits/stdc++.h>
using namespace std;
const double PI = 3.141592654;
long long gcd(long long a, long long b) { return !b ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int dx[] = {0, 0, -1, 1, -1, 1, -1, 1};
int dy[] = {1, -1, 0, 0, 1, 1, -1, -1};
void fast() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL), cout.tie(NULL);
}
int x, y;
bool valid(int i, int j) { return (i < x && i >= 0 && j < y && j >= 0); }
int main() {
  fast();
  char arr[51][51];
  cin >> x >> y;
  for (int(i) = 0; (i) < (long long)(x); (i)++) {
    for (int(j) = 0; (j) < (long long)(y); (j)++) cin >> arr[i][j];
  }
  for (int(i) = 0; (i) < (long long)(x); (i)++) {
    for (int(j) = 0; (j) < (long long)(y); (j)++) {
      int c = 0;
      if (arr[i][j] == '#') {
        bool t = 0;
        for (int k = 0; k < 4; k++) {
          int tox = i + dx[k];
          int toy = j + dy[k];
          if (valid(tox, toy)) {
            if (arr[tox][toy] == '#') t = 1;
          }
        }
        if (t == 0) {
          cout << "No";
          return 0;
        }
      }
    }
  }
  cout << "Yes";
  return 0;
}
