import sys

# pre process
X = [int(i) for i in input().split()]
H, W = X
grid = []
for row in range(H):
    grid.append([char for char in input()])



# solve
if H == 1 and W == 1:
    print('No')
    exit(0)
elif H == 1:
    for w in range(W):
        if grid[0][w] == "#":
            if w == 0:
                if not(grid[0][w+1] == '#'):
                    print("No")
                    exit(0)
            elif w == W-1:
                if not(grid[0][w-1] == '#'):
                    print("No")
                    exit(0)
            else:
                if not (grid[0][w - 1] == '#' or grid[0][w+1] == '#'):
                    print("No")
                    exit(0)
elif W == 1:
    for h in range(H):
        if grid[h][0] == "#":
            if h == 0:
                if not(grid[h+1][0] == '#'):
                    print("No")
                    exit(0)
            elif h == H-1:
                if not(grid[h-1][0] == '#'):
                    print("No")
                    exit(0)
            else:
                if not (grid[h-1][0] == '#' or grid[h+1][0] == '#'):
                    print("No")
                    exit(0)
else:
    for h in range(H):
        for w in range(W):
            if grid[h][w] == "#":
                # 枠の内側
                if h != 0 and h != H-1 and w != 0 and w != W-1:
                    if not(grid[h+1][w] == "#" or grid[h-1][w] == '#' or grid[h][w-1] == '#' or grid[h][w+1] == '#'):
                        print("No")
                        exit(0)
                # 枠の上ふち
                elif h == 0:
                    if w == 0:
                        if not(grid[h+1][w] == "#" or grid[h][w+1] == '#'):
                            print("No")
                            exit(0)
                    elif w == W-1:
                        if not(grid[h+1][w] == "#" or grid[h][w-1] == '#'):
                            print("No")
                            exit(0)
                    else:
                        if not (grid[h + 1][w] == "#" or grid[h][w - 1] == '#' or grid[h][w + 1] == '#'):
                            print("No")
                            exit(0)
                # 枠の下ふち
                elif h == H-1:
                    if w == 0:
                        if not (grid[h - 1][w] == "#" or grid[h][w + 1] == '#'):
                            print("No")
                            exit(0)
                    elif w == W-1:
                        if not (grid[h - 1][w] == "#" or grid[h][w - 1] == '#'):
                            print("No")
                            exit(0)
                    else:
                        if not (grid[h - 1][w] == "#" or grid[h][w - 1] == '#' or grid[h][w + 1] == '#'):
                            print("No")
                            exit(0)
                # 枠の左ふち
                elif w == 0:
                    if not (grid[h + 1][w] == "#" or grid[h-1][w] == '#' or grid[h][w + 1] == '#'):
                        print("No")
                        exit(0)
                # 枠の左ふち
                elif w == W-1:
                    if not (grid[h + 1][w] == "#" or grid[h - 1][w] == '#' or grid[h][w -1] == '#'):
                        print("No")
                        exit(0)
print('Yes')




Measured memory_bytes: 3316