#include #include using namespace std; using ll = long long; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); ll N, K; cin >> N >> K; atcoder::mcf_graph g(N); for(ll i = 0; i < N - 1; i++) g.add_edge(i, i + 1, K, 1LL << 30); vector A(N); for(ll i = 0; i < N; i++){ ll M; cin >> A[i] >> M; while(M--){ ll B; cin >> B; B--; if(A[B] < A[i]) g.add_edge(B, i, 1, ((i - B) << 30) - (A[i] - A[B])); } } cout << ((K * (N - 1)) << 30) - g.flow(0, N - 1, K).second << endl; }