#include <bits/stdc++.h>
using namespace std;
int max(int a, int b) {
  int max;
  if (a > b)
    max = a;
  else
    max = b;
  return max;
}
int min(int a, int b) {
  int min;
  if (a < b)
    min = a;
  else
    min = b;
  return min;
}
int main() {
  int X, Y;
  cin >> X >> Y;
  string board[60];
  for (int i = 0; i < (X); ++i) {
    cin >> board[i];
  }
  int dx[8] = {-1, -1, 0, 1, 1, 1, 0, -1};
  int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
  bool can = true;
  for (int i = 0; i < (X); ++i) {
    for (int j = 0; j < (Y); ++j) {
      if (board[i][j] == '.') continue;
      for (int k = 0; k < (8); ++k) {
        bool check = true;
        int x = i + dx[k];
        int y = j + dy[k];
        if (x < 0 || X < x) continue;
        if (y < 0 || Y < y) continue;
        if (board[x][y] == '.') {
          if (check && x == 7 && y == 7) can = false;
        }
        if (k % 2 == 1) {
          if (board[x][y] == '#' && board[x + 2][y + 2] == '#') {
            can = false;
          }
        }
      }
    }
  }
  if (can)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
