#include <bits/stdc++.h>
using namespace std;
int main() {
  int w, h, i = 0, j = 0;
  char c[1001][1001];
  cin >> w >> h;
  for (int a = 1; a <= w; a++) {
    for (int b = 1; b <= h; b++) {
      cin >> c[a][b];
    }
  }
  for (i = 1; i <= w; i++) {
    for (j = 1; j <= h; j++) {
      if (i == 1 && j == 1) {
        if (c[1][2] == '.' && c[2][1] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i == 1 && j == h) {
        if (c[1][h - 1] == '.' && c[2][h] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i == w && j == 1) {
        if (c[w - 1][1] == '.' && c[w][2] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i == w && j == h) {
        if (c[w - 1][h] == '.' && c[w][h - 1] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i == 1 && j != 1 && j != h) {
        if (c[1][j - 1] == '.' && c[1][j + 1] == '.' && c[2][j] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i == w && j != 1 && j != h) {
        if (c[w][j - 1] == '.' && c[w][j + 1] == '.' && c[w - 1][j] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (j == 1 && i != 1 && i != w) {
        if (c[i + 1][1] == '.' && c[i - 1][1] == '.' && c[i][2] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (j == h && i != 1 && i != w) {
        if (c[i + 1][h] == '.' && c[i - 1][h] == '.' && c[i][h - 1] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
      if (i != 1 && i != w && j != 1 && j != h) {
        if (c[i - 1][j] == '.' && c[i + 1][j] == '.' && c[i][j - 1] == '.' &&
            c[i][j + 1] == '.') {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  }
  cout << "Yes" << endl;
  return 0;
}
