import java.util.Scanner

object Main {
  def main(args: Array[String]) {
    if (args.length > 0 && args(0) == "TEST") {
      println(test())
    } else {
      val input = io.Source.stdin.getLines().mkString("\n")
      println(solve(input).trim())
    }
  }

  def isIsolated(g: Array[Array[Char]], y: Int, x: Int): Boolean = {
    if (g(y)(x) == '.') false
    else {
      val yMax = g.length
      val xMax = g(0).length
      (x - 1 < 0 || g(y)(x - 1) == '.') &&
        (x + 1 >= xMax || g(y)(x + 1) == '.') &&
        (y - 1 < 0 || g(y - 1)(x) == '.') &&
        (y + 1 >= yMax || g(y + 1)(x) == '.')
    }
  }

  def solve(input: String): String = {
    val s: Scanner = new Scanner(input)
    val h,w = s.nextInt
    val g:Array[Array[Char]] = Array.fill(h)(s.next.toCharArray)
    for (
      y <- 0 until h;
      x <- 0 until w
    ) {
      if (isIsolated(g, y, x)) return "No"
    }
    "Yes"
  }

  val tests = List(
    """3 3
      |.#.
      |###
      |.#.""".stripMargin -> """Yes""",
    """5 5
      |#.#.#
      |.#.#.
      |#.#.#
      |.#.#.
      |#.#.#""".stripMargin -> """No""",
    """11 11
      |...#####...
      |.##.....##.
      |#..##.##..#
      |#..##.##..#
      |#.........#
      |#...###...#
      |.#########.
      |.#.#.#.#.#.
      |##.#.#.#.##
      |..##.#.##..
      |.##..#..##.""" -> """Yes"""
  )

  def test(): String = tests.map { case (i, o) => (i.trim(), o.trim()) }
    .zipWithIndex.map {
    case ((input, outputExpect), i) =>
      val output = solve(input).trim()
      val tnum = i + 1
      s"test$tnum:" + (
        if (output == outputExpect) "Passed"
        else s"Failed\nexpect:\n$outputExpect\noutput:\n$output")
  }
    .mkString("\n")
}