using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ABC096_C
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine().Split(' ');
            var H = int.Parse(input[0]);
            var W = int.Parse(input[1]);

            var S = new string[H];
            for (int i = 0; i < H; i++)
            {
                S[i] = Console.ReadLine();
            }

            if (H == 1 && W == 1)
            {
                Console.WriteLine("No");
                return;
            }

            if (H == 1) //一行しかないとき
            {
                if (W == 2)
                {
                    if (!(S[0][0] == '#' && S[0][1] == '#'))
                    {
                        Console.WriteLine("No");
                        return;
                    }
                }
                for (int i = 1; i < W - 1; i++)
                {
                    if (S[0][i] == '#')
                    {
                        if (!(S[0][i - 1] == '#' || S[0][i + 1] == '#')) //左右に'#'がないかどうか判定、なかったら終了
                        {
                            Console.WriteLine("No");
                            return;
                        }
                    }
                }
                Console.WriteLine("Yes");
                return;
            }

            if (W == 1) //一列しかないとき
            {
                if (H == 2)
                {
                    if (!(S[0][0] == '#' && S[1][0] == '#'))
                    {
                        Console.WriteLine("No");
                        return;
                    }
                }
                for (int i = 1; i < W - 1; i++)
                {
                    if (S[i][0] == '#')
                    {
                        if (!(S[i - 1][0] == '#' || S[i + 1][0] == '#')) //左右に'#'がないかどうか判定、なかったら終了
                        {
                            Console.WriteLine("No");
                            return;
                        }
                    }
                }
                Console.WriteLine("Yes");
                return;
            }

            for (int i = 0; i < H; i++)
            {
                for (int j = 1; j < W - 1; j++)  //端の二列は直接判定せず、隣接する中に'#'があればそこで'#'が二個連続しているか判定すれば良い
                {
                    if (S[i][j] == '#')
                    {
                        if (i == 0)
                        {
                            if (!(S[i + 1][j] == '#' ||
                                S[i][j - 1] == '#' || S[i][j + 1] == '#'))
                            {
                                Console.WriteLine("No");
                                return;
                            }
                            else
                            {
                                continue;
                            }
                        }

                        if (i == H - 1)
                        {
                            if (!(S[i - 1][j] == '#' ||
                                S[i][j - 1] == '#' || S[i][j + 1] == '#'))
                            {
                                Console.WriteLine("No");
                                return;
                            }
                            else
                            {
                                continue;
                            }
                        }

                        if (!(S[i - 1][j] == '#' || S[i + 1][j] == '#' ||
                            S[i][j - 1] == '#' || S[i][j + 1] == '#')) //上下左右に'#'がないかどうか判定、なかったら終了
                        {
                            Console.WriteLine("No");
                            return;
                        }
                    }
                }
            }
            Console.WriteLine("Yes");
        }
    }
}


Measured memory_bytes: 13140