#include <bits/stdc++.h>
using namespace std;
char tb[55][55];
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int H, W;
int dfs(int y, int x, int depth) {
  if (depth > 0) tb[y][x] = '.';
  for (int i = 0; i < 4; i++) {
    int nx = x + dx[i];
    int ny = y + dy[i];
    if (tb[ny][nx] == '#') {
      tb[y][x] = '.';
      dfs(ny, nx, depth + 1);
    }
  }
}
int main() {
  cin >> H >> W;
  for (int i = 0; i < 53; i++) {
    for (int j = 0; j < 53; j++) {
      tb[i][j] = '.';
    }
  }
  for (int i = 1; i <= H; i++) {
    for (int j = 1; j <= W; j++) {
      cin >> tb[i][j];
    }
  }
  for (int i = 1; i <= H; i++) {
    for (int j = 1; j <= W; j++) {
      if (tb[i][j] == '#') dfs(i, j, 0);
    }
  }
  for (int i = 1; i <= H; i++) {
    for (int j = 1; j <= W; j++) {
      if (tb[i][j] == '#') {
        cout << "No" << endl;
        return 0;
      }
    }
    cout << "Yes" << endl;
    return 0;
  }
}
