#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
void ABC096C() {
  int H, W;
  cin >> H >> W;
  vector<vector<int> > grid(H, vector<int>(W));
  for (int i = 0; i < H; ++i) {
    string str;
    cin >> str;
    for (int j = 0; j < W; ++j) {
      if (str[j] == '.')
        grid[i][j] = 0;
      else
        grid[i][j] = 1;
    }
  }
  vector<pair<int, int> > dx = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
  for (int i = 0; i < H; ++i) {
    for (int j = 0; j < W; ++j) {
      if (i > 0 && j > 0 && i < H - 1 && j < W - 1) {
        if (grid[i][j] == 1 && grid[i][j - 1] == 0 && grid[i][j + 1] == 0 &&
            grid[i - 1][j] == 0 && grid[i + 1][j] == 0) {
          cout << "No" << endl;
          return;
        }
      }
      continue;
      if (grid[i][j] > 0) {
        bool found = false;
        for (int k = 0; k < 4; ++k) {
          int x = i + dx[k].first;
          int y = j + dx[k].second;
          if (x > -1 && x < H && y > -1 && y < W && grid[x][y] > 0) {
            found = true;
            break;
          }
        }
        if (!found) {
          cout << "No" << endl;
          return;
        }
      }
    }
    cout << "Yes" << endl;
    return;
  }
}
int main() {
  ABC096C();
  return 0;
}
