为了更好管理奶牛放牧,Farmer John 在农场铺设单向牛道。农场有 $N$ 块田,编号 $1..N$,每条单向道路连接两块田。例如从 $X$ 到 $Y$ 的道路允许从 $X$ 去 $Y$,不允许反向。
Bessie 喜欢尽可能多地在不同田里吃草。每天从田 $1$ 开始,经过一系列田,最后返回田 $1$。她想让路线经过的不同田最多,因为每块都能吃草;重复到访只吃一次。
她不喜欢单向限制,因为它会减少可到访的不同田数。她想知道,若违反规则,最多逆向走一次道路,能吃多少草。求从田 $1$ 出发并返回,最多有一次逆向通行的路线中,不同田的最大数量。整个旅程最多逆向一次,甚至不能把同一条道路逆向走两次。
输入格式
第一行包含田数 $N$、单向道路数 $M$($1 \leq N, M \leq 100,000$)。
接下来 $M$ 行各描述一条单向道路,包含不同田号 $X$、$Y$,表示从 $X$ 到 $Y$。同一条道路不会重复出现。
输出格式
输出一行,为从田 $1$ 出发并返回、最多逆向走一次道路时能到访的不同田数最大值。
样例
输入格式 1
7 10 1 2 3 1 2 5 2 4 3 7 3 5 3 6 6 5 7 2 4 7
输出格式 1
6
说明
样例输入的 ASCII 图如下:
v---3-->6 7 |\ | ^\ v \ | | \ 1 \| | \| v | v 5 4<--2---^
她可以沿 $1,2,4,7,2,5,3,1$ 到访,逆向通过 $5$ 与 $3$ 之间的道路。到达 $3$ 后,若不再逆向走另一条道路,就无法到达 $6$。
题目作者:Mark Gordon,2015