#include <bits/stdc++.h>
using namespace std;
string arr[52];
void solve() {
  int n, m;
  cin >> n >> m;
  for (int i = (0); i < (n); i++) cin >> arr[i];
  set<int> frow, row;
  for (int i = (0); i < (n); i++) {
    if (frow.find(i) == frow.end()) {
      for (int j = (0); j < (m); j++) {
        if (arr[i][j] == '#') {
          for (int k = (i); k < (n); k++) {
            if (arr[k][j] == '#') {
              row.insert(k);
            }
          }
        }
      }
    }
    frow.insert((row).begin(), (row).end());
    int s = 1, val;
    for (auto x : row) {
      if (s > 1) {
        for (int j = (0); j < (m); j++) {
          if (arr[x][j] != arr[val][j]) {
            cout << "No";
            return;
          }
        }
      }
      val = x;
      s++;
    }
    row.clear();
  }
  cout << "Yes";
}
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  ;
  int testcase = 1;
  while (testcase--) solve();
  cerr << "Time elapsed : " << 1.0 * clock() / CLOCKS_PER_SEC << " s. \n";
  return 0;
}
