#include using namespace std; using ll = long long; using ld = long double; using pll = pair; using vll = vector; using vpll = vector; #define pb push_back #define FOR(i, m, n) for (ll i(m); i < n; i++) #define REP(i, n) FOR(i, 0, n) #define F(n) REP(i, n) #define FF(n) REP(j, n) struct d_ { template d_ & operator ,(const T & x) { cerr << ' ' << x; return *this;} template d_ & operator ,(const vector & x) { for(auto x: x) cerr << ' ' << x; return *this;} } d_t; #define D(args ...) { d_t,"|",__LINE__,"|",#args,":",args,"\n"; } #define dbg(args ...) D(args) #define EPS (1e-10) #define INF (1LL<<61) #define CL(A,I) (memset(A,I,sizeof(A))) #define all(x) begin(x),end(x) #define IN(n) ll n;cin >> n; #define x first #define y second #define MX 100007 ll arr[MX]; ll solve(ll a, ll b, ll p, ll n, ll c) { ll m=(a+b)/2; arr[p]=m; if(n==1) return 0; arr[p+1]=m+1; if(n==2) return 1; c-=n-1; ll i; for(i=1; i<=(n-1); i++) if (i*(i-1)/2 + (i!=n-1 ? (n-1-i)*(n-2-i)/2 : 0) >= c) { // dbg("breaking at len", i, i*(i-1)/2 + (i!=n-1 ? (n-1-i)*(n-2-i)/2 : 0), c); break; } if(i==n) return -1; return (n-1) + solve(a, m, p+1, i, (i==n-1 ? c : (c+1)/2)) + (i!=n-1 ? solve(m+1,b,p+1+i, n-1-i, c/2) : 0); } int main() { ll q;cin>>q;while(q--) { ll n,c; cin>>n>>c; if(solve(1,1e9,0,n,c)==-1) cout<< -1 << endl; else { F(n) cout<