Byteburg 的街道网络由 $n$ 个交叉路口和 $m$ 条双向街道组成。最近,Byteburg 被选为即将举行的二项全能锦标赛的主办城市。这项比赛由两个赛段组成:跑步赛段,随后是自行车赛段。
比赛路线的构建方式如下:首先,选择三个不同的交叉路口 $s$、$c$ 和 $f$,分别作为起点、换乘点和终点。然后,构建比赛路线。路线应从 $s$ 出发,经过 $c$,最后到达 $f$。出于安全考虑,路线应经过每个交叉路口至多一次。
在规划路线之前,市长想要计算选择 $s$、$c$ 和 $f$ 的方案数,使得能够为它们构建出符合要求的路线。请帮助他计算这个数量。
输入格式
第一行包含整数 $n$ 和 $m$:交叉路口的数量和道路的数量。接下来的 $m$ 行包含道路的描述($1 \le n \le 10^5$,$1 \le m \le 2 \cdot 10^5$)。每条道路由一对整数 $v_i, u_i$ 描述,表示由该道路连接的交叉路口的编号($1 \le v_i, u_i \le n, v_i \neq u_i$)。对于每对交叉路口,至多有一条道路连接它们。
输出格式
输出选择 $s$、$c$ 和 $f$ 作为起点、换乘点和终点的方案数,使得能够为它们构建出符合要求的比赛路线。
子任务
- 子任务 1(5 分):$n \le 10, m \le 100$
- 子任务 2(11 分):$n \le 50, m \le 100$
- 子任务 3(8 分):$n \le 100\,000$,每个交叉路口至多有两条道路连接。
- 子任务 4(10 分):$n \le 1\,000$,街道网络中没有环。环是指一个由 $k$ ($k \ge 3$) 个不同交叉路口 $v_1, v_2, \dots, v_k$ 组成的序列,使得对于所有 $1 \le i \le k-1$,都有道路连接 $v_i$ 和 $v_{i+1}$,且有道路连接 $v_k$ 和 $v_1$。
- 子任务 5(13 分):$n \le 100\,000$,街道网络中没有环。
- 子任务 6(15 分):$n \le 1\,000$,每个交叉路口至多被一个环包含。
- 子任务 7(20 分):$n \le 100\,000$,每个交叉路口至多被一个环包含。
- 子任务 8(8 分):$n \le 1\,000, m \le 2\,000$
- 子任务 9(10 分):$n \le 100\,000, m \le 200\,000$
样例
输入 1
4 3 1 2 2 3 3 4
输出 1
8
输入 2
4 4 1 2 2 3 3 4 4 2
输出 2
14
说明
在第一个样例中,选择三元组 $(s, c, f)$ 的方案有 8 种:$(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4), (3, 2, 1), (4, 2, 1), (4, 3, 1), (4, 3, 2)$。
在第二个样例中,选择三元组 $(s, c, f)$ 的方案有 14 种:$(1, 2, 3), (1, 2, 4), (1, 3, 4), (1, 4, 3), (2, 3, 4), (2, 4, 3), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)$。