#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; } }