import Control.Monad
import Data.Array
import Data.List

main = do
  [h,w] <- fmap (map read . words) getLine
  input <- fmap (filter (/= '\n')) getContents
  let bd = listArray ((1,1),(h,w)) input
  putStrLn (solve bd)

type Board = Array (Int,Int) Char

solve :: Board -> String
solve bd =
  if ok then "Yes" else "No"
  where
    ok = and['#'`elem`neighbor ix bd | ix<- indices bd, bd!ix=='#']

neighbor :: (Int,Int) -> Board -> String
neighbor (i,j) bd =
  [bd!(x,y) | (x,y)<-[(i-1,j),(i+1,j),(i,j+1),(i,j-1)], 1<=x,x<=h,1<=y,y<=w]
  where
    (_,(h,w)) = bounds bd