// Mohib Manva #include #include #include using namespace __gnu_pbds; using namespace std; template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>; #define mod 1000000007 #define LOCAL 0 #define pb push_back #define ll long long ll po(ll a,ll b){ ll x = 1,y=a; while(b>0){ if(b%2){ x = x*y; x %= mod; } y=y*y; y%=mod; b/=2; } return x; } ll extra; static int ans[2000005]; void solve(int s,int e,int val1,int val2){ if(s>e){ return; } if((e-s)<=2){ ans[s] = val1; if(e!=s){ ans[e] = val2; } } if(extra>0){ int mi = (s+e)>>1; extra--; int mi1 = (val1+val2)>>1; ans[s] = mi1; solve(s+1,mi,val1,mi1-1); solve(mi+1,e,mi1+1,val2); } else { ans[s] = val2; solve(s+1,e,val1,val2-1); } } int main(){ if(LOCAL){ freopen("C:/Users/gold/Desktop/sublime IO/input.txt","r",stdin); freopen("C:/Users/gold/Desktop/sublime IO/output.txt","w",stdout); } int T = 1; scanf("%d",&T); while(T--){ int n,m; scanf("%d %d",&n,&m); ll up = n-1ll; up = up*(up+1); up /= 2ll; ll tmp = up - m; if(mup||tmp>n-1){ puts("-1"); } else { extra = tmp; solve(1,n,1,n); if(extra==0){ for(int i=1;i<=n;i++){ printf("%lld ",ans[i]); } puts(""); } else puts("-1"); } } return 0; }