#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f;
char mapp[55][55];
int mapp2[55][55];
int row[55], co[55];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) scanf("%s", mapp[i] + 1);
  int cnt = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (mapp[i][j] == '#') {
        if (row[i] != 0 || co[j] != 0) {
          int tmp = max(row[i], co[j]);
          row[i] = co[j] = tmp;
        } else if (row[i] == 0 && co[j] == 0) {
          row[i] = cnt;
          co[j] = cnt++;
        }
      }
    }
  }
  memset(mapp2, 0, sizeof(mapp2));
  for (int op = 1; op <= cnt; op++) {
    for (int j = 1; j <= n; j++) {
      if (row[j] == op) {
        for (int k = 1; k <= m; k++) {
          if (co[k] == op) {
            mapp2[j][k] = 1;
          }
        }
      }
    }
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      if (mapp2[i][j] == 0 && mapp[i][j] == '.' ||
          mapp2[i][j] == 1 && mapp[i][j] == '#') {
        int a;
      } else {
        puts("No");
        return 0;
      }
  puts("Yes");
}
