Problem: There are n bags with candies, initially the i-th bag contains i candies. You want all the bags to contain an equal amount of candies in the end. 

To achieve this, you will:

  * Choose m such that 1 ≤ m ≤ 1000

  * Perform m operations. In the j-th operation, you will pick one bag and add j candies to all bags apart from the chosen one.




Your goal is to find a valid sequence of operations after which all the bags will contain an equal amount of candies. 

  * It can be proved that for the given constraints such a sequence always exists.

  * You don't have to minimize m.

  * If there are several valid sequences, you can output any.

Input

Each test contains multiple test cases.

The first line contains the number of test cases t (1 ≤ t ≤ 100). Description of the test cases follows.

The first and only line of each test case contains one integer n (2 ≤ n≤ 100). 

Output

For each testcase, print two lines with your answer. 

In the first line print m (1≤ m ≤ 1000) — the number of operations you want to take. 

In the second line print m positive integers a_1, a_2, ..., a_m (1 ≤ a_i ≤ n), where a_j is the number of bag you chose on the j-th operation.

Example

Input


2
2
3


Output


1
2
5
3 3 3 1 2

Note

In the first case, adding 1 candy to all bags except of the second one leads to the arrangement with [2, 2] candies.

In the second case, firstly you use first three operations to add 1+2+3=6 candies in total to each bag except of the third one, which gives you [7, 8, 3]. Later, you add 4 candies to second and third bag, so you have [7, 12, 7], and 5 candies to first and third bag — and the result is [12, 12, 12].

Solution (in JAVA):

Solution:

import java.util.*;
import java.io.*;
public class codeforceb
{
	static class Pair{
    	int a;
    	int b;
    	Pair(int x, int y)
        {
            this.a = x;
            this.b = y;
        }
    }
    static class FastReader 
    { 
        BufferedReader br; 
        StringTokenizer st; 
  
        public FastReader() 
        { 
            br = new BufferedReader(new
                     InputStreamReader(System.in)); 
        } 
        int[] readArray(int n) {
			int[] a=new int[n];
			for (int i=0; i<n; i++) a[i]=nextInt();
			return a;
		}
        String next() 
        { 
            while (st == null || !st.hasMoreElements()) 
            { 
                try
                { 
                    st = new StringTokenizer(br.readLine()); 
                } 
                catch (IOException  e) 
                { 
                    e.printStackTrace(); 
                } 
            } 
            return st.nextToken(); 
        } 
  
        int nextInt() 
        { 
            return Integer.parseInt(next()); 
        } 
  
        long nextLong() 
        { 
            return Long.parseLong(next()); 
        } 

        double nextDouble() 
        { 
            return Double.parseDouble(next()); 
        } 
        String nextLine() 
        { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
        } 
    } 
	public static int gcd(int a, int b)
	{
		if (b == 0)
	        return a;
	    return gcd(b, a % b);
	}
	public static boolean check(int i,int j,int k)
	{
		if(i<=j && j<=k)
			return false;
		if(i>=j && j>=k)
			return false;
		return true;
	}
	public static void main (String[] args) throws java.lang.Exception
    {
		 /*Arrays.sort(time,new Comparator<Pair>(){
			public int compare(Pair p1,Pair p2){
				if(p1.a==p2.a)
					return p1.b-p2.b;
				return p1.a-p2.a;
			}
		});*/
	FastReader sc = new FastReader();
    int t=sc.nextInt();
    PrintWriter out=new PrintWriter(System.out);
    //Set<String> st1=new HashSet<String>();
    int i,j,a,b=4,c,d,l,r;
    int count=0;
    int m,n;
    long sum1=1,sum=0;
    int min,max,x,y,z;
    int k;
     c=1;  
    String s="",s1="";
    //ArrayList<Integer> arr2=new ArrayList<Integer>();
    //ArrayList<Integer> arr1=new ArrayList<Integer>();
    Map<Long,Integer> hm=new HashMap<Long,Integer>();
    Stack<Integer> st=new Stack<Integer>();

    for(;t>0;t--) 
    {
    	n=sc.nextInt();
    	out.println(n-1);
    	for(i=2;i<=n;i++)
    		out.print(i+" ");
    	out.println();
    }
    
    	
    
    out.close();
    

    
	
    }
}