在阅读了论文《Incremental Topological Ordering and Strong Component Maintenance》之后,你打算出一道这样的题。
给定一个包含 $n$ 个顶点的图。初始时图中没有边。共有 $m$ 次操作。每次操作首先向图中添加一条给定的有向边,然后输出满足 $u$ 可达 $v$ 且 $v$ 可达 $u$ 的数对 $(u, v)$ ($1 \le u < v \le n$) 的数量。
你能在 ICPC 比赛中实现论文中描述的算法吗?
输入格式
第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 10^5$, $1 \le m \le 2.5 \cdot 10^5$)。
接下来的 $m$ 行,每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le n$),表示一条新添加的有向边。允许存在平行边和自环。
输出格式
输出 $m$ 个整数,每行一个,表示添加每条给定边之后满足条件的数对数量。
样例
输入 1
4 6 1 2 2 3 2 1 3 4 4 3 3 2
输出 1
0 0 1 1 2 6