Вам даны целые числа \(M\) и \(K\) \((1 \leq M \leq 10 ^ 9, 1 \leq K \leq 31)\).
Выберите положительное целое \(N\) и сконструируйте последовательность
\(a\) из \(N\) неотрицательных целых чисел так, чтобы выполнялись следующие условия:
- \(1 \le N \le 100\)
- \(a_1 + a_2 + \dots + a_N = M\)
-
\(\text{popcount}(a_1) \oplus \text{ popcount}(a_2) \oplus \dots \oplus \text{ popcount}(a_N) = K\)
Если такой последовательности не существует, выведите \(-1\).
\(\dagger \text{ popcount}(x)\) это количество \(1\) в двоичном представлении
числа \(x\). Например, popcount от \(11\) это \(3\), а popcount от \(16\) это \(1\).
\(\dagger \oplus\) это оператор побитового XOR.
Ввод содержит \(T\) (\(1 \le T \le 5 \cdot 10^3\)) независимых подтестов.
ФОРМАТ ВВОДА (с клавиатуры / stdin):
Первая строка содержит \(T\).
Первая и единственная строка каждого подтеста содержит \(M\) и \(K\).
Гарантируется, что все тесты уникальны.
ФОРМАТ ВЫВОДА (на экран / stdout):
Выведите решения для всех \(T\) подтестов таким образом:
Если ответ не существует выведите \(-1\).
Иначе, первая строка для подтеста должна содержать \(N\),
длина последовательности -- (\(1 \le N \le 100\)).
Вторая строка для этого подтеста должна содержать \(N\) разделённых пробелом целых
чисел, которые удовлетворяют условиям -- (\(0 \le a_i \le M\)).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 2 1 33 5 10 5
|
2
2 0
3
3 23 7
-1
|