
def grid_search(grid, H, W):
    NO = 'No'
    for i in range(H):
        for j in range(W):
            if grid[i][j] == '#':
                if i == 0 or j == 0:
                    if j != 0:
                        if j == W-1:
                            if grid[i+1][j] != '#' and grid[i][j-1] != '#':
                                return NO
                        else:
                            if grid[i+1][j] != '#' and grid[i][j+1] != '#' and grid[i][j-1] != '#':
                                return NO
                    else:
                        if i == H-1:
                            if grid[i][j+1] != '#' and grid[i-1][j] != '#':
                                return NO
                        else:
                            if grid[i+1][j] != '#' and grid[i][j+1] != '#' and grid[i-1][j] != '#':
                                return NO
                elif i == H-1 or j == W-1:
                    if j != W-1:
                        if grid[i-1][j] != '#' and grid[i][j+1] != '#' and grid[i][j-1] != '#':
                            return NO
                    else:
                        if grid[i+1][j] != '#' and grid[i][j-1] != '#' and grid[i-1][j] != '#':
                            return NO
                else:
                    if grid[i+1][j] != '#' and grid[i][j+1] != '#' and grid[i][j-1] != '#' and grid[i-1][j] != '#':
                        return NO
    return 'Yes'

if __name__ == '__main__':
    H, W = map(int, input().split())
    grid = []
    for i in range(H):
        grid.append(input())
    print(grid_search(grid, H, W))
