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"
using namespace std;
#define ll         long long int
#define pb         push_back
#define pf         push_front
#define all(x)     (x).begin(),(x).end()
#define sz(x)      (int)((x).size())
#define fr         first
#define sc         second
#define pii        pair<int,int>
#define F(i,a,b)   for(int i=a;i<b;i++)
#define mem1(a)    memset(a,-1,sizeof(a))
#define mem0(a)    memset(a,0,sizeof(a))



const long long INF=1e18;
const int32_t Mod=1e9+7;
const int32_t MM=998244353;

void solve()
{
    int n,k;
    cin>>n>>k;
    vector<int>res;
    F(i,(k+1)/2,n+1)
    {
        if(i!=k)
        res.pb(i);
    }
    cout<<sz(res)<<endl;
    for(auto x:res)
    cout<<x<<" ";
    cout<<endl;
    return ;
}
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	while(t--) solve();
	return 0;
}