#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001LL int main(){ int n; cin>>n; vector s(n); rep(i,n)cin>>s[i]; if(s[0][0]!=s[n-1][n-1]){ cout<<0<(1,1)); for(int i=1;i(i+1)); rep(j,dp.size()){ rep(k,dp.size()){ int x = j,y = i-1-j,z = n-i+k; int w = n-1-k; rep(l,2){ rep(m,2){ int nx = x,ny = y,nz = z,nw = w; if(l==0)nx++; else ny++; if(m==0)nz--; else nw--; if(s[nx][ny]!=s[nz][nw])continue; ndp[nx][nz-n+(i+1)] += dp[j][k]; } } } } swap(dp,ndp); } mint ans = 0; rep(i,dp.size())ans += dp[i][i]; cout<