def make_divisors(n: int): lower_divisors, upper_divisors = [], [] i = 1 for i in range(1, int(n ** 0.5) + 1): if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n // i) return lower_divisors + upper_divisors[::-1] def resolve(): from bisect import bisect_left t = int(input()) for _ in range(t): a, b = map(int, input().split()) b -= a l = make_divisors(a) ans = [] while b > 0: x = bisect_left(l, b + 1) - 1 ans.append(l[x]) b -= l[x] print(len(ans)) print(*ans) if __name__ == '__main__': resolve()