#include <bits/stdc++.h>
using namespace std;
int dy[] = {0, 0, 1, -1, 0};
int dx[] = {1, -1, 0, 0, 0};
int main(void) {
  int h, w, sharp_cnt, can_paint_sharp;
  int nx, ny;
  cin >> h >> w;
  char v[h][w];
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      cin >> v[i][j];
      if (v[i][j] == '#') {
        sharp_cnt += 1;
      }
    }
  }
  if (sharp_cnt == 0)
    cout << "Yes"
         << "\n";
  if (sharp_cnt == 1)
    cout << "No"
         << "\n";
  if (sharp_cnt == h * w)
    cout << "Yes"
         << "\n";
  for (int i = 0; i < h; i++) {
    for (int j = 0; j < w; j++) {
      int nx = i;
      int ny = j;
      for (int p = 0; p < 4; p++) {
        int tx = nx + dx[p];
        int ty = ny + dy[p];
        if (v[nx][ny] != '#')
          continue;
        else if (v[nx][ny] == '#' && v[tx][ty] != '#')
          continue;
        else {
          can_paint_sharp += 1;
          break;
        }
      }
    }
  }
  if (can_paint_sharp < sharp_cnt || can_paint_sharp > sharp_cnt)
    cout << "No"
         << "\n";
  else
    cout << "Yes"
         << "\n";
}
