#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 228;
const long long md = 1e9 + 7;
bool us[100][100];
int main(int argc, char** argv) {
  ios_base::sync_with_stdio(false);
  int n, m;
  cin >> n >> m;
  set<pair<int, int> > pts;
  for (int i = 0; i < n; i++) {
    string str;
    cin >> str;
    for (int j = 0; j < m; j++) {
      if (str[j] == '#') {
        pts.insert({i, j});
      }
    }
  }
  while (pts.size()) {
    pair<int, int> pt = *pts.begin();
    queue<pair<int, int> > q;
    q.push(pt);
    set<int> xs;
    set<int> ys;
    while (!q.empty()) {
      pair<int, int> pt = q.front();
      q.pop();
      for (auto e : pts) {
        if (us[e.first][e.second]) continue;
        if (e.first != pt.first && e.second != pt.second) continue;
        us[e.first][e.second] = 1;
        xs.insert(e.first);
        ys.insert(e.second);
        q.push(e);
      }
    }
    for (int i : xs) {
      for (int j : ys) {
        if (pts.find({i, j}) != pts.end()) {
          pts.erase({i, j});
        } else {
          cout << "No\n";
          return 0;
        }
      }
    }
  }
  cout << "Yes\n";
  return 0;
}
