#include <bits/stdc++.h>
using namespace std;
int dx[] = {-1, 0, 0, 1};
int dy[] = {0, -1, 1, 0};
int H, W;
bool check(vector<string> S, int x, int y) {
  if (S[y][x] == '.') return true;
  for (int i = 0; i < 4; i++) {
    int nx, ny;
    nx = x + dx[i];
    ny = y + dy[i];
    if (nx >= 0 && nx < W && ny >= 0 && ny < H) {
      if (S[ny][nx] == '#') return true;
    }
  }
  return false;
}
int main() {
  cin >> H >> W;
  vector<string> S(H);
  for (int i = 0; i < (H); ++i) cin >> S[i];
  bool flg = false;
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      flg = check(S, j, i);
    }
  }
  if (flg)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
  return 0;
}
