#include #include using namespace std; using ll = long long; #define overload4(a, b, c, d, name, ...) name #define rep1(n) for (ll i = 0; i < n; ++i) #define rep2(i, n) for (ll i = 0; i < n; ++i) #define rep3(i, a, b) for (ll i = a; i < b; ++i) #define rep4(i, a, b, c) for (ll i = a; i < b; i += c) #define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__) void solve(); int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(20); ll t = 1; // cin >> t; for (int i = 1; i <= t; i++) solve(); return 0; } ll dy[4] = {-1, 0, 1, 0}, dx[4] = {0, 1, 0, -1}; void solve() { ll n; cin >> n; vector s(n); rep(i, n) cin >> s[i]; ll res = 0; rep(i, 1ll << (2 * (n - 1))) { string t = ""; ll y = 0, x = 0; t += s[y][x]; rep(j, 2 * (n - 1)) { if (i >> j & 1) x++; else y++; if (y >= n || x >= n) break; t += s[y][x]; } if (t.size() != 2 * (n - 1) + 1) continue; auto tt = t; reverse(tt.begin(), tt.end()); if (t == tt) res++; } cout << res << endl; }