#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;
    vector < vector <int> > vv(n, vector <int> (m)), flag(n, vector <int> (m));
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            char x;
            cin >> x;
            if(x == '#')
                vv[i][j] = 1;
        }
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
        {
            if(i - 1 > 0 && vv[i - 1][j] == 1)
                flag[i][j] = 1;
            if(i + 1 < n && vv[i + 1][j] == 1)
                flag[i][j] = 1;
            if(j - 1 > 0 && vv[i][j - 1] == 1)
                flag[i][j] = 1;
            if(j + 1 < m && vv[i][j + 1] == 1)
                flag[i][j] = 1;
        }
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            if(vv[i][j] == 1 && !flag[i][j])
                return cout << "No", 0;
    cout << "Yes";
}
