#include <bits/stdc++.h>
using namespace std;
const int N = 300010;
const long long mod = 998244353;
long long dp[55][2];
vector<long long> v;
void output() {
  cout << v.size();
  for (int i = (int(v.size()) - 1); i >= (0); i--) {
    cout << " " << v[i];
  }
  cout << endl;
}
void solve(long long a, long long b, long long m) {
  v.clear();
  dp[1][0] = dp[1][1] = a;
  int n = 0;
  for (int i = (1); i <= (50); i++) {
    n = i;
    if (i > 1) {
      dp[i][0] = dp[i - 1][0] + 1;
      dp[i][1] = dp[i - 1][1] + m;
    }
    if (b < dp[i][0]) {
      cout << -1 << endl;
      return;
    }
    if (b >= dp[i][0] && b <= dp[i][1]) break;
    dp[i][0] += dp[i - 1][0];
    dp[i][1] += dp[i - 1][1];
  }
  long long now, val;
  val = b - dp[n - 1][1];
  if (val >= 1 && val <= m) {
    now = b + dp[n - 1][1];
  } else
    now = b + b - 1;
  while (n > 1) {
    val = now - dp[n - 1][1] * 2;
    if (val >= 1 && val <= m) {
      v.push_back(now - dp[n - 1][1]);
      now = dp[n - 1][1];
    } else {
      v.push_back(now - (now - 1) / 2);
      now = (now - 1) / 2;
    }
    n--;
  }
  v.push_back(a);
  output();
}
int main() {
  int n;
  cin >> n;
  long long a, b, m;
  for (int i = (1); i <= (n); i++) {
    cin >> a >> b >> m;
    solve(a, b, m);
  }
  return 0;
}
