#include <bits/stdc++.h>
inline void check(char hw[][50 + 2], int i, int j, bool *flag) {
  if (hw[i - 1][j] != '#' && hw[i + 1][j] != '#' && hw[i][j - 1] != '#' &&
      hw[i][j + 1] != '#') {
    *flag = false;
  }
  return;
}
int main() {
  int H, W;
  bool flag = true;
  scanf("%d %d", &H, &W);
  char hw[50 + 2][50 + 2];
  for (int i = 0; i < H + 2; i++) {
    for (int j = 0; j < W + 2; j++) {
      if (i == 0 || i == H + 1 || j == 0 || j == W + 1) {
        hw[i][j] = '.';
      } else {
        scanf("%c", &hw[i][j]);
      }
    }
  }
  for (int i = 1; i < H + 1; i++) {
    for (int j = 1; j < W + 1; j++) {
      if (hw[i][j] == '#') {
        check(hw, i, j, &flag);
      }
    }
  }
  if (flag) {
    printf("Yes\n");
  } else {
    printf("No\n");
  }
  return 0;
}
