#include <bits/stdc++.h>
int main() {
  using namespace std;
  int h, w, i, j;
  char c;
  cin >> h >> w;
  vector<char> v1;
  vector<vector<char>> v2;
  for (i = 0; i < h; i++) {
    for (j = 0; j < w; j++) {
      cin >> c;
      v1.push_back(c);
    }
    v2.push_back(v1);
    v1.erase(v1.begin(), v1.end());
  }
  if (h == 1 && w == 1) {
    cout << "No" << endl;
    return 0;
  }
  if (h == 1) {
    if (v2[0][0] == '#' && v2[0][1] != '#') {
      cout << "No" << endl;
      return 0;
    }
    if (v2[0][w - 1] == '#' && v2[0][w - 2] != '#') {
      cout << "No" << endl;
      return 0;
    }
    for (j = 1; j < w - 1; j++) {
      if (v2[0][j] == '#' && (v2[0][j - 1] != '#' && v2[0][j + 1] != '#')) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  if (w == 1) {
    if (v2[0][0] == '#' && v2[1][0] != '#') {
      cout << "No" << endl;
      return 0;
    }
    if (v2[h - 1][0] == '#' && v2[h - 2][0] != '#') {
      cout << "No" << endl;
      return 0;
    }
    for (i = 1; i < h - 1; i++) {
      if (v2[i][0] == '#' && (v2[i - 1][0] != '#' && v2[i + 1][0] != '#')) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  if (v2[0][0] == '#' && (v2[0][1] != '#' && v2[1][0] != '#')) {
    cout << "No" << endl;
    return 0;
  } else if (v2[0][w - 1] == '#' &&
             (v2[0][w - 2] != '#' && v2[1][w - 1] != '#')) {
    cout << "No" << endl;
    return 0;
  } else if (v2[h - 1][0] == '#' &&
             (v2[h - 1][1] != '#' && v2[h - 2][0] != '#')) {
    cout << "No" << endl;
    return 0;
  } else if (v2[h - 1][w - 1] == '#' &&
             (v2[h - 1][w - 2] != '#' && v2[h - 2][w - 1] != '#')) {
    cout << "No" << endl;
    return 0;
  }
  for (i = 1; i < h - 1; i++) {
    if (v2[i][0] == '#' &&
        (v2[i - 1][0] != '#' && v2[i + 1][0] != '#' && v2[i][1] != '#')) {
      cout << "No" << endl;
      return 0;
    } else if (v2[i][w - 1] == '#' &&
               (v2[i - 1][w - 1] != '#' && v2[i + 1][w - 1] != '#' &&
                v2[i][w - 2] != '#')) {
      cout << "No" << endl;
      return 0;
    }
  }
  for (j = 1; j < w - 1; j++) {
    if (v2[0][j] == '#' &&
        (v2[0][j - 1] != '#' && v2[0][j + 1] != '#' && v2[1][j] != '#')) {
      cout << "No" << endl;
      return 0;
    } else if (v2[h - 1][j] == '#' &&
               (v2[h - 1][j - 1] != '#' && v2[h - 1][j + 1] != '#' &&
                v2[h - 2][j] != '#')) {
      cout << "No" << endl;
      return 0;
    }
  }
  for (i = 1; j < w - 1; i++) {
    for (j = 1; j < w - 1; j++) {
      if (v2[i][j] == '#' && (v2[i - 1][j] != '#' && v2[i + 1][j] != '#' &&
                              v2[i][j - 1] != '#' && v2[i][j + 1] != '#')) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
