module Main where
import Control.Monad
import Control.Applicative
import Data.Maybe
import Data.List
import qualified Text.Printf
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString as BC

------------------------------------------

solve :: Int -> Int -> [[Char]] -> Bool
solve h w s = (==) [] $ do
  x <- [0..h-1]
  y <- [0..w-1]
  guard $ s !! x !! y == '#'
  guard $ (==) [] $ do
    (dx, dy) <- [(1, 0), (0, 1), (-1, 0), (0, -1)] 
    let (nx, ny) = (x+dx, y+dy)
    guard $ 0 <= nx && nx < h && 0 <= ny && ny < w && s !! nx !! ny == '#'

main :: IO ()
main = do
  [h, w] <- readInts
  s <- replicateM h $ getLine
  putStrLn $ if solve h w s then "Yes" else "No"


------------------------------------------

{- Int input -}

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

parseInts :: BC.ByteString -> [Int]
parseInts = map parseInt <$> BC.words

readInt :: IO Int
readInt = parseInt <$> BC.getLine

readInts :: IO [Int]
readInts = parseInts <$> BC.getLine

{- Double Formatting -}

doubleFmt :: Double -> String
doubleFmt = Text.Printf.printf "%.12f"
