#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) void solve() { int N; cin >> N; vector S(N); rep(i, N) { cin >> S[i]; } int ans = 0; auto dfs = [&](auto dfs, int r, int c, string str) -> void { if (r == N - 1 && c == N - 1) { string s = str.substr(0, N); reverse(s.begin(), s.end()); string t = str.substr(0, N); if (s == t) { ans++; } return; } if (r + 1 < N) { dfs(dfs, r + 1, c, str + S[r + 1][c]); } if (c + 1 < N) { dfs(dfs, r, c + 1, str + S[r][c + 1]); } }; string str; str.push_back(S[0][0]); dfs(dfs, 0, 0, str); cout << ans << endl; } int main() { solve(); }