#include<bits/stdc++.h>

using namespace std;

const int N = 100010;

int vi[N] = {0};

void solve()
{
    int mi,ma;
    int n,l,r,s;
    scanf("%d%d%d%d",&n,&l,&r,&s);
    int len = r - l + 1;
    mi = (1 + len) * len >> 1;
    ma = (2 * n - len + 1) * len >> 1;
    if(s < mi || s > ma)
    {
        puts("-1");
        return ;
    }
    vector<int> pre,middle,suf;
    int div = s - mi;
    int t1 = div / len;
    for(int i = 1;i <= len;i ++ )
    {
        if(i + t1 <= n)
            middle.push_back(i + t1);
        div -= t1;
    }
    if(div != 0)
    {
        for(int i = middle.size() - 1;i >= 0 && div;i -- )
        {
            if(middle[i] < n)
                middle[i] ++;
            div --;
        }
    }
    memset(vi,0,sizeof vi);
    for(int i = 0;i < middle.size();i ++ ) vi[middle[i]] = 1;
    for(int i = 1;i <= n;i ++ )
    {
        if(pre.size() == l - 1) break;
        if(!vi[i])
        {
            pre.push_back(i);
            vi[i] = 1;
        }
    }
    for(int i = 1;i <= n;i ++ )
    {
        if(suf.size() == n - r) break;
        if(!vi[i])
        {
            suf.push_back(i);
            vi[i] = 1;
        }
    }
    for(int i = 0;i < pre.size();i ++ ) printf("%d ",pre[i]);
    for(int i = 0;i < middle.size();i ++ ) printf("%d ",middle[i]);
    for(int i = 0;i < suf.size();i ++ ) printf("%d ",suf[i]);
    puts("");
    return ;
}

int main()
{
    int t;
    scanf("%d",&t);
    while(t -- )
    {
        solve();
    }
    return 0;
}
