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
#include<bits/stdc++.h>
using namespace std;

#define int long long int
#define vi vector<int>
#define all(a) (a).begin(),(a).end()
#define srt(a) sort(a.begin(),a.end())
#define mxe(a) *max_element(a.begin(),a.end())
#define mne(a) *min_element(a.begin(),a.end())
#define endl '\n'
#define mod 1000000007

void solve(){
   int n,k;cin>>n>>k;
   vi a;
   for(int i=k+1;i<=n;i++)
    a.push_back(i);
  int i=1,j=k-1;
  while(i<=j){
    a.push_back(j);
    i++;j--;
  } 
  cout<<a.size()<<endl;
  for(int i:a)
    cout<<i<<" ";
  cout<<endl;
}

int32_t main(){
  #ifndef ONLINE_JUDGE
   freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);
  #endif
  
  ios_base::sync_with_stdio(false);
  cin.tie(0);cout.tie(0);

  int T=1;
  cin>>T;
  for(int TT=1;TT<=T;TT++){
    //cout<<"Case #"<<TT<<": ";
    solve();
  }
  cerr<<"Time : "<<1000*((double)clock())/(double)CLOCKS_PER_SEC<<"ms\n";
}