# -*- coding:utf-8 -*- def paint(k,l): global h,w,C isPainted = [[False for i in xrange(w)]for j in xrange(h)] for i in xrange(h): for j in xrange(w): if isPainted[i][j]: continue isPainted[i][j] = True if C[i][j] == "#": if i+l >= 0 and i+l < h and j+k >= 0 and j+k < w: if C[i+l][j+k] == "#" and not isPainted[i+l][j+k]: isPainted[i+l][j+k] = True else: return False else: return False return True if __name__ == "__main__": h,w = map(int,raw_input().split()) C = [raw_input() for i in xrange(h)] minx, miny = -1,-1 for i in xrange(h): for j in xrange(w): if C[i][j] == "#": minx,miny = j,i break if minx != -1: break if minx == miny == -1: print "NO" exit() for i in xrange(-minx,w-minx): for j in xrange(h-miny): if paint(i,j): print "YES" exit() print "NO"