Problem: You are given two integers n and k. You are asked to choose maximum number of distinct integers from 1 to n so that there is no subset of chosen numbers with sum equal to k.

A subset of a set is a set that can be obtained from initial one by removing some (possibly all or none) elements of it.

Input

The first line contains the number of test cases T (1 ≤ T ≤ 100).

Each of the next T lines contains two integers n and k (1 ≤ k ≤ n ≤ 1000) — the description of test cases.

Output

For each test case output two lines. In the first line output a single integer m — the number of chosen integers.

In the second line output m distinct integers from 1 to n — the chosen numbers.

If there are multiple answers, print any. You can print the numbers in any order.

Example

Input


3
3 2
5 3
1 1


Output


2
3 1 
3
4 5 2 
0

Solution (in PYTHON3):

Solution:
# Paulo Lima https://github.com/paulolima18

import sys
input = sys.stdin.readline

############ ---- Input Functions ---- ############
def inp():
    return(int(input()))
def inlt():
    return(list(map(int,input().split())))
def insr():
    s = input()
    return(list(s[:len(s) - 1]))
def invr():
    return(map(int,input().split()))


def check(arr, k):
  result = arr
  size = len(arr)
  balance = 0
  for i in range(size):
    checker = k - arr[i-balance]
    if checker in arr and checker != arr[i-balance]:
      result.remove(checker)
      balance += 1

  return result

def solve(n, k):
  # 3 2
  arr = range(n+1)[:0:-1]
  result = []
  small = []
  for elem in arr:
    if elem > k:
      result.append(elem)
    elif elem < k:
      small.append(elem)

  small = check(small, k)
  result += small
  size = len(result)

  print(size)
  if(size != 0):
    print(" ".join(map(str, result)))

def main():
  T = inp()

  while(T > 0):
    n,k = inlt()
    solve(n,k)
    T -= 1

if __name__ == '__main__':
    main()