N,K=map(int,input().split()) A,M=[],[] X=[[] for i in range(N)] G=[[] for i in range(N)] for i in range(N): a,m=map(int,input().split()) A.append(a) M.append(m) X[i]=list(map(int,input().split())) for j in range(M[i]): X[i][j]-=1 G[X[i][j]].append(i) INF=10**18 DP=[INF]*N for i in range(N): DP[i]=A[i] for j in range(len(X[i])): DP[i]=min(DP[i],DP[X[i][j]]) ANS=0 for i in range(N): ANS=max(ANS,A[i]-DP[i]) print(ANS)