#include #include #include #include #define REP(i, a, b) for (int i = a; i < (int)(b); i++) #define rep(i, n) REP(i, 0, n) using namespace std; int main() { int h, w; cin >> h >> w; string s; bool blank = false; bool flag = false; bool ans = false; int a[100][100]; rep(i, 100) { rep(j, 100) { a[i][j] = -1; } } rep(i, h) { cin >> s; rep(j, w) { if(s[j] == '#'){ a[i][j] = 1; blank = true; }else{ a[i][j] = 0; } } } if(!blank){ cout << "NO" << endl; return 0; } for(int ud=-50; ud<=50; ud++){ for(int lr=-50; lr<=50; lr++){ if(ud==0 and lr==0){ continue; } int done[100][100]; rep(i, 100) { rep(j, 100) { done[i][j] = 0; } } rep(i, h) { rep(j, w) { if(done[i][j] == 1){ continue; } if (a[i][j] == 1) { if(i+ud<0 or i+ud>=h or j+lr<0 or j+lr>=w){ flag = true; break; } if (a[i + ud][j + lr] != 1) { flag = true; break; } done[i+ud][j+lr] = 1; } } if (flag) { break; } } if (!flag) { ans = true; break; } else { flag = false; } } } cout << ((ans) ? "YES" : "NO") << endl; return 0; }