#include <bits/stdc++.h>
int h, w;
int judge_flag = 1;
char map[51][51];
void judge(int i, int j) {
  int flag = 0;
  if (i != 0) {
    if (map[i - 1][j] == '#') flag = 1;
  }
  if (i != h) {
    if (map[i + 1][j] == '#') flag = 1;
  }
  if (j != 0) {
    if (map[i][j - 1] == '#') flag = 1;
  }
  if (j != w) {
    if (map[i][j + 1] == '#') flag = 1;
  }
  if (flag == 1)
    return;
  else {
    judge_flag == 0;
    return;
  }
}
int main() {
  scanf("%d %d", &h, &w);
  for (int i = 0; i < h; ++i) {
    for (int j = 0; j < w; ++j) {
      scanf("%c", &map[i][j]);
    }
  }
  for (int i = 0; i < h; ++i) {
    for (int j = 0; j < w; ++j) {
      if (map[i][j] == '#') judge(i, j);
      if (judge_flag == 0) {
        printf("No");
        return 0;
      }
    }
  }
  printf("Yes");
  return 0;
}
