{-# OPTIONS_GHC -O2 -funbox-strict-fields #-}
import qualified Data.ByteString.Char8 as BC
import           Data.Maybe            (fromJust)
import qualified Data.Vector           as V

main :: IO ()
main = do
  [h, w] <- map readInt . BC.words <$> BC.getLine
  sss <- lines <$> getContents
  putStrLn $ if solve h w sss then "Yes" else "No"

solve :: Int -> Int -> [[Char]] -> Bool
solve h w sss = all p [(i, j) | i <- [0 .. h-1]
                              , j <- [0 .. w-1]
                              , sss' V.! i V.! j == '#'] where
  sss' = V.fromList $ map V.fromList sss
  p (i, j) = any (q (i, j)) [(i + di, j + dj)
                            | (di, dj) <- [(1, 0), (0, 1)
                                          ,(-1, 0), (0, -1)]]
  q (i, j) (i', j')
    | i' < 0 || h <= i' || j' < 0 || w <= j' = False
    | sss' V.! i' V.! j' == '#'              = True
    | otherwise                              = False



readInt :: BC.ByteString -> Int
readInt = fst . fromJust . BC.readInt
