#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int>> d(4);
int H, W;
int check(int w, int h, vector<vector<char>> &V, vector<vector<bool>> &C) {
  int tmp = 1;
  for (int i = 0; i < 4; i++) {
    int wp = w + d[i].first;
    int hp = h + d[i].second;
    if (wp < 0 || wp > W - 1 || hp < 0 || hp > H - 1) continue;
    if (V[wp][hp] == '#') {
      tmp += check(wp, hp, V, C);
      C[wp][hp] = true;
    }
  }
  return tmp;
}
int main() {
  d[0] = make_pair(1, 0);
  d[1] = make_pair(0, 1);
  d[2] = make_pair(-1, 0);
  d[3] = make_pair(0, -1);
  cin >> H >> W;
  vector<vector<char>> V(H, vector<char>(W, 'x'));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      cin >> V[i][j];
    }
  }
  vector<int> adj;
  vector<vector<bool>> C(H, vector<bool>(W, false));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (C[i][j]) continue;
      if (C[i][j] == '#') {
        adj.push_back(check(i, j, V, C));
      }
      C[i][j] = true;
    }
  }
  sort(adj.begin(), adj.end());
  if (adj[0] <= 1)
    cout << "Yes";
  else
    cout << "No";
}
