#include <bits/stdc++.h>
using namespace std;
int n, m;
char a[100][100];
int bio[100][100];
int r, s;
int dx[4] = {-1, 0, 0, 1};
int dy[4] = {0, -1, 1, 0};
queue<pair<int, int> > q;
void bfs(int r, int s) {
  while (!q.empty()) {
    r = q.front().first;
    s = q.front().second;
    q.pop();
    bio[r][s] = 1;
    for (int i = 0; i < 4; i++) {
      if (a[r + dx[i]][s + dy[i]] == '#') {
        if (bio[r + dx[i]][s + dy[i]] == 0)
          q.push(make_pair(r + dx[i], s + dy[i]));
      }
    }
  }
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      cin >> a[i][j];
      if (a[i][j] == '#') r = i, s = j;
    }
  }
  q.push(make_pair(r, s));
  bfs(r, s);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (a[i][j] == '#') {
        int l = 0;
        for (int x = 0; x < 4; x++) {
          if (a[i + dx[x]][j + dy[x]] == '#') {
            l = 1;
          }
        }
        if (l == 0) {
          cout << "No";
          return 0;
        }
      }
    }
  }
  cout << "Yes";
  return 0;
}
