9 5
.....
#....
..#..
.....
.#..#
...#.
.#...
....#
.....
 4 10
..#......#
.....##...
#.........
.#.......#
 50 2
..
..
#.
..
.#
..
..
..
.#
..
..
.#
##
..
..
..
.#
..
..
.#
..
..
.#
..
..
.#
..
.#
..
.#
..
.#
.#
.#
..
..
..
.#
.#
.#
..
..
.#
.#
..
..
..
..
..
..
 2 50
...#.##.###...#.#..##....##..........#.#..#.#####.
...#.##.###...#.#..##....##..........#.#..#.#####.
 1 1
#
 3 3
.##
#.#
##.
 50 8
.....#..
........
........
.....#..
.....#..
........
........
........
........
...#....
...#....
........
...#....
#.#.#...
...#....
...#....
........
...#....
...#....
...#....
........
#.#.#...
.....#..
........
#.#.#...
#.#.#...
#.#.#...
...#....
........
........
........
#.#.#...
........
.....#..
........
........
........
........
........
........
.....#..
........
........
........
.....#..
#.#.#...
...#....
........
........
........
 1 1
.
 25 16
.............#..
.............#..
.......#...#....
............#...
.....#..........
.....#..........
#...............
................
........#.......
................
................
.#..............
#...............
.....#..........
.#..............
............#...
................
................
................
........#.......
..#.............
..........#.....
.......#...#....
.............#..
..........#.....
 25 16
..............#.
................
...#...#........
........#.#.....
..............##
..............#.
.......#........
......#.........
............#...
.........#.....#
..............#.
.......#........
#...........#...
...#.#..........
.#..............
................
......#.....#...
.......#........
........#.....#.
................
......#.........
..#.............
................
...#.#..........
.#..............
 10 15
.......#.......
.....#.........
....#..........
....#..........
.....#.........
.....#.........
#.............#
...#..#........
...............
.............#.
 4 10
###..#..##
...##..#..
.##..#..#.
.........#
 2 5
.####
#..##
 5 2
##
##
..
##
..
 2 2
##
#.
 50 1
.
.
#
.
#
.
#
.
.
#
#
#
.
#
#
#
#
.
.
.
.
.
.
.
.
.
#
#
#
#
.
.
.
.
.
#
.
.
.
#
#
.
.
#
#
.
.
#
#
.
 5 2
#.
##
##
#.
..
 2 3
#.#
###
 2 1
.
#
 2 3
#.#
##.
 10 10
..........
..........
..........
..........
.#.......#
#.........
......#...
..........
..........
#.....#...
 4 4
###.
##.#
#.##
.###

No
 No
 No
 Yes
 Yes
 No
 Yes
 Yes
 Yes
 No
 Yes
 No
 No
 Yes
 No
 Yes
 No
 No
 Yes
 No
 No
 No

"""
def read2():
  ent = input().split()
  line = input().split()
  return int(ent[0]), list(map(int, line))

A = [1,2,3,4,5]

def a(A):
  for i in range(len(A)):
    A[i] -= 1
  for i in range(len(A)):
    if A[A[A[i]]]== i:
      return 'YES'
  return 'NO'

def b(n, A):
  m = 0
  ind = 1
  c = 10e7
  for k in range(len(A)):
    if (n % A[k]) < c:
      c = n % A[k]
      m = int(n/A[k])
      ind = k + 1
  return ind, m


A = [2, 4, 5, 1, 3]
#print(*b(*read2()))
"""
def read3():
    ent0 = input().split()
    line = input().split()
    ent = input().split()
    return int(ent[0]), int(ent[1]), list(map(int, line))

def time(s, f, A):
    d = f - s
    msum = sum(A[:d])
    csum = msum
    mind = 0
    n = len(A)
    A.extend(A[:d])
    # print (csum)
    for i in range(1, n):
        csum += A[i + d - 1] - A[i - 1]
        print(mind, msum, csum)
        if csum > msum:

            msum = csum
            mind = i
    print(mind)
    if s - mind > 0:
        return s - mind
    print(mind, msum, csum)
    return n + (s - mind)

#print(time(*read3()))

def read3():
    ent = input()
    line = input()
    #ent = input().split()
    return int(ent), line

def Ax(n,line):
    for i, l in enumerate(line):
        if l != '?' and i + 1 < n and line[i+1] == l:
            return 'No'
        #if l == '?' and i-1 >= 0 and i + 1 < n and '?' != line[i-1] != line[i+1] != '?':
        #    return 'No', '?' != line[i-1] != line[i+1] != '?', line[i-1] != line[i+1]
        #if l == '?' and i-1 >= 0 and i + 2 < n and line[i+1] == '?'and '?' != line[i-1] != line[i+2] != '?':
        #    return 'No'
        if l == '?' and i in [0,n-1]:
            return 'Yes'
        if l == '?' and i-1 >= 0 and i + 1 < n and '?' != line[i-1] == line[i+1] != '?':
            return 'Yes'
        if l == '?' and i - 1 >= 0 and i + 2 < n and line[i + 1] == '?' and '?' != line[i - 1] == line[i + 2] != '?':
            return 'Yes'
    return 'No'



#print(Ax(*read3()))

def rea():
    rn, cn = list(map(int, input().split()))
    T = []
    for r in range(rn):
        T.append(input())
    return rn, cn, T


def table(rn, cn, T):
    he = {}
    for r in range(rn):
        if T[r] in he:
            he[T[r]].add(r)
        else:
            he[T[r]] = set()
    hcol = set()
    for r in range(rn):
        for c in range(cn):
            if T[r][c] == '#' and r not in he[T[r]]:
                if c in hcol:
                    return 'No'
                else:
                    hcol.add(c)
    return 'Yes'

print(table(*rea()))
































