# -*- coding: utf-8 -*-
"""
Created on Tue Aug  7 23:17:21 2018

@author: Yuki
"""


def check_good(S, w, h, W, H):
    upper_flag = True
    down_flag = True
    left_flag = True
    right_flag = True
    if w == 0:
        left_flag = False
    if w == W - 1:
        right_flag = False
    if h == 0:
        upper_flag = False
    if h == H - 1:
        down_flag = False
    tmp = []
    if left_flag:
        tmp.append(S[h][w-1] == '#')
    if right_flag:
        tmp.append(S[h][w+1] == '#')
    if upper_flag:
        tmp.append(S[h-1][w] == '#')
    if down_flag:
        tmp.append(S[h+1][w] == '#')
    return sum(tmp)
def main():
    H, W = map(int, input().split())
    S = []
    for i in range(H):
        S.append(input())
    
    Yes_flag = True
    for w in range(W):
        for h in range(H):
            if S[h][w] == '#':
                res = check_good(S, w, h, W, H)
                if res == 0:
                    Yes_flag = False
                    print(w, h)
            if Yes_flag == False:
                break
        if Yes_flag == False:
            break
    if Yes_flag:
        print('Yes')
    else:
        print('No')

if __name__ == '__main__':
    main()