H, W = map(int, input().split())
s = [[] for i in range(H)]
num = 0
judge = 0
for i in range(H):
    s[i] = input()
    if '#' in s[i]:
        start = [i, s[i].index('#')]
        num += s[i].count('#')

if num == 0:
    print('Yes')
else:
    check = [[True]*W for i in range(H)]
    check[start[0]][start[1]] = False
    stack = [start]
    
    while len(stack) != 0:
        now = stack.pop()
        if s[now[0]][now[1]] == '#':
            judge += 1
            for y, x in [0, 1], [0, -1], [1, 0], [-1, 0]:
                if 0 <= now[0]+y <= H-1 and 0 <= now[1]+x <= W-1 and check[now[0]+y][now[1]+x] == True:
                    check[now[0]+y][now[1]+x] = False
                    stack.append([now[0]+y, now[1]+x])
    if judge == num:
        print('Yes')
    else:
        print('No')