Алиса и Борис играют в теннис.
Теннисный матч состоит из геймов. В каждом гейме один из игроков подаёт, другой — принимает.
Игроки подают по очереди: за геймом, в котором подаёт Алиса, всегда следует гейм, в котором подаёт Борис, и наоборот.
Каждый гейм заканчивается победой одного из игроков. Если гейм выигрывает подающий игрок, говорят, что этот игрок взял подачу. Если принимающий — говорят, что этот игрок сделал брейк.
Известно, что за матч Алиса выиграла $$$a$$$ геймов, а Борис выиграл $$$b$$$ геймов. Неизвестно, кто первый подавал и кто какие геймы выиграл.
Найдите все такие значения $$$k$$$, что за матч Алисы и Бориса могло быть сделано в сумме ровно $$$k$$$ брейков.
Во входных данных находятся несколько наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^3$$$) — количество наборов входных данных. Далее следуют наборы входных данных.
Каждая из следующих $$$t$$$ строк описывает один набор входных данных и содержит два целых числа $$$a$$$ и $$$b$$$ ($$$0 \le a, b \le 10^5$$$; $$$a + b > 0$$$) — число геймов, выигранных Алисой и Борисом, соответственно.
Гарантируется, что сумма значений $$$a + b$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите две строки.
В первой строке выведите целое число $$$m$$$ ($$$1 \le m \le a + b + 1$$$) — число различных значений $$$k$$$ таких, что за матч могло быть сделано ровно $$$k$$$ брейков.
Во второй строке выведите $$$m$$$ различных целых чисел $$$k_1, k_2, \ldots, k_m$$$ ($$$0 \le k_1 < k_2 < \ldots < k_m \le a + b$$$) — искомые значения $$$k$$$ в возрастающем порядке.
3 2 1 1 1 0 5
4 0 1 2 3 2 0 2 2 2 3
В первом наборе входных данных за матч могло быть сделано любое число брейков от $$$0$$$ до $$$3$$$:
Во втором наборе входных данных игроки могли либо каждый взять свою подачу ($$$0$$$ брейков), либо обменяться брейками ($$$2$$$ брейка).
В третьем наборе входных данных могло быть сделано либо $$$2$$$, либо $$$3$$$ брейка:
Название |
---|