Problem: You have a sequence a with n elements 1, 2, 3, ..., k - 1, k, k - 1, k - 2, ..., k - (n - k) (k ≤ n < 2k).

Let's call as inversion in a a pair of indices i < j such that a[i] > a[j].

Suppose, you have some permutation p of size k and you build a sequence b of size n in the following manner: b[i] = p[a[i]].

Your goal is to find such permutation p that the total number of inversions in b doesn't exceed the total number of inversions in a, and b is lexicographically maximum.

Small reminder: the sequence of k integers is called a permutation if it contains all integers from 1 to k exactly once.

Another small reminder: a sequence s is lexicographically smaller than another sequence t, if either s is a prefix of t, or for the first i such that s_i ≠ t_i, s_i < t_i holds (in the first position that these sequences are different, s has smaller number than t).

Input

The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of test cases.

The first and only line of each test case contains two integers n and k (k ≤ n < 2k; 1 ≤ k ≤ 10^5) — the length of the sequence a and its maximum.

It's guaranteed that the total sum of k over test cases doesn't exceed 10^5.

Output

For each test case, print k integers — the permutation p which maximizes b lexicographically without increasing the total number of inversions.

It can be proven that p exists and is unique.

Example

Input


4
1 1
2 2
3 2
4 3


Output


1 
1 2 
2 1 
1 3 2 

Note

In the first test case, the sequence a = [1], there is only one permutation p = [1].

In the second test case, the sequence a = [1, 2]. There is no inversion in a, so there is only one permutation p = [1, 2] which doesn't increase the number of inversions.

In the third test case, a = [1, 2, 1] and has 1 inversion. If we use p = [2, 1], then b = [p[a[1]], p[a[2]], p[a[3]]] = [2, 1, 2] and also has 1 inversion.

In the fourth test case, a = [1, 2, 3, 2], and since p = [1, 3, 2] then b = [1, 3, 2, 3]. Both a and b have 1 inversion and b is the lexicographically maximum.

Solution (in PYTHON):

Solution:
import sys
testing = len(sys.argv) == 4 and sys.argv[3] == "myTest"
if testing:
    cmd = sys.stdout
    from time import time
    start_time = int(round(time() * 1000)) 
    input = open(sys.argv[1], 'r').readline
    sys.stdout = open(sys.argv[2], 'w')
else:
    input = sys.stdin.readline

# from math import ceil
# from collections import defaultdict as dd
# from heapq import *
############ ---- I/O Functions ---- ############
def intin():
    return(int(input()))
def intlin():
    return(list(map(int,input().split())))
def chrin():
    s = input()
    return(list(s[:len(s) - 1]))
def strin():
    s = input()
    return s[:len(s) - 1]
def intlout(l):
    print(" ".join(map(str, l)))
    
def getSum( BITree, index):
    sum = 0 # Initialize result 
     
    # Traverse ancestors of BITree[index] 
    while (index > 0): 
 
        # Add current element of BITree to sum 
        sum += BITree[index] 
 
        # Move index to parent node in getSum View 
        index -= index & (-index) 
 
    return sum
 
# Updates a node in Binary Index Tree (BITree) 
# at given index in BITree. The given value
# 'val' is added to BITree[i] and all of its
# ancestors in tree. 
def updateBIT(BITree, n, index, val):
 
    # Traverse all ancestors and add 'val' 
    while (index <= n): 
 
        # Add 'val' to current node of BI Tree 
        BITree[index] += val 
 
        # Update index to that of parent
        # in update View 
        index += index & (-index) 
 
# Returns count of inversions of size three 
def getInvCount(arr, n):
 
    invcount = 0 # Initialize result 
 
    # Find maximum element in arrays 
    maxElement = max(arr)
 
    # Create a BIT with size equal to 
    # maxElement+1 (Extra one is used 
    # so that elements can be directly 
    # be used as index)
    BIT = [0] * (maxElement + 1) 
    for i in range(1, maxElement + 1): 
        BIT[i] = 0
    for i in range(n - 1, -1, -1):
 
        invcount += getSum(BIT, arr[i] - 1) 
        updateBIT(BIT, maxElement, arr[i], 1) 
    return invcount 


def main():
    n,k = intlin()
    # if n == k:
    #     return range(1,k+1)
    # if n == k+1:
    #     return range(1,k+1-2) + [k,k-1]
    return range(1,2*k-n) + range(k, 2*k-n-1,-1)
    # a = range(1,k+1) + range(k-1,2*k-n-1,-1)
    # maxInv = getInvCount(a,n)
    # for i in xrange(2*k-n, k):
    #     a[k-1] = i
    #     a[k-i] = k
    #     a[k+i-2] = k
    #     print(i,k)
    #     print(a)
    #     curInv = getInvCount(a,len(a))
    #     if curInv <= maxInv:
    #         ans = range(1,k+1)
    #         ans[k-1] = i
    #         ans[i-1] = k
    #         return ans
    #     a[k-i] = i
    #     a[k+i-2] = i


if __name__ == "__main__":
    for _ in xrange(intin()):
        intlout(main())
        # print("YES" if main() else "NO")
    # main()

    if testing:
        sys.stdout = cmd
        print(int(round(time() * 1000))  - start_time)