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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.nio.file.Paths;
import java.util.*;
public class Main extends PrintWriter {
    static BufferedReader s = new BufferedReader(new InputStreamReader(System.in));Main () { super(System.out); }public static void main(String[] args) throws IOException{ Main  d1=new Main   ();d1.main();d1.flush(); }

    void main() throws IOException {
        StringBuilder sb = new StringBuilder();

        int t = 1;
        t=i(s()[0]);
//        System.out.println(Math.log(10));
        while(t-->0) {
          String[] s1=s();
          int n=i(s1[0]);
          int k=i(s1[1]);
          sb.append(Math.max((k-1)/2+(n-k),1)+"\n");
          for(int i=1;i<=Math.max((k-1)/2,1);i++){
              sb.append(i+" ");
          }
          for(int i= k+1;i<=n;i++){
              sb.append(i+" ");
            }
          sb.append("\n");
        }
        System.out.println(sb);
        }
//        System.out.println(sb);
  static long gcd(long a, long b) {
          if (b == 0)
              return a;
          return gcd(b, a % b);
      }
    static String[] s() throws IOException { return s.readLine().trim().split("\\s+"); }
    static int i(String ss) {return Integer.parseInt(ss); }
    static long l(String ss) {return Long.parseLong(ss); }
    public void arr(long[] a,int n) throws IOException {String[] s2=s();for(int i=0;i<n;i++){ a[i]=l(s2[i]); }}
    public void arri(int[] a,int n) throws IOException {String[] s2=s();for(int i=0;i<n;i++){ a[i]=i(s2[i]); }}
}class Pair{
    int a,b;
    public Pair(int a,int b){
        this.a=a;this.b=b;
    }
}


