Problem: A sequence of n integers is called a permutation if it contains all integers from 1 to n exactly once.

Given two integers n and k, construct a permutation a of numbers from 1 to n which has exactly k peaks. An index i of an array a of size n is said to be a peak if 1 < i < n and a_i \gt a_{i-1} and a_i \gt a_{i+1}. If such permutation is not possible, then print -1.

Input

The first line contains an integer t (1 ≤ t ≤ 100) — the number of test cases.

Then t lines follow, each containing two space-separated integers n (1 ≤ n ≤ 100) and k (0 ≤ k ≤ n) — the length of an array and the required number of peaks.

Output

Output t lines. For each test case, if there is no permutation with given length and number of peaks, then print -1. Otherwise print a line containing n space-separated integers which forms a permutation of numbers from 1 to n and contains exactly k peaks. 

If there are multiple answers, print any.

Example

Input


5
1 0
5 2
6 6
2 1
6 1


Output


1 
2 4 1 5 3 
-1
-1
1 3 6 5 4 2

Note

In the second test case of the example, we have array a = [2,4,1,5,3]. Here, indices i=2 and i=4 are the peaks of the array. This is because (a_{2} \gt a_{1} , a_{2} \gt a_{3}) and (a_{4} \gt a_{3}, a_{4} \gt a_{5}). 

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(0);cin.tie(0);
#define ll long long int
#define ld long double
#define pb push_back
#define sp " "
#define mod (1000*1000*1000+7)
#define ff first
#define ss second
#define sz(x) (ll)x.size()
#define all(x) x.begin(),x.end()
#define pl pair<ll,ll>
#define vi vector<ll>
#define vii vector<pl>
#define val(x) cout<<#x<<" is "<<x<<endl
bool flag=true;
const ll N=1e6+5;
const ll inf = 998244353;

void solve()
{
	ll i=0,j=0,ans=0,x=0,y=0,z=0;
	ll n,k=0,m=0,mn=LLONG_MAX,mx=LLONG_MIN;
	cin>>n>>k;
	if(n<(k+1))
	{
		cout<<-1<<endl;
		return;
	}
	vi a(n);
	for(i=1;i<=n;i++)
		a[i-1]=i;
	i=1;
	while(k--)
	{
		if(i+1>=n)
		{
			cout<<-1<<endl;
			return;
		}
		swap(a[i],a[i+1]);
		i+=2;
	}
	for(auto it:a)
		cout<<it<<sp;
	cout<<endl;
}
int main()
{
	fast;
	ll T=1,te=1;
    cin>>T;
	while(T--){
		//cout<<"Case #"<<te++<<": ";
		solve();
	}
	return 0;
}
/*test cases
if (s1.find(s2) != string::neven)
z=pref[i1][j1]-pref[i1][j-1]-pref[i-1][j1]
                        +pref[i-1][j-1];
*/