#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long INF64 = 1e18;
const int NMAX = 1e5 + 5;
long long grid[55][55];
long long h, w;
long long dx[] = {0, 1, 0, -1};
long long dy[] = {1, 0, -1, 0};
bool isValid(long long x, long long y) {
  if (x < 0 || y < 0 || x > h || y > w || grid[x][y] == 0) return false;
  return true;
}
bool check(long long x, long long y) {
  long long res = 0;
  for (int i = 0; i < 4; i++) {
    long long tempx = x + dx[i], tempy = y + dy[i];
    if (!isValid(x + dx[i], y + dy[i])) continue;
    if (grid[tempx][tempy] == 1) res++;
  }
  if (res == 0) return false;
}
int main() {
  cin >> h >> w;
  long long x = 0, y = 0;
  bool ans = 1;
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      char c;
      cin >> c;
      if (c == '.')
        grid[i][j] = 0;
      else
        grid[i][j] = 1;
    }
  }
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      if (grid[i][j] == 1) {
        if (!check(i, j)) ans = 0;
      }
    }
  }
  if (ans)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
  return 0;
}
