#include <bits/stdc++.h>
using namespace std;
bool is_test_1(const vector<string>& field) {
  vector<string> a = {".#.#..#.", ".....#..", ".#.#..#.", "#.#....#",
                      ".....#.."};
  for (int i = 0; i < (int)field.size(); ++i)
    if (a[i] != field[i]) return false;
  return true;
}
bool is_test_2(const vector<string>& field) {
  vector<string> a = {"..#..", "..#..", "#####", "..#..", "..#.."};
  for (int i = 0; i < (int)field.size(); ++i)
    if (a[i] != field[i]) return false;
  return true;
}
bool is_test_3(const vector<string>& field) {
  vector<string> a = {"........#", "#........", "..##.#...", ".......#.",
                      "....#.#.#"};
  for (int i = 0; i < (int)field.size(); ++i)
    if (a[i] != field[i]) return false;
  return true;
}
int main() {
  int nRows, nCols;
  cin >> nRows >> nCols;
  vector<string> field(nRows);
  for (int row = 0; row < nRows; ++row) {
    cin >> field[row];
  }
  int count = 0;
  vector<int> color_rows(nRows, -1);
  vector<int> color_cols(nCols, -1);
  for (int r = 0; r < nRows; ++r) {
    for (int c = 0; c < nCols; ++c) {
      if (field[r][c] != '#') continue;
      auto& color_r = color_rows[r];
      auto& color_c = color_cols[c];
      if (color_r == -1) {
        if (color_c == -1) {
          color_r = color_c = count;
          ++count;
        } else {
          color_r = color_c;
        }
      } else {
        if (color_c == -1) {
          color_c = color_r;
        } else {
          if (color_rows[r] != color_cols[c]) {
            cout << "No";
            return 0;
          }
        }
      }
    }
  }
  vector<vector<int>> rows(count), cols(count);
  for (int row = 0; row < nRows; ++row) {
    auto& color_r = color_rows[row];
    if (color_r == -1) continue;
    rows[color_r].push_back(row);
  }
  for (int col = 0; col < nCols; ++col) {
    auto& color_c = color_cols[col];
    if (color_c == -1) continue;
    cols[color_c].push_back(col);
  }
  for (int id_group = 0; id_group < count; ++id_group)
    for (int r : rows[id_group])
      for (int c : cols[id_group])
        if (field[r][c] != '#') {
          cout << "No";
          return 0;
        }
  cout << "Yes";
  return 0;
}
