#include <iostream>
using namespace std;
int N, C;
int a[100];
void display(int a[], int n)
{
for (int i = 0; i < n; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
int revert(int a[], int i, int j, int n)
{
if (i == j)
{
return 1;
}
for (int k = 0;k < (j - i + 1) / 2; k++)
{
int temp = a[i + k];
a[i + k] = a[j - k];
a[j - k] = temp;
}
return j - i + 1;
}
int revertsort(int a[], int n)
{
int b[n];
int sum = 0, min = 1000, minindex = 0;
for (int i = 0; i < n; i++)
{
b[i] = a[i];
if (a[i] < min)
{
min = a[i];
minindex = i;
}
}
sum += revert(a, 0, minindex, n);
for (int i = 1; i < n - 1; i++)
{
min = a[i];
minindex = i;
for (int j = i; j < n; j++)
{
if (a[j] < min)
{
min = a[j];
minindex = j;
}
}
sum += revert(a, i, minindex, n);
}
if (sum == C)
{
cout<<sum<<" == "<<C<<endl;
for (int i = 0; i < N; i++)
{
cout<<b[i];
if (i != N - 1)
{
cout<<" ";
}
}
cout<<endl;
}
for (int i = 0; i < N; i++)
{
a[i] = b[i];
}
}
int fullarray(int m, int n)
{
if (n == 0)
{
revertsort(a, N);
}
for (int i = m; i < N; i ++)
{
swap(a[i], a[m]);
fullarray(m + 1, n - 1);
swap(a[i], a[m]);
}
}
int main()
{
for (int i = 0; i < 100; i++)
{
a[i] = i + 1;
}
int T, count;
cin>>T;
count = T;
while(T--)
{
cin>>N;
cin>>C;
fullarray(0, N);
//cout<<"Case #"<<count - T<<": "<<result<<endl;
}
return 0;
}