fun main(arr:Array<String>) {
    val (h,w) = readLine()!!.split(" ").map { it.toInt() }
    val map = (1..h).map { readLine()!! }
    val ans = if(canPaint(map)) "Yes" else "No"
    println(ans)
}

fun canPaint(map:List<String>):Boolean {
    for(r in map.indices) {
        for(c in map[r].indices) {
            if(map[r][c] != '#') {
                continue
            }
            var canPaint = false
            for(rs in Math.max(0, r-1)..Math.min(map.lastIndex, r+1)) {
                for(cs in Math.max(0, c-1)..Math.min(map[r].lastIndex, c+1)) {
                    if(r==rs && c == cs) {
                        continue
                    }
                    if(r!=rs&&c!=cs) {
                        continue
                    }
                    if(map[rs][cs] == '#') {
                        canPaint = true
                        break
                    }
                }
                if(canPaint){
                    break
                }
            }
            if(!canPaint) {
                return false
            }
        }
    }
    return true
}