#define _CRT_SECURE_NO_WARNINGS #define _USE_MATH_DEFINES #include using namespace std; #include using namespace atcoder; #define REP(i, n) for(int i = 0; i < (int)n; i++) #define LREP(i, n) for(LL i = 0; i < (LL)n; i++) #define RREP(i, n) for(int i = (int)n-1; i >= 0; i--) #define V(T) vector #define P pair #define LP pair #define T3 tuple #define T4 tuple #define INF 1000000007 #define SIZE 500100 #define MOD 998244353 typedef long long LL; int main() { int T; cin >> T; REP(t, T) { LL A, B; cin >> A >> B; V(LL) C; while (A < B) { LL bit = A & -A; LL D = B - A; if (D >= bit) { A += bit; } else { LREP(i, 60) { if (D & ((LL)1 << i)) bit = (LL)1 << i; } A += bit; } C.push_back(bit); } cout << C.size() << endl; REP(i, C.size()) { if (i) cout << " "; cout << C[i]; if (i + 1 == C.size()) cout << endl; } } }