# 1.上下左右を探索
def searchAround(sheet, h,w):
    # 上がblackか？
    try:
        isSharpAbove = (sheet[h+1][w]=="#")
    except IndexError:
        isSharpAbove = False
        
    # 下がblackか？
    try:
        isSharpBelow = (sheet[h-1][w]=="#")
        if h==0:
            isSharpBelow = False
    except IndexError:
        isSharpBelow = False
    
    # 右がblackか？
    try:
        isSharpRight = (sheet[h][w+1]=="#")
    except IndexError:
        isSharpRight = False
    
    # 左がblackか？
    try:
        isSharpLeft = (sheet[h][w-1]=="#")
        if w==0:
            isSharpLeft = False
    except IndexError:
        isSharpLeft = False  
        
        
    # blackがあるか？
    if isSharpAbove \
    or isSharpBelow \
    or isSharpRight \
    or isSharpLeft:
            return 0
    else:
        return 1
            
    

def main():
    H,W = map(int, input().split())
    sheet = []
    for h in range(H):
        sheet.append(list(input()))
    print(sheet)
    
    for h in range(H):
        for w in range(W):
            flag = searchAround(sheet, h,w)
            if flag==1:
                print('No')
                return 0

    if flag == 0:
        print('Yes')


if __name__ == "__main__":
    main()