#include #define rep(i,n) for(int i = 0; i < (n); ++i) #define rrep(i,n) for(int i = 1; i <= (n); ++i) #define drep(i,n) for(int i = (n)-1; i >= 0; --i) #define srep(i,s,t) for (int i = s; i < t; ++i) #define rng(a) a.begin(),a.end() using namespace std; typedef long long int ll; typedef pair P; typedef vector vi; typedef vector vvi; typedef vector vl; typedef vector

vp; #define dame { puts("-1"); return 0;} #define yn {puts("Yes");}else{puts("No");} #define MAX_N 200005 int main() { int h,w; cin >> h >> w; string s[h]; rep(i,h)cin >> s[i]; rep(i,h){ rep(j,w){ if(i==0&&j==0)continue; int a[h][w]; rep(x,h){ rep(y,w){ if(s[x][y] == '.')a[x][y] = 0; else a[x][y] = 1; } } int f = 0; int blank = 0; rep(x,h){ rep(y,w){ if(a[x][y] == 1){ blank = 1; if(x+i>=h || y+j>=w){ f = 1; break; }else{ if(a[x+i][y+j] == 1){ a[x][y] = 2; a[x+i][y+j] = 2; }else{ f = 1; break; } } } } if(f == 1)break; } if(f == 0 && blank){ cout << "YES" << endl; return 0; } } } rep(i,h){ rep(j,w){ if(i==0&&j==0)continue; int a[h][w]; rep(x,h){ rep(y,w){ if(s[x][y] == '.')a[x][y] = 0; else a[x][y] = 1; } } int f = 0; int blank = 0; rep(x,h){ rep(y,w){ if(a[x][y] == 1){ blank = 1; if(x+i>=h || y-j<0){ f = 1; break; }else{ if(a[x+i][y-j] == 1){ a[x][y] = 2; a[x+i][y-j] = 2; }else{ f = 1; break; } } } } if(f == 1)break; } if(f == 0 && blank){ cout << "YES" << endl; return 0; } } } cout << "NO" << endl; return 0; }