using System; using System.Collections.Generic; using System.Linq; namespace yukicoder { public class Program { public static void Main() { var line = Console.ReadLine().Split(' '); var h = int.Parse(line[0]); var w = int.Parse(line[1]); var s = new string[h]; var b = new List(); for (var i = 0; i < h; i++) { s[i] = Console.ReadLine(); for(var j = 0; j < w; j++) { if (s[i][j] == '#') { b.Add(new int[2] { i, j }); } } } var n = b.Count; if (n % 2 != 0) { Console.WriteLine("NO"); } else { var z = true; for(var i = 1; i < n; i++) { var c = new bool[n]; var k = new int[2] { b[i][0] - b[0][0], b[i][1] - b[0][1] }; c[0] = true; c[i] = true; for(var j = 1; j < n; j++) { if (!c[j]) { c[j] = true; var x = b[j][0] + k[0]; var y = b[j][1] + k[1]; if (x >= 0 && x < h && y >= 0 && y < w && s[x][y] == '#') { for (var l = 0; l < n; l++) { if (b[l][0] == x && b[l][1] == y) { c[l] = true; break; } } } else { break; } } } if (c.All(value => value)) { Console.WriteLine("YES"); z = false; break; } } if (z) { Console.WriteLine("NO"); } } } } }