题号:NC215148
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小西得到了一套拼图,拼图里有

种

的小拼图,每个

的小方格上都有一个数字。
现在小西想使用这些拼图来组成一个

的方形,注意每个小拼图的边缘必须平行于最后这个方形的对应边,且拼图间不能重叠,也不能留空隙
小西发现拼图中每一种小拼图都有无数张,并且小西希望最后这个方形的每个小方格的数字,都是关于主对角线对称的。也就是说假设最后这个方形为

,那么对于每个

和

都有

。注意只需要数字相等即可,不需要数字的字符形状对称。
小西想知道她能拼出

吗?
注意:拼图上的数字是印刷的,所以当然也不能旋转小拼图。
输入描述:
第一行输入一个整数

表示测试用例组数,接下来有

组测试用例。
对于每组测试用例:
第一行输入两个整数

和

分别表示有

种小拼图和最后

的尺寸。
接下来

行表示

块小拼图的数字分布,每一块由两行组成,第一行是左上角、右上角;第二行是左下角、右下角
包括

在内,所有数字的范围都在

输出描述:
对于每组测试用例输出一行一个字符串。如果这组测试用例小西能拼出来就输出YES,否则输出NO
示例1
输入
复制
6
3 4
1 2
5 6
5 7
7 4
8 9
9 8
2 5
1 1
1 1
2 2
2 2
1 100
10 10
10 10
1 2
4 5
8 4
2 2
1 1
1 1
1 2
3 4
1 2
1 1
1 1
说明
比如说第一组测试用例,n=3,m=4
接下来6行里
1 2
5 6是第一种小拼图
5 7
7 4是第二种
8 9
9 8是第三种