#line 1 "a.cpp" #include #include #include int main() { int N; std::cin >> N; std::vector c(N, std::vector(N, char())); for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { std::cin >> c[i][j]; } } auto check = [&](const std::vector& T) -> bool { const int M = ssize(T); for(int i = 0; i < M; i++) { if(T[i] != T[M - 1 - i]) return false; } return true; }; int ans = 0; std::vector S; auto dfs = [&](auto dfs, int i, int j) -> void { S.push_back(c[i][j]); if(std::pair{i, j} == std::pair{N - 1, N - 1}) { if(check(S)) ans += 1; } else { if(i + 1 < N) dfs(dfs, i + 1, j); if(j + 1 < N) dfs(dfs, i, j + 1); } S.pop_back(); }; dfs(dfs, 0, 0); std::cout << ans << std::endl; }