{"trustable":false,"sections":[{"title":"","value":{"format":"HTML","content":"许多学校与计算机网络相连。这些学校之间制定了协议:每所学校都有一份向其分发软件的学校名单(“接收学校”)。注意,如果B在学校A的分布列表中,那么A不一定出现在学校B的列表中\n您需要编写一个程序,计算必须接收新软件副本的学校的最小数量,以便根据协议,软件能够到达网络中的所有学校(子任务a)。作为进一步的任务,我们希望确保通过将新软件的副本发送到任意一个学校,该软件将到达网络中的所有学校。为了实现这一目标,我们可能不得不扩大新成员的接收名单。计算必须进行的最小扩展数,以便我们将新软件发送到任何学校,它都将到达所有其他学校(子任务B)。一个扩展是指将一个新成员引入一个学校的接收名单。"}},{"title":"Input","value":{"format":"HTML","content":"第一行包含整数N:网络中的学校数(2 \u003c\u003d N \u003c\u003d 100)。学校由前N个正整数标识。接下来的N行中的每一行都描述了接收机列表。行i+1包含学校i的接收者的标识符。每个列表以0结尾。空列表在行中仅包含一个0。"}},{"title":"Output","value":{"format":"HTML","content":"你的程序应该向标准输出写两行。第一行应该包含一个正整数:子任务A的解。第二行应该包含子任务B的解。"}},{"title":"Sample Input","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e5\n2 4 3 0\n4 5 0\n0\n0\n1 0\n\u003c/pre\u003e"}},{"title":"Sample Output","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e1\n2\n\u003c/pre\u003e"}}]}