import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;
import std.range;
import std.math;
import std.regex : regex;
import std.container;
import std.bigint;


void main()
{
  int h, w;
  readf("%s %s\n", &h, &w);
  auto ss = new char[][](h, w);
  foreach (i; 0..h) {
    ss[i] = readln.chomp.to!(char[]);
  }

  auto res = true;
  foreach (i; 0..h) {
    foreach (j; 0..w) {
      if (ss[i][j] == '#') {
        bool f;
        if (i-1 >= 0 && ss[i-1][j] == '#') f = true;
        if (i+1 < h && ss[i+1][j] == '#') f = true;
        if (j-1 >= 0 && ss[i][j-1] == '#') f = true;
        if (j+1 < w && ss[i][j+1] == '#') f = true;
        if (!f) {
          res = false;
        }
      }
    }
  }

  if (res) {
    writeln("Yes");
  } else {
    writeln("No");
  }
}
