#include <iostream>
#include <vector>
#include <set>
using namespace std;
const int maxn = 2016;
vector<int> win[maxn];
int move[maxn];
void fillwin(){
win[1].push_back(1);
for (int i = 2; i < maxn; i++){
int empty = -1;
for (int j = 0; j < win[i - 1].size(); j ++){
if (win[i - 1][j] == 0){
empty = j;
break;
}
}
if (empty == -1)
empty = win[i - 1].size();
for (int j = 0; j < empty; j++)
win[i].push_back(win[i -1][j] - 1);
win[i].push_back(empty + 1);
for (int j = empty + 1; j < win[i - 1].size(); j++)
win[i].push_back(win[i -1][j]);
}
}
int main(){
int T;
cin >> T;
fillwin();
while (T--){
int no, n;
cin >> no >> n;
cout << no << " " << win[n].size() << endl;
for (int i = 0; i < win[n].size(); i++){
cout << win[n][i];
if ((i + 1) % 10 == 0)
cout << endl;
else if (i + 1 != win[n].size())
cout << " ";
}
if (win[n].size() % 10 != 0)
cout << endl;
}
}