#include #include #include #include typedef long long ll; using namespace std; #define rep(i,b) for(ll i=0;i<(b);++i) #define rep1(i,b) for(ll i=1;i<=(b);++i) #define vec vector #define FOR(I,A,B) for(ll I=(A);I<(B);++I) #define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << endl; // http://procon-nenuon61.hatenablog.com/entry/2017/03/11/143154 int main() { int H, W; cin >> H >> W; vector mass(H); rep(i, H) cin >> mass[i]; bool isPainted[H][W]; rep(i, H) rep(j, W) isPainted[i][j] = false; bool check = false; FOR(dy, -H, H) { FOR(dx, -W, W) { if (dy == 0 && dx == 0) continue; rep(i, H) rep(j, W) isPainted[i][j] = false; rep(z, (H-1)*W+W) { int y = z/W; int x = z%W; if (mass[y][x] == '#' && isPainted[y][x] == false) { isPainted[y][x] = true; if (y+dy<0 || y+dy>=H || x+dx<0 || x+dx>=W) { check = false; break; } if (mass[y+dy][x+dx]=='#' && isPainted[y+dy][x+dx] == false) { isPainted[y+dy][x+dx] = true; check = true; } else { check = false; break; } } } if (check) { cout << "YES" << endl; return 0; } } } cout << "NO" << endl; }