#include <bits/stdc++.h>
using namespace std;
int solve(int h, int w, char* board) {
  for (int i = 0; i < h; i++) {
    for (int t = 0; t < w; t++) {
      if (board[i * w + t] == '#') {
        if (i == 0) {
          if (t == 0) {
            if (!(board[i * w + t + 1] == '#' ||
                  board[(i + 1) * w + t] == '#')) {
              return 0;
            }
          } else if (t == w - 1) {
            if (!(board[i * w + t - 1] == '#' ||
                  board[(i + 1) * w + t] == '#')) {
              return 0;
            }
          } else {
            if (!(board[i * w + t - 1] == '#' || board[i * w + t + 1] == '#' ||
                  board[(i + 1) * w + t] == '#')) {
              return 0;
            }
          }
        } else if (i == h - 1) {
          if (t == 0) {
            if (!(board[i * w + t + 1] == '#' ||
                  board[(i - 1) * w + t] == '#')) {
              return 0;
            }
          } else if (t == w - 1) {
            if (!(board[i * w + t - 1] == '#' ||
                  board[(i - 1) * w + t] == '#')) {
              return 0;
            }
          } else {
            if (!(board[i * w + t - 1] == '#' || board[i * w + t + 1] == '#' ||
                  board[(i - 1) * w + t] == '#')) {
              return 0;
            }
          }
        } else {
          if (t == 0) {
            if (!(board[i * w + t + 1] == '#' ||
                  board[(i - 1) * w + t] == '#' ||
                  board[(i + 1) * w + t] == '#')) {
              return 0;
            }
          }
          if (t == w - 1) {
            if (!(board[i * w + t - 1] == '#' ||
                  board[(i - 1) * w + t] == '#' ||
                  board[(i + 1) * w + t] == '#')) {
              return 0;
            }
          }
        }
      }
    }
  }
  return 1;
}
int main() {
  int h, w;
  cin >> h;
  cin >> w;
  char* board = new char[h * w];
  for (int i = 0; i < h * w; i++) {
    scanf("%c", &board[i]);
    if (board[i] == '\n') i--;
  }
  if (solve(h, w, board)) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  delete[] board;
  return 0;
}
