#include #include #include #include int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int X, Y, Z; std::cin >> X >> Y >> Z; const int M = X * Y * Z; auto id = [=](int x, int y, int z) { return x + X * (y + Y * z); }; std::vector A(M), B(M); std::string row; for (auto* cuboid : {&A, &B}) for (int z = 0; z < Z; ++z) for (int y = 0; y < Y; ++y) { std::cin >> row; for (int x = 0; x < X; ++x) (*cuboid)[id(x, y, z)] = row[x]; } int answer = M; for (int sz = 0; sz < Z; ++sz) for (int sy = 0; sy < Y; ++sy) for (int sx = 0; sx < X; ++sx) { int bad = 0; for (int z = 0; z < Z; ++z) for (int y = 0; y < Y; ++y) for (int x = 0; x < X; ++x) { char a = A[id(x, y, z)]; char b = B[id((x - sx + X) % X, (y - sy + Y) % Y, (z - sz + Z) % Z)]; bad += (a == 'B' && b == 'W') || (a == 'W' && b == 'B'); } answer = std::min(answer, bad); } std::cout << answer << '\n'; }