#include <bits/stdc++.h>
#include <vector>
using namespace std;
unsigned long long factorial(unsigned long long n) {
unsigned long long result = 1;
for(unsigned long long i=1; i<=n;i++) {
result *= i;
}
return result;
}
// Function to display the array
void display(vector<int> vec, int n)
{
for (int i = 0; i < n-1; i++) {
cout << vec[i] << ' ';
}
cout << vec[n-1] << '\n';
}
// Function to find the permutations
void findPermutations(vector<int> vec, unsigned long long n, unsigned long long pom, unsigned long long how_many)
{
unsigned long long fac, fac2, shift;
fac = factorial(n-1);
fac2 = factorial(n);
if(pom > fac2) {
cout << 0; return;
}
shift = pom / fac;
pom -= shift*fac;
if(shift > 0){
vec.insert(vec.begin(), vec[shift]);
vec.erase(vec.begin() + vec[shift+1]);
}
while(pom--) {
next_permutation(vec.begin(), vec.end());
}
while(how_many--) {
display(vec, n);
next_permutation(vec.begin(), vec.end());
}
}
// Driver code
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
unsigned long long t, a, b, c;
cin >> t;
while(t--) {
vector<int> vec;
cin >> a >> b >> c;
for(int i=1; i<=a; i++) {
vec.push_back(i);
}
findPermutations(vec, vec.size(), b, c);
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKCnVuc2lnbmVkIGxvbmcgbG9uZyBmYWN0b3JpYWwodW5zaWduZWQgbG9uZyBsb25nIG4pIHsKCXVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQgPSAxOwoJZm9yKHVuc2lnbmVkIGxvbmcgbG9uZyBpPTE7IGk8PW47aSsrKSB7CgkJcmVzdWx0ICo9IGk7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CiAgCi8vIEZ1bmN0aW9uIHRvIGRpc3BsYXkgdGhlIGFycmF5IAp2b2lkIGRpc3BsYXkodmVjdG9yPGludD4gdmVjLCBpbnQgbikgCnsgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4tMTsgaSsrKSB7IAogICAgICAgIGNvdXQgPDwgdmVjW2ldIDw8ICcgJzsgCiAgICB9CiAgICBjb3V0IDw8IHZlY1tuLTFdIDw8ICdcbic7Cn0gCiAgCi8vIEZ1bmN0aW9uIHRvIGZpbmQgdGhlIHBlcm11dGF0aW9ucyAKdm9pZCBmaW5kUGVybXV0YXRpb25zKHZlY3RvcjxpbnQ+IHZlYywgdW5zaWduZWQgbG9uZyBsb25nIG4sIHVuc2lnbmVkIGxvbmcgbG9uZyBwb20sIHVuc2lnbmVkIGxvbmcgbG9uZyBob3dfbWFueSkgCnsKCXVuc2lnbmVkIGxvbmcgbG9uZyBmYWMsIGZhYzIsIHNoaWZ0OwoJZmFjID0gZmFjdG9yaWFsKG4tMSk7CglmYWMyID0gZmFjdG9yaWFsKG4pOwoJaWYocG9tID4gZmFjMikgewoJCWNvdXQgPDwgMDsgcmV0dXJuOwoJfQoJc2hpZnQgPSBwb20gLyBmYWM7Cglwb20gLT0gc2hpZnQqZmFjOwoJaWYoc2hpZnQgPiAwKXsKCQl2ZWMuaW5zZXJ0KHZlYy5iZWdpbigpLCB2ZWNbc2hpZnRdKTsgCgkJdmVjLmVyYXNlKHZlYy5iZWdpbigpICsgdmVjW3NoaWZ0KzFdKTsKCX0KCQogICAgd2hpbGUocG9tLS0pIHsKICAgIAluZXh0X3Blcm11dGF0aW9uKHZlYy5iZWdpbigpLCB2ZWMuZW5kKCkpOwogICAgfQogICAgCiAgICB3aGlsZShob3dfbWFueS0tKSB7IAogICAgICAgIGRpc3BsYXkodmVjLCBuKTsKICAgICAgICBuZXh0X3Blcm11dGF0aW9uKHZlYy5iZWdpbigpLCB2ZWMuZW5kKCkpOwogICAgfQp9IAogIAovLyBEcml2ZXIgY29kZSAKaW50IG1haW4oKSAKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoJdW5zaWduZWQgbG9uZyBsb25nIHQsIGEsIGIsIGM7CgljaW4gPj4gdDsKCXdoaWxlKHQtLSkgewoJCXZlY3RvcjxpbnQ+IHZlYzsKCQljaW4gPj4gYSA+PiBiID4+IGM7CgkJZm9yKGludCBpPTE7IGk8PWE7IGkrKykgewoJCQl2ZWMucHVzaF9iYWNrKGkpOwoJCX0KCQlmaW5kUGVybXV0YXRpb25zKHZlYywgdmVjLnNpemUoKSwgYiwgYyk7CgkJY291dCA8PCAnXG4nOwoJfQogICAgcmV0dXJuIDA7IAp9IA==