#include <bits/stdc++.h>
using namespace std;
bool grid[55][55];
int p[110];
int find(int x) {
  if (p[x] != x) p[x] = find(p[x]);
  return p[x];
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n + m; ++i) p[i] = i;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j) {
      char c;
      scanf(" %c", &c);
      grid[i][j] = c == '#';
      if (grid[i][j]) p[find(i)] = find(n + j);
    }
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j)
      if (!grid[i][j] && find(i) == find(n + j)) {
        printf("No\n");
        return 0;
      }
  printf("Yes\n");
  return 0;
}
