local ior = io.input() local h, w = ior:read("*n", "*n", "*l") local t = {} local str = "" for i = 1, h do str = ior:read() for j = 1, w do t[j + (i - 1) * w] = str:sub(j, j) == "#" and 1 or 0 end end local function check(hdiff, wdiff) local tbl = {unpack(t)} local ret = true local painted = false for i_h = 1, h do for j_w = 1, w do local idx = j_w + (i_h - 1) * w if(tbl[idx] == 1) then painted = true if(h < i_h + hdiff or j_w + wdiff < 1 or w < j_w + wdiff) then ret = false break end local dst = idx + w * hdiff + wdiff if(tbl[dst] ~= 1) then ret = false break end tbl[dst] = 2 end end end return painted and ret end local isok = false for i = 0, h - 1 do for j = 1 - w, w - 1 do if(i ~= 0 or 0 < j) then if(check(i, j)) then isok = true break end end end end print(isok and "YES" or "NO")