9 5
.....
#....
..#..
.....
.#..#
...#.
.#...
....#
.....
 4 10
..#......#
.....##...
#.........
.#.......#
 50 2
..
..
#.
..
.#
..
..
..
.#
..
..
.#
##
..
..
..
.#
..
..
.#
..
..
.#
..
..
.#
..
.#
..
.#
..
.#
.#
.#
..
..
..
.#
.#
.#
..
..
.#
.#
..
..
..
..
..
..
 2 50
...#.##.###...#.#..##....##..........#.#..#.#####.
...#.##.###...#.#..##....##..........#.#..#.#####.
 1 1
#
 3 3
.##
#.#
##.
 50 8
.....#..
........
........
.....#..
.....#..
........
........
........
........
...#....
...#....
........
...#....
#.#.#...
...#....
...#....
........
...#....
...#....
...#....
........
#.#.#...
.....#..
........
#.#.#...
#.#.#...
#.#.#...
...#....
........
........
........
#.#.#...
........
.....#..
........
........
........
........
........
........
.....#..
........
........
........
.....#..
#.#.#...
...#....
........
........
........
 1 1
.
 25 16
.............#..
.............#..
.......#...#....
............#...
.....#..........
.....#..........
#...............
................
........#.......
................
................
.#..............
#...............
.....#..........
.#..............
............#...
................
................
................
........#.......
..#.............
..........#.....
.......#...#....
.............#..
..........#.....
 25 16
..............#.
................
...#...#........
........#.#.....
..............##
..............#.
.......#........
......#.........
............#...
.........#.....#
..............#.
.......#........
#...........#...
...#.#..........
.#..............
................
......#.....#...
.......#........
........#.....#.
................
......#.........
..#.............
................
...#.#..........
.#..............
 10 15
.......#.......
.....#.........
....#..........
....#..........
.....#.........
.....#.........
#.............#
...#..#........
...............
.............#.
 4 10
###..#..##
...##..#..
.##..#..#.
.........#
 2 5
.####
#..##
 5 2
##
##
..
##
..
 2 2
##
#.
 50 1
.
.
#
.
#
.
#
.
.
#
#
#
.
#
#
#
#
.
.
.
.
.
.
.
.
.
#
#
#
#
.
.
.
.
.
#
.
.
.
#
#
.
.
#
#
.
.
#
#
.
 5 2
#.
##
##
#.
..
 2 3
#.#
###
 2 1
.
#
 2 3
#.#
##.
 10 10
..........
..........
..........
..........
.#.......#
#.........
......#...
..........
..........
#.....#...
 4 4
###.
##.#
#.##
.###

No
 No
 No
 Yes
 Yes
 No
 Yes
 Yes
 Yes
 No
 Yes
 No
 No
 Yes
 No
 Yes
 No
 No
 Yes
 No
 No
 No

#include <stdio.h>
#include <iostream>
#include <iomanip>
#include <utility>
#include <algorithm>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <deque>
#include <queue>
#include <stack>
#include <vector>
#include <tuple>
#include <random>
#include <time.h>
#include <math.h>
#include <fstream>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
typedef __gnu_pbds::tree<long long, __gnu_pbds::null_type, less<long long>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update> ordered_set;
typedef unsigned long long ui;
typedef long long ll;
typedef unsigned long long ull;
typedef long double lld;

const long long BASE = 10000, INF = 2147483647, MOD = 1000000007;
const long long LL_INF = 9223372036854775807LL;
const double PI = 3.141592653589793238;
const long long MAX_N = 1000000000;

ll n, m, p, q, h, ans, cnt;
char mp[500][500];
int used[500][500];
bool check_valid(int x, int y) {
    if (mp[x][y] == '.' || used[x][y]) return true;
    //cout << x << " " << y << endl;
    used[x][y] = true;
    vector<int> xs, ys;
    for (int i = 0; i < n; i++) {
        if (i == x) continue;
        if (mp[i][y] == '#') {
            if (used[i][y]) return false;
            xs.push_back(i);
            used[i][y] = true;
        }
    }
    for (int j = 0; j < m; j++) {
        if (j == y) continue;
        if (mp[x][j] == '#') {
            if (used[x][j]) return false;
            ys.push_back(j);
            used[x][j] = true;
        }
    }
    for (int i: xs) for (int j: ys) {
        if (mp[i][j] == '#' && !used[i][j]) used[i][j] = true;
        else return false;
    }
    return true;
}
int main(){
    ios::sync_with_stdio(0); cin.tie(); cout.tie();
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    cin >> n >> m;
    for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) {
        cin >> mp[i][j];
    }
    for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) {
        if (!check_valid(i, j)) {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";
    return 0;
}
