import Control.Applicative ((<$>))
import Control.Monad (replicateM)
import Data.List (intercalate)
import Data.Vector (Vector, (!))
import qualified Data.Vector as V

main :: IO ()
main = do
  [h, w] <- map read <$> words <$> getLine
  solve h w <$> replicateM h getLine >>= putStrLn

solve :: Int -> Int -> [String] -> String
solve h w gs = if all f [(i, j) | i <- [0..h-1], j <- [0..w-1]] then "Yes" else "No"
  where cs = V.fromList $ replicate (w+1) '.' ++ intercalate "." gs ++ replicate (w+1) '.'
        f (x, y) | cs ! ix == '.' = True
                 | (cs ! (ix-1)== '#' ||
                    cs ! (ix+1) == '#' ||
                    cs ! (ix-w-1) == '#' ||
                    cs ! (ix+w+1) == '#') = True
                 | otherwise = False
          where ix = (x+1) * (w+1) + y
