#include <stdio.h>
#define N 2000
#define F(i,x) for(i=0;i<(x);i++)
char a[N][N],b[N][N];
int n,m,i,j,x,y;
int main(){
for(scanf("%d %d",&n,&m);i<n;i++)
scanf("%s",&a[i]);
F(i,n)F(j,m)b[i][j]='.';
F(i,n-2)F(j,m-2){
F(x,3)F(y,3)if(x*y!=1&&a[i+x][j+y]=='.')goto L;
F(x,3)F(y,3)if(x*y!=1)b[i+x][j+y]='#';
L:;
}
F(i,n)F(j,m)if(a[i][j]!=b[i][j]){puts("NO");return 0;}
puts("YES");
return 0;
}