#include <bits/stdc++.h>
using namespace std;
char field[51][51];
int dx[4] = {0, 0, -1, 1}, dy[4] = {-1, 1, 0, 0}, ans = 0;
int h, w, num = 0;
void dfs(int x, int y) {
  field[x][y] = '.';
  for (int i = 0; i < 4; i++) {
    int nx = x + dx[i], ny = y + dy[i];
    if (0 <= nx && nx < h && 0 <= ny && ny < w && field[nx][ny] == '#')
      dfs(nx, ny);
  }
  return;
}
int main(void) {
  cin >> h >> w;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      cin >> field[i][j];
      if (field[i][j] == '#') num++;
    }
  }
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (field[i][j] == '#') {
        dfs(i, j);
        ans++;
      }
    }
  }
  if (ans != num)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
