#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, t;
  cin >> n >> t;
  map<string, pair<vector<int>, vector<int> > > m;
  bool row[n];
  for (int i = 0; i < n; i++) row[i] = false;
  bool col[t];
  for (int i = 0; i < t; i++) col[i] = false;
  string s;
  for (int i = 0; i < n; i++) {
    cin >> s;
    m[s].first.push_back(i);
    for (int j = 0; j < t; j++) {
      if (s[j] == '#') {
        if (find(m[s].second.begin(), m[s].second.end(), j) ==
            m[s].second.end())
          m[s].second.push_back(j);
      }
    }
  }
  for (auto it = m.begin(); it != m.end(); it++) {
    for (int i = 0; i < it->second.first.size(); i++) {
      if (!row[it->second.first[i]])
        row[it->second.first[i]] = true;
      else {
        cout << "NO";
        return 0;
      }
    }
    for (int i = 0; i < it->second.second.size(); i++) {
      if (!col[it->second.second[i]])
        col[it->second.second[i]] = true;
      else {
        cout << "NO";
        return 0;
      }
    }
  }
  cout << "YES";
  return 0;
}
