N,M=[int(i) for i in input().split()]
d={}
for _ in range(N):
a,b=input().split()
d[a]=d.get(a,[])+[b] #构造键和值相互索引的字典
d[b]=d.get(b,[])+[a]
for _ in range(M):
A=input().split()[1:]
B=set([]) #采用集合来降低运行时间
for i in range(len(A)):
if A[i] not in B: #将每次遍历的物品及其不相容物品放入B中
B.add(A[i])
temp=d.get(A[i],0)
if temp!=0:
temp=set(temp)
B=B|temp
else:
print("No")
break
if i==len(A)-1:
print("Yes")
break