编程题
### 问题描述
在一座偏远山区的煤矿,有一些勤劳的矿工每天都在地下深处挖掘煤炭。这些矿工辛勤工作,却时刻面临着生命危险。因为在这个地下世界中,一旦发生事故,他们很难逃脱。
矿主为了保障矿工的安全,决定设置一些逃生通道,以便在发生事故时,所有矿工都能够顺利逃离。这些逃生通道组成了一个由隧道连接挖煤点组成的无向图,每个挖煤点都是图中的一个节点。为了保证矿工的生命安全,矿主决定在一些挖煤点设立救援出口,他希望无论哪个挖煤点发生事故,其他挖煤点的矿工都能够逃离,即每个挖煤点都需要有至少一条道路通向救援出口。
你需要编写一个程序,计算至少需要设置几个救援出口,以及不同最少救援出口的设置方案总数。
### 输入格式
输入为一个无向图,其中每个节点表示一个挖煤点。
第一行输入两个两个空格分隔的整数 $n$ 和 $m$,表示图中有 $n$ 个节点和 $m$ 条边。
接下来 $m$ 行输入两个空格分隔的整数 $a_i$ 和 $b_i$,表示挖煤点 $a_i$ 和 $b_i$ 之间有一条隧道。
### 输出格式
两个空格分隔的整数,第一个整数表示至少需要设置几个救援出口,第二个整数表示不同最少救援出口的设置方案总数。
输入数据保证答案小于 $2^{64}$。
### 样例输入
```txt
5 5
1 2
2 3
3 4
4 5
5 1
```
### 样例输出
```txt
2 10
```
### 评测数据规模
对于 $100$% 的评测数据,$1\leq n ,m \leq 500,1\leq a_i, b_i \leq n$。