#include <iostream>
#include<queue>
struct kou {
     int a[31];
     int cnt;
     int aaa;
};
using namespace std;
int main(void){
    int i,N,Ncnt=0,fal,temp[31]={0,1,1,1,1,1,1,1,1,1,2,2,2,4,4,4,6,6,6,5,5,5,3,3,3,3,3,3,3,3,3};
    kou soushin,kaiten;
    queue<kou> jotai;
    cin>>N;
    while(Ncnt<N){
        for(i=1;i<=30;i++)cin>>soushin.a[i];
        soushin.cnt=0;
        jotai.push(soushin);
        while(1){
            //cout<<"size="<<jotai.size()<<endl;
            soushin=jotai.front();
            jotai.pop();
            fal=0;
            //cout<<soushin.aaa<<"-------------------"<<endl;
            for(i=1;i<=30;i++){
                //cout<<soushin.a[i]<<' ';
                //if(i%10==0)cout<<endl;
                if(soushin.a[i]!=temp[i])fal=1;
            }
            if(fal==0)break;
            kaiten.a[1]=soushin.a[24];
            kaiten.a[2]=soushin.a[2];
            kaiten.a[3]=soushin.a[3];
            kaiten.a[4]=soushin.a[27];
            kaiten.a[5]=soushin.a[5];
            kaiten.a[6]=soushin.a[6];
            kaiten.a[7]=soushin.a[30];
            kaiten.a[8]=soushin.a[8];
            kaiten.a[9]=soushin.a[9];
            kaiten.a[10]=soushin.a[21];
            kaiten.a[11]=soushin.a[11];
            kaiten.a[12]=soushin.a[12];
            kaiten.a[13]=soushin.a[13];
            kaiten.a[14]=soushin.a[14];
            kaiten.a[15]=soushin.a[15];
            kaiten.a[16]=soushin.a[18];
            kaiten.a[17]=soushin.a[17];
            kaiten.a[18]=soushin.a[16];
            kaiten.a[19]=soushin.a[19];
            kaiten.a[20]=soushin.a[20];
            kaiten.a[21]=soushin.a[10];
            kaiten.a[22]=soushin.a[22];
            kaiten.a[23]=soushin.a[23];
            kaiten.a[24]=soushin.a[1];
            kaiten.a[25]=soushin.a[25];
            kaiten.a[26]=soushin.a[26];
            kaiten.a[27]=soushin.a[4];
            kaiten.a[28]=soushin.a[28];
            kaiten.a[29]=soushin.a[29];
            kaiten.a[30]=soushin.a[7];
            kaiten.cnt=soushin.cnt+1;
            kaiten.aaa=1;
            jotai.push(kaiten);
            kaiten.a[1]=soushin.a[28];
            kaiten.a[2]=soushin.a[29];
            kaiten.a[3]=soushin.a[30];
            kaiten.a[4]=soushin.a[4];
            kaiten.a[5]=soushin.a[5];
            kaiten.a[6]=soushin.a[6];
            kaiten.a[7]=soushin.a[7];
            kaiten.a[8]=soushin.a[8];
            kaiten.a[9]=soushin.a[9];
            kaiten.a[10]=soushin.a[10];
            kaiten.a[11]=soushin.a[11];
            kaiten.a[12]=soushin.a[12];
            kaiten.a[13]=soushin.a[13];
            kaiten.a[14]=soushin.a[14];
            kaiten.a[15]=soushin.a[16];
            kaiten.a[16]=soushin.a[15];
            kaiten.a[17]=soushin.a[17];
            kaiten.a[18]=soushin.a[18];
            kaiten.a[19]=soushin.a[21];
            kaiten.a[20]=soushin.a[20];
            kaiten.a[21]=soushin.a[19];
            kaiten.a[22]=soushin.a[22];
            kaiten.a[23]=soushin.a[23];
            kaiten.a[24]=soushin.a[24];
            kaiten.a[25]=soushin.a[25];
            kaiten.a[26]=soushin.a[26];
            kaiten.a[27]=soushin.a[27];
            kaiten.a[28]=soushin.a[1];
            kaiten.a[29]=soushin.a[2];
            kaiten.a[30]=soushin.a[3];
            kaiten.cnt=soushin.cnt+1;
            kaiten.aaa=2;
            jotai.push(kaiten);
            kaiten.a[1]=soushin.a[1];
            kaiten.a[2]=soushin.a[2];
            kaiten.a[3]=soushin.a[22];
            kaiten.a[4]=soushin.a[4];
            kaiten.a[5]=soushin.a[5];
            kaiten.a[6]=soushin.a[25];
            kaiten.a[7]=soushin.a[7];
            kaiten.a[8]=soushin.a[8];
            kaiten.a[9]=soushin.a[28];
            kaiten.a[10]=soushin.a[10];
            kaiten.a[11]=soushin.a[11];
            kaiten.a[12]=soushin.a[19];
            kaiten.a[13]=soushin.a[15];
            kaiten.a[14]=soushin.a[14];
            kaiten.a[15]=soushin.a[13];
            kaiten.a[16]=soushin.a[16];
            kaiten.a[17]=soushin.a[17];
            kaiten.a[18]=soushin.a[18];
            kaiten.a[19]=soushin.a[12];
            kaiten.a[20]=soushin.a[20];
            kaiten.a[21]=soushin.a[21];
            kaiten.a[22]=soushin.a[3];
            kaiten.a[23]=soushin.a[23];
            kaiten.a[24]=soushin.a[24];
            kaiten.a[25]=soushin.a[6];
            kaiten.a[26]=soushin.a[26];
            kaiten.a[27]=soushin.a[27];
            kaiten.a[28]=soushin.a[9];
            kaiten.a[29]=soushin.a[29];
            kaiten.a[30]=soushin.a[30];
            kaiten.cnt=soushin.cnt+1;
            kaiten.aaa=3;
            jotai.push(kaiten);
            kaiten.a[1]=soushin.a[1];
            kaiten.a[2]=soushin.a[2];
            kaiten.a[3]=soushin.a[3];
            kaiten.a[4]=soushin.a[4];
            kaiten.a[5]=soushin.a[5];
            kaiten.a[6]=soushin.a[6];
            kaiten.a[7]=soushin.a[22];
            kaiten.a[8]=soushin.a[23];
            kaiten.a[9]=soushin.a[24];
            kaiten.a[10]=soushin.a[12];
            kaiten.a[11]=soushin.a[11];
            kaiten.a[12]=soushin.a[10];
            kaiten.a[13]=soushin.a[18];
            kaiten.a[14]=soushin.a[14];
            kaiten.a[15]=soushin.a[15];
            kaiten.a[16]=soushin.a[16];
            kaiten.a[17]=soushin.a[17];
            kaiten.a[18]=soushin.a[13];
            kaiten.a[19]=soushin.a[19];
            kaiten.a[20]=soushin.a[20];
            kaiten.a[21]=soushin.a[21];
            kaiten.a[22]=soushin.a[7];
            kaiten.a[23]=soushin.a[8];
            kaiten.a[24]=soushin.a[9];
            kaiten.a[25]=soushin.a[25];
            kaiten.a[26]=soushin.a[26];
            kaiten.a[27]=soushin.a[27];
            kaiten.a[28]=soushin.a[28];
            kaiten.a[29]=soushin.a[29];
            kaiten.a[30]=soushin.a[30];
            kaiten.cnt=soushin.cnt+1;
            kaiten.aaa=4;
            jotai.push(kaiten);
        }
        cout<<soushin.cnt<<endl;
        while(!jotai.empty())jotai.pop();
        Ncnt++;    
    }
}

Measured memory_bytes: 13760