data class Point(val x:Int, val y:Int){
    fun neighbors():List<Point> = listOf(Point(x + 1, y), Point(x - 1, y), Point(x, y + 1), Point(x, y - 1))
}
class Array2DWithSentinel<T>(array:Array<Array<T>>, val sentinel:T){
    val mArray:Array<Array<T>>
    init{
        mArray = array
    }
    operator fun get(point:Point):T{
        return when (point.y in 0 until mArray.size && point.x in 0 until mArray[point.y].size){
            true -> mArray[point.y][point.x]
            else -> sentinel
        }
    }
}
fun main(args:Array<String>):Unit{
    val (h, w) = readLine()!!.split(' ').map(String::toInt)
    val strings = Array2DWithSentinel(Array(h){ readLine()!!.toCharArray().toTypedArray() }, '.')
    var canDraw = true
    loop@for (x in 0 until w){
        for (y in 0 until h){
            if (strings[Point(x, y)] == '#'){
                if (Point(x, y).neighbors().all { strings[it] == '.' }){
                    canDraw = false
                    break@loop
                }
            }
        }
    }
    println(when(canDraw){
        true -> "Yes"
        false -> "No"
    })
}