#include <iostream>
#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)
using namespace std;
int T,n,a,b;
int p[1000005],_end;
bool build(int x,int y){
if(x < a){
int i = 1;
while(x < a && y >= b && i <= _end){
if(p[i] < p[i+1]){
x = x + p[i+1] - p[i];
y = y + p[i] - p[i+1];
swap(p[i],p[i+1]);
i += 2;
}else i += 2;
}
}
else{
int i = 1;
while(y < b && x >= a && i <= _end){
if(p[i] > p[i+1]){
y = y + p[i+1] - p[i];
x = x + p[i] - p[i+1];
swap(p[i],p[i+1]);
i += 2;
}else i += 2;
}
}
if(!(x >= a && y >= b))
return 1;
return 0;
}
bool c_n_s(){
int odd=0,even=0;
for(int i = 1; i < n; i+=2){
p[i] = i;
odd += p[i];
}
for(int i = 2; i <= n; i+=2){
p[i] = i;
even += p[i];
}
if(odd >= a && even >= b)
return 1;
int qwq = (odd+even) / 2;
if(qwq < min(a,b) && qwq+1 < max(a,b))
return 0;
if(build(odd,even))
return 0;
return 1;
}
int main() {
scanf("%d",&T);
while(T--){
scanf("%d %d %d",&n,&a,&b);
_end = n / 2;
if(c_n_s()){
printf("%d",p[1]);
for(int i = 2; i <= n; i++)
printf(" %d",p[i]);
putchar(10);
}else printf("-1\n");
}
return 0;
}