package main

import (
	"fmt"
)

func max(x, y int) int {
	if x < y {
		return y
	}
	return x
}
func min(x, y int) int {
	if x > y {
		return y
	}
	return x
}
func findSharp(m [][]byte, x, y, h, w int) int {
	ret := 0
	for i := max(0, x-1); i <= min(x+1, h-1); i++ {
		if i == x {
			for j := max(0, y-1); j <= min(y+1, w-1); j++ {
				if m[i][j] == '#' {
					ret += 1
				}
			}
		} else {
			if m[i][y] == '#' {
				ret += 1
			}
		}

	}
	return ret
}
func main() {
	var H, W int
	m := make([][]byte, 50)

	fmt.Scanf("%d %d", &H, &W)
	for i := 0; i < H; i++ {
		var s string
		fmt.Scanf("%s", &s)
		m[i] = []byte(s)
	}

	ans := true
	for i := 0; i < H; i++ {
		for j := 0; j < W; j++ {
			if m[i][j] == '#' {
				if findSharp(m, i, j, H, W) <= 1 {
					ans = false
				}
				break
			}
		}
		if !ans {
			break
		}
	}
	if ans {
		fmt.Println("Yes")
	} else {
		fmt.Println("No")
	}
}
