#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(){ int q; cin >> q; for (int a0 = 0; a0 < q; a0++){ int len; int c; bool flag = true; cin >> len >> c; if (len == 1 && c == 0) { cout << 1 << endl; flag = false; } else if (len == 2 && c == 1) { cout << 1 << " " << 2 << endl; flag = false; } else { int *arr = new int[len]; int j = 0; for (int i = len; i > 0; i--) { arr[j] = i; j++; } long long maxNum = len - 1; for (int i = len - 2; i>0; i--) { maxNum += i; } if (c <= maxNum) { if (c == maxNum) { for (int i = len; i > 0; i--) cout << i << " "; cout << endl; flag = false; } else { long long m = maxNum; vector les; for (int i = len; i>0; i--) { les.push_back(i); } int temp = 1; int h = 0, k= len-1; int x = len-2; for (int i = 0 ; i <= len / 2 ; i++) { if (c == m) { for (int j = 0; j m) { break; } else { int temp2 = les[h]; for (int p = h + 1; p <= k; p++) les[p - 1] = les[p]; les[k] = temp2; } h++; k--; temp++; m -= x; x -= 2; } } } } if (flag) { cout << -1 << endl; } // your code goes here } return 0; }