func_code_string: //Template Made By: Ojassvi Kumar   #include<bits/stdc++.h>   using namespace std;       #define ios ios_base::sync_with_stdio(false);cin.tie(NULL);   #define ll long long int   #define fo(i,a,b) for(long long int i=a; i<b; i++)   #define endl   n    #define max3(a,b,c) max(max((a),(b)),(c))   #define max4(a,b,c,d) max(max((a),(b)),max((c),(d)))   #define min3(a,b,c) min(min((a),(b)),(c))   #define min4(a,b,c,d) min(min((a),(b)),min((c),(d)))   #define pb push_back   #define lb lower_bound   #define up upper_bound   #define all(V) V.begin(),V.end()   #define itv vector<long long int>::iterator   #define pll pair<long long int,long long int>   #define mp make_pair   #define itp vector<pair<long long int,long long int>>::iterator   #define sll set<long long int,greater<long long int>>   #define its set<long long int,greater<long long int>>::iterator   #define d0(x) cout<<(x)<<      #define d1(x) cout<<(x)<<endl   #define d2(x,y) cout<<(x)<<   <<(y)<<endl       //const long double pi = 3.14159265358979323846264338;   //Template Ends       int main(){       ios       #ifndef ONLINE_JUDGE       freopen( INPUT.txt ,  r , stdin);       freopen( OUTPUT.txt ,  w , stdout);       #endif       ll Tests=1;       cin>>Tests;       while(Tests--){           ll N,L,R,S;           cin>>N>>L>>R>>S;           ll num=R-L+1;           ll Hsum=0,Lsum=0;           fo(i,0,num){               Hsum+=(N-i);               Lsum+=(i+1);           }           if(S>Hsum||S<Lsum){               cout<<-1<<endl;           }           else{               vector<ll> V(num);               fo(i,0,V.size())                   V[i]=i+1;               ll curS=Lsum;               ll j=num-1;               ll ceill=N;               while(1){                   if(curS==S){                       break;                   }                   else{                       V[j]++;                       curS++;                       if(V[j]==ceill){                           j--;                           ceill--;                       }                   }               }               set<ll> ST;               fo(i,0,num)                   ST.insert(V[i]);               vector<ll> VV;               fo(i,0,N){                   if(!ST.count(i+1)){                       VV.pb(i+1);                   }               }               ll jj=0,jjj=0;               fo(i,0,N){                   if(i>=(L-1)&&i<=(R-1)){                       cout<<V[jj]<<   ;                       jj++;                   }                   else{                       cout<<VV[jjj]<<   ;                       jjj++;                   }               }               cout<<endl;           }       }   }