[JSOI2015]最小表示
题号:NC20218
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

【故事背景】 还记得去年JYY所研究的强连通分量的问题吗?去年的题目里,JYY研究了对于有向图的“加边”问题。对于图论有着强烈兴趣的JYY,今年又琢磨起了“删边”的问题。 
【问题描述】 对于一个N个点(每个点从1到N编号),M条边的有向图,JYY发现,如果从图中删去一些边,那么原图的连通性会发生改变;而也有一些边,删去之后图的连通性并不会发生改变。
JYY想知道,如果想要使得原图任意两点的连通性保持不变,我们最多能删掉多少条边呢? 
为了简化一下大家的工作量,这次JYY保证他给定的有向图一定是一个有向无环图(JYY:大家经过去年的问题,都知道对于给任意有向图的问题,最后都能转化为有向无环图上的问题,所以今年JYY就干脆简化一下大家的工作)。

输入描述:

输入一行包含两个正整数N和M。 
接下来M行,每行包含两个1到N之间的正整数xi和yi,表示图中存在一条从xi到yi的有向边。
输入数据保证,任意两点间只会有至多一条边存在。 N ≤ 30,000,M ≤ 100,000

输出描述:

输出一行包含一个整数,表示JYY最多可以删掉的边数。
示例1

输入

复制
5 6
1 2
2 3
3 5
4 5
1 5
1 3

输出

复制
2