#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include //#include using namespace std; int main() { int h, w; cin >> h >> w; bool n[550][550] = {}; string p; int r = 0; for (int i = 0; i < h; i++) { cin >> p; for (int j = 0; j < p.size(); j++) { if (p[j] == '#') { n[i][j] = 1; r++; } } // cout << i; } //cout << r << endl; if (r % 2||r==0) { cout << "NO" << endl; return 0; } bool R = 0; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { if (!i && !j)continue; bool f[550][550] = {}; bool p = 0; int y = 0;//cout << i; for (int I = 0; I < h; I++) { for (int J = 0; J < w; J++) { // cout << n[I][J]<< n[I+i][J+j]; if (n[I][J] && n[I + i][J + j]) { if (f[I][J]==0&&f[I + i][J + j] == 0) { y += 2; f[I][J] = 1; f[I+i][J+j] = 1; } else if(!f[I][J]&& f[I + i][J + j]) p= 1; } if (p)break; } //cout << y << i << j << endl;; if (!p&&y == r) { cout << "YES" << endl; return 0; } } } } cout << "NO" << endl; return 0; }