import Control.Monad
import qualified Data.Map as M
main = do
    [h, w] <- map read . words <$> getLine 
    gridMap <- toMap h w <$> replicateM h getLine
    putStrLn $ if and [check gridMap i j|i<-[1..h],j<-[1..w]] then "Yes" else "No"

toMap h w xss = toMap' h w 1 1 xss
  where
    toMap' h w _ _ [] = M.fromList [((i,j),'.')|i<-[0..h+1],j<-[0..w+1],i==0||i==h+1||j==0||j==w+1]
    toMap' h w i j ([]:xss) = toMap' h w (i+1) 1 xss
    toMap' h w i j ((x:xs):xss) = M.insert (i,j) x (toMap' h w i (j+1) (xs:xss))

check g i j | ij == '.' = True
            | any (=='#') neighbors = True
            | otherwise = False
    where ij = g M.! (i,j)
          neighbors = map (g M.!) [(i-1, j), (i+1, j), (i, j-1), (i, j+1)]