#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
#define fi first
#define se second
#define pb push_back
#define pbb pop_back
#define make_pair mp
#define all(x) x.begin(), x.end()
#define mem(array, value) memset(array, value, sizeof(array))
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a/__gcd(a,b))*b
#define line cout << "==========" << endl
#define mod 1000000007
#define SIZE 1000001

int main ()
{
    int h, w;
    cin >> h >> w;
    char ara[h][w];
    int c = 0;
    for (int i = 0; i<h; i++){
        for (int j = 0; j<w; j++){
            cin >> ara[i][j];
//            if (ara[i][j] == '#')
//                c++;
        }
    }
    for (int i = 0; i<h; i++){
        for (int j = 0; j<w; j++){
            if (ara[i][j] == '#'){
                int c = 0;
                if (i-1 >= 0 && ara[i-1][j] == '#')
                    c++;
                if (i+1 < h && ara[i+1][j] == '#')
                    c++;
                if (j-1 >= 0 && ara[i][j-1] == '#')
                    c++;
                if (j+1 < w && ara[i][j+1] == '#')
                    c++;
                if (c == 0){
                    cout << "No\n";
                    return 0;
                }

            }
        }
    }
    cout << "Yes\n";

//    int mark[h][w];
//    for (int i = 0; i<h; i++){
//        for (int j = 0; j<w; j++){
//            mark[i][j] = 0;
//        }
//    }
//    int ans = 0;
//    int tm = 0;
//    for (int i = 0; i<h; i++){
//        for (int j = 0; j<w; j++){
//                /// first
//            if (mark[i][j] == 0 and ara[i][j] == '#' && tm == 0){
//                ans ++;
//                mark[i][j] = 1;
//                if (i-1 >= 0 && mark[i-1][j] == 0 && ara[i-1][j] == '#'){
//                    ans++;
//                    mark[i-1][j] = 1;
//                }
//                if (i+1 < h && mark[i+1][j] == 0 && ara[i+1][j] == '#'){
//                    ans++;
//                    mark[i+1][j] = 1;
//                }
//                if (j-1 >= 0 && mark[i][j-1] == 0 && ara[i][j-1] == '#'){
//                    ans++;
//                    mark[i][j-1] = 1;
//                }
//                if (j+1 < w  && mark[i][j+1] == 0 && ara[i][j+1] == '#'){
//                    ans++;
//                    mark[i][j+1] = 1;
//                }
//                tm++;
//            }
//            else if (mark[i][j] == 1 and ara[i][j] == '#'){
//                ans ++;
//                mark[i][j] = 1;
//                if (i-1 >= 0 && mark[i-1][j] == 1 && ara[i-1][j] == '#'){
//                    ans++;
//                    mark[i-1][j] = 1;
//                }
//                if (i+1 < h && mark[i+1][j] == 1 && ara[i+1][j] == '#'){
//                    ans++;
//                    mark[i+1][j] = 1;
//                }
//                if (j-1 >= 0 && mark[i][j-1] == 1 && ara[i][j-1] == '#'){
//                    ans++;
//                    mark[i][j-1] = 1;
//                }
//                if (j+1 < w  && mark[i][j+1] == 1 && ara[i][j+1] == '#'){
//                    ans++;
//                    mark[i][j+1] = 1;
//                }
//                tm++;
//            }
//        }
//    }
//    if (ans == c)
//        cout << "Yes\n";
//    else
//        cout << "No\n";
    return 0;
}


Measured memory_bytes: 256