Алиса и Борис играют в теннис.
Теннисный матч состоит из геймов. В каждом гейме один из игроков подаёт, другой — принимает.
Игроки подают по очереди: за геймом, в котором подаёт Алиса, всегда следует гейм, в котором подаёт Борис, и наоборот.
Каждый гейм заканчивается победой одного из игроков. Если гейм выигрывает подающий игрок, говорят, что этот игрок взял подачу. Если принимающий — говорят, что этот игрок сделал брейк.
Известно, что за матч Алиса выиграла \(a\) геймов, а Борис выиграл \(b\) геймов. Неизвестно, кто первый подавал и кто какие геймы выиграл.
Найдите все такие значения \(k\), что за матч Алисы и Бориса могло быть сделано в сумме ровно \(k\) брейков.
Выходные данные
Для каждого набора входных данных выведите две строки.
В первой строке выведите целое число \(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\) в возрастающем порядке.
Примечание
В первом наборе входных данных за матч могло быть сделано любое число брейков от \(0\) до \(3\):
- Алиса берёт подачу, Борис берёт подачу, Алиса берёт подачу: \(0\) брейков;
- Борис берёт подачу, Алиса берёт подачу, Алиса делает брейк: \(1\) брейк;
- Борис делает брейк, Алиса делает брейк, Алиса берёт подачу: \(2\) брейка;
- Алиса делает брейк, Борис делает брейк, Алиса делает брейк: \(3\) брейка.
Во втором наборе входных данных игроки могли либо каждый взять свою подачу (\(0\) брейков), либо обменяться брейками (\(2\) брейка).
В третьем наборе входных данных могло быть сделано либо \(2\), либо \(3\) брейка:
- Борис берёт подачу, Борис делает брейк, Борис берёт подачу, Борис делает брейк, Борис берёт подачу: \(2\) брейка;
- Борис делает брейк, Борис берёт подачу, Борис делает брейк, Борис берёт подачу, Борис делает брейк: \(3\) брейка.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 2 1 1 1 0 5
|
4
0 1 2 3
2
0 2
2
2 3
|