#include #include using namespace std; class range {private: struct I{int x;int operator*(){return x;}bool operator!=(I& lhs){return x &kort, int dr, int dc) { for(int r : range(h)) { for(int c : range(w)) { if(kort[r][c] != '#') { continue; } int nr = r + dr, nc = c + dc; if(nr < 0 || h <= nr || nc < 0 || w <= nc) { continue; } if(r == nr && c == nc) { continue; } if(kort[nr][nc] != '#') { continue; } kort[r][c] = 'R'; kort[nr][nc] = 'B'; } } } bool check(vector kort) { int red = 0, blue = 0; for(int r : range(h)) { for(int c : range(w)) { if(kort[r][c] == '#') { return false; } if(kort[r][c] == 'R') { red++; } if(kort[r][c] == 'B') { blue++; } } } return red == blue && red > 0; } int main(void) { scanf("%d%d", &h, &w); vector kort(h); for(int i : range(h)) { cin >> kort[i]; } for(int dr : range(-h, h)) { for(int dc : range(-w, w)) { vector copy = kort; nya(copy, dr, dc); if(check(copy)) { puts("YES"); return 0; } } } puts("NO"); return 0; }