Exercise Route
Bessie the cow realizes she needs to exercise more in order to stay in good shape. She needs your help selecting potential routes around the farm that she can use for her morning jogging routine.
The farm is made up of n fields, conveniently numbered 1...n, and conveniently connected by a set of m bi-directional trails. Being creatures of habit, the cows tend to use one particular subset of n − 1 trails for all of their daily movement between fields - they call these the "standard" trails. It is possible to travel from any field to any other field using only standard trails.
To keep her morning jog interesting, Bessie decides that she should pick a route that involves some non-standard trails. However, she is so comfortable with using standard trails, she doesn't want to use too many non-standard trails on her route. After some thought, she decides a good route is one that forms a simple cycle (returning to its starting point, and not using any field more than once) that contains exactly two non-standard trails.
Please help Bessie count the number of good routes she can use. Two routes are considered the same if they involve the same set of trails.
Input
The first line contains n (1 ≤ n ≤ 2 * 10^5
) and m (1 ≤ m ≤ 2 * 10^5
). Each of the next m lines contains two integers a[i]
and b[i]
describing the endpoints of a trail. The first n − 1 of these are the standard trails.
Output
Print the total number routes Bessie might want to use.