H, W = list(map(int, input().split()))



Map = [list(str(eval(input()))) for _ in range(H)]

dirc = ((0, 1), (1, 0), (-1, 0), (0, -1))

ans = 'Yes'

for h in range(H):

    for w in range(W):

        if Map[h][w]=='#':

            for y, x in dirc:

                if h+y<0 or h+y>=H or w+x<0 or w+x>=W:

                    continue

                if Map[h+y][w+x]=='#':

                    break

            else:

                ans='No'



print(ans)
import sys

def input(): return sys.stdin.readline().strip()

def mapint(): return list(map(int, input().split()))

sys.setrecursionlimit(10**9)



H, W = mapint()

query = [list(eval(input())) for _ in range(H)]



def check():

    for h in range(H):

        for w in range(W):

            if query[h][w]=='.':

                continue

            if h!=0 and query[h-1][w]=='#':

                continue

            if h<H-1 and query[h+1][w]=='#':

                continue

            if w!=0 and query[h][w-1]=='#':

                continue

            if w<W-1 and query[h][w+1]=='#':

                continue

            return False

    return True



if check():

    print('Yes')

else:

    print('No')
H, W = list(map(int, input().split()))
Map = [list(str(eval(input()))) for _ in range(H)]
dirc = ((0, 1), (1, 0), (-1, 0), (0, -1))
ans = "Yes"
for h in range(H):
    for w in range(W):
        if Map[h][w] == "#":
            for y, x in dirc:
                if h + y < 0 or h + y >= H or w + x < 0 or w + x >= W:
                    continue
                if Map[h + y][w + x] == "#":
                    break
            else:
                ans = "No"
print(ans)

import sys


def input():
    return sys.stdin.readline().strip()


def mapint():
    return list(map(int, input().split()))


sys.setrecursionlimit(10**9)
H, W = mapint()
query = [list(eval(input())) for _ in range(H)]


def check():
    for h in range(H):
        for w in range(W):
            if query[h][w] == ".":
                continue
            if h != 0 and query[h - 1][w] == "#":
                continue
            if h < H - 1 and query[h + 1][w] == "#":
                continue
            if w != 0 and query[h][w - 1] == "#":
                continue
            if w < W - 1 and query[h][w + 1] == "#":
                continue
            return False
    return True


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

-H, W = list(map(int, input().split())) -Map = [list(str(eval(input()))) for _ in range(H)] -dirc = ((0, 1), (1, 0), (-1, 0), (0, -1)) -ans = "Yes" -for h in range(H): -    for w in range(W): -        if Map[h][w] == "#": -            for y, x in dirc: -                if h + y < 0 or h + y >= H or w + x < 0 or w + x >= W: -                    continue -                if Map[h + y][w + x] == "#": -                    break -            else: -                ans = "No" -print(ans) +import sys + + +def input(): +    return sys.stdin.readline().strip() + + +def mapint(): +    return list(map(int, input().split())) + + +sys.setrecursionlimit(10**9) +H, W = mapint() +query = [list(eval(input())) for _ in range(H)] + + +def check(): +    for h in range(H): +        for w in range(W): +            if query[h][w] == ".": +                continue +            if h != 0 and query[h - 1][w] == "#": +                continue +            if h < H - 1 and query[h + 1][w] == "#": +                continue +            if w != 0 and query[h][w - 1] == "#": +                continue +            if w < W - 1 and query[h][w + 1] == "#": +                continue +            return False +    return True + + +if check(): +    print("Yes") +else: +    print("No")