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:
#pragma GCC optimize(2)
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
#define pii pair<long long,long long>
#define ll long long
#define fi first
#define se second
#define y1 yy1
//const long long mx=1e11;
const long long mod=1e9+7;
//const long long mod=998244353;
const long long maxn=1e6+10;

//long long p[2]={1000000007,998244353};
//long long seed[2]={500000004,500000004};

/*#define ls_type ll
ls_type hh[maxn],hn[maxn*2],hy[maxn*2],ht;
void link(ls_type x,ls_type y){
	ht++;
	hn[ht]=hh[x];
	hh[x]=ht;
	hy[ht]=y;
}*/

/*long long ksm(long long x,long long y){
	long long re=1,xx=x%mod;
	while(y>0){
		if(y&1){
			re*=xx;
			re%=mod;
		}
		xx*=xx;
		xx%=mod;
		y>>=1;
	} 
	return re;
}*/ 

ll tt,n,m,q,now;


void solve(){
	
	scanf("%lld%lld",&n,&m);
	printf("%lld\n",n-m+m/2);
	for(ll i=m+1;i<=n;i++)
		printf("%lld ",i);
	for(ll i=1;i<=m/2;i++)
		printf("%lld ",m-i);
	printf("\n");
}
int main(){
	
	//ios_base::sync_with_stdio(false);
	//cin.tie(0);cout.tie(0);
	tt=1;
	scanf("%d",&tt);
	while(tt--)
		solve();
	
	return 0;
}