#include using namespace std; void lena(int len, int c, vector > >& vvv){ int x = c - len + 1; if (x < 0){ vvv[len][c].push_back(-1); return; } for (int i = 1; i < len; i++){ for (int j = 0; j <= x; j++){ if (vvv[i][j].size() == 0) lena(i, j, vvv); if (vvv[len-i-1][x-j].size() == 0) lena(len-i-1, x-j, vvv); if (vvv[i][j][0] != -1 && vvv[len-i-1][x-j][0] != -1){ vvv[len][c].push_back(i+1); for (int m = 0; m < vvv[i][j].size(); m++){ if (vvv[i][j][m] != 0) vvv[len][c].push_back(vvv[i][j][m]); } for (int m = 0; m < vvv[len-i-1][x-j].size(); m++){ if (vvv[len-i-1][x-j][m] != 0) vvv[len][c].push_back(vvv[len-i-1][x-j][m]+i+1); } return; } } } vvv[len][c].push_back(-1); } vector lena(int len, int c){ vector > > vvv(len+1, vector >(c+1, vector())); vvv[1][0].push_back(1); vvv[0][0].push_back(0); lena(len, c, vvv); return vvv[len][c]; } int main(){ int q; cin >> q; for(int a0 = 0; a0 < q; a0++){ int len; int c; cin >> len >> c; // your code goes here vector v = lena(len, c); for(auto x: v) cout << x << " "; cout << endl; } return 0; }