#include #include #include using namespace atcoder; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000000000000000 int main(){ int N,K; cin>>N>>K; vector A(N),M(N); vector> B(N); rep(i,N){ cin>>A[i]>>M[i]; B[i].resize(M[i]); rep(j,M[i]){ scanf("%d",&B[i][j]); B[i][j]--; } } vector dp(N+1,-Inf); dp.back() = 0; rep(i,N){ dp[i] = dp.back()-A[i]; rep(j,M[i]){ dp[i] = max(dp[i],dp[B[i][j]]); dp.back() = max(dp.back(), dp[B[i][j]] + A[i]); } } cout<