# WA出た、たとえばS['.#', '#.']のときに変化幅はマイナスになるな H, W = map(int, input().split()) S = [] dots = [] for i in range(H): temp = list(input()) S.append(temp) for j in range(W): if temp[j] == '#': dots.append((i, j)) #print(S) #print(dots) dots_set = set(dots) ans = 'NO' for di in range(0, H): for dj in range(-W+1, W): if di==0 and dj==0: continue covered = set() test = True for i, j in dots: if (i, j) in covered: continue #print('i', i, 'j', j, (i+di, j+dj) in dots_set, test) if (i+di, j+dj) in dots_set: covered.add((i+di, j+dj)) else: test = False covered.add((i, j)) #print('di', di, 'dj', dj, covered, test) if test == True: ans = 'YES' print(ans)