#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  cin >> H >> W;
  char s[H][W];
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      cin >> s[i][j];
    }
  }
  if (s[0][0] != s[1][0] && s[0][0] != s[0][1] && s[0][0] == '#') {
    cout << "No" << endl;
    return 0;
  }
  if (s[H - 1][0] != s[H - 2][0] && s[H - 1][0] != s[H - 1][1] &&
      s[H - 1][0] == '#') {
    cout << "No" << endl;
    return 0;
  }
  if (s[0][W - 1] != s[0][W - 2] && s[0][W - 1] != s[1][W - 1] &&
      s[0][W - 1] == '#') {
    cout << "No" << endl;
    return 0;
  }
  if (s[H - 1][W - 1] != s[H - 2][W - 1] &&
      s[H - 1][W - 1] != s[H - 1][W - 2] && s[H - 1][W - 1] == '#') {
    cout << "No" << endl;
    return 0;
  }
  for (int i = 1; i < H - 1; i++) {
    for (int j = 1; j < W - 1; j++) {
      if (s[i][j] == '#') {
        if (s[i - 1][j] != '#' && s[i][j - 1] != '#' && s[i + 1][j] != '#' &&
            s[i][j + 1] != '#') {
          cout << "No" << endl;
          return 0;
        }
      } else {
        if (s[i - 1][j] != '.' && s[i][j - 1] != '.' && s[i + 1][j] != '.' &&
            s[i][j + 1] != '.') {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  }
  for (int i = 1; i < H - 1; i++) {
    if (s[i][0] != s[i - 1][0] && s[i][0] != s[i + 1][0] &&
        s[i][0] != s[i][1]) {
      cout << "No" << endl;
      return 0;
    } else if (s[i][W - 1] != s[i - 1][W - 1] &&
               s[i][W - 1] != s[i + 1][W - 1] && s[i][W - 1] != s[i][W - 2]) {
      cout << "No" << endl;
      return 0;
    }
  }
  for (int i = 1; i < W - 1; i++) {
    if (s[0][i] != s[0][i - 1] && s[0][i] != s[0][i + 1] &&
        s[0][i] != s[1][i]) {
      cout << "No" << endl;
      return 0;
    } else if (s[H - 1][i] != s[H - 1][i - 1] &&
               s[H - 1][i] != s[H - 1][i + 1] && s[H - 1][i] != s[H - 2][i]) {
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
  return 0;
}
