#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int H,W; cin >> H >> W; vectorS(H); for(int i = 0; i < H; i++) { cin >> S[i]; } vector>dp1(H,vector(W)); vector>dp2(H,vector(W)); vector>dp3(H,vector(W)); vector>dp4(H,vector(W)); for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { if(S[i][j] == '#') { dp1[i][j] = 1; if(i && j) dp1[i][j] = dp1[i-1][j-1]+1; } } } for(int i = 0; i < H; i++) { for(int j = W-1; j >= 0; j--) { if(S[i][j] == '#') { dp2[i][j] = 1; if(i && j+1 < W) dp2[i][j] = dp2[i-1][j+1]+1; } } } for(int i = H-1; i >= 0; i--) { for(int j = 0; j < W; j++) { if(S[i][j] == '#') { dp3[i][j] = 1; if(i+1 < H && j) dp3[i][j] = dp3[i+1][j-1]+1; } } } for(int i = H-1; i >= 0; i--) { for(int j = W-1; j >= 0; j--) { if(S[i][j] == '#') { dp4[i][j] = 1; if(i+1 < H && j+1 < W) dp4[i][j] = dp4[i+1][j+1]+1; } } } for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { int mi = min({dp1[i][j],dp2[i][j],dp3[i][j],dp4[i][j]}); if(mi == 1) mi = 0; dp1[i][j] = dp2[i][j] = dp3[i][j] = dp4[i][j] = mi; } } for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { if(S[i][j] == '#') { if(i && j) dp1[i][j] = max(dp1[i][j],dp1[i-1][j-1]-1); } } } for(int i = 0; i < H; i++) { for(int j = W-1; j >= 0; j--) { if(S[i][j] == '#') { if(i && j+1 < W) dp2[i][j] = max(dp2[i][j],dp2[i-1][j+1]-1); } } } for(int i = H-1; i >= 0; i--) { for(int j = 0; j < W; j++) { if(S[i][j] == '#') { if(i+1 < H && j) dp3[i][j] = max(dp3[i][j],dp3[i+1][j-1]-1); } } } for(int i = H-1; i >= 0; i--) { for(int j = W-1; j >= 0; j--) { if(S[i][j] == '#') { if(i+1 < H && j+1 < W) dp4[i][j] = max(dp4[i][j],dp4[i+1][j+1]-1); } } } for(int i = 0; i < H; i++) { for(int j = 0; j < W; j++) { int mx = max({dp1[i][j],dp2[i][j],dp3[i][j],dp4[i][j]}); if(!mx && S[i][j] == '#') { cout << "No" << "\n"; return 0; } } } cout << "Yes" << "\n"; }