import sys
H,W = map(int,input().split())
s = [list(input()) for _ in range(H)]
sys.setrecursionlimit(10**7)

flag = [[-1 for _ in range(W)] for _ in range(H)]
move = [(-1,0),(1,0),(0,-1),(0,1)]

def search(x,y):
  if x < 0 or H <= x or y < 0 or W <= y:
    return
  if s[x][y] == "." or flag[x][y] != -1:
    return
  flag[x][y] = 0
  s[x][y] = 0
  for (nx,ny) in move:
    wx, wy = x+nx, y+ny
    search(wx,wy)
  return 

check_1 = False
for i in range(H):
  for j in range(W):
    if s[i][j] == "#":
      sx, sy = i, j
      check_1 = True
      break
  if check_1:
    break
    
search(sx,sy)

check_2 = True
for i in range(H):
  for j in range(W):
    if s[i][j] == "#":
      check_2 = False
      
print("Yes" if check_2 else "No")