#include <bits/stdc++.h>
using namespace std;
const long long N = 1000005;
long long n, k, edge[N], edge2[N], depth[N], day = 0, worked = 0;
vector<int> cn[N];
vector<int> topo;
#define NAME "lmao"
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
if (fopen(NAME ".inp", "r"))
{
freopen(NAME ".inp", "r", stdin);
freopen(NAME ".out", "w", stdout);
}
cin >> n >> k;
for (int i = 1; i <= n; ++i)
{
int x, y;
cin >> x;
edge[i] = 0;
for (int j = 0; j < x; ++j)
{
cin >> y;
cn[y].push_back(i);
++edge[i];
}
}
for (int i = 1; i <= n; ++i)
{
edge2[i] = edge[i];
}
queue<int> q;
for (int i = 1; i <= n; ++i)
{
if (edge2[i] == 0)
{
q.push(i);
}
}
while (!q.empty())
{
int u = q.front();
q.pop();
topo.push_back(u);
for (int v : cn[u])
{
if (--edge2[v] == 0)
{
q.push(v);
}
}
}
if (topo.size() < n)
{
cout << -1;
return 0;
}
for (int u : topo)
depth[u] = 1;
for (int i = n - 1; i >= 0; --i)
{
int u = topo[i];
for (int v : cn[u])
{
depth[u] = max(depth[u], depth[v] + 1);
}
}
for (int i = 1; i <= n; ++i)
{
edge2[i] = edge[i];
}
priority_queue<pair<long long, int>> pq;
for (int i = 1; i <= n; ++i)
{
if (edge2[i] == 0)
{
pq.push({depth[i], i});
}
}
long long done = 0;
while (done < n)
{
if (pq.empty())
{
cout << -1;
return 0;
}
++day;
worked = 0;
vector<pair<long long, int>> temp;
while (worked < k && !pq.empty())
{
auto [d, u] = pq.top();
pq.pop();
++done;
++worked;
for (int v : cn[u])
{
if (--edge2[v] == 0)
{
temp.emplace_back(depth[v], v);
}
}
}
for (auto &pr : temp)
{
pq.push(pr);
}
}
cout << day;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgTiA9IDEwMDAwMDU7CmxvbmcgbG9uZyBuLCBrLCBlZGdlW05dLCBlZGdlMltOXSwgZGVwdGhbTl0sIGRheSA9IDAsIHdvcmtlZCA9IDA7CnZlY3RvcjxpbnQ+IGNuW05dOwp2ZWN0b3I8aW50PiB0b3BvOwojZGVmaW5lIE5BTUUgImxtYW8iCmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgaWYgKGZvcGVuKE5BTUUgIi5pbnAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oTkFNRSAiLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oTkFNRSAiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICB7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgZWRnZVtpXSA9IDA7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB4OyArK2opCiAgICAgICAgewogICAgICAgICAgICBjaW4gPj4geTsKICAgICAgICAgICAgY25beV0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICArK2VkZ2VbaV07CiAgICAgICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgewogICAgICAgIGVkZ2UyW2ldID0gZWRnZVtpXTsKICAgIH0KICAgIHF1ZXVlPGludD4gcTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBpZiAoZWRnZTJbaV0gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIHEucHVzaChpKTsKICAgICAgICB9CiAgICB9CiAgICB3aGlsZSAoIXEuZW1wdHkoKSkKICAgIHsKICAgICAgICBpbnQgdSA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIHRvcG8ucHVzaF9iYWNrKHUpOwogICAgICAgIGZvciAoaW50IHYgOiBjblt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICgtLWVkZ2UyW3ZdID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHEucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmICh0b3BvLnNpemUoKSA8IG4pCiAgICB7CiAgICAgICAgY291dCA8PCAtMTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGZvciAoaW50IHUgOiB0b3BvKQogICAgICAgIGRlcHRoW3VdID0gMTsKICAgIGZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAwOyAtLWkpCiAgICB7CiAgICAgICAgaW50IHUgPSB0b3BvW2ldOwogICAgICAgIGZvciAoaW50IHYgOiBjblt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGRlcHRoW3VdID0gbWF4KGRlcHRoW3VdLCBkZXB0aFt2XSArIDEpOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBlZGdlMltpXSA9IGVkZ2VbaV07CiAgICB9CiAgICBwcmlvcml0eV9xdWV1ZTxwYWlyPGxvbmcgbG9uZywgaW50Pj4gcHE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpCiAgICB7CiAgICAgICAgaWYgKGVkZ2UyW2ldID09IDApCiAgICAgICAgewogICAgICAgICAgICBwcS5wdXNoKHtkZXB0aFtpXSwgaX0pOwogICAgICAgIH0KICAgIH0KICAgIGxvbmcgbG9uZyBkb25lID0gMDsKICAgIHdoaWxlIChkb25lIDwgbikKICAgIHsKICAgICAgICBpZiAocHEuZW1wdHkoKSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgLTE7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICArK2RheTsKICAgICAgICB3b3JrZWQgPSAwOwogICAgICAgIHZlY3RvcjxwYWlyPGxvbmcgbG9uZywgaW50Pj4gdGVtcDsKICAgICAgICB3aGlsZSAod29ya2VkIDwgayAmJiAhcHEuZW1wdHkoKSkKICAgICAgICB7CiAgICAgICAgICAgIGF1dG8gW2QsIHVdID0gcHEudG9wKCk7CiAgICAgICAgICAgIHBxLnBvcCgpOwogICAgICAgICAgICArK2RvbmU7CiAgICAgICAgICAgICsrd29ya2VkOwogICAgICAgICAgICBmb3IgKGludCB2IDogY25bdV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgtLWVkZ2UyW3ZdID09IDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdGVtcC5lbXBsYWNlX2JhY2soZGVwdGhbdl0sIHYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoYXV0byAmcHIgOiB0ZW1wKQogICAgICAgIHsKICAgICAgICAgICAgcHEucHVzaChwcik7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkYXk7Cn0K