#include <bits/stdc++.h>
using namespace std;
int main() {
  string squre[50];
  int h, w;
  cin >> h >> w;
  for (int i = 0; i < h; i++) cin >> squre[i];
  bool flag = true;
  if ((h == 1 && w == 1) || (h == 1 && w == 2) || (h == 2 && w == 1)) {
    cout << "Yes\n";
    return 0;
  }
  if (h == 2 && w == 2) {
    int sum = 0;
    for (int i = 0; i < h; i++)
      for (int j = 0; j < w; i++)
        if (squre[i][j] == '#') sum++;
    if (sum == 1) {
      cout << "No\n";
      return 0;
    } else if (sum == 3 || sum == 4) {
      cout << "Yes\n";
      return 0;
    } else if ((squre[0][0] == '#' && squre[0][1] == '.' &&
                squre[1][0] == '.' && squre[1][1] == '#') ||
               (squre[0][0] == '.' && squre[0][1] == '#' &&
                squre[1][0] == '#' && squre[1][1] == '.')) {
      cout << "No\n";
      return 0;
    } else {
      cout << "Yes\n";
      return 0;
    }
  }
  for (int i = 0; i < h; i++)
    for (int j = 0; j < w; j++) {
      if (squre[i][j] == '#') {
        if (i == 0) {
          if (j == 0) {
            if (squre[i][j + 1] != '#' && squre[i + 1][j] != '#') flag = false;
          } else if (j == w - 1) {
            if (squre[i + 1][j] != '#' && squre[i][j - 1] != '#') flag = false;
          } else {
            if (squre[i][j + 1] != '#' && squre[i + 1][j] != '#' &&
                squre[i][j - 1])
              flag = false;
          }
        } else if (i == h - 1) {
          if (j == 0) {
            if (squre[i][j + 1] != '#' && squre[i - 1][j] != '#') flag = false;
          } else if (j == w - 1) {
            if (squre[i - 1][j] != '#' && squre[i][j - 1] != '#') flag = false;
          } else {
            if (squre[i][j + 1] != '#' && squre[i - 1][j] != '#' &&
                squre[i][j - 1])
              flag = false;
          }
        } else if (j == 0) {
          if (i == 0) {
            if (squre[i][j + 1] != '#' && squre[i + 1][j] != '#') flag = false;
          } else if (i == h - 1) {
            if (squre[i - 1][j] != '#' && squre[i][j + 1] != '#') flag = false;
          } else {
            if (squre[i][j + 1] != '#' && squre[i - 1][j] != '#' &&
                squre[i + 1][j])
              flag = false;
          }
        } else if (j == w - 1) {
          if (i == 0) {
            if (squre[i][j - 1] != '#' && squre[i + 1][j] != '#') flag = false;
          } else if (i == h - 1) {
            if (squre[i - 1][j] != '#' && squre[i][j - 1] != '#') flag = false;
          } else {
            if (squre[i][j - 1] != '#' && squre[i - 1][j] != '#' &&
                squre[i + 1][j])
              flag = false;
          }
        } else {
          if (squre[i + 1][j] != '#' && squre[i - 1][j] != '#' &&
              squre[i][j - 1] != '#' && squre[i + 1][j + 1] != '#')
            flag = false;
        }
      }
    }
  if (flag)
    cout << "Yes\n";
  else
    cout << "No\n";
}
