#include <bits/stdc++.h>
using namespace std;
long long int em(long long int x, long long int Mod, long long int n) {
  if (n == 0)
    return 1ll;
  else if (n % 2 == 0)
    return em((x % Mod * x % Mod) % Mod, Mod, n / 2) % Mod;
  else
    return (x % Mod * em((x % Mod * x % Mod) % Mod, Mod, (n - 1) / 2)) % Mod;
}
int32_t main() {
  std::ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int t, i, j, k, l, a, b, m;
  cin >> t;
  while (t--) {
    cin >> a >> b >> m;
    if (a == b) {
      cout << 1 << " " << a << "\n";
      continue;
    }
    long long int lvl = 0, flag = 0;
    for (long long int i = (long long int)0; i < (long long int)50; i++) {
      long long int mini = (1ll << i) * (a + 1ll);
      long long int maxi = (1ll << i) * (a + m);
      if (b >= mini && b <= maxi) {
        lvl = i;
        break;
      }
      if (b < mini) {
        flag = 1;
        break;
      }
    }
    if (flag) {
      cout << "-1\n";
      continue;
    }
    vector<long long int> ans;
    ans.push_back(a);
    long long int sum = a;
    long long int now = 0;
    while (now != lvl) {
      long long int lo = 1, hi = m, res = -1;
      while (lo <= hi) {
        long long int mid = (lo + hi) / 2;
        long long int diff = lvl - now;
        long long int mini, maxi;
        mini = (mid + 1) * (1ll << (diff - 1)) + (1ll << diff) * sum;
        maxi = (mid + m) * (1ll << (diff - 1)) + (1ll << diff) * sum;
        if (b >= mini && b <= maxi) {
          res = max(res, mid);
          lo = mid + 1;
        } else if (mini < b)
          lo = mid + 1;
        else
          hi = mid - 1;
      }
      ans.push_back(sum + res);
      sum = 2ll * sum + res;
      now++;
    }
    ans.push_back(b);
    cout << lvl + 2 << " ";
    for (long long int y : ans) cout << y << " ";
    cout << "\n";
  }
}
