#include #include #include #include #include #include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; typedef vector vi; typedef vector vvi; typedef vector vvvi; typedef vector vii; #define x first #define y second #define pb push_back #define eb emplace_back #define rep(i,a,b) for(auto i=(a); i<(b); ++i) #define REP(i,n) rep(i,0,n) #define all(v) (v).begin(), (v).end() #define rs resize #define DBG(x) cerr << __LINE__ << ": " << #x << " = " << (x) << endl // START OF ACTUAL PROGRAM, START READING HERE void run() { ll n; string hyphen; cin >> n; vvvi A(n, vvi(n, vi(n))); for (ll i = 0; i < n; i++) { cin >> hyphen; for (ll j = 0; j < n; j++) { for (ll k = 0; k < n; k++) { char a; cin >> a; if (a == 'B') { A[i][j][k] = 0; } else if (a == 'A') { A[i][j][k] = 1; } else if (a == 'P') { A[i][j][k] = 2; } else { A[i][j][k] = 3; } } } } ll res = 0; for (ll i = -n; i < n; i++) { for (ll j = -n; j < n; j++) { for (ll k = -n; k < n; k++) { vi B(10*n*n, 0), C(10*n*n, 0); for (ll x = 0; x < n; x++) { for (ll y = 0; y < n; y++) { for (ll z = 0; z < n; z++) { if (A[x][y][z] == 0) { B[5*n*n + i*x + j*y + k*z]++; } else if (A[x][y][z] == 3) { C[5*n*n + i*x + j*y + k*z]++; } } } } for (ll x = 0; x < n; x++) { if (x+i < 0 || x+i >= n) continue; for (ll y = 0; y < n; y++) { if (y+j < 0 || y+j >= n) continue; for (ll z = 0; z < n; z++) { if (z+k < 0 || z+k >= n) continue; if (A[x][y][z] == 1 && A[x+i][y+j][z+k] == 2) { res += B[5*n*n + x*i+y*j+z*k]*C[5*n*n + (x+i)*i+(y+j)*j+(z+k)*k]; } } } } } } } cout << res << endl; } signed main() { // DON'T MIX "scanf" and "cin"! ios_base::sync_with_stdio(false); cin.tie(NULL); cout << fixed << setprecision(20); run(); return 0; }