#include using namespace std; typedef long long ll; const int MAXN = 1e5 + 10; ll mn[MAXN], mx[MAXN]; void go(int l, int r, ll rem){ if (l > r) return; if (r == l){ cout << l << " "; return; } rem -= r-l; int lo = 0, hi = (r-l>>1)+1; int len = r-l; while (hi-lo>1){ int mid = hi+lo>>1; if (mx[mid] + mx[len - mid] >= rem) lo = mid; else hi = mid; } int z = l + lo; cout << z << " "; ll temp = mn[z - l]; if (z + 1 <= r) temp += max(0ll, rem - mn[z - l] - mx[r - z]); rem -= temp; if (z-1 >= l) go(l, z-1, temp); go(z+1, r, rem); } int main(){ ios::sync_with_stdio(false); cin.tie(0); for (int i = 2; i < MAXN; i++) mn[i] = mn[i>>1] + mn[i-1>>1] + (i-1) , mx[i] = 1ll*(i-1)*i/2; int te; cin >> te; while (te--){ int n, t; cin >> n >> t; if (t < mn[n] || mx[n] < t) cout << "-1\n"; else{ go(1, n, t); cout << "\n"; } } return 0; }