#include using namespace std; int main(){ int N, K; cin >> N >> K; vector A(N), M(N); vector> B(N); for(int i = 0; i < N; i++){ cin >> A[i] >> M[i]; B[i].resize(M[i]); for(int j = 0; j < M[i]; j++) { cin >> B[i][j]; B[i][j]--; } } vector> dp(N, vector(2)); dp[0][0] = 0; dp[0][1] = -A[0]; for(int i = 1; i < N; i++){ for(int j = 0; j < M[i]; j++){ dp[i][0] = max(dp[i][0], A[i] + dp[B[i][j]][1]); dp[i][0] = max(dp[i][0], dp[i - 1][0]); } dp[i][1] = dp[i][0] - A[i]; } cout << dp[N - 1][0] << endl; }