#include #include #include #include using namespace std; int ans; string input[9]; string state[9]; bool used[9]; void Rotate(string& str) { char c = str[0]; for(int i = 0; i < 3; ++i) str[i] = str[i+1]; str[3] = c; } bool Check(int k) { bool r = true; int x = k % 3, y = k / 3; if(x > 0) { r = r && abs(state[k][0] - state[k-1][2]) == 'a' - 'A'; } if(y > 0) { r = r && abs(state[k][1] - state[k-3][3]) == 'a' - 'A'; } return r; } void Run(int k) { if(k == 9) { ++ans; return; } for(int i = 0; i < 9; ++i) if(!used[i]) { used[i] = true; state[k] = input[i]; for(int j = 0; j < 4; ++j) { if(Check(k)) Run(k+1); Rotate(state[k]); } used[i] = false; } } int main() { int nnn; cin >> nnn; for(int iii = 0; iii < nnn; ++iii) { ans = 0; memset(used, 0, sizeof(used)); for(int i = 0; i < 9; ++i) cin >> input[i]; Run(0); cout << ans << endl; } }