#include using namespace std; #ifdef _RUTHEN #include #else #define show(...) true #endif #define REP(i, n) for (int i = 0; i < (n); i++) template using V = vector; int main() { ios::sync_with_stdio(false); cin.tie(0); int N, M; cin >> N >> M; V> G(1, V(N)); iota(G[0].begin(), G[0].end(), 0); REP(i, M) { string S; cin >> S; V> NG; for (auto &vec : G) { V a0, a1; for (auto &i : vec) { if (S[i] == '0') { a0.push_back(i); } else { a1.push_back(i); } } if (a0.size() > 0) { NG.push_back(a0); } if (a1.size() > 0) { NG.push_back(a1); } } G = NG; } cout << (G.size() == N ? "Yes" : "No") << '\n'; return 0; }