fun main() { val (height, width) = readLine()!!.trim().split(' ').map(String::toInt) val square = Array(height){readLine()!!.trim()} val type = Array(height){IntArray(width){-1} } val blackCell = (0 until height).flatMap{h -> (0 until width).filter{w -> square[h][w] == '#'}.map{w -> h to w}} if (blackCell.size < 2) { println("NO") return } var hasPair = true outer@for (dh in 0 until height) { for (dw in -width + 1 until width) { if (dh == 0 && dw == 0) continue val count = (dh * width * 2) + dw + width hasPair = true for ((h, w) in blackCell) { if (type[h][w] >= count) continue type[h][w] = count if (h + dh !in 0 until height || w + dw !in 0 until width) { hasPair = false break } if (square[h + dh][w + dw] != '#') { hasPair = false break } type[h + dh][w + dw] = count } if (hasPair) { break@outer } } } println(if (hasPair) "YES" else "NO") }