#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; using namespace atcoder; using mint = modint998244353; int n; string s[10]; bool check(string &s) { int l = 0, r = s.length() - 1; while (l < r) { if (s[l] != s[r]) return false; l++; r--; } return true; } int dfs(int y, int x, string t) { if (y == n - 1 && x == n - 1) { if (check(t)) return 1; return 0; } int ret = 0; if (x + 1 < n) { ret += dfs(y, x + 1, t + s[y][x + 1]); } if (y + 1 < n) { ret += dfs(y + 1, x, t + s[y + 1][x]); } return ret; } signed main() { int i; cin >> n; rep(i, n) cin >> s[i]; string iniS; iniS += s[0][0]; cout << dfs(0, 0, iniS) << endl; return 0; }