
process.stdin.setEncoding('utf-8');
process.stdin.on('data', function (chunk) {
  var lines = chunk.split('\n');
  var h = Number(lines[0].split(' ')[0]),
      w = Number(lines[0].split(' ')[1]);
  var canvas = [];
  
  canvas.push('.'.repeat(w + 2).split(''));
  for(var i=0; i<h; i++) {
    var line = lines[i+1].slice(0, w).split('');
    line.unshift('.');
    line.push('.');
    canvas.push(line);
  }
  canvas.push('.'.repeat(w + 2).split(''));

  var result = 'Yes';
  for(var y=1; y<h; y++) {
    for(var x=1; x<w; x++) {
      if(canvas[y][x] == '#' && !isDraw(canvas, y, x)) {
        result = 'No'
      }
    }
  }
  console.log(result);
});

// canvasは周りに1行、1列無駄にあることに注意
// y, xはそれを考慮した値を入れること
function isDraw(canvas, y, x) {
  var eval = evaluateMass(canvas[y][x])
    + evaluateMass(canvas[y - 1][x])
    + evaluateMass(canvas[y + 1][x])
    + evaluateMass(canvas[y][x - 1])
    + evaluateMass(canvas[y][x + 1]);
  return eval >= 2;
}

function evaluateMass(mass) {
  return mass == '#' ? 1 : 0;
}