#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int x[101][101];
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      char ch;
      cin >> ch;
      x[i][j] = ch == '#';
    }
  }
  int y[101][101];
  memset(y, 0, sizeof(y));
  for (int i = 1; i <= n; i++) {
    vector<int> row;
    for (int j = 1; j <= m; j++) {
      if (x[i][j]) row.push_back(j);
    }
    for (int j = 1; j <= m; j++) {
      if (x[i][j]) {
        for (int a = 1; a <= n; a++) {
          if (x[a][j]) {
            for (int k : row) y[a][k] = 1;
          }
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (y[i][j] != x[i][j]) {
        cout << "NO";
        return 0;
      }
    }
  }
  cout << "YES";
  return 0;
}
