/*__ _(_) __ _ ___ ___ _ _ __| | __ _ _ _| |_ ___
/ _` | |/ _` |/ _ \/ __| | | |/ _` |/ _` | | | | __/ _ \
| (_| | | (_| | (_) \__ \ |_| | (_| | (_| | |_| | || (_) |
\__, |_|\__,_|\___/|___/\__,_|\__,_|\__,_|\__,_|\__\___/
|___/ Accepted Code */
#include<bits/stdc++.h>
using namespace std;
int maxint=1e9+7;
int n=12;
int he[12][12];
int a[12];
vector<int> ke[12];
int res,solved;
void init_edge()
{
int dk[]= {1,3,6,12};
for(int i=0; i<12; i++)
{
for(int j=i+1; j<12; j++)
{
he[i][j]=he[j][i]=maxint;
bool ok=false;
int k=0;
for(k=0; k<4; k++)
if(abs(i-j)==dk[k])
{
ok=true;
break;
}
if(!ok) continue;
int sc=dk[k+1];
if(floor(i/sc)==floor(j/sc))
{
ke[i].push_back(j);
ke[j].push_back(i);
he[i][j]=he[j][i]=1;
}
}
he[i][i]=0;
}
}
void init_he()
{
for(int k=0; k<n; k++)
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
he[i][j]=min(he[i][j],he[i][k]+he[k][j]);
}
inline int DFS(int cur,int pre,int sum_he,int dep)
{
if(sum_he==0)
{
solved=dep;
return solved;
}
if(dep+sum_he>res) return dep+sum_he;
int res2=maxint;
int save_he=sum_he;
for(int j:ke[cur])
{
if(j==pre) continue;
sum_he-=he[j][a[j]];
swap(a[cur],a[j]);
sum_he+=he[cur][a[cur]];
int tmp=DFS(j,cur,sum_he,dep+1);
if(solved!=0) return solved;
sum_he=save_he;
swap(a[cur],a[j]);
res2=min(tmp,res2);
}
return res2;
}
void solve()
{
int l0;
for(int i=0; i<12; i++) cin>>a[i],a[i]==0?l0=i:1;
res=0;
int sum_he=0;
for(int i=0; i<12; i++) i==l0?1:sum_he+=he[i][a[i]];
if(sum_he==0)
{
cout<<0<<endl;
return;
}
solved=0;
res=sum_he;
while (solved==0)
{
res=DFS(l0,-1,sum_he,0);
}
cout<<solved<<endl;
}
int main()
{
init_edge();
init_he();
int T;
cin>>T;
while(T--)
solve();
return 0;
}
LypfXyBfKF8pIF9fIF8gIF9fXyAgX19fIF8gICBfICBfX3wgfCBfXyBfIF8gICBffCB8XyBfX18KIC8gX2AgfCB8LyBfYCB8LyBfIFwvIF9ffCB8IHwgfC8gX2AgfC8gX2AgfCB8IHwgfCBfXy8gXyBcCnwgKF98IHwgfCAoX3wgfCAoXykgXF9fIFwgfF98IHwgKF98IHwgKF98IHwgfF98IHwgfHwgKF8pIHwKIFxfXywgfF98XF9fLF98XF9fXy98X19fL1xfXyxffFxfXyxffFxfXyxffFxfXyxffFxfX1xfX18vCiB8X19fLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRlZCBDb2RlICAqLwoKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYXhpbnQ9MWU5Kzc7CmludCBuPTEyOwppbnQgaGVbMTJdWzEyXTsKaW50IGFbMTJdOwp2ZWN0b3I8aW50PiBrZVsxMl07CmludCByZXMsc29sdmVkOwoKCnZvaWQgaW5pdF9lZGdlKCkKewogICAgaW50IGRrW109IHsxLDMsNiwxMn07CiAgICBmb3IoaW50IGk9MDsgaTwxMjsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaj1pKzE7IGo8MTI7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGhlW2ldW2pdPWhlW2pdW2ldPW1heGludDsKICAgICAgICAgICAgYm9vbCBvaz1mYWxzZTsKICAgICAgICAgICAgaW50IGs9MDsKICAgICAgICAgICAgZm9yKGs9MDsgazw0OyBrKyspCiAgICAgICAgICAgICAgICBpZihhYnMoaS1qKT09ZGtba10pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgb2s9dHJ1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIW9rKSBjb250aW51ZTsKICAgICAgICAgICAgaW50IHNjPWRrW2srMV07CiAgICAgICAgICAgIGlmKGZsb29yKGkvc2MpPT1mbG9vcihqL3NjKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAga2VbaV0ucHVzaF9iYWNrKGopOwogICAgICAgICAgICAgICAga2Vbal0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICAgICAgaGVbaV1bal09aGVbal1baV09MTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBoZVtpXVtpXT0wOwogICAgfQp9Cgp2b2lkIGluaXRfaGUoKQp7CiAgICBmb3IoaW50IGs9MDsgazxuOyBrKyspCiAgICAgICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgICAgICAgICBmb3IoaW50IGo9MDsgajxuOyBqKyspCiAgICAgICAgICAgICAgICBoZVtpXVtqXT1taW4oaGVbaV1bal0saGVbaV1ba10raGVba11bal0pOwp9CgppbmxpbmUgaW50IERGUyhpbnQgY3VyLGludCBwcmUsaW50IHN1bV9oZSxpbnQgZGVwKQp7CiAgICBpZihzdW1faGU9PTApCiAgICB7CiAgICAgICAgc29sdmVkPWRlcDsKICAgICAgICByZXR1cm4gc29sdmVkOwogICAgfQoKICAgIGlmKGRlcCtzdW1faGU+cmVzKSByZXR1cm4gZGVwK3N1bV9oZTsKICAgIGludCByZXMyPW1heGludDsKICAgIGludCBzYXZlX2hlPXN1bV9oZTsKCiAgICBmb3IoaW50IGo6a2VbY3VyXSkKICAgIHsKICAgICAgICBpZihqPT1wcmUpIGNvbnRpbnVlOwogICAgICAgIHN1bV9oZS09aGVbal1bYVtqXV07CiAgICAgICAgc3dhcChhW2N1cl0sYVtqXSk7CiAgICAgICAgc3VtX2hlKz1oZVtjdXJdW2FbY3VyXV07CiAgICAgICAgaW50IHRtcD1ERlMoaixjdXIsc3VtX2hlLGRlcCsxKTsKICAgICAgICBpZihzb2x2ZWQhPTApIHJldHVybiBzb2x2ZWQ7CiAgICAgICAgc3VtX2hlPXNhdmVfaGU7CiAgICAgICAgc3dhcChhW2N1cl0sYVtqXSk7CiAgICAgICAgcmVzMj1taW4odG1wLHJlczIpOwogICAgfQogICAgcmV0dXJuIHJlczI7Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBpbnQgbDA7CiAgICBmb3IoaW50IGk9MDsgaTwxMjsgaSsrKSBjaW4+PmFbaV0sYVtpXT09MD9sMD1pOjE7CgogICAgcmVzPTA7CiAgICBpbnQgc3VtX2hlPTA7CiAgICBmb3IoaW50IGk9MDsgaTwxMjsgaSsrKSBpPT1sMD8xOnN1bV9oZSs9aGVbaV1bYVtpXV07CiAgICBpZihzdW1faGU9PTApCiAgICB7CiAgICAgICAgY291dDw8MDw8ZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgc29sdmVkPTA7CiAgICByZXM9c3VtX2hlOwogICAgd2hpbGUgKHNvbHZlZD09MCkKICAgIHsKICAgICAgICByZXM9REZTKGwwLC0xLHN1bV9oZSwwKTsKICAgIH0KICAgIGNvdXQ8PHNvbHZlZDw8ZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBpbml0X2VkZ2UoKTsKICAgIGluaXRfaGUoKTsKICAgIGludCBUOwogICAgY2luPj5UOwogICAgd2hpbGUoVC0tKSAKCQlzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K