#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 10;
int mart[N][N];
int num[N];
bool tag[N];
char s[N];
int n, m, k;
bool flag;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%s", s);
    for (int j = 1; j <= m; j++)
      if (s[j - 1] == '#') mart[i][++num[i]] = j;
  }
  for (int i = 1; i <= n; i++)
    if (num[i]) {
      for (int j = 1; j <= num[i]; j++)
        if (tag[mart[i][j]] == 1) {
          printf("NO\n");
          return 0;
        } else {
          tag[mart[i][j]] = 1;
        }
      for (int j = i + 1; j <= n; j++)
        if (num[i] == num[j]) {
          flag = 1;
          for (int k = 1; k <= num[i]; k++) {
            if (mart[i][k] != mart[j][k]) {
              flag = 0;
              break;
            }
          }
          if (flag) num[j] = 0;
        }
    }
  printf("YES\n");
  return 0;
}
