using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class Program
{
    const string Yes = "Yes";
    const string No = "No";
    const long Mod = 1000000007;

    static void Main(string[] args) {
#if DEBUG
        MyDebugger.Test(process, "../TextFile1.txt");
#else
        object ret = process(new StreamReader(Console.OpenStandardInput()));
        Console.WriteLine(ret);
#endif
    }

    const char B = '#';
    const char W = '.';

    static object process(TextReader input) {
        var spl = input.ReadLine().Split(' ');
        var h = int.Parse(spl[0]);
        var w = int.Parse(spl[1]);

        var tbl = new char[h][];
        for (int i = 0; i < h; i++) {
            tbl[i] = input.ReadLine().ToCharArray();
        }

        for(int i=0; i<h; i++) {
            for (int j = 0; j < w; j++) {
                var ok = false;
                ok |= i - 1 >= 0 && tbl[i - 1][j] == B;
                ok |= i + 1 <  h && tbl[i + 1][j] == B;
                ok |= j - 1 >= 0 && tbl[i][j - 1] == B;
                ok |= j + 1 <  w && tbl[i][j + 1] == B;

                if (!ok) return No;
            }
        }
        return Yes;
    }

    static int[] ToIntArray(string strs, int n) {
        var ret = new int[n];
        var spl = strs.Split(' ');
        for (int i = 0; i < n; i++)
            ret[i] = int.Parse(spl[i]);
        return ret;
    }

    static long Pow(long x, long n) {
        long ans = 1;
        while (n > 0) {
            if (n % 2 == 1) {
                ans = ans * x;
            }
            x = x * x;
            n /= 2;
        }
        return ans;
    }
}
