#include #include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; atcoder::mcf_graph g(n); vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; int m; cin >> m; if (i == 0) continue; g.add_edge(i - 1, i, k, 1 << 30); for (int j = 0; j < m; j++) { int b; cin >> b; b--; g.add_edge(b, i, 1, ((ll)(i - b) << 30) - a[i] + a[b]); } } auto p = g.flow(0, n - 1, k); cout << ((ll)((n - 1) * k) << 30) - p.second << endl; return 0; }