编程题
### 问题描述
在一个包含 $n$ 个结点的环上,每个结点上放置了 $x$ 个物品。我们的任务是从环上取出所有种类的物品。
取物品的规则如下:
- 如果当前取第 $i$ 个结点上的物品,则接下来必须取第 $i+1$ 个结点上的物品。特别地,如果当前在取最后一个结点上的物品,则接下来必须取第一个结点上的物品。
- 如果当前取第 $i$ 个结点上的物品,则必须将该结点上的所有物品都取出。
- 我们可以自由选择从哪个结点开始取物品。
- 当取出的物品正好集齐所有种类时,取物品的过程立即结束。
### 输入描述
第一行输入两个整数 $n$ 和 $k$ ,分别表示结点的数量和物品的种类数。我们用 $1$ 到 $k$ 之间的所有整数来表示不同种类的物品。
接下来输入 $n$ 行,第 $i$ 行的输入以数字 $x$ 开始,表示第 $i$ 个结点上放置了 $x$ 个物品。接下来输入 $x$ 个整数,分别表示这 $x$ 个物品的种类。
数据保证: $1 \leq n,k \leq 10^6$ 。
### 输出描述
输出一个数字,表示能取到所有种类物品需要拿的最小物品数。
如果不能拿到所有物品,输出 $-1$ 。
### 样例输入
```
5 3
1 2
1 3
2 1 1
2 2 2
1 1
```
### 样例输出
```
3
```
### 说明
样例数据中可以从最后一个结点开始拿物品,然后按顺序会拿第一个结点中的物品。这样可以只拿三个物品就拿到所有的 $3$ 种物品。