import Data.Char import Data.Bool import Data.List import Control.Monad main = do [h,w] <- map read . words <$> getLine is <- map (\i -> i + (div i w * w)) . findIndices (=='#') . filter isPrint <$> getContents putStrLn $ bool "NO" "YES" (dpaint h w is) dpaint h w is | odd (length is) = False | otherwise = or $ do d <- [1 .. (h*w-1)] let is' = map (+d) is let inter = intersect is is' let inter' = map (subtract d) inter return (sort (inter++inter') == is)