#include <iostream>
using namespace std;
int main(void){
    // Your code here!
    int H, W;
    cin >> H >> W;
    
    //初期か
    int field[H][W];
    for(int i=0;i<H;i++){
        string s;
        cin >> s;
        for(int j=0; j<W;j++){
            if (s.at(j) == '#'){
                field[i][j] = 1;
            }else{
                field[i][j] = 0;
            }
        }
    }
    bool can = true;
    
    
    // for(int i=0; i<H; i++){
    //     for(int j=0; j<W; j++){
    //         if(j==W-1)cout << field[i][j] << endl;
    //         else cout << field[i][j];
    //     }
    // }
    // cout << endl;
    
    //処理
    for(int i=0;i<H;i++){
        for(int j=0; j<W;j++){
            bool flag = false;
            if(field[i][j] == 1){
                // if ((field[i-1][j]==1)or(field[i][j-1]==1)or(field[i+1][j]==1)or(field[i][j+1]==1)){
                //     flag = true;
                // }
                if(i == 0){
                    if(j == 0){
                        if ((field[i+1][j] == 1)or(field[i][j+1] == 1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else if(j == W+1){
                        if ((field[i][j-1] == 1)or(field[i+1][j] == 1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else{
                        if ((field[i][j-1] == 1)or(field[i+1][j] == 1)or(field[i][j+1]==1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }
                }else if(i == H + 1){
                    if(j == 0){
                        if ((field[i-1][j] == 1)or(field[i][j+1] == 1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else if(j == W+1){
                        if ((field[i][j-1] == 1)or(field[i-1][j] == 1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else{
                        if ((field[i][j-1] == 1)or(field[i][j+1]==1)or(field[i-1][j]==1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }
                }else{
                    if(j == 0){
                        if ((field[i-1][j] == 1)or(field[i][j+1] == 1)or(field[i+1][j]==1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else if(j == W+1){
                        if ((field[i][j-1] == 1)or(field[i-1][j] == 1)or(field[i+1][j]==1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }else{
                        if ((field[i][j-1] == 1)or(field[i+1][j] == 1)or(field[i][j+1]==1)or(field[i-1][j]==1)){
                            flag = true;
                        }else{
                            can = false;
                            goto LABEL;
                        }
                    }
                }
            }
            if(flag){
                can = true;
            }
        }
    }
LABEL:
    if(can)cout << "Yes" << endl;
    else cout << "No" << endl;
}


Measured memory_bytes: 256