using System;
using System.Collections.Generic;
using System.Linq;
using static Atcoder;
using System.Threading.Tasks;
using System.ComponentModel;

public class Hello
{

    public static void Main()
    {
        string[] s = SpRead(' ');
        int H = int.Parse(s[0]);
        int W = int.Parse(s[1]);
        string[,] list = new string[H, W];
        for (int i = 0; i < H; i++)
        {
            s = Console.ReadLine().ToCharArray().Select(a => a.ToString()).ToArray();
            for (int j = 0; j < W; j++) list[i, j] = s[j];
        }
        bool flag = true;
        for (int i = 0; i < H; i++)
        {
            for (int j = 0; j < W; j++)
            {
                if (list[i, j] == "#")
                {
                    if (i != 0)
                    {
                        if (list[i - 1, j] == "#") { flag = true; continue; }
                        else flag = false;
                    }
                    if (i != W - 1)
                    {
                        if (list[i + 1, j] == "#") { flag = true; continue; }
                        else flag = false;
                    }
                    if (j != 0)
                    {
                        if (list[i, j - 1] == "#") { flag = true; continue; }
                        else flag = false;
                    }
                    if (j != H - 1)
                    {
                        if (list[i, j + 1] == "#") { flag = true; continue; }
                        else flag = false;
                    }
                }
                if (!flag) {
                    Console.WriteLine("No");
                    return;
                }
            }
        }
        Console.WriteLine("Yes");
    }
}


public class Atcoder
{
    static void Swap<T>(ref T a, ref T b)
    {
        var t = a;
        a = b;
        b = t;
    }
    public static int LCM(int a, int b)
    {
        int c = a * b;
        if (a < b) Swap(ref a, ref b);
        int d = a % b;
        while (d != 0)
        {
            a = b;
            b = d;
            d = a % b;
        }
        return c / b;
    }
    public static string strReverce(string s)
    {
        return new string(s.Reverse().ToArray());
    }
    public static int intRead()
    {
        return int.Parse(Console.ReadLine());
    }
    public static bool IsPrime(int n)
    {
        if (n < 2) return false;
        if (n == 2) return true;
        if (n % 2 == 0) return false;

        //double sqrtNum = Math.Sqrt(n);
        for (int i = 3; i < n; i += 2)
        {
            if (n % i == 0) return false;
        }
        return true;
    }
    public static string[] SpRead(char c)
    {
        return Console.ReadLine().Split(c);
    }

}
