#include<bits/stdc++.h>
using namespace std;

#define inf               1000000007
#define mod               1000000007
#define INF               1e18 + 18
#define pb                push_back
#define ppb               pop_back
#define pf                push_front
#define ppf               pop_front
#define all(x)            (x).begin(),(x).end()
#define uniq(v)           (v).erase(unique(all(v)),(v).end())
#define sz(x)             (ll)((x).size())
#define pii               pair<ll,ll>
#define piii              pair<pair<ll,ll>,ll>
#define Piii              pair<ll,pair<ll,ll>>
#define mp                make_pair
#define se                second
#define fi                first
#define vi                vector<ll>
#define vvi               vector <vector <ll> >
#define pie               3.14159265358979323846
#define for0(i,a,b)       for(ll i=a;i<b;i++)
#define for1(i,a,b)       for(ll i=a;i<=b;i++)
#define mem1(a)           memset(a,-1,sizeof(a))
#define mem0(a)           memset(a,0,sizeof(a))

//string vowels = "aeiou";
//string consonants = "bcdfghjklmnpqrstvwxyz";
//string numbers = "0123456789";
//string alpha = "abcdefghijklmnopqrstuvwxyz";

//typedef int ll;
typedef long long ll;
//const int mod = 1e9 + 7;




void test_case(){
	
	ll n,l,r,s;
	cin>>n>>l>>r>>s;
	vector<ll> arr(n+1);
	ll start = 1,mina = 0,maxa = 0,cnt=0;
	for(ll i=l;i<=r;i++){
		arr[i] = start;
		mina += start;
		maxa += n+1-start;
		cnt += start;
		start += 1;
		
	}
	if(s < mina || s > maxa){
		cout<<-1<<endl;
		return ;
	}
	ll k = n;
	set<ll> seta;
	for(ll i=1;i<=n;i++){
		seta.insert(i);
	}
//	vector<bool> vis(n+1);
	ll index = r;
	while(cnt != s){
		while(arr[index] < k && cnt < s){
			arr[index] += 1;
			cnt += 1;
		}
		index -= 1;
//		vis[k] = true;
		k -= 1;
	}
	for(ll i=l;i<=r;i++){
		seta.erase(seta.find(arr[i]));
	}
	for(ll i=1;i<=n;i++){
		if(i<l || i>r){
			ll val = *seta.begin();
			arr[i] = val;
			seta.erase(val);
		}
	}
	for(ll i=1;i<=n;i++){
		cout<<arr[i]<<" ";
	}
	cout<<endl;
	
}

void intialize(){
	
	ios::sync_with_stdio(false);
  	cin.tie(0);
  	cout.tie(0);
  	
}

void preprocess(){
	
	
	
}



int main(){
    
   	intialize();
   	preprocess();
//   	test_case();
//cout<<"aaaaaaaaaaaaaaaaaaa"<<endl;
	ll t;
	cin>>t;
//	string a;
//	getline(cin,a);
	for(ll te=1;te<=t;te++){ 
//		cout<<"Case #"<<te<<": ";
		test_case();
	}

	return 0;
}



