#include <bits/stdc++.h>
int main() {
  int H, W;
  std::cin >> H >> W;
  std::string grid[50];
  for (int i = 0; i < H; ++i) std::cin >> grid[i];
  int dx[4] = {0, 0, 1, -1};
  int dy[4] = {1, -1, 0, 0};
  for (int i = 0; i < H; ++i) {
    for (int j = 0; j < W; ++j) {
      if (grid[i][j] == '#') {
        bool paintable = false;
        for (int k = 0; k < 4; ++k) {
          if (i + dy[k] >= 0 && i + dy[k] <= H && j + dx[k] >= 0 &&
              j + dx[k] <= W) {
            char tempDot = grid[i + dy[k]][j + dx[k]];
            if (tempDot == '#') paintable = true;
          }
        }
        if (!paintable) {
          std::cout << "No";
          return 0;
        }
      }
    }
  }
  std::cout << "Yes";
  return 0;
}
