""" 10000X = 100tc + (100-t)TC 10000X = 100tc + 100TC - tTC 10000X-100TC = t(100c-TC) tが100以下なので、tを決め打てば cは決まる 枝刈でも通らない? → 流石に無理. C++なら行けるかも TC = (10000X-100tc) / (100-t) t = 100の時、全てのcがXならok """ import sys from sys import stdin N,M = map(int,stdin.readline().split()) X = list(map(int,stdin.readline().split())) C = [] T = [] able_t = [i+1 for i in range(100)] for i in range(N): CT = list(map(int,stdin.readline().split())) c,t = CT[:-1],CT[-1] C.append( c ) T.append( t ) ctset = set() for c,t in zip(C,T): if t == 100: if c == X: print ("Yes") sys.exit() else: CT = [] for i in range(M): L = 10000*X[i] - 100*t*c[i] if L % (100-t) != 0: break CT.append(L // (100-t)) else: if tuple(CT) in ctset: print ("Yes") sys.exit() ct = [ c[i] * t for i in range(M) ] ctset.add( tuple(ct) ) C.reverse() T.reverse() ctset = set() for c,t in zip(C,T): if t == 100: if c == X: print ("Yes") sys.exit() else: CT = [] for i in range(M): L = 10000*X[i] - 100*t*c[i] if L % (100-t) != 0: break CT.append(L // (100-t)) else: if tuple(CT) in ctset: print ("Yes") sys.exit() ct = [ c[i] * t for i in range(M) ] ctset.add( tuple(ct) ) print ("No")