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>
#define ll (long long)
using namespace std;

int main()
{
	int T;
	cin>>T;
	
	while(T--)
	{
		int n,k;
		cin>>n>>k;
		
		if(k%2==0)
		{
			int no;
			no=(n-k)+k/2;
			int count=0;
			int Include[no];
			int i;
			for(i=0;i<(n-k);i++)
			{
				Include[i]=k+i+1;
				count++;
			}
			int temp=k-1;
			for(int j=0;j<(k-(k/2));j++)
			{
				Include[j+i]=temp--;
				count++;
			}
			cout<<count<<endl;
			for(i=0;i<count;i++)
			{
				cout<<Include[i]<<" ";
			}
		}
		
		else
		{
			int no;
			no=(n-k)+k/2;
			int count=0;
			int Include[no];
			int i;
			for(i=0;i<(n-k);i++)
			{
				Include[i]=k+i+1;
				count++;
			}
			int temp=k-1;
			for(int j=0;j<(k-((k/2)+1));j++)
			{
				Include[j+i]=temp--;
				count++;
			}
			cout<<count<<endl;
			for(i=0;i<count;i++)
			{
				cout<<Include[i]<<" ";
			}
		}
		cout<<endl;
	}
}