#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  cin >> H >> W;
  vector<vector<char> > s;
  s.resize(H + 1);
  for (int i = 0; i < H; i++) {
    s[i].resize(W + 1);
    for (int j = 0; j < W; j++) {
      cin >> s[i][j];
    }
  }
  for (int i = 0; i < (H + 1); i++) {
    if (i == (H)) {
      s[i].resize(W + 1);
    }
    if (i == H) {
      for (int j = 0; j < (W + 1); j++) {
        s[i][j] = '.';
      }
    } else {
      s[i][W] = '.';
    }
  }
  int a, b, c, d;
  bool ok = true;
  bool forEnd = false;
  int iterator[4] = {0, 0, 0, 0};
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      iterator[0] = (i == 0) ? (H) : (i - 1);
      iterator[1] = (i == (H - 1)) ? H : (i + 1);
      iterator[2] = (j == 0) ? (W) : (j - 1);
      iterator[3] = (j == (W - 1)) ? W : (j + 1);
      if (s[i][j] == '#') {
        if (s[i][j] == s[iterator[0]][j] || s[i][j] == s[iterator[1]][j] ||
            s[i][iterator[2]] || s[i][j] == s[i][iterator[3]]) {
        } else {
          forEnd = true;
          break;
        }
      }
      if (forEnd) {
        break;
      }
    }
  }
  if (forEnd) {
    cout << "No" << endl;
  } else {
    cout << "Yes" << endl;
  }
}
