//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;
        }
    }
}