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
#include <bits/stdc++.h>
using namespace std;
long long read() {
  char c = getchar();
  long long x = 0, f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
  return x * f;
}
const long long maxn = 1010;
const long long inf = 1e9;
const long long XRZ = 1e9 + 7;
signed main() {
  long long T = read();
  while (T--) {
    long long n = read(), k = read();
    printf("%d\n", k / 2 + n - k);
    for (long long i = 1; i <= k / 2; ++i) printf("%d ", i);
    for (long long i = k + 1; i <= n; ++i) printf("%d ", i);
    puts("");
  }
  return 0;
}
