h, w = io.read("*n", "*n", "*l")
map = {}
for i = 1, h do
  map[i] = {}
  s = io.read()
  for j = 1, w do
    map[i][j] = s:sub(j, j) == "#"
  end
end
valid = true
for i = 1, h do
  for j = 1, w do
    if map[i][j] then
      f = false
      if 1 < i and map[i - 1][j] then
        f = true
      elseif i < h and map[i + 1][j] then
        f = true
      elseif 1 < j and map[i][j - 1] then
        f = true
      elseif j < w and map[i][j + 1] then
        f = true
      end
      if not f then valid = false end
    end
  end
end
print(valid and "Yes" or "No")
