#include <bits/stdc++.h>
using namespace std;
int H, W;
vector<string> grid;
const int nx[4] = {0, 0, 1, -1};
const int ny[4] = {1, -1, 0, 0};
int main() {
  cin >> H >> W;
  grid.resize(H);
  for (int i = 0; i < H; i++) cin >> grid[i];
  const int conditx[4] = {-1, -1, H - 1, 0};
  const int condity[4] = {W - 1, 0, -1, -1};
  int flag = 1;
  for (int x = 0; x < H && flag; x++) {
    for (int y = 0; y < W && flag; y++) {
      int tempflag = 0;
      for (int i = 0; i < 4; i++) {
        if (!tempflag && x != conditx[i] && y != condity[i] &&
            grid[y + ny[i]][x + nx[i]] == '#')
          tempflag = 1;
      }
      flag = tempflag;
    }
  }
  string ans = flag ? "Yes" : "No";
  cout << ans << endl;
}
