#include<bits/stdc++.h>
using namespace std;
int t,n,ans;
string sta,fin;
unordered_map<string,int> mp;
struct node {
int step;
string s;
};
void bfs1(){
queue<node> q;
q.push({0,sta});
while(!q.empty()){
node f=q.front(); q.pop();
string s=f.s; int step=f.step;
mp[s]=f.step;
if(step==2) continue;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
string sub=s.substr(i,j-i+1);
for(int k=0;k<=n-j+i-1;k++){
string ls=s;
ls.erase(i,j-i+1);
ls.insert(k,sub);
if(mp.count(ls)) continue;
q.push({step+1,ls});
}
}
}
}
}
void bfs2(){
queue<node> q;
q.push({0,fin});
while(!q.empty()){
node f=q.front(); q.pop();
string s=f.s; int step=f.step;
if(mp.count(s)){
ans=mp[s]+step;
return ;
}
if(step==2) continue;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
string sub=s.substr(i,j-i+1);
for(int k=0;k<=n-j+i-1;k++){
string ls=s;
ls.erase(i,j-i+1);
ls.insert(k,sub);
q.push({step+1,ls});
}
}
}
}
}
int main(){
cin>>t;
while(t--){
mp.clear();
cin>>n;
sta="";
for(int i=0;i<n;i++){
int k; cin>>k;
sta+=char(k+'0');
}
fin="";
for(int i=1;i<=n;i++) fin+=char(i+'0');
ans=2e9;
bfs1();bfs2();
if(ans==2e9) cout<<"5 or more\n";
else cout<<ans<<"\n";
}
return 0;
}