#icpc2013springj. [icpc2013spring_j]Tree Reconstruction

[icpc2013spring_j]Tree Reconstruction

$(function(){document.getElementById("fixed-server-timer").style.display = "none";})

### 问题描述

你有一个有向图。图的每条边上都赋予了非负值。已知图的值满足流守恒定律,即对于每个节点$v$,流入$v$的边上的值之和等于流出$v$的边上的值之和。例如,下面的有向图满足流守恒定律。

![](/img/other/jag2013_spring/flow3.png)

假设你在图中选择一组边的子集,记为$E'$,然后删除除$E'$上边上的值以外的所有值。现在,你想通过只查看剩下的信息来恢复被删除的值。由于流守恒定律,可能可以恢复所有被删除的值。你的任务是计算这样的$E'$的最小可能大小。

例如,上述图的最小子集$E'$将是以下图中的绿色边。根据流守恒定律,我们可以恢复灰色边上的值。

![](/img/other/jag2013_spring/flow4.png)

* * *

### 输入

输入包含多个测试用例。每个测试用例的格式如下所示。

$N$ $M$
$s_1$ $t_1$
...
$s_M$ $t_M$

第一行包含两个整数$N$($1 \leq N \leq 500$)和$M$($0 \leq M \leq 3,000$),分别表示节点数和边数。接下来的$M$行中,每行包含两个整数$s_i$和$t_i$($1 \leq s_i, t_i \leq N$),表示图中存在一条从$s_i$到$t_i$的边。

可以假设给定的图是简单的:

*   没有自环:$s_i \neq t_i$。
*   没有重边:对于所有的$i < j$,$\\{s_i, t_i\\} \neq \\{s_j, t_j\\}$。

此外,保证给定图的每个连通分量都是强连通的。也就是说,对于每对节点$v$和$u$,如果存在从$v$到$u$的路径,则存在一条从$u$到$v$的路径。

请注意,你没有给出边上的值的信息,因为它不会影响答案。

### 输出

对于每个测试用例,输出一个答案。

### 示例输入1

```plain

9 13
1 2
1 3
2 9
3 4
3 5
3 6
4 9
5 7
6 7
6 8
7 9
8 9
9 1

示例输入1的输出


5

示例输入2


7 9
1 2
1 3
2 4
3 4
4 5
4 6
5 7
6 7
7 1

示例输入2的输出


3

示例输入3


4 4
1 2
2 1
3 4
4 3

示例输入3的输出


2

来源名称

Japan Alumni Group Spring Contest 2013