#include <bits/stdc++.h>
using namespace std;
bool visited[50][50];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int m, n;
  cin >> m >> n;
  vector<string> s(m);
  for (int i = 0; i < m; i++) cin >> s[i];
  queue<pair<int, int> > q;
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++) {
      if (s[i][j] == '-') continue;
      if (visited[i][j]) continue;
      q.push({i, j});
      visited[i][j] = true;
      int cnt = 0;
      while (!q.empty()) {
        int x = q.front().first, y = q.front().second;
        q.pop();
        cnt++;
        for (int k = -1; k <= 1; k++)
          for (int l = -1; l <= 1; l++) {
            if (k == 0 and l == 0) continue;
            if (k != 0 and l != 0) continue;
            int ai = k + x, aj = l + y;
            if (ai < 0 or ai >= m or aj < 0 or aj >= n) continue;
            if (visited[ai][aj]) continue;
            if (s[ai][aj] == '.') continue;
            visited[ai][aj] = true;
            q.push({ai, aj});
          }
      }
      if (cnt == 1) {
        cout << "No";
        return 0;
      }
    }
  cout << "Yes";
}
