#include using namespace std; using pi = pair; signed main() { int v, d; cin >> v >> d; vector> G(v, vector(v, false)); for (int i = 0; i < v; ++i) { string s; cin >> s; for (int j = 0; j < v; ++j) if (s[j] == '1') G[i][j] = true; } bool valid = true; for (int src = 0; valid && src < v; ++src) { queue que; vector rchbl(v, false); que.push(pi(src, 0)); while (!que.empty()) { pi q = que.front(); que.pop(); //cerr << q.second << "\n"; if ((q.first == src && q.second > 0 && d % q.second == 0) || (q.first != src && d % (q.second * 3) == 0)) { rchbl[q.first] = true; } if(q.second>=d)continue; for (int i = 0; i < v; ++i) if (i!=q.first&&G[i][q.first]) que.push(pi(i, q.second + 1)); if (G[q.first][q.first]) que.push(pi(q.first, q.second + 1)); } for (auto&& i : rchbl) if (!i) { valid = false; break; } } cout << (valid ? "Yes" : ":(") << endl; }