# 1. 入力の受け取り ans = True N, M = map(int, input().split()) A = [0] * M B = set() # 3.の存在判定のときに使用 for i in range(M): S = input().strip() now = 0 for j in range(N): now += (int(S[N - j - 1]) - 0) * (1 << j) B.add(now) A[i] = now # 2. 条件1を満たすかの確認 for i in range(M): if A[i] == 0: ans = False # 3. 条件2を満たすかの確認 cnt = [0] * (1 << N) # 4.で使用する配列 for i in range(M): cnt[A[i]] += 1 for j in range(N): if (A[i] & (1 << j)) != 0: continue if (A[i] | (1 << j)) not in B: ans = False cnt[A[i] | (1 << j)] += 1 # 4. 条件3を満たすかの確認 one = 0 for i in range(1 << N): if cnt[i] == 1: one += 1 if one >= 2: ans = False # 5. 出力 print("Yes" if ans else "No")