#include <bits/stdc++.h>
using namespace std;
const string YES = "Yes";
const string NO = "No";
void solve(long long H, long long W, std::vector<std::string> s) {
  if (W > 1)
    for (int j = 0; j < H; j++) {
      for (int i = 0; i < W - 1; i++) {
        auto c1 = s[j][i], c2 = s[j][i + 1];
        if ((c1 == '#' || c1 == '^') && (c2 == '#' || c2 == '^')) {
          s[j][i] = '^';
          s[j][i + 1] = '^';
        }
      }
    }
  if (H > 1)
    for (int i = 0; i < W; i++) {
      for (int j = 0; j < H - 1; j++) {
        auto c1 = s[j][i], c2 = s[j + 1][i];
        if ((c1 == '#' || c1 == '^') && (c2 == '#' || c2 == '^')) {
          s[j][i] = '^';
          s[j + 1][i] = '^';
        }
      }
    }
  for (int j = 0; j < H; j++)
    for (int i = 0; i < W; i++)
      if (s[j][i] == '#') {
        cout << NO << endl;
        return;
      }
  cout << YES << endl;
}
int main() {
  long long H;
  scanf("%lld", &H);
  long long W;
  scanf("%lld", &W);
  std::vector<std::string> s(W);
  for (int i = 0; i < W; i++) {
    std::cin >> s[i];
  }
  solve(H, W, std::move(s));
  return 0;
}
