#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair< ll, ll > Pi;
#define rep(i,n) for(int i=0;i<(n);i++)
#define rep2(i,n) for(int i=1;i<=(n);i++)
#define rep3(i,i0,n) for(int i=i0;i<(n);i++)
#define pb push_back
#define mod 1000000007
const ll INF = 1LL << 60;
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
ll gcd(ll a, ll b) {return b?gcd(b,a%b):a;}
ll lcm(ll a, ll b) {return a/gcd(a,b)*b;}
#define all(x) x.begin(), x.end()
#define mp make_pair
bool compare(Pi a, Pi b) {
    if(a.first != b.first){
        return a.first < b.first;
        
    }else{
        return a.second < b.second;
    }
}


bool In_map(ll y,ll x,ll h,ll w){
    if(y<0 || x<0 || y>=h || x>=w){
        return 0;
    }else{
        return 1;
    }
}
const vector<ll> dx{1,0,-1,0};
const vector<ll> dy{0,1,0,-1};


int main() {
    ll H,W;
    cin >>H>>W;
    vector<vector<bool>>S(H+2,vector<bool>(W+2));

    rep2(i,H){
        rep2(j,W){
            char c;
            cin>>c;
            if(c=='#'){
                S[i][j]=1;
            }
        }
    }
    rep2(i,H){
        rep2(j,W){
            if(S[i][j]==1){
                rep(dir,4){
                    if(S[i+dx[dir]][j+dy[dir]]){
                        break;
                    }
                    if(dir==3){
                        cout<<"No"<<endl;
                        return 0;
                    }
                }
            }
        }
    }

    cout << "Yes" << endl;


    return 0;
    

}
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<set>
#include<map>
#include<queue>
#include<cmath>
#define REP(i,a) for (int i = 0;i < (a);++i)
#define FOR(i,a,b) for (int i = (a);i < (b); ++i)
#define FORR(i,a,b) for (int i = (a);i >= (b); --i)
#define ALL(obj) (obj).begin(),(obj).end()
#define SORT(list) sort(ALL((list)));
#define MOD 1000000007
using namespace std;
using ll = long long;
int main(){
    ll x,y;
    cin >> x >> y;
    if(x*y > 0){
        if(x > y){
            cout << min(llabs(x)+llabs(y)+1,llabs(llabs(x)-llabs(y))+2)<< endl;
        }else{
            cout << y - x << endl;
        }
    }else if(x*y < 0){
        cout << llabs(llabs(x)-llabs(y))+1 << endl;
    }else{
        if(x == y){
            cout << 0 << endl;
        }else if(x == 0){
            if(y > 0){
                cout << y << endl;
            }else{
                cout << llabs(y)+1 << endl;
            }
        }else{
            if(x > 0){
                cout << x+1 << endl;
            }else{
                cout << -x << endl;
            }
        }
    }
    return 0;
}