import std;

auto input()
{
    return readln().chomp();
}

alias sread = () => readln.chomp();

void main()
{
    long h, m;
    scan(h, m);
    auto s = new string[](h);
    foreach (i; 0 .. h)
    {
        s[i] = sread();
    }
    writeln(s);
    foreach (i; 0 .. h)
    {
        foreach (j; 0 .. m)
        {
            if (s[i][j] == '#')
            {
                if ((i != 0 && s[i - 1][j] == '#') || (i != h - 1
                        && s[i + 1][j] == '#') || (j != 0 && s[i][j - 1] == '#')
                        || (j != m - 1 && s[i][j + 1] == '#'))
                {
                    continue;
                }
                writeln("No");
                return;
            }
        }
    }
    writeln("Yes");

}

void scan(L...)(ref L A)
{
    auto l = readln.split;
    foreach (i, T; L)
    {
        A[i] = l[i].to!T;
    }
}
