#include <bits/stdc++.h>
using namespace std;
int h, w;
vector<vector<bool>> flg(50, vector<bool>(50));
vector<vector<char>> hw(50, vector<char>(50));
int dfs(int x, int y, int cnt) {
  if (x < 0 || x >= w || y < 0 || y >= h) return cnt;
  if (flg[y][x]) return cnt;
  if (hw[y][x] == '.') return cnt;
  flg[y][x] = true;
  ++cnt;
  cnt = dfs(x + 1, y, cnt);
  cnt = dfs(x - 1, y, cnt);
  cnt = dfs(x, y + 1, cnt);
  cnt = dfs(x, y - 1, cnt);
  return cnt;
}
int main() {
  cin >> h >> w;
  for (int i = 0; i < (h); ++i)
    for (int j = 0; j < (w); ++j) cin >> hw[i][j];
  for (int i = 0; i < (h); ++i)
    for (int j = 0; j < (w); ++j) {
      if (!flg[i][j] && hw[i][j] == '#') {
        int num = dfs(i, j, 0);
        if (num == 1) {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  cout << "Yes" << endl;
}
