Triceratops 啤酒厂使用一套复杂的自动化管道系统,将啤酒输送到许多当地的酒吧、餐馆和其他兴趣点。该系统被称为“啤酒洪水系统”(Beer flood system)。最近,啤酒厂计划对其进行重大改造。
该系统由一个源站、一个收集站、若干泵站和管道组成。源站位于啤酒厂内。所有泵站都位于酒吧、餐馆等处。收集站的位置有些神秘,但这对系统的功能并不重要。
管道连接着若干站点。源站至少连接到一个其他站点,收集站也至少连接到一个其他站点。在极端情况下,当收集站与源站相同时,系统中没有泵站,也没有管道。
啤酒从源站通过管道流向其他站点,其中一部分(通常是大部分)会被消耗掉。未在泵站消耗的剩余啤酒会自动继续通过管道流向其他泵站或收集站。
系统中啤酒的流动方向始终保证啤酒离开某个站点后不会再回到该站点。系统中不存在通过任何站点子集的循环流动。此外,任意两个相连站点之间的啤酒流动方向是固定的,且不会随时间改变。从源站流出的啤酒量足以供应所有泵站。系统中的每根管道内始终都有啤酒流动。
当前的啤酒洪水系统是在很久以前建造的,那时基于计算机的优化还只是未来的梦想。后来人们发现,很可能可以移除一些精心挑选的冗余管道,并调整剩余管道中的啤酒流量,从而保留系统的主要功能。具体来说,所有泵站仍将从源站接收到充足的啤酒流量,所有未在泵站消耗的啤酒仍将到达收集站。此外,每根剩余的管道中仍会有啤酒流动,且剩余管道中啤酒的流动方向不会改变。所有管道的容量都非常大,因此即使某些管道中的啤酒流量增加,也不需要扩建剩余的管道。
给定啤酒洪水系统的拓扑结构,计算可以从系统中移除的管道的最大数量。
输入格式
第一行包含两个整数 $N, M$ ($1 \le N \le 2000, 0 \le M \le 5000$)。$N$ 是啤酒洪水系统中所有站点的数量,包括源站和收集站。$M$ 是系统中的管道数量。站点编号为 $1, 2, \dots, N$。接下来的 $M$ 行,每行指定一根管道及其啤酒流动方向。该行包含两个整数 $X$ 和 $Y$ ($1 \le X, Y \le N; X \neq Y$),表示啤酒从站点 $X$ 流向站点 $Y$。所有管道连接唯一的站点对,没有管道连接站点自身。在输入中,恰好有一个站点没有接收到任何流量,即源站。此外,恰好有一个站点没有向任何其他站点流出啤酒,即收集站。
输出格式
输出一个整数,表示可以从啤酒洪水系统中移除的管道的最大数量。
样例
样例输入 1
5 6 2 4 3 5 2 5 1 4 2 3 5 1
样例输出 1
2
样例输入 2
4 4 1 2 1 3 2 4 3 4
样例输出 2
0