#include <bits/stdc++.h>
using namespace std;
template <class T>
void chmin(T& a, T const& b) {
  if (b < a) a = b;
}
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
using ll = long long;
const ll mod = LLONG_MAX;
int H, W;
string s[51];
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
bool inside(int y, int x) { return y >= 0 && x >= 0 && y < H && x < W; }
int main() {
  cin >> H >> W;
  for (int i = 0; i < H; i++) {
    cin >> s[i];
  }
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (s[i][j] == '#') {
        bool flag = false;
        for (int k = 0; k < 4; k++) {
          int ny = i + dy[k];
          int nx = j + dx[k];
          if (inside(ny, nx)) {
            cout << s[ny][nx] << endl;
            if (s[ny][nx] == '#') {
              flag = true;
            }
          }
        }
        if (!flag) {
          cout << "No" << endl;
          return 0;
        }
      }
    }
  }
  cout << "Yes" << endl;
}
