#include <bits/stdc++.h>
using namespace std;
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
int H, W;
char maze[50][50];
int main() {
  scanf("%d%d", &H, &W);
  for (int i = 0; i < H; ++i) scanf("%s", maze[i]);
  for (int i = 0; i < H; ++i)
    for (int j = 0; j < W; ++j) {
      if (maze[i][j] == '#') {
        bool b = false;
        for (int k = 0; k < 4; ++k) {
          int next_i = i + dy[k];
          int next_j = j + dx[k];
          if (0 <= next_i && next_i < H && 0 <= next_j && next_j < W &&
              maze[next_i][next_j] == '#') {
            b = true;
          }
        }
        if (!b) {
          printf("No\n");
          return 0;
        }
      }
    }
  printf("Yes\n");
  return 0;
}
