#include <iostream>
#include <vector>
#include <unordered_map>
#include <queue>
#include <map>
#include <utility>
#include <string>
#include <algorithm>
using namespace std;
typedef pair<int,int> pii;
vector<int> fac;
map<vector<int>,int> vecCantor;
vector<vector<int>> Cantorvec;
int n = 8;
int vectoCantor(const vector<int>& vec);
int kth(const vector<bool>&vec,int k);
vector<int> Cantortovec(int can);
void Init()
{
fac = vector<int>(10,1);
for(int i = 1;i<10;i++)
{
fac[i] = fac[i-1] * i;
}
for(int i = 0;i<fac[8];i++)
{
Cantorvec.push_back(Cantortovec(i));
vecCantor[Cantorvec[i]] = i;
}
}
int vectoCantor(const vector<int>& vec)
{
int vecsize = vec.size();
int ret = 0;
vector<int> inv(n,0);
return ret;
}
int kth(const vector<bool>&vec,int k)
{
int cnt = 0;
int ret;
int vecsize = vec.size();
for(int i = 0;i<vecsize;i++)
{
if(!vec[i]) cnt++;
if(cnt == k) return i;
}
}
vector<int> Cantortovec(int can)
{
vector<int> ret;
vector<bool> digitvisit(n,false);
for(int i = 0;i<n;i++)
{
int mod = can / fac[n-1-i];
can %= fac[n-1-i];
int perm = kth(digitvisit,mod+1);
digitvisit[perm] = true;
ret.push_back(perm);
}
return ret;
}
int main(int argc, char** argv) {
int t;
scanf("%d",&t);
queue<vector<int>> q;
map<vector<int>,int> distance;
vector<int> sorted = {0,1,2,3,4,5,6,7};
q.push({0,1,2,3,4,5,6,7});
while(!q.empty())
{
vector<int> qtop = q.front();
int dist = distance[qtop];
q.pop();
for(int i = 0;i<n;i++)
{
for(int j = i+1;j<n;j++)
{
reverse(qtop.begin()+i,qtop.begin()+j+1);
if(distance[qtop] == 0 && qtop != sorted)
{
q.push(qtop);
distance[qtop] = dist+1;
}
reverse(qtop.begin()+i,qtop.begin()+j+1);
}
}
}
while(t--)
{
scanf("%d",&n);
vector<int> input(n);
vector<pii> temp;
for(int i = 0;i<n;i++)
{
int num;
scanf("%d",&num);
temp.push_back(make_pair(num,i));
}
sort(temp.begin(),temp.end());
for(int i = 0;i<n;i++)
{
input[temp[i].second] = i;
}
for(int i = n;i<8;i++)
{
input.push_back(i);
}
printf("%d\n",distance[input]);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwoKdmVjdG9yPGludD4gZmFjOwptYXA8dmVjdG9yPGludD4saW50PiB2ZWNDYW50b3I7CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gQ2FudG9ydmVjOwppbnQgbiA9IDg7CgppbnQgdmVjdG9DYW50b3IoY29uc3QgdmVjdG9yPGludD4mIHZlYyk7CmludCBrdGgoY29uc3QgdmVjdG9yPGJvb2w+JnZlYyxpbnQgayk7CnZlY3RvcjxpbnQ+IENhbnRvcnRvdmVjKGludCBjYW4pOwoKdm9pZCBJbml0KCkKewoJZmFjID0gdmVjdG9yPGludD4oMTAsMSk7CgkKCWZvcihpbnQgaSA9IDE7aTwxMDtpKyspCgl7CgkJZmFjW2ldID0gZmFjW2ktMV0gKiBpOwoJfQoJCglmb3IoaW50IGkgPSAwO2k8ZmFjWzhdO2krKykKCXsKCQlDYW50b3J2ZWMucHVzaF9iYWNrKENhbnRvcnRvdmVjKGkpKTsKCQl2ZWNDYW50b3JbQ2FudG9ydmVjW2ldXSA9IGk7Cgl9Cn0KCmludCB2ZWN0b0NhbnRvcihjb25zdCB2ZWN0b3I8aW50PiYgdmVjKQp7CglpbnQgdmVjc2l6ZSA9IHZlYy5zaXplKCk7CgkKCWludCByZXQgPSAwOwoJCgl2ZWN0b3I8aW50PiBpbnYobiwwKTsKCglyZXR1cm4gcmV0Owp9CgppbnQga3RoKGNvbnN0IHZlY3Rvcjxib29sPiZ2ZWMsaW50IGspCnsKCWludCBjbnQgPSAwOwoJaW50IHJldDsKCWludCB2ZWNzaXplID0gdmVjLnNpemUoKTsKCWZvcihpbnQgaSA9IDA7aTx2ZWNzaXplO2krKykKCXsKCQlpZighdmVjW2ldKSBjbnQrKzsKCQlpZihjbnQgPT0gaykgcmV0dXJuIGk7Cgl9Cn0KCnZlY3RvcjxpbnQ+IENhbnRvcnRvdmVjKGludCBjYW4pCnsKCXZlY3RvcjxpbnQ+IHJldDsKCQoJdmVjdG9yPGJvb2w+IGRpZ2l0dmlzaXQobixmYWxzZSk7CgkKCWZvcihpbnQgaSA9IDA7aTxuO2krKykKCXsKCQlpbnQgbW9kID0gY2FuIC8gZmFjW24tMS1pXTsKCQljYW4gJT0gZmFjW24tMS1pXTsKCQkKCQlpbnQgcGVybSA9IGt0aChkaWdpdHZpc2l0LG1vZCsxKTsKCQlkaWdpdHZpc2l0W3Blcm1dID0gdHJ1ZTsKCQlyZXQucHVzaF9iYWNrKHBlcm0pOwoJfQoJCQoJcmV0dXJuIHJldDsKfQoKCgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKCWludCB0OwoJc2NhbmYoIiVkIiwmdCk7CgkKCXF1ZXVlPHZlY3RvcjxpbnQ+PiBxOwoJbWFwPHZlY3RvcjxpbnQ+LGludD4gZGlzdGFuY2U7CgkKCXZlY3RvcjxpbnQ+IHNvcnRlZCA9IHswLDEsMiwzLDQsNSw2LDd9OwoJcS5wdXNoKHswLDEsMiwzLDQsNSw2LDd9KTsKCQoJd2hpbGUoIXEuZW1wdHkoKSkKCXsKCQl2ZWN0b3I8aW50PiBxdG9wID0gcS5mcm9udCgpOwoJCWludCBkaXN0ID0gZGlzdGFuY2VbcXRvcF07CgkJcS5wb3AoKTsKCQkKCQlmb3IoaW50IGkgPSAwO2k8bjtpKyspCgkJewoJCQlmb3IoaW50IGogPSBpKzE7ajxuO2orKykKCQkJewoJCQkJcmV2ZXJzZShxdG9wLmJlZ2luKCkraSxxdG9wLmJlZ2luKCkraisxKTsKCQkJCQoJCQkJaWYoZGlzdGFuY2VbcXRvcF0gPT0gMCAmJiBxdG9wICE9IHNvcnRlZCkKCQkJCXsKCQkJCQlxLnB1c2gocXRvcCk7CgkJCQkJZGlzdGFuY2VbcXRvcF0gPSBkaXN0KzE7CgkJCQl9CgkJCQkKCQkJCXJldmVyc2UocXRvcC5iZWdpbigpK2kscXRvcC5iZWdpbigpK2orMSk7CgkJCX0KCQl9CgkKCX0KCgl3aGlsZSh0LS0pCgl7CgkJCgkJc2NhbmYoIiVkIiwmbik7CgkJCgkJdmVjdG9yPGludD4gaW5wdXQobik7CgkJdmVjdG9yPHBpaT4gdGVtcDsKCQkKCQlmb3IoaW50IGkgPSAwO2k8bjtpKyspCgkJewoJCQlpbnQgbnVtOwoJCQlzY2FuZigiJWQiLCZudW0pOwoJCQkKCQkJdGVtcC5wdXNoX2JhY2sobWFrZV9wYWlyKG51bSxpKSk7CgkJfQoJCQoJCXNvcnQodGVtcC5iZWdpbigpLHRlbXAuZW5kKCkpOwoJCQoJCWZvcihpbnQgaSA9IDA7aTxuO2krKykKCQl7CgkJCWlucHV0W3RlbXBbaV0uc2Vjb25kXSA9IGk7CgkJfQoJCQoJCWZvcihpbnQgaSA9IG47aTw4O2krKykKCQl7CgkJCWlucHV0LnB1c2hfYmFjayhpKTsKCQl9CgkJCgkJcHJpbnRmKCIlZFxuIixkaXN0YW5jZVtpbnB1dF0pOwoJCQoJfQoJCglyZXR1cm4gMDsKfQoK