#P4795. [ABC292E] Transitivity

[ABC292E] Transitivity

说明

给出一个简单有向图,你可以执行一下操作多次(也可以不执行):

  • 选择两个没有连边的点 $x$,$y$;
  • 连一条 $x \to y$ 的有向边。

现在询问你需要对这个有向图执行至少多少次操作才能使这个有向图满足:若 $a$ 到 $b$ 有边,$b$ 到 $c$ 有边,则 $a$ 到 $c$ 有边。

输入格式

第一行两个整数 $n, m$,表示图中有 $n$ 个顶点,编号依次为 $1 \sim n$,$m$ 条边。

接下来 $m$ 行,每行两个整数 $u_i, v_i$,表示 $u_i$ 到 $v_i$ 存在一条有向边。

输出格式

一个整数表示答案。

样例

4 3
2 4
3 1
4 3
3

样例

292 0
0

样例

5 8
1 2
2 1
1 3
3 1
1 4
4 1
1 5
5 1
12

提示

$ 3\ \leq\ N\ \leq\ 2000 $,$ 0\ \leq\ M\ \leq\ 2000 $,$ 1\ \leq\ u_i\ ,v_i\ \leq\ N $。