#include <bits/stdc++.h>
const int64_t cc = pow(10, 9);
bool sort_pair(std::pair<std::string, int64_t> origin,
               std::pair<std::string, int64_t> another) {
  return origin.second > another.second;
}
int main() {
  std::string word = "aa";
  int64_t a, b, c, d, e;
  std::cin >> a;
  std::cin >> b;
  std::vector<std::string> list;
  for (int i = 0; i < b; i++) {
    std::cin >> word;
    list.push_back(word);
  }
  bool oo1 = true;
  bool oo2 = true;
  int min = 1000;
  for (int i = 1; i < b - 1; i++) {
    for (int r = 1; r < a - 1; r++) {
      if (list[i][r] == '#') {
        if (list[i + 1][r] != '#' && list[i - 1][r] != '#' &&
            list[i][r + 1] != '#' && list[i][r - 1] != '#') {
          oo1 = false;
        }
      }
    }
  }
  for (int i = 1; i < a - 1; i++) {
    if (list[0][i] == '#') {
      if (list[1][i] != '#' && list[0][i - 1] != '#' && list[0][i + 1] != '#') {
        oo1 = false;
      }
    }
    if (list.back()[i] == '#' && list[list.size() - 2][i] != '#' &&
        list[list.size() - 1][i - 1] != '#' &&
        list[list.size() - 1][i + 1] != '#') {
      oo1 = false;
    }
  }
  if (!oo1) {
    std::cout << "No\n";
  } else {
    std::cout << "Yes\n";
  }
}
