#include <bits/stdc++.h>
using namespace std;
void run(istream &in, ostream &out) {
  int n, m;
  in >> n >> m;
  vector<string> b(n);
  for (int i = 0; i < n; ++i) in >> b[i];
  vector<int> cc[m];
  for (int r = 0; r < n; ++r) {
    vector<int> nw;
    for (int c = 0; c < m; ++c)
      if (b[r][c] == '#') nw.push_back(c);
    for (int c : nw)
      if (cc[c].size() && cc[c] != nw) {
        cout << "No\n";
        return;
      }
    for (int i = 0; i + 1 < nw.size(); ++i)
      if (cc[nw[i]] != cc[nw[i + 1]]) {
        cout << "No\n";
        return;
      }
    for (int c : nw) cc[c] = nw;
  }
  out << "Yes\n";
}
int main(int argc, char *agrv[]) {
  bool a = 0;
  if (a) {
    ifstream in("input");
    run(in, cout);
  } else
    run(cin, cout);
  return 0;
}
