import math

h, w = map(int, input().split())
canvas = []
flag = True
cnt = 0
dcnt = 0
for i in range(h):
    x = list(map(list, input().split()))
    canvas.append(x)
# canvas[h][0][w]
# 黒く塗った所は@で表す
for i in range(h):
    for j in range(w):
        if canvas[i][0][j] == ".":
            dcnt += 1
        if canvas[i][0][j] == "#":
            cnt += 1
            if j-1 >= 0:
                # 左
                try:
                    if canvas[i][0][j-1] == "#" or canvas[i][0][j-1] == "@":
                        canvas[i][0][j-1] = "@"
                        canvas[i][0][j] = "@"
                except Exception as e:
                    pass
                try:
                    if canvas[i][0][j+1] == "#" or canvas[i][0][j+1] == "@":
                        canvas[i][0][j+1] = "@"
                        canvas[i][0][j] = "@"
                except Exception as e:
                    pass
            if i-1 >= 0:
                # 上
                try:
                    if canvas[i-1][0][j] == "#" or canvas[i-1][0][j] == "@":
                        canvas[i-1][0][j] = "@"
                        canvas[i][0][j] = "@"
                except Exception as e:
                    pass
                # 下
                try:
                    if canvas[i+1][0][j] == "#" or canvas[i+1][0][j] == "@":
                        canvas[i+1][0][j] = "@"
                        canvas[i][0][j] = "@"
                except Exception as e:
                    pass

for i in range(h):
    for j in range(w):
        if canvas[i][0][j] == "#":
            flag = False
            break
    if flag == False:
        break

if flag and dcnt > 2:
    print("Yes")
else:
    print("No")
