INF = float("INF") N = int(input()) G = [[] for _ in range(N)] for v in range(N): M, *A = map(int, input().split()) G[v] = [a-1 for a in A] def bfs(G, s): from collections import deque N = len(G) dist = [INF]*N Q = deque([s]) dist[s] = 0 while Q: v = Q.popleft() for a in G[v]: if dist[a] != INF: continue Q.append(a) dist[a] = dist[v] + 1 return dist dist = bfs(G, s=0) ans = all(d != INF for d in dist) if ans is True: print("Yes") else: print("No")