#include #include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < int(n); i++) int main() { int n, k; cin >> n >> k; vector a(n); vector m(n); vector> b(n); rep(i, n) { cin >> a[i] >> m[i]; b[i].resize(m[i]); rep(j, m[i]) cin >> b[i][j], b[i][j]--; } atcoder::mcf_graph G(n); const ll M = 1e9; rep(i, n) { for (auto j : b[i]) G.add_edge(j, i, 1, a[j] - a[i] + (i - j) * M); } rep(i, n - 1) G.add_edge(i, i + 1, n, M); cout << M * (n - 1) * k - G.flow(0, n - 1, k).second << "\n"; }