#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void Read(T &x) {
  char c = getchar();
  bool f = false;
  for (x = 0; !isdigit(c); c = getchar()) {
    if (c == '-') {
      f = true;
    }
  }
  for (; isdigit(c); c = getchar()) {
    x = x * 10 + c - '0';
  }
  if (f) {
    x = -x;
  }
}
template <typename T>
inline bool CheckMax(T &a, const T &b) {
  return a < b ? a = b, true : false;
}
template <typename T>
inline bool CheckMin(T &a, const T &b) {
  return a > b ? a = b, true : false;
}
const int N = 55;
char s[N][N];
int n, m;
int main() {
  Read(n), Read(m);
  for (int i = 1; i <= n; ++i) {
    scanf("%s", s[i] + 1);
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j < i; ++j) {
      bool u = true, v = true;
      for (int k = 1; k <= m; ++k) {
        if (s[i][k] == '#' || s[j][k] == '#') {
          if (s[i][k] == '#' && s[j][k] == '#') {
            v = false;
          } else {
            u = false;
          }
        }
      }
      if (!u && !v) {
        puts("No");
        return 0;
      }
    }
  }
  puts("Yes");
  return 0;
}
