import numpy as np
H, W = map(int, input().split())
grid = np.zeros((H, W), dtype="unicode")
for h in range(H):
    input_ = input()
    for w in range(W):
        grid[h, w] = input_[w]
    
h_candi = [-1, -1, -1, 0, 0, 1, 1, 1]
w_candi = [-1, 0, 1, -1, 1, -1, 0, 1]

cannot_flag = 0
for h in range(H):
    if cannot_flag:
        break
    for w in range(W):
        if grid[h, w] == ".":
            continue
        count = 0
        for h_, w_ in zip(h_candi, w_candi):
            h_idx = h + h_
            w_idx = w + w_
            if (h_idx < 0) or (h_idx >= H):
                continue
            if (w_idx < 0) or (w_idx >= W):
                continue
            if grid[h_idx, w_idx] == "#":
                count += 1
        if count == 0:
            cannot_flag = 1
            break

if cannot_flag:
    print("No")
else:
    print("Yes")