Республиканская олимпиада по информатике 2018 года за 10 класс | Казахстанские олимпиады

Задача D. Разница

Ограничение по времени Ограничение по памяти
1 секунда 256 мегабайт

У вас есть мультимножества SS. Разница мультимножества и множества состоит в том, что в мультимножестве одно и то же число может содержаться несколько раз, а в множестве — только один раз. Изначально, в мультимножестве содержатся все целые числа от 11 до nn по одному разу. За одну операцию вы можете убрать два числа aa и bb из мультимножества и добавить их абсолютную разницу |aa - bb|. Вы хотите выполнить некоторые операции так, чтобы в мультимножестве было только одно число xx.

Формат входного файла

В первой строке входных данных задается одно целое число TT (1T1001 \le T \le 100) — количество тестов. В следующих TT строках задаются по два целых числа nn и xx (2n105,0xn2 \le n \le 10^5, 0 \le x \le n) — описание теста. Сумма всех nn по всем тестам не превышает 51055 \cdot 10^5.

Формат выходного файла

Для каждого теста выведите "NO" (без кавычек), если невозможно получить xx. Иначе, для этого теста выведите "YES" (без кавычек) и в следующих nn-11 строках выведите операции в порядке их выполнения. Для каждой операции выведите два целых числа aa и bb числа, которые выбираются с текущего мультимножества.

Примеры

Вход

2
5 1
5 0

Выход

YES
2 3
4 5
1 1
1 0
NO