#include <bits/stdc++.h>
using namespace std;
bool Check(char *p, int H, int W) {
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (*(p + i * W + j) == '#') return false;
    }
  }
  return true;
}
void My_Piant(char *p, int i, int j, int H, int W) {
  if (*(p + i * W + j) != '.') {
    if (i == 0) {
      if (j == 0) {
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else if (j == W - 1) {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      }
    } else if (i == H - 1) {
      if (j == 0) {
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else if (j == W - 1) {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      }
    } else {
      if (j == 0) {
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else if (j == W - 1) {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      } else {
        if (*(p + i * W + (j - 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j - 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + i * W + (j + 1)) == '#' || *(p + i * W + (j + 1)) == '1') {
          *(p + i * W + (j + 1)) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i + 1) * W + j) == '#' || *(p + (i + 1) * W + j) == '1') {
          *(p + (i + 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
        if (*(p + (i - 1) * W + j) == '#' || *(p + (i - 1) * W + j) == '1') {
          *(p + (i - 1) * W + j) = '1';
          *(p + i * W + j) = '1';
        }
      }
    }
  }
}
int main() {
  int H, W;
  cin >> H >> W;
  char S[H][W];
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      cin >> S[i][j];
    }
  }
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      My_Piant(&S[0][0], i, j, H, W);
    }
  }
  if (Check(&S[0][0], H, W))
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
