import std; void main () { int T = readln.chomp.to!int; foreach (_; 0..T) { int N; long X; readln.read(N, X); solve(N, X); } } void solve (int N, long X) { /* 1+2+...の和がX以下なら存在する。なぜなら、好きなように+できるから */ if (1L*N*(N+1)/2 <= X) { foreach (i; 0..N-1) { write(i+1, " "); } writeln(X-1L*(N-1)*N/2); } else { writeln(-1); } } void read (T...) (string S, ref T args) { auto buf = S.split; foreach (i, ref arg; args) { arg = buf[i].to!(typeof(arg)); } }