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>
const int mod = 1e9 + 7, MAX = 1e6 + 5;
const long long inf = 1e18 + 5;
const double pi = 3.14159265358979323846;
using namespace std;
long long fastexp(long long a, long long b) {
  long long ans = 1;
  long long temp = a;
  while (b > 0) {
    if (b & 1) ans = (ans * temp) % mod;
    temp = (temp * temp) % mod;
    b >>= 1;
  }
  return ans;
}
int bs(int si, int ei, int x, int* a) {
  int low = si;
  int high = ei;
  while (low <= high) {
    int mid = low + (high - low) / 2;
    if (x == a[mid]) return x;
    if (x > a[mid])
      low = mid + 1;
    else
      high = mid - 1;
  }
  return -1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    int n;
    int k;
    cin >> n >> k;
    int ans = 0;
    ans = max(0, n - k);
    int x = (k - 1) / 2;
    if (k == 2) {
      x++;
    }
    ans += x;
    cout << ans << "\n";
    for (int i = 1; i <= x; i++) cout << i << " ";
    for (int i = k + 1; i <= n; i++) cout << i << " ";
    cout << "\n";
  }
  return 0;
}
