#include <bits/stdc++.h>
using namespace std;
int H, W;
char c[55][55];
bool used[55][55];
int dj[] = {1, 0, -1, 0}, di[] = {0, -1, 0, 1};
int dfs(int i, int j) {
  used[i][j] = true;
  int ret = 1;
  for (int d = 0; d < 4; d++) {
    int ni = i + di[d], nj = j + dj[d];
    if (ni < 0 || ni >= W || nj < 0 || nj >= H) continue;
    if (c[ni][nj] == '.') continue;
    if (used[ni][nj]) continue;
    ret += dfs(ni, nj);
  }
  return ret;
}
int main(void) {
  cin >> H >> W;
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      cin >> c[i][j];
    }
  }
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (c[i][j] == '.') continue;
      if (used[i][j]) continue;
      if (dfs(i, j) == 1) {
        cout << "No" << endl;
        return 0;
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
