DreamGrid 有一个非负整数 $n$。他想将 $n$ 分解为 $m$ 个非负整数 $a_1, a_2, \dots, a_m$,并使得它们的按位或(bitwise OR)最小(即 $n = a_1 + a_2 + \dots + a_m$,且 $a_1 \text{ OR } a_2 \text{ OR } \dots \text{ OR } a_m$ 尽可能小)。
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含两个整数 $n$ 和 $m$($0 \le n < 10^{1000}$,$1 \le m < 10^{100}$)。
保证 $n$ 的长度之和不超过 $2 \times 10^4$。
对于每组测试数据,输出一个整数,表示按位或的最小值。
样例
输入格式 1
5 3 1 3 2 3 3 10000 5 1244 10
输出格式 1
3 3 1 2000 125