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
#define pb              push_back
#define mp              make_pair
#define F               first
#define S               second 
#define all(x)          x.begin(),x.end()
#define rall(x)         x.rbegin(),x.rend()
#define loop(i,m,n)     for(int i=m; i<n; i++)
#define rloop(i,m,n)    for(int i=m; i>=n; i--)
#define print(x)        for(auto t : x){cout << t << " ";}cout <<"\n";
#define printnl(x)      for(auto t : x)cout << t <<"\n";

#define MOD  1e9+7
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

typedef pair<int,int>   pii; 
typedef vector<int>     vi;   
typedef vector<ll>      vl;  
typedef vector<double>  vd;  
typedef vector<char>    vc;  
typedef vector<string>  vs;  
typedef set<int>        si;  
typedef set<ll>         sl;  
typedef set<double>     sd;  
typedef set<char>       sc;  
typedef set<string>     ss;  
typedef map<int,int>    mi;  
typedef map<ll,int>     ml;  
typedef map<double,int> md;  
typedef map<char,int>   mc;  
typedef map<string,int> ms;  

// **************************************************************************************

void solve(){
    ll k,n;
    cin>>n>>k;
    ll c= max(0ll , n - ((k-1)/2 + 1));
    cout<<c<<"\n";
    if(c==0){
        cout<<"\n";
        return;
    }
    else{
        loop(i,(k+1)/2,(n+1)){
            if(i==k)continue;
            cout<<i<<" ";
        }
        cout<<"\n";
    }
    return;
}

int main(){
    fast

    int tc = 1;
    cin>>tc;
    while(tc--){
        solve();
    }

    return 0;
}