#include <bits/stdc++.h>
using namespace std;
long long n, m, row[53];
string mat[53];
void fastio() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout << fixed << setprecision(10);
}
bool check(long long x, set<long long> &s) {
  for (long long i = x + 1; i < n; i++) {
    if (!row[i]) {
      for (auto k : s) {
        if (mat[i][k] == '#') {
          row[i] = 1;
          for (long long j = 0; j < m; j++) {
            if ((mat[i][j] == '#' && s.find(j) == s.end()) ||
                (mat[i][j] == '.' && s.find(j) != s.end()))
              return false;
          }
        }
      }
    }
  }
  return true;
}
int main() {
  fastio();
  cin >> n >> m;
  for (long long i = 0; i < n; i++) {
    cin >> mat[i];
  }
  for (long long i = 0; i < n; i++) {
    if (!row[i]) {
      row[i] = 1;
      set<long long> s;
      for (long long j = 0; j < m; j++) {
        if (mat[i][j] == '#') s.insert(j);
      }
      if (!check(i, s)) {
        cout << "No";
        return 0;
      }
    }
  }
  cout << "Yes";
  return 0;
}
