#include <bits/stdc++.h>
static const int MAXN = 53;
static int n, m;
static bool a[MAXN][MAXN];
static long long b[MAXN];
int main() {
  scanf("%d%d", &n, &m);
  getchar();
  for (int i = 0; i < n; ++i)
    for (int j = 0; j <= m; ++j) a[i][j] = (getchar() == '#');
  for (int i = 0; i < n - 1; ++i)
    for (int j = i + 1; j < n; ++j) {
      bool all_same = true, no_intersect = true;
      for (int k = 0; k < m; ++k) {
        if (a[i][k] != a[j][k]) all_same = false;
        if (a[i][k] & a[j][k] != 0) no_intersect = false;
      }
      if (!all_same && !no_intersect) {
        puts("No");
        return 0;
      }
    }
  puts("Yes");
  return 0;
}
