#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long long INF = 1e18;
const string nl = "\n";
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr);
  long long n, m;
  cin >> n >> m;
  vector<string> b(n);
  for (auto& i : b) {
    cin >> i;
  }
  vector<vector<long long>> a(n, vector<long long>(m));
  for (long long i = 0; i < n; ++i) {
    for (long long j = 0; j < m; ++j) {
      a[i][j] = (b[i][j] == '#');
    }
  }
  for (long long i = 0; i < n - 1; ++i) {
    for (long long j = i + 1; j < n; ++j) {
      bool same = true, inter = true;
      for (long long k = 0; k < m; ++k) {
        if (a[i][k] != a[j][k]) {
          same = false;
        }
        if (a[i][k] && a[j][k]) {
          inter = false;
        }
      }
      if (!same && !inter) {
        cout << "No" << nl;
        return 0;
      }
    }
  }
  cout << "Yes" << nl;
}
