#P12439. [NERC2023] Hypercatapult Commute

[NERC2023] Hypercatapult Commute

Description

比特兰王国正在运营一套革命性的新型交通系统。这套系统既不需要道路,也不需要复杂机械,仅需巨型弹射器即可运作。

该系统工作原理如下:比特兰有 nn 座城市,每座城市的市中心都设有一座弹射器。想要出行的乘客会被装入特制胶囊,弹射器将胶囊发射至其他城市的中心。每座弹射器的动力都足以将胶囊(无论载客量多少)发射到任意其他城市。唯一的问题是弹射器充能耗时较长,因此每天只能使用一次。

乘客可能需要多次换乘弹射器。例如,若乘客想从城市 A 前往城市 B,可以先通过弹射器从 A 移动到 C,再换乘另一座弹射器从 C 移动到 B。

今天共有 mm 名乘客需要出行,其中第 ii 名乘客希望从城市 aia_i 前往城市 bib_i。你的任务是找到一种方案,使得所有乘客都能在一天内抵达目的地,且使用的弹射器数量最少;若不可能实现,则需给出相应判断。

Input Format

第一行包含两个整数 nnmm1n10001 \leq n \leq 10000m1050 \leq m \leq 10^5),分别表示城市数量和乘客数量。接下来 mm 行每行包含两个整数 aia_ibib_i1ai,bin1 \leq a_i, b_i \leq naibia_i \neq b_i),描述乘客的出发地和目的地。

Output Format

第一行输出整数 kk,表示所需使用的最少弹射器数量。

随后 kk 行按执行顺序输出每次弹射的详情,每行包含两个整数 cic_idid_i,分别表示发射城市和目的城市的编号。

注意:你不需要具体说明每次弹射搭载哪些乘客,但需确保根据你提供的方案,所有乘客都能抵达目的地。

若无法完成所有运输任务,则输出单个数字 1-1

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

Hint

翻译由 DeepSeek V3 完成