#arc152d. [arc152_d]Halftree
[arc152_d]Halftree
题目描述
我们有一个初始时没有边的无向图,有 个顶点,编号从 到 。你可以随意添加边到这个图中。在添加完边之后,将会执行以下操作一次,使用给定的整数 。
- 对于你添加的每条边,设 和 是它的端点,将会添加一条边连接两个顶点 和 。即使这两个顶点之间已经存在边,也会添加这条边,导致出现多重边。
对于给定的 和 ,找到一组边,使得在执行操作之后,图形成一棵树。如果不存在这样的一组边,则指出这个事实。
约束条件
- 输入中的所有值都是整数。
输入
从标准输入读取输入数据,格式如下:
输出
如果存在一组满足要求的边,则令 为边的数量, 和 是第 条边连接的两个顶点,并按照以下格式输出解决方案。其中,必须满足 ,并且所有的值都必须是整数。可以以任意顺序打印边,以及边的端点。
如果存在多个解决方案,则接受任何一个。
如果不存在满足要求的边,则输出 -1
。
示例输入 1
5 2
示例输出 1
2
2 3
2 4
操作将添加边 - 和 -。然后,图将成为一棵树,因此这是一个有效的输出。
示例输入 2
2 1
示例输出 2
-1
无法在操作之后形成一棵树。
示例输入 3
7 1
示例输出 3
3
0 1
2 3
4 5