#include <bits/stdc++.h>
using namespace std;
int is_solved(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] == '#') return 0;
    }
  }
  return 1;
}
int fill1(int h, int w, char* board) {
  for (int i = 1; i < h - 1; i++) {
    for (int t = 1; t < w - 1; t++) {
      if (board[i * w + t] == '1') {
        if (board[i * w + t - 1] == '#') {
          board[i * w + t - 1] = '1';
          return 1;
        }
        if (board[i * w + t + 1] == '#') {
          board[i * w + t + 1] = '1';
          return 1;
        }
        if (board[(i - 1) * w + t] == '#') {
          board[(i - 1) * w + t] = '1';
          return 1;
        }
        if (board[(i + 1) * w + t] == '#') {
          board[(i + 1) * w + t] = '1';
          return 1;
        }
      }
    }
  }
  if (board[0] == '#') {
    if (board[1] == '1' || board[w] == '1') {
      board[0] = '1';
      return 1;
    }
  }
  if (board[w - 1] == '#') {
    if (board[w - 2] == '1' || board[w - 1 + w] == '1') {
      board[w - 1] = '1';
      return 1;
    }
  }
  if (board[(h - 1) * w] == '#') {
    if (board[(h - 2) * w] == '1' || board[(h - 1) * w + 1] == '1') {
      board[(h - 1) * w] = '1';
      return 1;
    }
  }
  if (board[h * w - 1] == '#') {
    if (board[h * w - 2] == '1' || board[h * w - 1 - w] == '1') {
      board[h * w - 1] = '1';
      return 1;
    }
  }
  return 0;
}
int solve(int h, int w, char* board) {
  for (int i = 0; i < h - 1; i++) {
    for (int t = 0; t < w; t++) {
      if (board[i * w + t] == '#') {
        if (t != w - 1) {
          if (board[i * w + t + 1] == '#' || board[(i + 1) * w + t] == '#') {
            board[i * w + t] = '1';
          }
        } else {
          if (board[(i + 1) * w + t] == '#') {
            board[i * w + t] = '1';
          }
        }
      }
    }
  }
  int flg = 1;
  while (flg) {
    flg = fill1(h, w, board);
  }
}
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--;
  }
  solve(h, w, board);
  if (is_solved(h, w, board)) {
    cout << "Yes" << endl;
  } else {
    cout << "No" << endl;
  }
  delete[] board;
  return 0;
}
