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 CPP):

Solution:
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define ff first
#define ss second
#define no cout << "NO\n";
#define yes cout << "YES\n";
#define imp cout << "-1\n";
#define nl cout << "\n";
#define sp << " "
#define lb lower_bound
#define ub upper_bound
#define ull unsigned long long
#define MOD 1000000007
#define INF LONG_LONG_MAX
#define MINF LONG_LONG_MIN
#define PI 3.141592653589793
using namespace std;

// #######################

void solve(){
	ll n,k,i;
	cin>>n>>k;
	cout<<n-k+k/2; nl
	for(i=(k+1)/2;i<=n;i++){
		 if(i==k) continue;
		 cout<<i sp;
	} nl
    return;
}

// #######################
	signed main()
	{
ios_base::sync_with_stdio(false); 
cin.tie(0),cout.tie(0);
srand(time(NULL));

		ll t = 1;
	   cin >> t;
		while (t--)
			solve();
	}