Problem: You are given one integer n (n > 1).

Recall that a permutation of length n is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2, 3, 1, 5, 4] is a permutation of length 5, but [1, 2, 2] is not a permutation (2 appears twice in the array) and [1, 3, 4] is also not a permutation (n = 3 but there is 4 in the array).

Your task is to find a permutation p of length n that there is no index i (1 ≤ i ≤ n) such that p_i = i (so, for all i from 1 to n the condition p_i ≠ i should be satisfied).

You have to answer t independent test cases.

If there are several answers, you can print any. It can be proven that the answer exists for each n > 1.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 100) — the number of test cases. Then t test cases follow.

The only line of the test case contains one integer n (2 ≤ n ≤ 100) — the length of the permutation you have to find.

Output

For each test case, print n distinct integers p_1, p_2, …, p_n — a permutation that there is no index i (1 ≤ i ≤ n) such that p_i = i (so, for all i from 1 to n the condition p_i ≠ i should be satisfied).

If there are several answers, you can print any. It can be proven that the answer exists for each n > 1.

Example

Input


2
2
5


Output


2 1
2 1 5 3 4

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;       
import java.util.Iterator;
import java.util.LinkedList;
import java.util.StringTokenizer;

public class A {
    final static FastReader scan = new FastReader();
    public static void main(String[] args)
    {
        int tt = scan.nextInt();
        while(tt-->0){
           int n = scan.nextInt();
            System.out.print(n+" ");
            for (int i=1;i<n;i++)
                System.out.print(i+" ");

            System.out.println();

        }

    }


    static class Graph {
        int v;
        LinkedList<Integer> adj[];

        Graph(int v){
            this.v = v;
            adj = new LinkedList[v];
            for (int i =0 ;i<v;i++){
                adj[i]= new LinkedList<>();
            }
        }

        void addEdge (int v,int w){
            adj[v].add(w);
//            adj[w].add(v);
        }

        void BFS(int s){
            boolean[] visit = new boolean[v];
            visit[s] = true;
            LinkedList<Integer> queue = new LinkedList<>();

            queue.add(s);
            while (queue.size()!=0){
                s = queue.poll();
                System.out.print(s+"-: ");
                Iterator<Integer> i = adj[s].listIterator();
                while (i.hasNext()){
                    int n = i.next();
                    if (!visit[n]) {
                        visit[n] = true;
                        queue.add(n);
                    }
                }
            }
        }

        void DFS(int str){
            boolean[] visit = new boolean[this.v];
            DFSmain(str,visit);
        }
        void DFSmain(int v,boolean[] visit){
            visit[v]=true;
            System.out.print(v+" ->");
            Iterator<Integer> i = adj[v].listIterator();
            while (i.hasNext()){
                int var = i.next();
                if (!visit[var])
                    DFSmain(var,visit);
            }
        }
    }


    static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

        public FastReader()
        {
            br = new BufferedReader(new
                    InputStreamReader(System.in));
        }

        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;
        }
    }
}