#include <bits/stdc++.h>
using namespace std;
int H, W;
vector<vector<int>> s;
vector<vector<int>> moves = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};
bool paintable(int i, int j) {
  s[i][j] = 0;
  bool res = false;
  for (auto d : moves) {
    int ni = i + d[0], nj = j + d[1];
    printf("%d %d\n", ni, nj);
    if (ni >= 0 && ni < H && nj >= 0 && nj < W) {
      res = true;
      paintable(ni, nj);
    }
  }
  return res;
}
int main() {
  cin >> H >> W;
  s.resize(H, vector<int>(W));
  for (int i = 0; i < (int)H; i++)
    for (int j = 0; j < (int)W; j++) {
      char c;
      cin >> c;
      s[i][j] = (c == '#');
    }
  for (int i = 0; i < (int)H; i++)
    for (int j = 0; j < (int)W; j++) {
      if (s[i][j] && !paintable(i, j)) {
        cout << "No" << endl;
        return 0;
      }
    }
  cout << "Yes" << endl;
  return 0;
}
