import Control.Monad
main = do
  [h, w] <- map read . words <$> getLine
  a <- replicateM h getLine
  putStrLn $ solve h w a

solve:: Int -> Int -> [String] -> String
solve h w a = foldl (++) "" $ [tb, "\n"] ++ (map dec a) ++ [tb]
  where
    tb = replicate (w + 2) '#'

dec:: String -> String
dec s = "#" ++ s ++ "#\n"