#include <bits/stdc++.h>
using namespace std;
const int N = 55;
char str[N][N];
int vis[N];
int n, m;
long long msk[N];
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 0; i < int(n); i++) scanf("%s", str[i]);
  for (int i = 0; i < int(n); i++)
    for (int j = 0; j < int(m); j++)
      if (str[i][j] == '#') msk[i] |= (1LL << j);
  for (int i = 0; i < int(n); i++) {
    if (vis[i]) continue;
    vector<int> v;
    for (int j = int(i); j <= int(n - 1); j++) {
      if (msk[i] == msk[j])
        v.push_back(j);
      else if (msk[i] & msk[j]) {
        puts("No");
        return 0;
      }
    }
    for (int nxt : v) vis[nxt] = true;
  }
  puts("YES");
  return 0;
}
