#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <memory.h>
 
using namespace std;
 
int main() {
  int tt;
  scanf("%d", &tt);
  while (tt--) {
    int r, c;
    long long g;
    scanf("%d %d %lld", &r, &c, &g);
    if (c <= 1) {
      printf("%d\n", 1);
      printf("%lld\n", g);
      continue;
    }
    vector <long long> ret;
    long long mx = g;
    while (g > 0) {
      int low = c, high = 2000000;
      while (low < high) {
        int mid = (low + high + 1) >> 1;
        int by = (c < mid - c) ? c : (mid - c);
        long long res = 1;
        for (int i = 0; i < by; i++) {
          res *= mid - i;
          res /= i + 1;
          if (res > g) {
            break;
          }
        }
        if (res > g || res > mx) high = mid - 1;
        else low = mid;
      }
      int mid = low;
      int by = (c < mid - c) ? c : (mid - c);
      long long res = 1;
      for (int i = 0; i < by; i++) {
        res *= mid - i;
        res /= i + 1;
      }
      g -= res;
      mx = res;
      ret.push_back(res);
      c--;
    }
    int sz = ret.size();
    printf("%d\n", sz);
    for (int i = 0; i < sz - 1; i++) printf("%lld ", ret[i]);
    printf("%lld\n", ret[sz - 1]);
  }
  return 0;
}
 
				I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxudW1lcmljPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPG1lbW9yeS5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogIGludCB0dDsKICBzY2FuZigiJWQiLCAmdHQpOwogIHdoaWxlICh0dC0tKSB7CiAgICBpbnQgciwgYzsKICAgIGxvbmcgbG9uZyBnOwogICAgc2NhbmYoIiVkICVkICVsbGQiLCAmciwgJmMsICZnKTsKICAgIGlmIChjIDw9IDEpIHsKICAgICAgcHJpbnRmKCIlZFxuIiwgMSk7CiAgICAgIHByaW50ZigiJWxsZFxuIiwgZyk7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgdmVjdG9yIDxsb25nIGxvbmc+IHJldDsKICAgIGxvbmcgbG9uZyBteCA9IGc7CiAgICB3aGlsZSAoZyA+IDApIHsKICAgICAgaW50IGxvdyA9IGMsIGhpZ2ggPSAyMDAwMDAwOwogICAgICB3aGlsZSAobG93IDwgaGlnaCkgewogICAgICAgIGludCBtaWQgPSAobG93ICsgaGlnaCArIDEpID4+IDE7CiAgICAgICAgaW50IGJ5ID0gKGMgPCBtaWQgLSBjKSA/IGMgOiAobWlkIC0gYyk7CiAgICAgICAgbG9uZyBsb25nIHJlcyA9IDE7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBieTsgaSsrKSB7CiAgICAgICAgICByZXMgKj0gbWlkIC0gaTsKICAgICAgICAgIHJlcyAvPSBpICsgMTsKICAgICAgICAgIGlmIChyZXMgPiBnKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAocmVzID4gZyB8fCByZXMgPiBteCkgaGlnaCA9IG1pZCAtIDE7CiAgICAgICAgZWxzZSBsb3cgPSBtaWQ7CiAgICAgIH0KICAgICAgaW50IG1pZCA9IGxvdzsKICAgICAgaW50IGJ5ID0gKGMgPCBtaWQgLSBjKSA/IGMgOiAobWlkIC0gYyk7CiAgICAgIGxvbmcgbG9uZyByZXMgPSAxOwogICAgICBmb3IgKGludCBpID0gMDsgaSA8IGJ5OyBpKyspIHsKICAgICAgICByZXMgKj0gbWlkIC0gaTsKICAgICAgICByZXMgLz0gaSArIDE7CiAgICAgIH0KICAgICAgZyAtPSByZXM7CiAgICAgIG14ID0gcmVzOwogICAgICByZXQucHVzaF9iYWNrKHJlcyk7CiAgICAgIGMtLTsKICAgIH0KICAgIGludCBzeiA9IHJldC5zaXplKCk7CiAgICBwcmludGYoIiVkXG4iLCBzeik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHN6IC0gMTsgaSsrKSBwcmludGYoIiVsbGQgIiwgcmV0W2ldKTsKICAgIHByaW50ZigiJWxsZFxuIiwgcmV0W3N6IC0gMV0pOwogIH0KICByZXR1cm4gMDsKfQo=