def main():

    # 下、右、上、左

    dy = [1, 0, -1, 0]

    dx = [0, 1, 0, -1]

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

    s = [input() for i in range(H)]

    for y in range(H):

        for x in range(W):

            if s[y][x] == '.':

                continue

            cnt = 0

            for i, j in zip(dy, dx):

                ny = y + i

                nx = x + j

                if ny < 0 or H <= ny\

                        or nx < 0 or W <= nx\

                        or s[ny][nx] == '.':

                    continue

                cnt += 1

            if cnt == 0:

                print("No")

                return

    print("Yes")

    return





main()

def main():

    # 下、右、上、左

    dy = [1, 0, -1, 0]

    dx = [0, 1, 0, -1]

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

    s = [["."] * (W + 2)]

    s.extend([["."] + list(input()) + ["."] for i in range(H)])

    s.append(["."] * (W + 2))

    for y in range(1, H + 1):

        for x in range(1, W + 1):

            if s[y][x] == "#" and s[y + dy[0]][x + dx[0]] == "."\

                    and s[y + dy[1]][x + dx[1]] == "."\

                    and s[y + dy[2]][x + dx[2]] == "."\

                    and s[y + dy[3]][x + dx[3]] == ".":

                print("No")

                return

    print("Yes")

    return





main()

def main():
    # 下、右、上、左
    dy = [1, 0, -1, 0]
    dx = [0, 1, 0, -1]
    H, W = map(int, input().split())
    s = [input() for i in range(H)]
    for y in range(H):
        for x in range(W):
            if s[y][x] == ".":
                continue
            cnt = 0
            for i, j in zip(dy, dx):
                ny = y + i
                nx = x + j
                if ny < 0 or H <= ny or nx < 0 or W <= nx or s[ny][nx] == ".":
                    continue
                cnt += 1
            if cnt == 0:
                print("No")
                return
    print("Yes")
    return


main()

def main():
    # 下、右、上、左
    dy = [1, 0, -1, 0]
    dx = [0, 1, 0, -1]
    H, W = map(int, input().split())
    s = [["."] * (W + 2)]
    s.extend([["."] + list(input()) + ["."] for i in range(H)])
    s.append(["."] * (W + 2))
    for y in range(1, H + 1):
        for x in range(1, W + 1):
            if (
                s[y][x] == "#"
                and s[y + dy[0]][x + dx[0]] == "."
                and s[y + dy[1]][x + dx[1]] == "."
                and s[y + dy[2]][x + dx[2]] == "."
                and s[y + dy[3]][x + dx[3]] == "."
            ):
                print("No")
                return
    print("Yes")
    return


main()

-    s = [input() for i in range(H)] -    for y in range(H): -        for x in range(W): -            if s[y][x] == ".": -                continue -            cnt = 0 -            for i, j in zip(dy, dx): -                ny = y + i -                nx = x + j -                if ny < 0 or H <= ny or nx < 0 or W <= nx or s[ny][nx] == ".": -                    continue -                cnt += 1 -            if cnt == 0: +    s = [["."] * (W + 2)] +    s.extend([["."] + list(input()) + ["."] for i in range(H)]) +    s.append(["."] * (W + 2)) +    for y in range(1, H + 1): +        for x in range(1, W + 1): +            if ( +                s[y][x] == "#" +                and s[y + dy[0]][x + dx[0]] == "." +                and s[y + dy[1]][x + dx[1]] == "." +                and s[y + dy[2]][x + dx[2]] == "." +                and s[y + dy[3]][x + dx[3]] == "." +            ):