#include using namespace std; void build(vector &ans,int l,int r,int c,long long int min[]) { if(l>r) return; if(l==r) { ans.push_back(l); return ; } if(l+1==r) { ans.push_back(l); ans.push_back(r); return ; } c=c-(r-l); for(int i=1+(r-l+1)/2;i<=r;i++) { int ma=0; int len1=i-l,len2=r-i; if(len1%2==0) ma=(len1/2)*(len1-1); else ma=((len1-1)/2)*len1; int left=c-min[len2]; if(left>=len1[min]&&ma>=left) { ans.push_back(i); build(ans,l,i-1,left,min); build(ans,i+1,r,min[len2],min); } } } int main() { long long int min[100001]; min[1]=0; min[0]=0; min[2]=1; min[3]=2; for(int i=4;i<100001;i++) { min[i]=i-1+min[(i-1)/2]+min[(i-1)-((i-1)/2)]; } int q; cin>>q; while(q--) { int l,c; long long int m; cin>>l>>c; if(l%2==0) m=(l/2)*(l-1); else m=((l-1)/2)*l; if(cm) { cout<<"-1"; cout< ans; build(ans,1,l,c,min); for(int i=0;i