#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 5;
const long long MOD = 1000000007LL;
char field[60][60];
vector<int> dx = {1, -1, 0, 0};
vector<int> dy = {0, 0, 1, -1};
int h, w;
int dfs(int x, int y) {
  if (field[x][y] == '.') return 0;
  int res = 1;
  for (long long i = 0; i < (long long)(4); i++) {
    if (1 <= x + dx[i] && x + dx[i] <= w && 1 <= y + dy[i] && y + dy[i] <= h)
      res = max(res, dfs(x + dx[i], y + dy[i]));
  }
  return res;
}
int main() {
  cin >> h >> w;
  for (long long i = 0; i < (long long)(h); i++) {
    for (long long j = 0; j < (long long)(w); j++) cin >> field[i][j];
  }
  bool ans = true;
  for (long long i = 0; i < (long long)(h); i++) {
    for (long long j = 0; j < (long long)(w); j++) {
      if (dfs(i, j) == 1) ans = false;
    }
  }
  if (ans)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
