#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false); cin.tie(0);
#define FOR(i,s,n) for(int i = (s); i < (n); i++)
#define REP(i,n) FOR(i,0,n)
#define RREP(i,n) for(int i = (n); i >= 0; i--)
#define ALL(n) (n).begin(), (n).end()
#define RALL(n) (n).rbegin(), (n).rend()
#define ATYN(n) cout << ( (n) ? "Yes":"No") << '\n';
#define CFYN(n) cout << ( (n) ? "YES":"NO") << '\n';
#define OUT(n) cout << (n) << '\n';
using ll = long long;
using ull = unsigned long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;

int main(void)
{
    IOS
    const vector<int> dx{0,0,1,-1};
    const vector<int> dy{-1,1,0,0);
    int h, w;
    cin >> h >> w;
    vector<string> ss(h);
    REP(i,h) cin >> ss[i];

    bool ans = true;
    REP(y,h) REP(x,w) {
        if (ss[y][x] == '.') continue;
        REP(i,5) {
            if (i == 4) {
                ans = false;
                break;
            }
            int x2 = x + dx[i];
            int y2 = y + dx[i];
            if (x2 < 0 || x2 >= w) continue;
            if (y2 < 0 || y2 >= h) continue;
            if (ss[y2][x2] == '#') break;
            
        }
        if (!ans) break;
    }

    ATYN(ans)

    return 0;
}