托马什在贝尔兰的街道上行走时,一直在走失。这并不奇怪!在他的家乡,对于任何一对十字路口,从一个十字路口到另一个十字路口都只有一条路。柏林的首都很不一样!
托马什注意到,即使是简单的歧义也会让他感到困惑。因此,当他看到一组四个不同的交叉点a、b、c和d时,从a到c有两条路径,一条通过b,另一条通过d,他称该组为“该死的菱形”。注意,对(a,b),(b,c),(a,d),(d,c)应通过道路直接连接。示意性地,下图中显示了一个该死的菱形:
任何十字路口之间的其他道路都不会使菱形对托马什更有吸引力,因此四个十字路口对他来说仍然是一个“该死的菱形”。
考虑到柏林的首都有n个十字路口和m条道路,所有道路都是单向的,并且是事先知道的,请找出城市中“该死的菱形”的数量。
当比较菱形时,交点b和d的顺序无关紧要。
5 4 1 2 2 3 1 4 4 3
1
4 12 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3
12
输入的第一行包含一对整数n,m(1≤n≤3000,0≤m≤30000),分别表示交叉口和道路的数量。接下来的m行列出了道路,每行一条。每一条道路都由一对整数ai,bi(1≤ai,bi≤n;ai≠bi)表示,即它所经过的交叉口的数量和它所通向的交叉口数量。在一对交叉口之间,两个方向中的每个方向最多有一条道路。
不能保证你能从任何十字路口到任何其他十字路口。
打印所需数量的“该死的菱形”。
5 4 1 2 2 3 1 4 4 3
1
4 12 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3
12
5 4
1 2
2 3
1 4
4 3
1