生成树与路径
题号:NC248198
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给定 n,m,请构造一个 nm 边的无向带权连通图,没有自环和重边,满足该图的最小生成树大小(生成树的边权和)等于节点 1 到节点 n 的最短路长度(路径的边权和)。

并限定所有边权是 的排列。(即分配边权时 中的每个数字只能用一次)

可以证明,对于任意满足本题数据范围的 n,m,均存在解。

输入描述:

多组数据,第一行输入一个正整数 ,表示数据的组数。

对于每组数据,一行输入两个整数 ,以空格相隔。

对于 T 组数据,保证

输出描述:

对于每组数据:输出 m 行,第 i 行输出三个正整数  以空格相隔,表示节点 u_i 与节点 v_i 存在一条边权为 w_i 的连边。

若有多组方案,输出任意一组方案均可。
示例1

输入

复制
2
3 2
3 3

输出

复制
1 2 1
2 3 2
1 3 3
3 2 1
2 1 2

说明

样例的两组测试数据的输出对应的图如下图所示。