#include <bits/stdc++.h>
using namespace std;
bool taken[52];
int comp(char* a, char* b, int m) {
  bool equal = false, notEqual = false;
  for (int i = 0; i < m; i++) {
    if (a[i] == '#' || b[i] == '#') {
      if ((a[i] != b[i] && equal) || (a[i] == b[i] && notEqual))
        return 1;
      else if (a[i] == b[i])
        equal = true;
      else
        notEqual = true;
    }
  }
  if (!equal)
    return 2;
  else
    return 0;
}
int main() {
  int n, m;
  cin >> n >> m;
  char grid[n][m + 1];
  for (int i = 0; i < n; i++) cin >> grid[i];
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      int r = comp(grid[i], grid[j], m);
      if (r == 0)
        taken[j] = true;
      else if (r == 1) {
        cout << "No";
        return 0;
      } else
        continue;
    }
  }
  cout << "Yes";
  return 0;
}
