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

#include <bits/stdc++.h>
using namespace std;
const long long INF = 2e18;
const long double EPS = 1e-9;
long long n, m;
vector<bool> used_l, used_s;
bool dfs(long long i, long long j, vector<vector<char>> &r,
         vector<vector<char>> &v, bool line) {
  if ((line && used_l[i]) || (!line && used_s[j])) {
    return true;
  }
  bool res = true;
  if (line) {
    used_l[i] = true;
    for (int j1 = 0; j1 < m; ++j1) {
      if (used_s[j1] && v[i][j1] != '#') {
        return false;
      }
      if (v[i][j1] == '#') {
        res &= dfs(i, j1, r, v, !line);
      }
    }
  } else {
    used_s[j] = true;
    for (int i1 = 0; i1 < n; ++i1) {
      if (used_l[i1] && v[i1][j] != '#') {
        return false;
      }
      if (v[i1][j] == '#') {
        res &= dfs(i1, j, r, v, !line);
      }
    }
  }
  r[i][j] = '.';
  return res;
}
int main() {
  srand(time(0));
  ios::sync_with_stdio(false);
  cin >> n >> m;
  used_l.resize(n, false), used_s.resize(m, false);
  vector<vector<char>> v(n, vector<char>(m)), r;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
      cin >> v[i][j];
    }
  }
  r = v;
  bool ans = true;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
      if (r[i][j] == '#') {
        ans &= dfs(i, j, r, v, true);
        fill(used_l.begin(), used_l.end(), false),
            fill(used_s.begin(), used_s.end(), false);
      }
    }
  }
  if (ans) {
    cout << "Yes";
  } else {
    cout << "No";
  }
  return 0;
}
