1536: Purple

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

    杰克是一个科学家。和你想象的一样,他不太花心思在他的日常穿着上。他与其他男人一样,只能说出不超过六种的颜色,更别说区别出米色和白色,对颜色很是不敏感。但是今天他要去参加一个重要会议。于是,杰克急急忙忙从洗衣机里拽出了一些单只的袜子,想要把它们配成对。由于眼力有限,他仅能把相似的袜子配对。可是有太多的袜子相似了。更糟的是,颜色的相似关系并不一定是可传递的。打个比方,对于杰克来说,蓝色和海藻绿很像,海藻绿和绿色也很像,但是蓝色和绿色就不像了。

输入

    输入的第一行包含一个正整数zz 50,代表测试数据的组数。

    每组测试数据的第一行包含两个整数nm,用一个空格分开,其中1n1000,0m10000n是偶数并且表示袜子的数量。它们被从1n标上序号。接下来的m行,每行包含两个数aibi,它们用一个空格隔开,表示序号为aibi的袜子是相似的,每组相似配对只会出现一次,如果(ai,bi)出现过了一次,那么(bi,ai) (ai,bi)就不会再出现。

输出

    对于每组输入,你的程序要检查是否有唯一的一种方法使每只袜子都可以配对。如果不能,那么在一行中输出“NO”;否则,在第一行中输出“YES”,接着的n/2行,每行包含两只配对袜子的序号,中间用一个空格隔开。输出的袜子序号要严格排列,对于每个配对(c,d, 先输出c,总是cd;对于任意不同的两个配对(c,d,e,f),先输出配对(c,d,总是ce

样例输入 复制

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

样例输出 复制

NO
YES
1 2
3 4