#include <bits/stdc++.h>
using namespace std;
int main() {
  int m, n;
  cin >> m >> n;
  vector<string> A(m);
  for (int i = 0; i < m; i++) {
    cin >> A[i];
  }
  int f = 0;
  for (int i = 0; i < m - 1; i++) {
    long long int x = 0;
    for (int k = 0; k < n; k++) {
      if (A[i][k] == '.')
        x = 2 * x + 0;
      else
        x = 2 * x + 1;
    }
    for (int j = i + 1; j < m; j++) {
      long long int y = 0;
      for (int k = 0; k < n; k++) {
        if (A[j][k] == '.')
          y = 2 * y + 0;
        else
          y = 2 * y + 1;
      }
      if (x != y && (x & y) != 0) {
        cout << "No" << endl;
        f = 1;
        break;
      }
    }
    if (f == 1) break;
  }
  if (f == 0) cout << "Yes" << endl;
}
