编程题
### 问题描述
假设你正在分析一个社交网络。在这个社交网络中,人们用节点表示,一共有 $ n $ 个节点($ 1 \leq n \leq 10^5 $),朋友关系用边表示。社交网络呈现出连通图的特点,即从任意一个人(节点)出发,都能通过一系列朋友关系(边)到达任意另一个人。
现在,需要你找到图中的重要的友情。一个友情被视为“重要”的,当这条边(友情)被移除后,整个社交网络会分裂成两个或更多的不连通的子图。
### 输入格式
第一行包含两个整数 $ n $ 和 $ m $,分别表示节点数量和边数量。
接下来的 $ m $ 行,每行包含两个整数 $ a $ 和 $ b $,表示节点 $ a $ 和节点 $ b $ 之间有一条边。
### 输出格式
第一行输出一个整数 $ k $,表示有多少条重要的友情。
接下来 $ k $ 行,每行输出两个整数,表示一条重要的友情(割边)。按字典序输出这些边。
### 样例输入
```
5 5
0 1
1 2
2 0
2 3
3 4
```
### 样例输出
```
2
2 3
3 4
```
### 评测数据范围
$ 1 \leq n \leq 10^4 $ ,$ 1 \leq m \leq 10^4 $。