#P005927. 美食之旅

美食之旅

题目描述

AA 是一位热衷于品尝各类美食的城市旅行者,他计划在 NN 个不同城市(城市编号为 1N1 \sim N)之间进行一次巡回旅行。这些城市由若干条单向飞行航线相连,任意两个城市之间都可以坐大巴到达。为了品尝更多城市的特色美食,罗杰希望尽可能多地访问不同城市。

AA 的旅行11 号城市出发,最终要求返回到 11 号城市。由于航线是单向的,这给小 AA 的行程安排带来了挑战,他可能无论如何也无法访问完所有的城市。

AA 的目标是:尽可能访问更多的城市,他可以重复访问同一个城市。

为了实现这一目标,小 AA 决定在旅行过程中,如果编号为 UU 的城市有单向航班到编号为 VV 的城市,但编号为 VV 的城市没有单向航班到编号为 UU 的城市。那么在这种情况下,他可以从编号为 VV 的城市坐大巴回到编号为 UU 的城市。但是,上述乘坐大巴的行为,他最多只会进行一次

请编程计算出,小 AA 最多能访问到多少个不同的城市

输入格式

第一行读入两个整数 NNMM,分别代表城市的数量和单向航班的数量。

接下来 MM 行,每行包含两个整数 UiU_iViV_i,表示存在一条从城市 UiU_i 到城市 ViV_i 的单向航线,且不会有重复的航线出现。

输出格式

输出一个整数,表示利用一次乘坐大巴的机会,小 AA 最多可以访问多少个不同的城市。

样例

输入

7 10
1 2
3 1
2 5
2 4
3 7
3 5
3 6
6 5
7 2
4 7

输出

6

数据范围

对于 10%10\% 的数据,满足 1N1001 \le N \le 1001M3001 \le M \le 300

对于 100%100\% 的数据,满足 1N,M1051 \le N, M \le 10^51Ui,ViN1 \le U_i, V_i \le N