传递消息
时间限制:1秒 内存限制:256M
【题目描述】
有一条神秘消息需要传递给所有人!这个消息网络是这样的:共又 \(N\) 个人,每个人都有自己的通讯簿,一旦得到消息就会迅速传递给通讯簿里的每个人。但是这种关系是单向的,即如果 \(u\) 在 \(v\) 的通讯簿中,那么 \(v\) 不一定在 \(u\) 的通讯簿中。现在,需要你帮助解决下面两个问题:
1. 至少需要先把消息告诉几个人,可以使得所有人均能得知这条消息。
2. 如果你每次可以在某人的通讯簿中添加一人,那么至少需要进行几次添加,就可以使得无论最先告诉哪个人,全部人都可以得知这条消息。
【输入格式】
输入文件的第一行包括一个正整数 \(N\),表示人员数目,用数字 \(1\) 到 \(N\) 分别编号。
接下来 \(N\) 行,每行都表示一个任的通讯簿,第 \(i+1\) 行为编号为 \(i\) 的人通讯簿中人的编号。每个通讯簿用 \(0\) 结束,空通讯簿只用一个 \(0\) 表示。
【输出格式】
第一行为一个正整数,表示问题 \(1\) 的解。
第二行为一个非负整数,表示问题 \(2\) 的解。
【输入输出样例1】
Input
5
2 4 3 0
4 5 0
0
0
1 0
Output
1
2
【测试点性质】
对于50%的测试点,保证 \(1\le N\le 300\)。
对于100%的测试点,保证 \(1\le N\le 10000\)。
【来源】
Mr.he