#include <bits/stdc++.h>
using namespace std;
vector<long long> v;
int main() {
  int flag, T, i, j;
  long long a, b, m, tmp, res, del, now, dd;
  scanf("%d", &T);
  while (T--) {
    now = 1;
    flag = 0;
    scanf("%I64d%I64d%I64d", &a, &b, &m);
    if (a == b) {
      printf("%d ", 1);
      printf("%I64d\n", a);
      continue;
    }
    for (i = 1;; i++) {
      tmp = now * a;
      tmp += now;
      del = b - tmp;
      if (del < 0) {
        break;
      }
      dd = (m - 1) * (now);
      if (tmp + dd >= b) {
        del = b - tmp;
        v.clear();
        for (j = 1; j <= i; j++) {
          now = max(now / 2, 1LL);
          res = min(del / now, m - 1);
          del -= res * now;
          v.push_back(res);
        }
        flag = 1;
        printf("%d ", i + 1);
        printf("%lld ", a);
        long long sum = a;
        for (j = 1; j <= v.size(); j++) {
          printf("%I64d ", sum + v[j - 1] + 1);
          sum = sum * 2 + v[j - 1] + 1;
        }
        printf("\n");
        break;
      }
      now *= 2;
    }
    if (!flag) {
      printf("-1\n");
    }
  }
  return 0;
}
