#include <bits/stdc++.h>
int main(int argc, char const* argv[]) {
  int h, w;
  std::cin >> h >> w;
  std::vector<std::string> grid(h);
  for (auto& g : grid) {
    std::cin >> g;
  }
  for (int x = 0; x < w; ++x) {
    for (int y = 0; y < h; ++y) {
      bool e = false;
      if (grid[x][y] == '.') {
        continue;
      }
      if (x != 0) {
        e |= grid[y][x - 1] == '#';
      }
      if (y != 0) {
        e |= grid[y - 1][x] == '#';
      }
      if (x != w - 1) {
        e |= grid[y][x + 1] == '#';
      }
      if (y != h - 1) {
        e |= grid[y + 1][x] == '#';
      }
      if (!e) {
        std::cout << "No" << std::endl;
        return 0;
      }
    }
  }
  std::cout << "Yes" << std::endl;
  return 0;
}
