#include <bits/stdc++.h>
bool vis[100][100];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  getchar();
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j <= m; ++j) {
      char s;
      scanf("%c", &s);
      if (s == '#')
        vis[i][j] = 1;
      else
        vis[i][j] = 0;
    }
  }
  int flag3 = 0;
  for (int i = 0; i < n - 1; ++i) {
    for (int j = i + 1; j < n; ++j) {
      bool flag = 0, flag1 = 0;
      for (int k = 0; k < m; ++k) {
        if (vis[i][k] != vis[j][k]) {
          flag = 1;
        }
        if (vis[i][k] && vis[j][k]) {
          flag1 = 1;
        }
      }
      if (flag && flag1) {
        printf("No\n");
        flag3 = 1;
        break;
      }
    }
    if (flag3 == 1) break;
  }
  if (flag3 == 0) printf("Yes\n");
  return 0;
}
