#include<iostream>
#include<algorithm>
#include<string> 
#include<map>
#include<set>
#include<vector>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<queue>
#include<utility>
#include<cstdio>
#include<cstring>
#define fo(i,w,n) for(int i=(int) w;i<(int) n;i++)
#define qui queue<int>
#define vit vector<int>
#define ll long long
#define pb push_back
using namespace std;
char a[51][51];int n,h;
int nn(int x){
	if(x<0)return x+1;
	if(x>=h)return x-1;
	return x;
}
int hh(int v){
	if(v<0)return x+1;
	if(v>=h)return x-1;
	return x;
}
int main()
{cin>>n>>h;
fo(i,0,n) fo(j,0,h)cin>>a[i][j];
fo(i,0,n) fo(j,0,h)if(a[i][j]=='#')
if(a[nn(i+1)][j]!='#'&&a[nn(i-1)][j]!='#'&&a[i][hh(j+1)]!='#'&&a[i][hh(j-1)]!='#')cout<<"NO",return 0;
cout<<"YES";
system("pause");
return 0;
}