#CSES1685. 新航班路线

新航班路线

题目背景

翻译自 CSES-1685 题。

题目描述

有 nn 个城市和 mm 条航班连接。你的任务是添加新的航班,使得从任何一个城市都能到达其他所有城市。请问,最少需要添加多少条新航班?

输入格式

第一行包含两个整数 nn 和 mm:城市的数量和航班的数量。城市编号为 1,2,…,n1, 2, \dots, n。

接下来有 mm 行描述了航班,每行包含两个整数 aa 和 bb,表示从城市 aa 到城市 bb 有一条单向航班。

输出格式

首先输出一个整数 kk:表示需要添加的最少新航班数量。接着输出 kk 行,每行描述一条新航班。你可以输出任何一个有效的解。

样例

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

说明/提示

1≤n≤1051 \leq n \leq 10^5;

1≤m≤2×1051 \leq m \leq 2 \times 10^5;

1≤a,b≤n1 \leq a, b \leq n。