#include <bits/stdc++.h>
using namespace std;
long long dx[4] = {1, 0, -1, 0};
long long dy[4] = {0, -1, 0, 1};
template <class T>
void inputVector(vector<T>& v, long long n) {
  v.resize(n);
  for (long long i = 0; i < v.size(); i++) cin >> v[i];
}
signed main() {
  long long H, W;
  cin >> H >> W;
  vector<string> board;
  inputVector(board, H);
  bool ok = true;
  for (long long y = 0; y < (H); y++) {
    for (long long x = 0; x < (W); x++) {
      if (board[y][x] == '.') continue;
      for (long long ay = 0; ay < (H); ay++) {
        if (board[ay][x] == '.') continue;
        ok &= board[y] == board[ay];
      }
    }
  }
  for (long long x = 0; x < (W); x++) {
    for (long long y = 0; y < (H); y++) {
      if (board[y][x] == '.') continue;
      for (long long ax = 0; ax < (W); ax++) {
        if (board[y][ax] == '.') continue;
        for (long long ay = 0; ay < (H); ay++) {
          ok &= board[ay][x] == board[ay][ax];
        }
      }
    }
  }
  cout << (ok ? "Yes" : "No") << endl;
  return 0;
}
