小 P 得到了一块神秘的魔法棋盘。棋盘是一个大小为 1000 × 1000的网格图,格子黑白相间,其中左上角 为白色。换句话说,格子行与列的奇偶性相同时为白色,否则为黑色。
每次启动魔法棋盘,都需要完成一个挑战:在棋盘上选出一个连通块,其中包含恰好 个白格子和
个黑格子。
当两个格子共享一条边时,视为它们相邻;如果一个格子集合中任意两个格子都可以通过若干次相邻移动互达,则该集合为一个连通块。
小 P 发现有些情况下根本无法找到满足条件的连通块,因此他希望你判断:
给定的 和
是否可行;
若可行,请给出任意一组满足条件的构造方案。
第一行输入一个整数
(
),表示测试数据的组数。
接下来
行,每行输入两个整数
(
且
),分别表示连通块的白格子数量和黑格子数量。
保证所有测试用例中
的总和不超过
。
对于每组数据:
若存在合法构造,输出一行YES,随后输出 行,每行两个整数
(
),表示选择的格子坐标。
若不存在合法构造,输出一行NO。
若存在多种可行方案,以任意顺序输出任意一种可行方案即可。
你可以以任意大小写输出YES和NO(例如,字符串yEs、yes、Yes和YES将被识别为肯定的回答)。
对于第三个测试用例,下图中红色边界内的格子构成了满足条件的连通块:
红色边界内的连通块共
个白色格子,
个黑色格子,符合要求。