#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=