import std.stdio, std.string, std.range, std.conv, std.array, std.algorithm, std.math, std.typecons;

void main() {
    auto tmp = readln.split.to!(long[]);
    const H = tmp[0], W = tmp[1];
    const s = H.iota.map!(_ => readln.chomp).array;
    foreach (y; 0..H) {
        foreach (x; 0..W) {
            if (s[y][x] == '.') continue;
            long[2][] n;
            if (0 < x) n ~= [x-1,y];
            if (0 < y) n ~= [x,y-1];
            if (x < W-1) n ~= [x+1,y];
            if (y < H-1) n ~= [x,y+1];

            if (n.all!(p => s[p[1]][p[0]] == '.')) {
                writeln("No");
                return;
            }
        }
    }
    writeln("Yes");
}
