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 CPP):

Solution:
#pragma G++ optimize (2)
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define N
#define ms
#define LL long long
using namespace std;
namespace io {
	const int SIZE = (1 << 21) + 1;
	char ibuf[SIZE], *iS, *iT, obuf[SIZE], *oS = obuf, *oT = oS + SIZE - 1, c, qu[55]; int ff, qr; // getchar
	#define gc() getchar()
	inline void flush () { // print the remaining part
		fwrite (obuf, 1, oS - obuf, stdout);
		oS = obuf;
	}
	inline void putc (char x) { // putchar
		*oS ++ = x;
		if (oS == oT) flush ();
	}
	template <class I> // input a signed integer
	inline void gi (I &x) {
		for (ff = 1, c = gc(); c < '0' || c > '9'; c = gc()) if (c == '-') ff = -1;
		for (x = 0; c <= '9' && c >= '0'; c = gc()) x = x * 10 + (c & 15); x *= ff;
	}
	template <class I> // print a signed integer
	inline void print (I &x) {
		if (!x) putc ('0'); if (x < 0) putc ('-'), x = -x;
		while (x) qu[++ qr] = x % 10 + '0',  x /= 10;
		while (qr) putc (qu[qr --]);
	}
	//no need to call flush at the end manually!
	struct Flusher_ {~Flusher_(){flush();}}io_flusher_;
}
using io :: gi;
using io :: putc;
using io :: print;

int main()
{
	
	int T; scanf("%d",&T);
	while (T)
	{
		int n;
		T--; scanf("%d",&n);
		if (n%2)
		{
			for (int i=1;i<=n/2-1;i++)
			  printf("%d %d ",2*i,2*i-1);
			printf("%d %d %d",n,n-2,n-1);
			printf("\n");
		}
		 else {
		 	for (int i=1;i<=n/2;i++)
		 	  printf("%d %d ",2*i,2*i-1);
		 	printf("\n");
		 }
	}
	return 0;
}