Description:


滑雪场坐落在FJ省西北部的若干座山上。
从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向。
你的团队负责每周定时清理雪道。你们拥有一架直升飞机,每次飞行可以从总部带一个人降落到滑雪场的某个地点,然后再飞回总部。从降落的地点出发,这个人可以顺着斜坡向下滑行,并清理他所经过的雪道。
由于每次飞行的耗费是固定的,为了最小化耗费,你想知道如何用最少的飞行次数才能完成清理雪道的任务。

Input:


输入文件的第一行包含一个整数 \(n(2\le n\le 100)\) ——代表滑雪场的地点的数量。
接下来的n行,描述1~n号地点出发的斜坡,第i行的第一个数为 \(m_i(0\le m_i < n)\) ,后面共有 \(m_i\) 个整数,由空格隔开,每个整数 \(a_{i,j}\) 互不相同,代表从地点 \(i\) 下降到地点 \(a_{i,j}\) 的斜坡。每个地点至少有一个斜坡与之相连。

Output:


输出文件的第一行是一个整数k——直升飞机的最少飞行次数。

Sample Input:


Sample Output:


题解:


一道有源汇上下界最小流的题。

做法基于无源汇上下界可行流:
对于一条上界为a,下界为b的边(u, v),我们从S向v、u向T连一条容量为a的边,然后从u向v连一条b-a的边,然后最大流。

对于有源汇的我们一样的连边,最后加上一条t向s的容量为INF的边。(最大流后该边流量为可行流量)

然后我们把S和T断开(即不能低于下界),然后从t向s退流。

最后求得的就是最小流。