H, W= map(int, input().split())
A = []

if H == 1 and W ==1:
	B = str(input())
	if B == '#':
		print('No')
		exit()
	else:
		print('Yes')
		exit()
elif H == 1:
	A = str(input())
	if A[0] == '#':
		if A[1] == '.':
			print('No')
			exit()
	for i in range (1, W):
		if A[i] == '#' and A[i-1] == '.':
			print('No')
			exit()
	print('Yes')
	exit()
elif W == 1:
	for i in range (0, H):
		A.append(input())
	if A[0] == '#':
		if A[1] == '.':
			print('No')
			exit()
	for i in range (1, H):
		if A[i] == '#' and A[i-1] == '.':
			print('No')
			exit()
	print('Yes')
	exit()


for i in range (0, H):
	A.append(str(input()))
    
counter = 0

for i in range (0, W):
	for j in range (0, H):
		if i == 0:
			if j == 0:
				if A[i][j] == '#' and A[i+1][j]=='.' and A[i][j+1]=='.':
					counter+=1			
			elif j == H-1:
				if A[i][j] == '#' and A[i+1][j]=='.' and A[i][j-1]=='.':
					counter+=1			
			else:
				if A[i][j] == '#' and A[i+1][j]=='.' and A[i][j-1]=='.' and A[i][j+1]=='.':
					counter+=1	
		elif i == W-1:
			if j == 0:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i][j+1]=='.':
					counter+=1			
			elif j == H-1:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i][j-1]=='.':
					counter+=1			
			else:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i][j-1]=='.' and A[i][j+1]=='.':
					counter+=1		
		else:
			if j == 0:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i+1][j]=='.' and A[i][j+1]=='.':
					counter+=1			
			elif j == H-1:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i+1][j]=='.' and A[i][j-1]=='.':
					counter+=1			
			else:
				if A[i][j] == '#' and A[i-1][j]=='.' and A[i+1][j]=='.' and A[i][j-1]=='.' and A[i][j+1]=='.':
					counter+=1	
		if counter > 0:
			print('No')
			exit()
    
print('Yes')