import           Control.Monad
import           Control.Applicative

main = do
    [h, w] <- map read . words <$> getLine
    sss    <- replicateM h getLine
    if existsSoloist sss w then putStrLn "No" else putStrLn "Yes"

existsSoloist sss w =
    any or
        .   zipWith2x isTarget sss
        .   foldl1 (zipWith2x (+))
        $   shifters
        <*> [map2x (fromEnum . ('#' ==)) sss]
  where
    shifters = [shiftRight, shiftLeft, shiftUp, shiftDown]
    zeros    = replicate w 0
    shiftFront x xs = x : init xs
    shiftBack x xs = tail xs ++ [x]
    shiftRight = map $ shiftFront 0
    shiftLeft  = map $ shiftBack 0
    shiftUp    = shiftBack zeros
    shiftDown  = shiftFront zeros
    isTarget c x = c == '#' && x == 0
    zipWith2x = zipWith . zipWith
    map2x     = map . map
