#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;
}