#pragma comment(linker, ”/STACK:38777216“ #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int N = 45; const int inf = 1000 * 1000 * 1000; const int mod = 1000 * 1000 * 1000 + 7; int q; long long n,m; int main(){ scanf("%d",&q); while(q--){ scanf("%lld%lld",&n,&m); vector g,s,e; long long sum1 = 0; long long sum2 = 0; for(int i=n-1;i>=1;i-=2)sum1 += i; for(int i=n-1;i>=1;i--)sum2 += i; if(m < sum1 || m > sum2){ printf("-1\n"); continue; } for(int i=n-1;i>=1;i--){ if(m >= i){ g.push_back(i); m -= i; } } g.push_back(0); int t = n; for(int i=1;i<(int)g.size();i++){ if(g[i-1] - g[i] == 1){ s.push_back(t); t--; } else{ s.push_back(t-1); e.push_back(t); t -= 2; } } reverse(e.begin(),e.end()); for(int i=0;i<(int)s.size();i++)printf("%d ",s[i]); for(int i=1;i<=t;i++)printf("%d ",i); for(int i=0;i<(int)e.size();i++)printf("%d ",e[i]); cout<