//#define _GLIBCXX_DEBUG #include #include #include #include using namespace std; using namespace atcoder; using mint = modint1000000007; using ll = long long; using pii = pair; using pll = pair; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; using vb = vector; using vvb = vector; using vm = vector; using vvm = vector; using vpi = vector; using vvpi = vector; using vpl = vector; using vvpl = vector; const int inf = 1 << 30; const ll INF = 1LL << 60; #define rep(i,m,n) for (int i = m; i < (int)(n); i++) #define rrep(i,m,n) for (int i = m; i > (int)(n); i--) int main(){ int n,k; cin >> n >> k; vi A(n); vvpi G(n); rep(i,0,n){ int a,m; cin >> a >> m; A[i] = a; rep(j,0,m){ int b; cin >> b; --b; G[b].push_back({i,a-A[b]}); } } vl dp(n+1); rep(i,0,n){ dp[i+1] = max(dp[i],dp[i+1]); for (auto p:G[i]){ int j = p.first, b = p.second; dp[j] = max(dp[i]+b,dp[j]); } } cout << dp[n] << endl; }