H, W = map(int, input().split())
S = [[sign for sign in input()] for i in range(H)]

suspect = []
suspect2 = []
flag = True

if H > 1 and W > 1:
    for i, row in enumerate(S):
        for j, sign in enumerate(row):
            if j == 0:
                if row[j] == "#" and row[j + 1] == ".":
                    suspect.append([i, j])
            elif j == W - 1:
                if row[j] == "#" and row[j - 1] == ".":
                    suspect.append([i, j])
            else:
                if row[j] == "#" and row[j - 1] == "." and row[j + 1] == ".":
                    suspect.append([i, j])

    T = zip(*S)
    for i, row in enumerate(T):
        for j, sign in enumerate(row):
            if j == 0:
                if row[j] == "#" and row[j + 1] == ".":
                    suspect2.append([j, i])
            elif j == W - 1:
                if row[j] == "#" and row[j - 1] == ".":
                    suspect2.append([j, i])
            else:
                if row[j] == "#" and row[j - 1] == "." and row[j + 1] == ".":
                    suspect2.append([j, i])
elif H == 1 and W == 2:
    if S[0][0] != S[0][1]:
        flag = False
elif H == 2 and W == 1:
    if S[0][0] != S[1][0]:
        flag = False
else:
    if S[0][0] == "#":
        flag = False
        

for xy in suspect:
    if xy in suspect2:
        flag = False
if flag:
    print("Yes")
else:
    print("No")
