在 Bytemount 的南坡上,有若干条滑雪道和一部滑雪缆车。所有的滑雪道都从缆车的顶站通往底站。每天早上,一群滑雪场工作人员会检查这些滑雪道的状况。他们一起乘坐缆车到达顶站,然后每人选择一条滑雪道滑到底站。每位工作人员只滑一次。不同工作人员的滑雪道可能会有部分重合。每位工作人员检查的滑雪道总是向下延伸的。
滑雪道的地图由一系列由林间空地和连接空地的林间小径组成。每个空地位于不同的高度。任意两个空地之间最多直接由一条小径相连。从顶站滑到底站时,可以选择一条路径经过任意一个空地(尽管在单次滑行中可能无法经过所有空地)。滑雪道仅在空地处交叉,不会穿过隧道或桥梁。
任务
编写一个程序,完成以下工作:
- 从标准输入读取滑雪道地图;
- 计算检查所有连接空地的小径所需的最少工作人员数量;
- 将结果写入标准输出。
输入格式
输入的第一行包含一个整数 $n$,表示空地的数量,$2 \le n \le 5\,000$。空地编号从 $1$ 到 $n$。
接下来的 $n-1$ 行,每行包含一组由空格分隔的整数。第 $i+1$ 行的整数指定了从编号为 $i$ 的空地向下延伸的小径所连接的空地。第一个整数 $k$ 表示这些空地的数量。随后的 $k$ 个整数是这些空地的编号,按照从西向东的顺序排列(对应于通往它们的路径方向)。缆车的顶站位于编号为 $1$ 的空地,底站位于编号为 $n$ 的空地。
输出格式
输出的第一行且仅包含一个整数,即能够检查森林中所有小径所需的最少工作人员数量。
样例
输入 1
15 5 3 5 9 2 4 1 9 2 7 5 2 6 8 1 7 1 10 2 14 11 2 10 12 2 13 10 3 13 15 12 2 14 15 1 15 1 15 1 15
输出 1
8