import Control.Monad
import Data.Maybe

index :: [a] -> Int -> Maybe a
index xs = (\i -> do
    guard (0 <= i && i < n)
    return (xs !! i)
    )
    where
        n = length xs

index2 :: [[a]] -> Int -> Int -> Maybe a
index2 s i j= do
    row <- s `index` i
    elment <- row `index` j
    return elment

judge :: [[Char]] -> Int -> Int -> Bool
judge s i j =  canBlackPaint || canWhitePaint
    where
        up      = index2 s (i-1) j
        down    = index2 s (i+1) j
        left    = index2 s i (j-1)
        right   = index2 s i (j+1)
        aroundN = length . filter (== '#') . catMaybes $ [up, down, left, right]
        middle  = index2 s i j
        canBlackPaint = maybe False (== '#') middle && 1 <= aroundN
        canWhitePaint = maybe False (== '.') middle
        
main = do
    [h,w] <- map read . words <$> getLine
    s <- replicateM h getLine
    grid <- forM [0..(h-1)] (\i -> do 
        row <- forM [0..(w-1)] (\j -> do
            return $ judge s i j
            )
        return row
        )
    let isYes = and . map and $ grid
    if isYes then print "Yes" else print "No" 