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:
/*
 * 
 * 
 * Copyright 2021 Tanishk <tanishktonk>
 * ........ ;)
 * 
 *
 * 
 */

#include <bits/stdc++.h>
#define ll long long int
#define fr(i,n) for(i=0;i<n;i++)
#define rng(i,a,b) for(i=a;i<b;i++)
#define T long long int T;cin>>T;while(T--)
#define ain(a,n) for(int zzz=0;zzz<n;zzz++){cin>>a[zzz];}
#define aout(a,n) for(int zzz=0;zzz<n;zzz++){cout<<a[zzz]<<' ';}cout<<"\n";
#define All(v) v.begin(),v.end()
#define dbg(v) cerr<<">-- "<<#v<<" = "<<v<<"\n";
#define PB push_back
#define MP make_pair
#define N "\n"
const ll inf = (1e9+3);
const int M97 = (1e9+7);
using namespace std;

typedef vector<int> Vi;
typedef pair<ll,ll> Pii;
typedef pair<int,Pii> Piii;

ll i,j,k,l,m;

void solve()
{
	int n;
	cin >> n >> k;
	Vi ans;
	j = (k/2)+(k%2);
	rng(i,j,k)
		ans.PB(i);
	rng(i,k+1,n+1)
		ans.PB(i);
	cout << ans.size() << N;
	aout(ans,(int)ans.size())
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
	
	T solve();
    
    return 0;
}