H. Syl 和美丽树

传统 1000 ms 1024 MiB
标准 IO
Special Judge

题目描述

植树节到了,Syl 整装待发,准备种出一棵美丽的树。

Syl 对美丽的树是有着独到的要求的,她认为一棵有着编号为 1n1\sim nnn 个节点的树是美丽的,当且仅当这棵树满足 Syl 给出的 mm 个条件,其中每个条件形如 (v,x,p=0/1)(v,x,p=0/1),表示编号为 11 的点与编号为 vv 的点之间至多/至少距离 xx 条边。

具体来说:

  • 如果一个条件是 (v,x,0)(v,x,0),则表示 11vv 之间至多要距离 xx 条边,即 dis(1,v)x\mathrm{dis}(1,v)\le x
  • 如果一个条件是 (v,x,1)(v,x,1),则表示 11vv 之间至少要距离 xx 条边,即 dis(1,v)x\mathrm{dis}(1,v)\ge x

请你告诉 Syl,要怎样种出一棵美丽的树呢?如果不存在满足条件的树,这代表 Syl 不再能种出美丽的树,请输出 Ugly

请回顾:一棵大小为 nn 的树是一个有 nn 个节点,n1n-1 条边的连通无向图,并且其中任意两个节点之间有且仅有一条简单路径。

输入格式

第一行,一个整数 tt (1t105)(1\le t\le 10^5),表示测试数据的组数。

对于每组测试数据,第一行输入两个整数 n,mn,m (2n2105,1m2105)(2\le n\le 2\cdot 10^5, 1\le m \le 2\cdot 10^5),表示树的大小和条件数量。

对于同一组测试数据接下来的 mm 行,每行包括三个整数 v,x,pv,x,p (2vn,1xn1,p{0,1})(2\le v\le n, 1\le x\le n-1, p\in\{0,1\}),表示一个条件。

保证所有测试数据的 nn 之和与 mm 之和都不超过 21052\cdot 10^5,即 n,m2105\sum n,\sum m\le 2\cdot10^5

输出格式

对于每组测试数据,如果存在方案,先输出 Beautiful,然后输出 n1n-1 行,每行两个整数 u,vu,v,表示树的一条边 (u,v)(u,v)。如果不存在满足条件的方案,输出 Ugly

样例

输入样例

4 
5 4 
2 3 0 
3 2 1 
4 1 0 
5 3 1 
5 4 
2 1 0 
3 2 1 
4 1 0 
5 4 1 
5 6 
2 2 0 
2 2 1 
3 2 0 
3 1 1 
4 3 0 
5 4 1 
6 4 
2 1 0 
3 1 0 
4 3 1 
6 4 1

输出样例

Beautiful 
1 4 
4 2 
4 3 
3 5 
Ugly 
Beautiful 
1 3 
3 2 
2 4 
4 5 
Beautiful 
1 2 
1 3 
2 5 
5 4 
4 6