#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0; i< int (n); i++)
int main(){

int h, w;
cin >> h >> w;
vector<vector<string>> table(100, vector<string>(100));
rep(i,h)rep(j,w) cin >> table(i,j);
bool possible=true;
rep(i,h){
    rep(j,w){
        if(table[i][j]=='#') {
            int dx[4]={1, 0, -1, 0}, dy[4]={0, 1, 0, -1};
            int cnt=0;
            rep(k,4){
                int nx=i+dx[k], ny=j+dy[k];
                if(0<=nx && nx<=w-1 && 0<=ny && ny<=h-1 && table[nx][ny]=='#') cnt++;
            }
            if(cnt==0) possible=false;
        }
        if(!possible) break;
    }
    if(!possible) break;
}

if(possible) cout << "Yes" << endl;
else cout << "No" << endl;
}