############################################################# import sys sys.setrecursionlimit(10**7) from heapq import heappop,heappush from collections import deque,defaultdict,Counter from bisect import bisect_left, bisect_right from itertools import product,combinations,permutations ipt = sys.stdin.readline def iin(): return int(ipt()) def lmin(): return list(map(int,ipt().split())) MOD = 998244353 ############################################################# N,M = lmin() X = lmin() C = [] T = [] for i in range(N): L = lmin() C.append(tuple(L[:-1])) T.append(L[-1]) S = set() for i in range(N): if T[i] == 100: #print(X,C[i]) if tuple(X) == C[i]: print("Yes") exit() tpl = [] for j in range(M): u = 10000*X[j]-100*T[i]*C[i][j] d = 100-T[i] if d == 0: break if u%d != 0: break tpl.append(u//d) else: tpl = tuple(tpl) if tpl in S: print("Yes") exit() S.add(tuple(C[i][j]*T[i] for j in range(M))) C.reverse() T.reverse() S = set() for i in range(N): tpl = [] for j in range(M): u = 10000*X[j]-100*T[i]*C[i][j] d = 100-T[i] if d == 0: break if u%d != 0: break tpl.append(u//d) else: tpl = tuple(tpl) if tpl in S: print("Yes") exit() S.add(tuple(C[i][j]*T[i] for j in range(M))) print("No")