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 DEBUG(x) std::cout << '>' << #x << ':' << x << '\n';
#define PRINTVEC(x) for (int i = 0; i < (int)x.size(); i++) std::cout << x[i] << ' '; std::cout << '\n';
#define PRINTPAIR(x) for (int i = 0; i < (int)x.size(); i++) std::cout << x[i].first << ' ' << x[i].second << '\n'; std::cout << '\n';
#define PRINTSET(x) for (auto it = x.begin(); it != x.end(); it++) { std::cout << *it << ' '; } std::cout << '\n';
#define SZ(x) (int)size(x)
#define io std::ios_base::sync_with_stdio(false);std::cin.tie(NULL);   
const int INF = 1<<29;
const double PI = acos(-1.0);

// FILE I/O
void setIn(string s) { freopen(s.c_str(),"r",stdin); }
void setOut(string s) { freopen(s.c_str(),"w",stdout); }
void setIO(string s = "") {
    if (s.size()) setIn(s+".in"), setOut(s+".out"); // for USACO
}

using ll = long long;
using pll = pair<long,long>;
using pii = pair<int,int>;
using vi = vector<int>;
using vl = vector<ll>;
using vpll = vector<pll>;
using vpii = vector<pii>;

void solve() {
    ll n,k; cin >> n >> k;
    if (k > (n - 1) / 2) {
        cout << -1 << endl;
    }
    else if (k == 0) {
        for (ll i = 1; i <= n; i++) cout << i << ' ';
        cout << endl;
    }
    else {
        cout << 1 << ' ' << 3 << ' ' << 2 << ' ';
        ll mx = 3;
        for (ll i = 0; i < k - 1; i++) {
            cout << 5 + i * 2 << ' ' << 4 + i * 2 << ' ';
            mx = max(mx, 5 + i * 2);
            mx = max(mx, 4 + i * 2);
        }
        for (ll i = mx + 1; i <= n; i++) cout << i << ' ';
        cout << endl;
    }
}

int main()
{
	io;
    //setIO("test")

    int t;
    cin >> t;
    while(t--) {
        solve();
    }

    return 0;
}