7244 - 图函数(graph)

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 512 MB

对于一张n 个点m 条边的有向图G(顶点从1-n 编号),定义函数f(u,G)

  1. 初始化返回值cnt = 0,图G′ = G

  2. 从1 至n 按顺序枚举顶点v,如果当前的图G′中,从uv与从vu的路径都存在,则将cnt + 1,并在图G′中删去顶点v以及与它相关的边。

  3. 第2 步结束后,返回值cnt 即为函数值。

现在给定一张有向图G,请你求出h(G) = f(1,G) + f(2,G) + ... + f(n,G) 的值。更进一步地,记删除(按输入顺序给出的)第1-i 条边后的图为G_i1\le i\le m),请你求出所有h(G_i) 的值。

输入

第一行两个整数n,m 表示图的点数与边数。 接下来m 行每行两个整数,第i 行的两个整数x_i,y_i 表示一条有向边x_i\to y_i。 数据保证x_i\neq y_i 且同一条边不会给出多次。

输出

输出一行m + 1 个整数,其中第一个数表示给出的完整图Gh(G) 值。第i2\le i\le m + 1)个整数表示h(G_{i-1})

样例

输入

4 6
2 3
3 2
4 1
1 4
2 1
3 1

输出

6 5 5 4 4 4 4

提示

对于给出的完整图G:

  1. f(1,G) = 1,过程中删除了顶点1。
  2. f(2,G) = 1,过程中删除了顶点2。
  3. f(3,G) = 2,过程中删除了顶点2,3。
  4. f(4,G) = 2,过程中删除了顶点1,4。

对于所有测试数据:2\le n\le 1000,1\le m\le 2\times 10^5,1\le x_i,y_i\le n。 每个测试点的具体限制见下表

来源

NOI省选