#P1607. 最多的点

最多的点

题目描述

给你一个包含 nn 个节点 mm 条有向边的有向图。节点编号从 11nn

现在你需要从图中删掉尽可能少的点,同时删掉以这些点为端点的边。

使得剩下来的图满足如下条件:

对于图中任意两个节点 uuvv,满足从节点 uu 到节点 vv 存在至少一条有向路径,或者从 vvuu 存在至少一条有向路径。

即:从 uu 沿着有向边移动能够到达 vv,或者从 vv 沿着有向边移动能够到达 uu(当然,既能从 uuvv,又能从 vvuu 也是可以的)。

求:最多能够保留多少个节点,同时,你还需要求存在多少个保留最多节点的方案(两个方案被视为不同的方案当且仅当它们保留的节点不完全相同)。

输入格式

第一行,两个整数 nnmm,以一个空格分隔(1n105,1m1061 \le n \le 10^5, 1 \le m \le 10^6)。

接下来 mm 行,每行包含两个整数 aabb,表示一条从 aa 连向 bb 的有向边。同样的 (a,b)(a, b) 最多出现一次。

输出格式

输出共两行。

第一行,一个整数,表示满足题目要求的情况下最多保留多少个节点。

第二行,一个整数,表示保留最多节点的不同方案数,由于这个数字可能很大,所以你需要将其对 109+710^9 + 7 取模。

样例

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