C. 徐老师的窃听风云

    传统题 文件IO:badguy 1000ms 512MiB

徐老师的窃听风云

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

文件读写

本题使用文件输入输出,请在程序开头加入:

freopen("badguy.in", "r", stdin);
freopen("badguy.out", "w", stdout);

题目描述

徐老师的小伙伴里出现了一个叛徒!他居然把徐老师精心准备的复习资料发给了外部人员

生气的徐老师决定找出这个人!

徐老师一共有 nn 个小伙伴,编号分别为 1∼n1 \sim n,在得知发生了这个事件以后,小伙伴们自己也开始尝试调查其他人的情况

编号为 xx 的小伙伴如果怀疑编号为 yy 的小伙伴,那么他就会尝试在使用木马病毒监听 yy 的所有行为,以此来确定 yy 的是否是这个叛徒

而由于同时 yy 可能也会怀疑其他人,那么 yy 可能也会通过监听来确认其他人的身份

特别的,如果 xx 监听了 yy,那么最终 xx 会得到所有 yy 确认身份的人的身份(不论监听的时间如何,只要进行了监听,那么最终一定会拿到对方获得的所有信息)

现在徐老师已经知道了一共发生了 mm 次监听,徐老师决定抽几位小伙伴来谈话,获取他们手里的所有信息(包括他们本人,可以理解为徐老师监听了这几个小伙伴),综合起来考虑找出这个叛徒!

现在徐老师想知道,他最少需要找几个小伙伴才能确定这个叛徒是谁?

P.S.1 叛徒必然存在,且只会是一个人

P.S.2 真的需要确定所有人的身份才能找到叛徒吗?

输入格式

输入第一行包含两个整数 n,mn,m 表示小伙伴人数和监听次数

接下来 mm 行,每行包含两个整数 x,yx,y 表示 xx 监听了 yy

输出格式

输出一个整数表示徐老师最少需要找几个小伙伴才能确定叛徒

数据范围

对于 30%30\% 的数据满足 2≤n,m≤10002 \leq n,m \leq 1000

对于 100%100\% 的数据满足 2≤n,m≤1000002 \leq n,m \leq 100000

5 4
1 2
1 3
2 4
3 5
1

样例解释1

找 11 谈话即可知道所有人的身份,就可以找到叛徒了