EOJ Monthly 2018.4

F. 修路

单点时限: 2.0 sec

内存限制: 256 MB

ultmaster 男神由于夜晚要到他的小迷妹们寝室楼辅导小迷妹们学习,为了方便,他决定在小迷妹们的寝室楼之间修一些有向道路,使得可以从 $u$ 号寝室楼到 $v$ 号寝室楼(不一定要直接在 $u$ 到 $v$ 之间修路)。他想知道他至少要修几条路。

你需要输出修路的方案。如有多组解输出任意一组解。

输入格式

第一行两个整数 $n,m$ $(2 \leq n \leq 500, 1 \leq m \leq n(n-1))$ 分别表示小迷妹寝室楼的个数以及需要满足联通的个数。

之后 $m$ 行,每行两个整数 $u,v$ $(1 \leq u,v \leq n, u \ne v)$ 表示 $u$ 号寝室楼到 $v$ 号寝室楼。保证有序数对 $(u,v)$ 只会在输入中最多出现一次。

输出格式

第一行一个整数 $p$,表示最少需要修几条路。

之后 $p$ 行,每行两个整数 $u,v$,表示从 $u$ 到 $v$ 修一条有向道路。

样例

Input
2 1
1 2
Output
1
1 2
Input
3 3
1 2
2 1
1 3
Output
3
1 2
2 3
2 1

提示

样例二解释:从 1 到 3 可以通过 1 到 2 再 2 到 3 到达。