#include <bits/stdc++.h>
using namespace std;
char vvod[60][60];
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    string s;
    cin >> s;
    for (int j = 1; j <= m; j++) {
      vvod[i][j] = s[j - 1];
    }
  }
  for (int i = 1; i <= n - 1; i++) {
    vector<int> g;
    set<int> s;
    string ans = "";
    for (int j = 1; j <= m; j++) {
      ans += vvod[i][j];
      if (vvod[i][j] == '#') {
        for (int i1 = i + 1; i1 <= n; i1++) {
          if (vvod[i][j] == vvod[i1][j] && s.find(i1) == s.end()) {
            s.insert(i1);
            g.push_back(i1);
          }
        }
      }
    }
    for (int i1 = 0; i1 < (int)g.size(); i1++) {
      string now = "";
      for (int j = 1; j <= m; j++) {
        now += vvod[g[i1]][j];
      }
      if (now != ans) {
        cout << "No";
        return 0;
      }
    }
  }
  cout << "Yes";
  return 0;
}
