#include <bits/stdc++.h>
using namespace std;
int h, w;
char canvas[55][55];
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, -1, 0, 1};
bool hamideteru(int x, int y) { return 0 > x || x >= w || 0 > y || y >= h; }
bool check(int x, int y) {
  bool all = false;
  for (int i = 0; i < 4; i++) {
    int nx = x + dx[i], ny = y + dy[i];
    if (!hamideteru(nx, ny) && canvas[ny][nx] == '#') all = true;
  }
  return all;
}
int main() {
  scanf("%d%d", &h, &w);
  for (int i = 0; i < h; i++) scanf("%s", canvas[i]);
  bool isOk = true;
  for (int x = 0; x < w; x++)
    for (int y = 0; y < h; h++)
      if (canvas[y][x] == '#') isOk = isOk && check(x, y);
  if (isOk)
    puts("Yes");
  else
    puts("No");
}
